@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.
- package/README.md +16 -14
- package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/agent/ClaudeSdkAdapter.js +31 -8
- package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
- package/dist/agent/ClaudeSdkAdapter.test.js +18 -6
- package/dist/agent/ClaudeSdkAdapter.test.js.map +1 -1
- package/dist/agent/CodexCliAdapter.d.ts +1 -1
- package/dist/agent/CodexCliAdapter.d.ts.map +1 -1
- package/dist/agent/CodexCliAdapter.js +5 -4
- package/dist/agent/CodexCliAdapter.js.map +1 -1
- package/dist/agent/CodexCliAdapter.test.js +16 -1
- package/dist/agent/CodexCliAdapter.test.js.map +1 -1
- package/dist/agent/CodexSdkAdapter.d.ts.map +1 -1
- package/dist/agent/CodexSdkAdapter.js +6 -0
- package/dist/agent/CodexSdkAdapter.js.map +1 -1
- package/dist/agent/ProviderRegistry.d.ts +5 -0
- package/dist/agent/ProviderRegistry.d.ts.map +1 -1
- package/dist/agent/ProviderRegistry.js +15 -0
- package/dist/agent/ProviderRegistry.js.map +1 -1
- package/dist/agent/ProviderRegistry.test.js +19 -0
- package/dist/agent/ProviderRegistry.test.js.map +1 -1
- package/dist/agent/adapters.d.ts.map +1 -1
- package/dist/agent/adapters.js +5 -0
- package/dist/agent/adapters.js.map +1 -1
- package/dist/agent/mcp-config.d.ts +16 -0
- package/dist/agent/mcp-config.d.ts.map +1 -0
- package/dist/agent/mcp-config.js +28 -0
- package/dist/agent/mcp-config.js.map +1 -0
- package/dist/agent/mcp-config.test.d.ts +2 -0
- package/dist/agent/mcp-config.test.d.ts.map +1 -0
- package/dist/agent/mcp-config.test.js +22 -0
- package/dist/agent/mcp-config.test.js.map +1 -0
- package/dist/agent/models.d.ts +10 -0
- package/dist/agent/models.d.ts.map +1 -0
- package/dist/agent/models.js +35 -0
- package/dist/agent/models.js.map +1 -0
- package/dist/agent/models.test.d.ts +2 -0
- package/dist/agent/models.test.d.ts.map +1 -0
- package/dist/agent/models.test.js +40 -0
- package/dist/agent/models.test.js.map +1 -0
- package/dist/agent/orchestrator.d.ts +65 -0
- package/dist/agent/orchestrator.d.ts.map +1 -0
- package/dist/agent/orchestrator.js +260 -0
- package/dist/agent/orchestrator.js.map +1 -0
- package/dist/agent/orchestrator.test.d.ts +2 -0
- package/dist/agent/orchestrator.test.d.ts.map +1 -0
- package/dist/agent/orchestrator.test.js +284 -0
- package/dist/agent/orchestrator.test.js.map +1 -0
- package/dist/agent/session.d.ts +1 -0
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js +3 -2
- package/dist/agent/session.js.map +1 -1
- package/dist/agent/session.test.js +9 -0
- package/dist/agent/session.test.js.map +1 -1
- package/dist/agent/smoke-chat.test.d.ts +2 -0
- package/dist/agent/smoke-chat.test.d.ts.map +1 -0
- package/dist/agent/smoke-chat.test.js +166 -0
- package/dist/agent/smoke-chat.test.js.map +1 -0
- package/dist/commands/commands.test.js +3 -0
- package/dist/commands/commands.test.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts +9 -0
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +59 -2
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/knowledge.test.js +14 -1
- package/dist/commands/knowledge.test.js.map +1 -1
- package/dist/commands/mcp.d.ts +7 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +7 -2
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/progress.d.ts +4 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +33 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/refresh.d.ts +1 -0
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +17 -2
- package/dist/commands/refresh.js.map +1 -1
- package/dist/commands/remote.d.ts +4 -0
- package/dist/commands/remote.d.ts.map +1 -0
- package/dist/commands/remote.js +28 -0
- package/dist/commands/remote.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +14 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status.test.d.ts +2 -0
- package/dist/commands/status.test.d.ts.map +1 -0
- package/dist/commands/status.test.js +31 -0
- package/dist/commands/status.test.js.map +1 -0
- package/dist/core/analysis-cache.d.ts +13 -3
- package/dist/core/analysis-cache.d.ts.map +1 -1
- package/dist/core/analysis-cache.js +41 -31
- package/dist/core/analysis-cache.js.map +1 -1
- package/dist/core/analysis-cache.test.js +50 -8
- package/dist/core/analysis-cache.test.js.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +61 -0
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/generation-lock.d.ts +58 -0
- package/dist/core/generation-lock.d.ts.map +1 -0
- package/dist/core/generation-lock.js +233 -0
- package/dist/core/generation-lock.js.map +1 -0
- package/dist/core/generation-lock.test.d.ts +2 -0
- package/dist/core/generation-lock.test.d.ts.map +1 -0
- package/dist/core/generation-lock.test.js +134 -0
- package/dist/core/generation-lock.test.js.map +1 -0
- package/dist/core/isolate.test.js +30 -0
- package/dist/core/isolate.test.js.map +1 -1
- package/dist/core/knowledge.d.ts +20 -0
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +184 -36
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/knowledge.test.js +93 -15
- package/dist/core/knowledge.test.js.map +1 -1
- package/dist/core/locks.d.ts +4 -2
- package/dist/core/locks.d.ts.map +1 -1
- package/dist/core/locks.js +55 -7
- package/dist/core/locks.js.map +1 -1
- package/dist/core/locks.test.js +48 -0
- package/dist/core/locks.test.js.map +1 -1
- package/dist/core/progress.d.ts +21 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +40 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/progress.test.d.ts +2 -0
- package/dist/core/progress.test.d.ts.map +1 -0
- package/dist/core/progress.test.js +52 -0
- package/dist/core/progress.test.js.map +1 -0
- package/dist/core/refresh.d.ts +5 -0
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +25 -0
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/refresh.test.js +20 -0
- package/dist/core/refresh.test.js.map +1 -1
- package/dist/core/status.d.ts +2 -0
- package/dist/core/status.d.ts.map +1 -1
- package/dist/core/status.js +6 -1
- package/dist/core/status.js.map +1 -1
- package/dist/core/sync.d.ts.map +1 -1
- package/dist/core/sync.js +22 -1
- package/dist/core/sync.js.map +1 -1
- package/dist/core/sync.test.js +27 -0
- package/dist/core/sync.test.js.map +1 -1
- package/dist/core/workspace-git.d.ts +15 -0
- package/dist/core/workspace-git.d.ts.map +1 -0
- package/dist/core/workspace-git.js +131 -0
- package/dist/core/workspace-git.js.map +1 -0
- package/dist/core/workspace-git.test.d.ts +2 -0
- package/dist/core/workspace-git.test.d.ts.map +1 -0
- package/dist/core/workspace-git.test.js +52 -0
- package/dist/core/workspace-git.test.js.map +1 -0
- package/dist/core/workspace-skills-workflow.integration.test.js +15 -0
- package/dist/core/workspace-skills-workflow.integration.test.js.map +1 -1
- package/dist/core/workspace.create.test.js +5 -2
- package/dist/core/workspace.create.test.js.map +1 -1
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +11 -6
- package/dist/core/workspace.js.map +1 -1
- package/dist/generators/antigravity.d.ts.map +1 -1
- package/dist/generators/antigravity.js +2 -1
- package/dist/generators/antigravity.js.map +1 -1
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +5 -3
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +4 -1
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codex.d.ts.map +1 -1
- package/dist/generators/codex.js +2 -1
- package/dist/generators/codex.js.map +1 -1
- package/dist/generators/copilot.d.ts.map +1 -1
- package/dist/generators/copilot.js +4 -3
- package/dist/generators/copilot.js.map +1 -1
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +6 -3
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/index.d.ts +2 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +79 -45
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/knowledge-migration.test.d.ts +2 -0
- package/dist/generators/knowledge-migration.test.d.ts.map +1 -0
- package/dist/generators/knowledge-migration.test.js +22 -0
- package/dist/generators/knowledge-migration.test.js.map +1 -0
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +18 -9
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/plan-generator.test.js +4 -1
- package/dist/generators/plan-generator.test.js.map +1 -1
- package/dist/gui/assets/AgentsPage-B4fx43rd.js +3 -0
- package/dist/gui/assets/{CSPContext-BG7no5S_.js → CSPContext-DBUu9tE0.js} +1 -1
- package/dist/gui/assets/{DashboardPage-ByGTwAQa.js → DashboardPage-DH52G8IG.js} +1 -1
- package/dist/gui/assets/{GettingStartedPage-Xjx3M3RH.js → GettingStartedPage-BlTrQhvi.js} +1 -1
- package/dist/gui/assets/ProjectsPage-BPVSLPXv.js +1 -0
- package/dist/gui/assets/ScaffoldRepoInline-ywcpq9PX.js +1 -0
- package/dist/gui/assets/{SettingsPage-B9iN6hsv.js → SettingsPage-RQr8SalV.js} +1 -1
- package/dist/gui/assets/SkillsPage-CYoSRrwx.js +6 -0
- package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +1 -0
- package/dist/gui/assets/{StrategiesPage-DDu3jwJx.js → StrategiesPage-C36TZgDX.js} +1 -1
- package/dist/gui/assets/WorkspacesPage-DxEONvSq.js +6 -0
- package/dist/gui/assets/{alert-dialog-CdqVrvZl.js → alert-dialog-CQAX2yRx.js} +1 -1
- package/dist/gui/assets/index-BF6pre6G.css +2 -0
- package/dist/gui/assets/index-C_rwnBzF.js +52 -0
- package/dist/gui/assets/isElementDisabled-uy_EOitH.js +1 -0
- package/dist/gui/assets/textarea-ByfoCb54.js +1 -0
- package/dist/gui/assets/{useAriaLabelledBy-DfRdwH8a.js → useAriaLabelledBy-ClesgjMe.js} +1 -1
- package/dist/gui/assets/useValueChanged-DeYvGnKs.js +1 -0
- package/dist/gui/assets/{vsc-D6UPv2ii.js → vsc-DFh0-53h.js} +1 -1
- package/dist/gui/index.html +5 -7
- package/dist/harness/claude.d.ts +3 -1
- package/dist/harness/claude.d.ts.map +1 -1
- package/dist/harness/claude.js +4 -2
- package/dist/harness/claude.js.map +1 -1
- package/dist/harness/codex.d.ts +3 -1
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +64 -12
- package/dist/harness/codex.js.map +1 -1
- package/dist/harness/contract.test.d.ts +2 -0
- package/dist/harness/contract.test.d.ts.map +1 -0
- package/dist/harness/contract.test.js +426 -0
- package/dist/harness/contract.test.js.map +1 -0
- package/dist/harness/harness.test.js +16 -1
- package/dist/harness/harness.test.js.map +1 -1
- package/dist/harness/types.d.ts +7 -1
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.js +52 -5
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +8 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +11 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +6 -2
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +232 -14
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/tools.test.js +130 -6
- package/dist/mcp/tools.test.js.map +1 -1
- package/dist/resources/materializer.d.ts.map +1 -1
- package/dist/resources/materializer.js +11 -3
- package/dist/resources/materializer.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +37 -6
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +37 -1
- package/dist/server.test.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/gui/assets/AgentsPage-YyYRodOR.js +0 -3
- package/dist/gui/assets/ProjectsPage-BMdhqAGs.js +0 -1
- package/dist/gui/assets/ScaffoldRepoInline-gXyYSIz5.js +0 -1
- package/dist/gui/assets/SkillsPage-CxcsbIsQ.js +0 -6
- package/dist/gui/assets/StartWorkPage-DPVHcdy4.js +0 -1
- package/dist/gui/assets/WorkspacesPage-BWRmP0mY.js +0 -2
- package/dist/gui/assets/index-CZoZQkeC.css +0 -2
- package/dist/gui/assets/index-wy68EqfB.js +0 -50
- package/dist/gui/assets/isElementDisabled-D_fu2zfc.js +0 -1
- package/dist/gui/assets/store-D5DUHbxn.js +0 -3
- package/dist/gui/assets/styles-CVwNuFCx.js +0 -1
- package/dist/gui/assets/textarea-BNRuIXNs.js +0 -1
- package/dist/gui/assets/useValueChanged-CStSGSsD.js +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import path from 'node:path';
|
|
7
7
|
import fse from 'fs-extra';
|
|
8
|
-
import {
|
|
8
|
+
import { GENERATED_SNAPSHOT_HEADER, GENERATED_VIEW_HEADER } from '../core/generation-lock.js';
|
|
9
9
|
/**
|
|
10
10
|
* Generates a `.cursor/rules/nexusflow.mdc` file at the workspace root.
|
|
11
11
|
*
|
|
@@ -16,13 +16,16 @@ import { buildContextContent } from './base.js';
|
|
|
16
16
|
* @param workspacePath - Absolute path to the workspace root directory.
|
|
17
17
|
*/
|
|
18
18
|
export async function generateCursorConfig(ctx, workspacePath) {
|
|
19
|
-
const
|
|
19
|
+
const canonical = (await fse.readFile(path.join(workspacePath, 'AGENTS.md'), 'utf-8'))
|
|
20
|
+
.replace(`${GENERATED_SNAPSHOT_HEADER}\n\n`, '');
|
|
20
21
|
const content = `---
|
|
21
22
|
description: "NexusFlow workspace context for multi-repo feature development"
|
|
22
23
|
alwaysApply: true
|
|
23
24
|
---
|
|
24
25
|
|
|
25
|
-
${
|
|
26
|
+
${GENERATED_VIEW_HEADER}
|
|
27
|
+
|
|
28
|
+
${canonical}`;
|
|
26
29
|
const rulesDir = path.join(workspacePath, '.cursor', 'rules');
|
|
27
30
|
const filePath = path.join(rulesDir, 'nexusflow.mdc');
|
|
28
31
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/generators/cursor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/generators/cursor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAE9F;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAqB,EACrB,aAAqB;IAErB,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;SACnF,OAAO,CAAC,GAAG,yBAAyB,MAAM,EAAE,EAAE,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG;;;;;EAKhB,qBAAqB;;EAErB,SAAS,EAAE,CAAC;IAEZ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,kCAAkC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { AIAssistant, WorkspaceContext } from '../types.js';
|
|
2
|
+
/** Remove only NexusFlow's old unchecked template rows; authored progress survives. */
|
|
3
|
+
export declare function removeGeneratedProgressChecklist(content: string, repoNames: string[]): string;
|
|
2
4
|
/**
|
|
3
5
|
* Builds the base codebase knowledge starter content.
|
|
4
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAqGjE,uFAAuF;AACvF,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAmB7F;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAuBlE;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,UAAU,EAAE,WAAW,EAAE,EACzB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsJf;AAGD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/generators/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import fse from 'fs-extra';
|
|
2
4
|
import { generateClaudeConfig } from './claude.js';
|
|
3
5
|
import { generateAntigravityConfig } from './antigravity.js';
|
|
4
6
|
import { generateCodexConfig } from './codex.js';
|
|
@@ -7,7 +9,10 @@ import { generateCursorConfig } from './cursor.js';
|
|
|
7
9
|
import { buildContextContent } from './base.js';
|
|
8
10
|
import { generateImplementationPlan } from './plan-generator.js';
|
|
9
11
|
import { generateSkills } from './skills-generator.js';
|
|
10
|
-
import { writeWorkspaceFile, workspaceFileExists } from '../core/storage.js';
|
|
12
|
+
import { readWorkspaceFile, writeWorkspaceFile, workspaceFileExists } from '../core/storage.js';
|
|
13
|
+
import { captureGenerationSnapshot, GENERATED_SNAPSHOT_HEADER, GENERATED_VIEW_HEADER, writeGenerationLock, } from '../core/generation-lock.js';
|
|
14
|
+
import { commitWorkspaceArtifacts } from '../core/workspace-git.js';
|
|
15
|
+
import { getActiveStorageProvider } from '../core/adapters/registry.js';
|
|
11
16
|
/** Maps each assistant to its generator function and the file it produces. */
|
|
12
17
|
const GENERATORS = {
|
|
13
18
|
claude: { generate: generateClaudeConfig, outputFile: 'CLAUDE.md' },
|
|
@@ -58,22 +63,7 @@ _Generated by NexusFlow. Run \`nexusflow refresh\` to update._
|
|
|
58
63
|
`;
|
|
59
64
|
}
|
|
60
65
|
function buildKnowledgeContent(ctx) {
|
|
61
|
-
const { feature
|
|
62
|
-
// Build repo list with tech stack info if available
|
|
63
|
-
const repoList = repos.map((r) => {
|
|
64
|
-
if (analysis && analysis.has(r.path)) {
|
|
65
|
-
const a = analysis.get(r.path);
|
|
66
|
-
const tech = a.techStack.frameworks.length > 0
|
|
67
|
-
? ` (${a.techStack.languages.join(', ')} — ${a.techStack.frameworks.join(', ')})`
|
|
68
|
-
: a.techStack.languages[0] !== 'other'
|
|
69
|
-
? ` (${a.techStack.languages.join(', ')})`
|
|
70
|
-
: '';
|
|
71
|
-
return `- **${r.name}**${tech}`;
|
|
72
|
-
}
|
|
73
|
-
return `- **${r.name}**`;
|
|
74
|
-
}).join('\n');
|
|
75
|
-
// Build initial progress checklist
|
|
76
|
-
const progressItems = repos.map((r) => `- [ ] ${r.name} — changes implemented and tested`).join('\n');
|
|
66
|
+
const { feature } = ctx;
|
|
77
67
|
// The four accumulating sections — Project Assumptions, Clarifying Questions,
|
|
78
68
|
// Architecture Decisions, Known Gotchas — are deliberately absent from a fresh
|
|
79
69
|
// file. They used to ship as headings over `_(No X recorded yet.)_`, which two
|
|
@@ -85,25 +75,42 @@ function buildKnowledgeContent(ctx) {
|
|
|
85
75
|
return `# Workspace Knowledge — ${feature.id}
|
|
86
76
|
|
|
87
77
|
> Accumulated decisions and gotchas for this feature. Append with
|
|
88
|
-
> \`nexusflow knowledge add -t decision|gotcha -m "..."\`, which creates the
|
|
78
|
+
> \`nexusflow knowledge add -t decision|gotcha --title "..." -m "..."\`, which creates the
|
|
89
79
|
> section it needs.
|
|
90
80
|
|
|
91
81
|
## Feature Goal
|
|
92
82
|
|
|
93
83
|
${feature.description}
|
|
94
84
|
|
|
95
|
-
**Branch:** \`${feature.branchName}\`
|
|
96
|
-
**Created:** ${feature.createdAt}
|
|
97
|
-
|
|
98
|
-
## Repos in This Workspace
|
|
99
|
-
|
|
100
|
-
${repoList}
|
|
101
|
-
|
|
102
|
-
## Implementation Progress
|
|
103
|
-
|
|
104
|
-
${progressItems}
|
|
105
85
|
`;
|
|
106
86
|
}
|
|
87
|
+
/** Remove only NexusFlow's old unchecked template rows; authored progress survives. */
|
|
88
|
+
export function removeGeneratedProgressChecklist(content, repoNames) {
|
|
89
|
+
const eol = content.includes('\r\n') ? '\r\n' : '\n';
|
|
90
|
+
const generated = new Set(repoNames.map((name) => `- [ ] ${name} — changes implemented and tested`));
|
|
91
|
+
const lines = content.split(/\r?\n/);
|
|
92
|
+
const heading = lines.findIndex((line) => /^##\s+Implementation Progress\s*$/.test(line));
|
|
93
|
+
if (heading < 0)
|
|
94
|
+
return content;
|
|
95
|
+
let end = lines.length;
|
|
96
|
+
for (let i = heading + 1; i < lines.length; i++) {
|
|
97
|
+
if (/^#{1,2}\s/.test(lines[i])) {
|
|
98
|
+
end = i;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
const body = lines.slice(heading + 1, end).filter((line) => !generated.has(line.trim()));
|
|
103
|
+
if (body.every((line) => !line.trim())) {
|
|
104
|
+
const before = lines.slice(0, heading);
|
|
105
|
+
while (before.at(-1)?.trim() === '')
|
|
106
|
+
before.pop();
|
|
107
|
+
const after = lines.slice(end);
|
|
108
|
+
while (after[0]?.trim() === '')
|
|
109
|
+
after.shift();
|
|
110
|
+
return [...before, ...(before.length && after.length ? [''] : []), ...after].join(eol).replace(/\s+$/, '') + eol;
|
|
111
|
+
}
|
|
112
|
+
return [...lines.slice(0, heading + 1), ...body, ...lines.slice(end)].join(eol);
|
|
113
|
+
}
|
|
107
114
|
/**
|
|
108
115
|
* Builds the base codebase knowledge starter content.
|
|
109
116
|
*
|
|
@@ -154,6 +161,12 @@ export function buildBaseKnowledgeContent(repoName) {
|
|
|
154
161
|
* @param workspacePath - Absolute path to the workspace root directory.
|
|
155
162
|
*/
|
|
156
163
|
export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
164
|
+
const generation = await captureGenerationSnapshot(ctx.repos);
|
|
165
|
+
const renderCtx = { ...ctx, generation };
|
|
166
|
+
const generatedOutputs = [];
|
|
167
|
+
const canonical = `${GENERATED_SNAPSHOT_HEADER}\n\n${await buildContextContent(renderCtx)}`;
|
|
168
|
+
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'AGENTS.md', canonical);
|
|
169
|
+
generatedOutputs.push({ path: 'AGENTS.md', source: 'workspace snapshot', location: 'workspace' });
|
|
157
170
|
// WORKSPACE.md is a human-facing index, not an auto-loaded context file: no
|
|
158
171
|
// assistant reads it by convention, so it used to be a byte-for-byte third
|
|
159
172
|
// copy of CLAUDE.md and AGENTS.md. A pointer costs nothing and removes two
|
|
@@ -161,12 +174,14 @@ export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
|
161
174
|
// carry the full content, because those ARE auto-loaded — turning one of
|
|
162
175
|
// those into a pointer would trade free context for a tool call.
|
|
163
176
|
try {
|
|
164
|
-
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'WORKSPACE.md', buildWorkspaceIndex(
|
|
177
|
+
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'WORKSPACE.md', `${GENERATED_VIEW_HEADER}\n\n${buildWorkspaceIndex(renderCtx)}`);
|
|
178
|
+
generatedOutputs.push({ path: 'WORKSPACE.md', source: 'AGENTS.md', location: 'workspace' });
|
|
165
179
|
console.log(chalk.green(' ✔'), `Generated ${chalk.bold('WORKSPACE.md')} (human index)`);
|
|
166
180
|
}
|
|
167
181
|
catch (error) {
|
|
168
182
|
const message = error instanceof Error ? error.message : String(error);
|
|
169
183
|
console.error(chalk.red(' ✖'), `Failed to generate WORKSPACE.md: ${message}`);
|
|
184
|
+
throw error;
|
|
170
185
|
}
|
|
171
186
|
// Base knowledge is never pre-created: the starter was four headings over four
|
|
172
187
|
// `- None recorded yet.` lines. `nexusflow knowledge add` bootstraps the file
|
|
@@ -177,12 +192,20 @@ export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
|
177
192
|
// Generate nexusflow-knowledge.md if it does not exist
|
|
178
193
|
const knowledgeExists = await workspaceFileExists(workspacePath, ctx.feature.id, 'nexusflow-knowledge.md');
|
|
179
194
|
if (!knowledgeExists) {
|
|
180
|
-
const knowledgeContent = buildKnowledgeContent(
|
|
195
|
+
const knowledgeContent = buildKnowledgeContent(renderCtx);
|
|
181
196
|
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'nexusflow-knowledge.md', knowledgeContent);
|
|
182
197
|
console.log(chalk.green(' ✔'), `Generated ${chalk.bold('nexusflow-knowledge.md')} (persistent AI memory)`);
|
|
183
198
|
}
|
|
184
199
|
else {
|
|
185
|
-
|
|
200
|
+
const existing = await readWorkspaceFile(workspacePath, ctx.feature.id, 'nexusflow-knowledge.md');
|
|
201
|
+
const migrated = removeGeneratedProgressChecklist(existing, ctx.repos.map((repo) => repo.name));
|
|
202
|
+
if (migrated !== existing) {
|
|
203
|
+
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'nexusflow-knowledge.md', migrated);
|
|
204
|
+
console.log(chalk.green(' ✔'), 'Removed obsolete generated progress checklist');
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
console.log(chalk.gray(' ○'), `nexusflow-knowledge.md already exists — preserving existing content`);
|
|
208
|
+
}
|
|
186
209
|
}
|
|
187
210
|
// No branch-diff file. It was `git diff --name-only` rewritten as a
|
|
188
211
|
// bullet list, with every entry expanded to an absolute file:/// URL —
|
|
@@ -192,6 +215,7 @@ export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
|
192
215
|
catch (error) {
|
|
193
216
|
const message = error instanceof Error ? error.message : String(error);
|
|
194
217
|
console.error(chalk.red(' ✖'), `Failed to generate workspace context files: ${message}`);
|
|
218
|
+
throw error;
|
|
195
219
|
}
|
|
196
220
|
}
|
|
197
221
|
// No per-repo architecture map.
|
|
@@ -206,14 +230,18 @@ export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
|
206
230
|
// The rule this settles: generate only what an agent cannot grep.
|
|
207
231
|
// Generate configuration for each selected assistant
|
|
208
232
|
for (const assistant of assistants) {
|
|
233
|
+
if (assistant === 'codex' || assistant === 'antigravity')
|
|
234
|
+
continue;
|
|
209
235
|
const entry = GENERATORS[assistant];
|
|
210
236
|
try {
|
|
211
|
-
await entry.generate(
|
|
237
|
+
await entry.generate(renderCtx, workspacePath);
|
|
238
|
+
generatedOutputs.push({ path: entry.outputFile, source: 'AGENTS.md', location: 'workspace' });
|
|
212
239
|
console.log(chalk.green(' ✔'), `Generated ${chalk.bold(entry.outputFile)} for ${assistant}`);
|
|
213
240
|
}
|
|
214
241
|
catch (error) {
|
|
215
242
|
const message = error instanceof Error ? error.message : String(error);
|
|
216
243
|
console.error(chalk.red(' ✖'), `Failed to generate ${entry.outputFile} for ${assistant}: ${message}`);
|
|
244
|
+
throw error;
|
|
217
245
|
}
|
|
218
246
|
}
|
|
219
247
|
// AGENTS.md is the canonical context file: it is the cross-tool convention, so
|
|
@@ -225,29 +253,35 @@ export async function generateContextFiles(ctx, assistants, workspacePath) {
|
|
|
225
253
|
// Written unconditionally, because the file is the source of truth rather than
|
|
226
254
|
// a per-assistant artifact. When antigravity or codex is selected, its own
|
|
227
255
|
// generator has already written the same content here.
|
|
228
|
-
const hasAgentsGen = assistants.includes('antigravity') || assistants.includes('codex');
|
|
229
|
-
if (!hasAgentsGen) {
|
|
230
|
-
try {
|
|
231
|
-
await writeWorkspaceFile(workspacePath, ctx.feature.id, 'AGENTS.md', await buildContextContent(ctx));
|
|
232
|
-
console.log(chalk.green(' ✔'), `Generated ${chalk.bold('AGENTS.md')} (canonical context)`);
|
|
233
|
-
}
|
|
234
|
-
catch (error) {
|
|
235
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
236
|
-
console.error(chalk.red(' ✖'), `Failed to generate fallback AGENTS.md: ${message}`);
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
256
|
// Generate implementation plan from dependency analysis (if analysis data available)
|
|
240
257
|
try {
|
|
241
|
-
await generateImplementationPlan(
|
|
258
|
+
await generateImplementationPlan(renderCtx, workspacePath);
|
|
259
|
+
generatedOutputs.push({ path: 'nexusflow-plan.md', source: 'workspace snapshot', location: 'workspace' });
|
|
242
260
|
}
|
|
243
261
|
catch (error) {
|
|
244
262
|
const message = error instanceof Error ? error.message : String(error);
|
|
245
263
|
console.error(chalk.red(' ✖'), `Failed to generate implementation plan: ${message}`);
|
|
264
|
+
throw error;
|
|
246
265
|
}
|
|
247
266
|
// Resource materialization is transactional and owns assistant-discovered
|
|
248
267
|
// files. Propagate failures so callers never report a partially applied
|
|
249
268
|
// workspace as successful.
|
|
250
|
-
await generateSkills(
|
|
269
|
+
await generateSkills(renderCtx, assistants, workspacePath);
|
|
270
|
+
try {
|
|
271
|
+
const resourceLock = await fse.readJson(path.join(workspacePath, '.nexusflow', 'resources.lock.json'));
|
|
272
|
+
generatedOutputs.push({ path: '.nexusflow/resources.lock.json', source: 'workspace resource selection', location: 'local' });
|
|
273
|
+
for (const output of resourceLock.outputs ?? []) {
|
|
274
|
+
generatedOutputs.push({ path: output.path, source: 'skill or agent catalog', location: 'local' });
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
// Resource materialization always writes this lock; its absence is a failed generation.
|
|
279
|
+
throw new Error('Resource materialization completed without .nexusflow/resources.lock.json.');
|
|
280
|
+
}
|
|
281
|
+
await writeGenerationLock(workspacePath, generation, generatedOutputs);
|
|
282
|
+
if (getActiveStorageProvider().meta.name === 'local') {
|
|
283
|
+
await commitWorkspaceArtifacts(workspacePath, 'chore(nexusflow): refresh workspace artifacts');
|
|
284
|
+
}
|
|
251
285
|
}
|
|
252
286
|
// Re-export individual generators for direct use
|
|
253
287
|
export { generateClaudeConfig } from './claude.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generators/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-migration.test.d.ts","sourceRoot":"","sources":["../../src/generators/knowledge-migration.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { removeGeneratedProgressChecklist } from './index.js';
|
|
3
|
+
describe('generated progress migration', () => {
|
|
4
|
+
it('removes only generated unchecked rows and retains authored progress', () => {
|
|
5
|
+
const content = [
|
|
6
|
+
'# Knowledge', '',
|
|
7
|
+
'## Implementation Progress', '',
|
|
8
|
+
'- [ ] api — changes implemented and tested',
|
|
9
|
+
'- [x] Auth migration verified manually', '',
|
|
10
|
+
'## Known Gotchas', '', '- keep me', '',
|
|
11
|
+
].join('\n');
|
|
12
|
+
const migrated = removeGeneratedProgressChecklist(content, ['api']);
|
|
13
|
+
expect(migrated).not.toContain('api — changes implemented and tested');
|
|
14
|
+
expect(migrated).toContain('Auth migration verified manually');
|
|
15
|
+
expect(migrated).toContain('## Known Gotchas');
|
|
16
|
+
});
|
|
17
|
+
it('removes the empty section when it contained only generated rows', () => {
|
|
18
|
+
const content = '# Knowledge\n\n## Implementation Progress\n\n- [ ] api — changes implemented and tested\n';
|
|
19
|
+
expect(removeGeneratedProgressChecklist(content, ['api'])).toBe('# Knowledge\n');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=knowledge-migration.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-migration.test.js","sourceRoot":"","sources":["../../src/generators/knowledge-migration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAE9D,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,EAAE;YACjB,4BAA4B,EAAE,EAAE;YAChC,4CAA4C;YAC5C,wCAAwC,EAAE,EAAE;YAC5C,kBAAkB,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE;SACxC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,QAAQ,GAAG,gCAAgC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvE,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,OAAO,GAAG,2FAA2F,CAAC;QAC5G,MAAM,CAAC,gCAAgC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-generator.d.ts","sourceRoot":"","sources":["../../src/generators/plan-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAER,eAAe,EAChB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-generator.d.ts","sourceRoot":"","sources":["../../src/generators/plan-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,QAAQ,EAER,eAAe,EAChB,MAAM,aAAa,CAAC;AAKrB;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,EACtC,KAAK,EAAE,QAAQ,EAAE,GAChB,eAAe,CAsCjB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,EAAE,CA4ClE;AAID;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,gBAAgB,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsRf"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import chalk from 'chalk';
|
|
7
7
|
import { writeWorkspaceFile } from '../core/storage.js';
|
|
8
8
|
import { findInterRepoDependencies } from '../analyzers/detect-deps.js';
|
|
9
|
+
import { GENERATED_SNAPSHOT_HEADER, renderFreshnessBanner } from '../core/generation-lock.js';
|
|
9
10
|
// ─── Dependency Graph Builder ─────────────────────────────────────────────
|
|
10
11
|
/**
|
|
11
12
|
* Build a dependency graph by analysing package dependencies
|
|
@@ -118,10 +119,14 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
118
119
|
// ── Fallback: no analysis available ─────────────────────────────────
|
|
119
120
|
if (!analysis || analysis.size === 0) {
|
|
120
121
|
const lines = [
|
|
122
|
+
GENERATED_SNAPSHOT_HEADER,
|
|
123
|
+
'',
|
|
121
124
|
`# Implementation Plan — ${feature.id}`,
|
|
122
125
|
'',
|
|
126
|
+
...(ctx.generation ? [renderFreshnessBanner(ctx.generation), ''] : []),
|
|
123
127
|
'> Auto-generated by NexusFlow.',
|
|
124
128
|
'> No project analysis data was available, so repos are listed alphabetically.',
|
|
129
|
+
'> **Scope:** This graph covers cross-repo package dependencies for merge order only. Runtime and intra-repo contracts are not inferred; see scoped knowledge entries.',
|
|
125
130
|
'',
|
|
126
131
|
'## Repos',
|
|
127
132
|
'',
|
|
@@ -156,10 +161,16 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
156
161
|
return phase.filter((name) => (graph.get(name)?.dependsOn ?? []).some((dep) => inPhase.has(dep)));
|
|
157
162
|
};
|
|
158
163
|
const md = [];
|
|
164
|
+
md.push(GENERATED_SNAPSHOT_HEADER);
|
|
165
|
+
md.push('');
|
|
159
166
|
md.push(`# Implementation Plan — ${feature.id}`);
|
|
160
167
|
md.push('');
|
|
161
|
-
|
|
162
|
-
|
|
168
|
+
if (ctx.generation) {
|
|
169
|
+
md.push(renderFreshnessBanner(ctx.generation));
|
|
170
|
+
md.push('');
|
|
171
|
+
}
|
|
172
|
+
md.push('> **Refresh:** Run `nexusflow refresh`.');
|
|
173
|
+
md.push('> **Scope:** This graph covers cross-repo package dependencies for merge order only. Runtime and intra-repo contracts are not inferred; see scoped knowledge entries.');
|
|
163
174
|
md.push('');
|
|
164
175
|
if (!hasEdges && contracts.length === 0) {
|
|
165
176
|
// Worded per repo count: "between the single repo" and "from one of these
|
|
@@ -272,9 +283,9 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
272
283
|
md.push('## 📦 Contracts & Clients');
|
|
273
284
|
md.push('');
|
|
274
285
|
md.push(anyContributing
|
|
275
|
-
? '| Package | Contributing Projects | Producing Repo | Consuming Repos
|
|
276
|
-
: '| Package | Producing Repo | Consuming Repos
|
|
277
|
-
md.push(anyContributing ? '
|
|
286
|
+
? '| Package | Contributing Projects | Producing Repo | Consuming Repos | Type |'
|
|
287
|
+
: '| Package | Producing Repo | Consuming Repos | Type |');
|
|
288
|
+
md.push(anyContributing ? '|:---|:---|:---|:---|:---|' : '|:---|:---|:---|:---|');
|
|
278
289
|
for (const rel of contracts) {
|
|
279
290
|
const cells = [`\`${rel.pkgName}\``];
|
|
280
291
|
if (anyContributing) {
|
|
@@ -283,10 +294,7 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
283
294
|
: '—');
|
|
284
295
|
}
|
|
285
296
|
cells.push(`\`${rel.producer}\``);
|
|
286
|
-
cells.push(rel.consumers.map((c) => `\`${c.repoName}
|
|
287
|
-
cells.push(rel.feeds && rel.feeds.length > 0
|
|
288
|
-
? rel.feeds.map((f) => `\`${f.name}\` (${f.url})`).join('<br>')
|
|
289
|
-
: '—');
|
|
297
|
+
cells.push(rel.consumers.map((c) => `\`${c.repoName}\``).join(', '));
|
|
290
298
|
cells.push(`\`${rel.type}\``);
|
|
291
299
|
md.push(`| ${cells.join(' | ')} |`);
|
|
292
300
|
}
|
|
@@ -323,6 +331,7 @@ export async function generateImplementationPlan(ctx, workspacePath) {
|
|
|
323
331
|
catch (error) {
|
|
324
332
|
const message = error instanceof Error ? error.message : String(error);
|
|
325
333
|
console.error(chalk.red(' ✖'), `Failed to generate implementation plan: ${message}`);
|
|
334
|
+
throw error;
|
|
326
335
|
}
|
|
327
336
|
}
|
|
328
337
|
/**
|
|
@@ -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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"}
|
|
@@ -100,6 +100,8 @@ describe('generateImplementationPlan', () => {
|
|
|
100
100
|
const one = await planFor([single], new Map([[single.path, analysis.get(single.path)]]));
|
|
101
101
|
expect(one).toContain('This workspace has one repo');
|
|
102
102
|
expect(one).toContain('nexusflow add-repo');
|
|
103
|
+
expect(one).toContain('Runtime and intra-repo contracts are not inferred');
|
|
104
|
+
expect(one).toContain('AUTO-GENERATED by NexusFlow from live workspace state');
|
|
103
105
|
expect(one).not.toContain('the single repo');
|
|
104
106
|
expect(one).not.toContain('one of these repos to another');
|
|
105
107
|
});
|
|
@@ -128,7 +130,8 @@ describe('generateImplementationPlan', () => {
|
|
|
128
130
|
const content = await planFor(...related());
|
|
129
131
|
expect(content).toContain('Contracts & Clients');
|
|
130
132
|
expect(content).toContain('`@acme/core`');
|
|
131
|
-
expect(content).toContain('`web`
|
|
133
|
+
expect(content).toContain('| `@acme/core` | `core` | `web` | `npm` |');
|
|
134
|
+
expect(content).not.toContain('^1.0.0');
|
|
132
135
|
expect(content).not.toContain('_None_');
|
|
133
136
|
});
|
|
134
137
|
it('gives the npm dev loop and not the NuGet one', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-generator.test.js","sourceRoot":"","sources":["../../src/generators/plan-generator.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"plan-generator.test.js","sourceRoot":"","sources":["../../src/generators/plan-generator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{_ as e,b as t,g as n,h as r,m as i,t as a}from"./button-BDDZnIHx.js";import{o}from"./CSPContext-DBUu9tE0.js";import{t as s}from"./bot-C2HWrAft.js";import{a as ee,c as te,i as ne,n as c,o as l,r as re,s as ie,t as ae}from"./alert-dialog-CQAX2yRx.js";import{t as oe}from"./trash-2-CtR35_eF.js";import{H as se,Ht as ce,Kt as le,N as ue,Nt as de,R as fe,Wt as u,Xt as pe,Y as me,a as he,c as d,d as f,f as p,j as ge,l as m,o as h,ot as _e,s as g,st as ve}from"./index-C_rwnBzF.js";import{t as _}from"./badge-CAohJGj6.js";import{t as ye}from"./card-BKXzd_5L.js";import{a as v,i as be,n as y,r as b,t as x}from"./empty-BdlgbifD.js";import{t as S}from"./label-CG5exjag.js";import{t as C}from"./textarea-ByfoCb54.js";var xe=r(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),w=t(e(),1),T=n(),E={id:``,name:``,category:`general`,description:``,developerInstructions:``};function D(e){return e.toLowerCase().trim().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)}function O({showToast:e}){let[t,n]=(0,w.useState)(`global`),[r,O]=(0,w.useState)(``),[Se,k]=(0,w.useState)(!1),[A,j]=(0,w.useState)(!1),[M,N]=(0,w.useState)(null),[P,F]=(0,w.useState)(E),[I,L]=(0,w.useState)(``),[R,z]=(0,w.useState)(null),[B,V]=(0,w.useState)(null),{data:H=[],isLoading:Ce,isError:we}=ge(),{data:U=[]}=ve(),W=_e(t===`global`?``:t),G=me(),K=se(),q=fe(),J=ue(),Y=t!==`global`,Te=U.find(e=>e.id===t),X=!Y||Te?.assistants?.includes(`codex`),Z=Y&&X&&!W.isLoading&&!W.isError&&!!W.data;(0,w.useEffect)(()=>{if(!Y){z(null);return}W.data&&z([...W.data.enabledAgents??[]])},[Y,t,W.data]);let Q=(0,w.useMemo)(()=>{let e=r.trim().toLowerCase();return e?H.filter(t=>[t.name,t.description,t.category].some(t=>t.toLowerCase().includes(e))):H},[H,r]),Ee=new Set(R??W.data?.enabledAgents??[]);function $(){N(null),F(E),k(!0)}function De(e){N(e.id),F({id:e.id,name:e.name,category:e.category,description:e.description,developerInstructions:e.developerInstructions,model:e.model,modelReasoningEffort:e.modelReasoningEffort,sandboxMode:e.sandboxMode}),k(!0)}async function Oe(){try{let t=M??D(P.name);await G.mutateAsync({...P,id:t,name:t}),k(!1),e?.(`Codex agent saved`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save agent`,`error`)}}async function ke(){try{await K.mutateAsync({toml:I,category:`general`}),j(!1),L(``),e?.(`Codex agent imported`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to import agent`,`error`)}}async function Ae(){if(B)try{await q.mutateAsync(B.id),V(null),e?.(`Agent deleted from the personal catalog`,`info`)}catch(t){e?.(t instanceof Error?t.message:`Failed to delete agent`,`error`)}}function je(e){if(!Z||R===null)return;let t=new Set(R);t.has(e)?t.delete(e):t.add(e),z([...t])}async function Me(){if(!(!W.data||R===null))try{await J.mutateAsync({workspaceId:t,expectedRevision:W.data.revision??0,enabledSkills:W.data.enabledSkills,enabledAgents:R,enabledCategories:W.data.enabledCategories??[]}),e?.(`Agent selection saved. Refresh the workspace to apply it.`,`success`)}catch(t){e?.(t instanceof Error?t.message:`Failed to save agent selection`,`error`)}}return(0,T.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col`,children:[(0,T.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-4 border-b border-border px-6 py-5`,children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,T.jsx)(`div`,{className:`rounded-lg bg-primary/10 p-2 text-primary`,children:(0,T.jsx)(s,{className:`h-5 w-5`})}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`h1`,{className:`text-xl font-bold tracking-tight`,children:`Codex Agent Library`}),(0,T.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Create and reuse project-scoped Codex custom agents.`})]})]}),(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,T.jsx)(a,{render:(0,T.jsx)(de,{to:`/skills`}),variant:`outline`,size:`sm`,children:`Skills`}),(0,T.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border bg-muted/50 px-3 py-1.5`,children:[(0,T.jsx)(le,{className:`h-4 w-4 text-muted-foreground`}),(0,T.jsx)(S,{htmlFor:`agent-scope`,className:`text-xs text-muted-foreground`,children:`Scope`}),(0,T.jsxs)(`select`,{id:`agent-scope`,value:t,onChange:e=>n(e.target.value),className:`cursor-pointer bg-transparent text-xs font-semibold text-foreground focus:outline-none`,children:[(0,T.jsx)(`option`,{value:`global`,children:`Personal catalog`}),U.map(e=>(0,T.jsx)(`option`,{value:e.id,children:e.id},e.id))]})]}),Y?(0,T.jsx)(a,{size:`sm`,onClick:Me,disabled:!Z||J.isPending,children:J.isPending?`Saving…`:`Save selection`}):(0,T.jsxs)(T.Fragment,{children:[(0,T.jsxs)(a,{variant:`outline`,size:`sm`,onClick:()=>j(!0),children:[(0,T.jsx)(xe,{className:`mr-1.5 h-4 w-4`}),`Import TOML`]}),(0,T.jsxs)(a,{size:`sm`,onClick:$,children:[(0,T.jsx)(u,{className:`mr-1.5 h-4 w-4`}),`New agent`]})]})]})]}),(0,T.jsx)(`div`,{className:`border-b border-border/60 bg-muted/20 px-6 py-3`,children:(0,T.jsxs)(`div`,{className:`relative max-w-md`,children:[(0,T.jsx)(ce,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,T.jsx)(o,{value:r,onChange:e=>O(e.target.value),placeholder:`Search agents…`,className:`pl-9`})]})}),(0,T.jsx)(`main`,{className:`min-h-0 flex-1 overflow-auto p-6`,children:Ce||Y&&W.isLoading?(0,T.jsx)(`div`,{className:`flex justify-center p-12`,children:(0,T.jsx)(he,{})}):we||Y&&W.isError?(0,T.jsx)(x,{className:`border border-dashed py-12`,children:(0,T.jsxs)(b,{children:[(0,T.jsx)(v,{children:`Resources could not be loaded`}),(0,T.jsx)(y,{children:`Assignment controls remain disabled to protect the saved selection.`})]})}):Y&&!X?(0,T.jsx)(x,{className:`border border-dashed py-12`,children:(0,T.jsxs)(b,{children:[(0,T.jsx)(v,{children:`Codex is not enabled for this workspace`}),(0,T.jsx)(y,{children:`Add Codex to the workspace before assigning Codex-native agents.`})]})}):Q.length===0?(0,T.jsxs)(x,{className:`border border-dashed py-12`,children:[(0,T.jsx)(be,{children:(0,T.jsx)(s,{className:`h-8 w-8 text-muted-foreground`})}),(0,T.jsxs)(b,{children:[(0,T.jsx)(v,{children:`No Codex agents found`}),(0,T.jsx)(y,{children:`Create an agent or import a native TOML definition.`})]}),!Y&&(0,T.jsxs)(a,{size:`sm`,onClick:$,children:[(0,T.jsx)(u,{className:`mr-1.5 h-4 w-4`}),`New agent`]})]}):(0,T.jsx)(`div`,{className:`mx-auto grid max-w-6xl grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`,children:Q.map(e=>{let t=Ee.has(e.id);return(0,T.jsxs)(ye,{className:i(`flex flex-col gap-4 p-4`,Y&&!t&&`opacity-60`),children:[(0,T.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,T.jsx)(`h2`,{className:`font-semibold`,children:e.name}),(0,T.jsx)(_,{variant:`outline`,children:`Codex`})]}),(0,T.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:e.description})]}),Y?(0,T.jsxs)(a,{variant:t?`default`:`outline`,size:`sm`,onClick:()=>je(e.id),disabled:!Z,children:[(0,T.jsx)(pe,{className:i(`mr-1 h-3.5 w-3.5`,!t&&`opacity-0`)}),t?`Enabled`:`Disabled`]}):(0,T.jsxs)(`div`,{className:`flex gap-1`,children:[(0,T.jsx)(a,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.name}`,onClick:()=>De(e),children:(0,T.jsx)(te,{className:`h-4 w-4`})}),(0,T.jsx)(a,{variant:`ghost`,size:`icon`,"aria-label":`Delete ${e.name}`,onClick:()=>V(e),children:(0,T.jsx)(oe,{className:`h-4 w-4`})})]})]}),(0,T.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs text-muted-foreground`,children:[e.sandboxMode&&(0,T.jsx)(_,{variant:`secondary`,children:e.sandboxMode}),e.modelReasoningEffort&&(0,T.jsx)(_,{variant:`secondary`,children:e.modelReasoningEffort}),e.model&&(0,T.jsx)(_,{variant:`secondary`,children:e.model})]})]},e.id)})})}),(0,T.jsx)(h,{open:Se,onOpenChange:k,children:(0,T.jsxs)(f,{className:`max-w-2xl`,children:[(0,T.jsxs)(m,{children:[(0,T.jsx)(p,{children:M?`Edit Codex agent`:`Create Codex agent`}),(0,T.jsx)(g,{children:`Only the current stable native fields are managed. Omitted settings inherit from Codex.`})]}),(0,T.jsxs)(`div`,{className:`grid gap-4 py-2`,children:[(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-name`,children:`Name`}),(0,T.jsx)(o,{id:`agent-name`,value:P.name,disabled:!!M,onChange:e=>F({...P,name:D(e.target.value)}),placeholder:`code-reviewer`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-description`,children:`Description`}),(0,T.jsx)(o,{id:`agent-description`,value:P.description,onChange:e=>F({...P,description:e.target.value}),placeholder:`Use when reviewing a fixed diff for correctness and security.`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-instructions`,children:`Developer instructions`}),(0,T.jsx)(C,{id:`agent-instructions`,value:P.developerInstructions,onChange:e=>F({...P,developerInstructions:e.target.value}),className:`min-h-48 font-mono`})]}),(0,T.jsxs)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-3`,children:[(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-model`,children:`Model override`}),(0,T.jsx)(o,{id:`agent-model`,value:P.model??``,onChange:e=>F({...P,model:e.target.value||void 0}),placeholder:`Inherit`})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-effort`,children:`Reasoning`}),(0,T.jsxs)(`select`,{id:`agent-effort`,value:P.modelReasoningEffort??``,onChange:e=>F({...P,modelReasoningEffort:e.target.value||void 0}),className:`h-9 rounded-md border border-input bg-background px-3 text-sm`,children:[(0,T.jsx)(`option`,{value:``,children:`Inherit`}),(0,T.jsx)(`option`,{value:`low`,children:`Low`}),(0,T.jsx)(`option`,{value:`medium`,children:`Medium`}),(0,T.jsx)(`option`,{value:`high`,children:`High`}),(0,T.jsx)(`option`,{value:`xhigh`,children:`XHigh`}),(0,T.jsx)(`option`,{value:`max`,children:`Max`}),(0,T.jsx)(`option`,{value:`ultra`,children:`Ultra`})]})]}),(0,T.jsxs)(`div`,{className:`grid gap-2`,children:[(0,T.jsx)(S,{htmlFor:`agent-sandbox`,children:`Sandbox`}),(0,T.jsxs)(`select`,{id:`agent-sandbox`,value:P.sandboxMode??``,onChange:e=>F({...P,sandboxMode:e.target.value||void 0}),className:`h-9 rounded-md border border-input bg-background px-3 text-sm`,children:[(0,T.jsx)(`option`,{value:``,children:`Inherit`}),(0,T.jsx)(`option`,{value:`read-only`,children:`Read only`}),(0,T.jsx)(`option`,{value:`workspace-write`,children:`Workspace write`})]})]})]})]}),(0,T.jsxs)(d,{children:[(0,T.jsx)(a,{variant:`outline`,onClick:()=>k(!1),children:`Cancel`}),(0,T.jsx)(a,{onClick:Oe,disabled:G.isPending||!P.name||!P.description||!P.developerInstructions,children:G.isPending?`Saving…`:`Save agent`})]})]})}),(0,T.jsx)(h,{open:A,onOpenChange:j,children:(0,T.jsxs)(f,{className:`max-w-2xl`,children:[(0,T.jsxs)(m,{children:[(0,T.jsx)(p,{children:`Import Codex agent TOML`}),(0,T.jsx)(g,{children:`The import accepts the required native fields and supported model, reasoning, and sandbox overrides.`})]}),(0,T.jsx)(C,{value:I,onChange:e=>L(e.target.value),className:`min-h-72 font-mono`,placeholder:`name = "reviewer"
|
|
2
|
+
description = "Use for code review."
|
|
3
|
+
developer_instructions = "Review the fixed diff."`}),(0,T.jsxs)(d,{children:[(0,T.jsx)(a,{variant:`outline`,onClick:()=>j(!1),children:`Cancel`}),(0,T.jsx)(a,{onClick:ke,disabled:K.isPending||!I.trim(),children:K.isPending?`Importing…`:`Import agent`})]})]})}),(0,T.jsx)(ae,{open:B!==null,onOpenChange:e=>!e&&V(null),children:(0,T.jsxs)(l,{children:[(0,T.jsxs)(ee,{children:[(0,T.jsxs)(ie,{children:[`Delete “`,B?.name,`”?`]}),(0,T.jsx)(re,{children:`This removes the agent from the personal catalog. Existing workspace copies remain until the workspace is refreshed.`})]}),(0,T.jsxs)(ne,{children:[(0,T.jsx)(c,{render:(0,T.jsx)(a,{variant:`outline`,children:`Cancel`})}),(0,T.jsx)(a,{variant:`destructive`,onClick:Ae,disabled:q.isPending,children:q.isPending?`Deleting…`:`Delete agent`})]})]})})]})}export{O as AgentsPage};
|