@mrpatronz/nexusflow 2.8.1 β 2.10.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/README.md +172 -113
- package/dist/agent/AcpCliAdapter.d.ts +2 -0
- package/dist/agent/AcpCliAdapter.d.ts.map +1 -1
- package/dist/agent/AcpCliAdapter.js +50 -4
- package/dist/agent/AcpCliAdapter.js.map +1 -1
- package/dist/agent/AntigravityCliAdapter.d.ts +44 -2
- package/dist/agent/AntigravityCliAdapter.d.ts.map +1 -1
- package/dist/agent/AntigravityCliAdapter.js +363 -16
- package/dist/agent/AntigravityCliAdapter.js.map +1 -1
- package/dist/agent/ClaudeCliAdapter.d.ts +3 -0
- package/dist/agent/ClaudeCliAdapter.d.ts.map +1 -1
- package/dist/agent/ClaudeCliAdapter.js +37 -10
- package/dist/agent/ClaudeCliAdapter.js.map +1 -1
- package/dist/agent/ClaudeSdkAdapter.d.ts +1 -0
- package/dist/agent/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/agent/ClaudeSdkAdapter.js +38 -11
- package/dist/agent/ClaudeSdkAdapter.js.map +1 -1
- package/dist/agent/CliAdapterBase.d.ts +2 -0
- package/dist/agent/CliAdapterBase.d.ts.map +1 -1
- package/dist/agent/CliAdapterBase.js +5 -1
- package/dist/agent/CliAdapterBase.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/CodexSdkAdapter.d.ts.map +1 -1
- package/dist/agent/CodexSdkAdapter.js +4 -1
- package/dist/agent/CodexSdkAdapter.js.map +1 -1
- package/dist/agent/CopilotAcpAdapter.d.ts.map +1 -1
- package/dist/agent/CopilotAcpAdapter.js +2 -2
- package/dist/agent/CopilotAcpAdapter.js.map +1 -1
- package/dist/agent/ProviderRegistry.d.ts +8 -1
- package/dist/agent/ProviderRegistry.d.ts.map +1 -1
- package/dist/agent/ProviderRegistry.js.map +1 -1
- package/dist/agent/TurnSessionManager.d.ts +65 -0
- package/dist/agent/TurnSessionManager.d.ts.map +1 -0
- package/dist/agent/TurnSessionManager.js +330 -0
- package/dist/agent/TurnSessionManager.js.map +1 -0
- package/dist/agent/adapters.d.ts.map +1 -1
- package/dist/agent/adapters.js +23 -6
- package/dist/agent/adapters.js.map +1 -1
- package/dist/agent/cliAvailability.d.ts.map +1 -1
- package/dist/agent/cliAvailability.js +12 -0
- package/dist/agent/cliAvailability.js.map +1 -1
- package/dist/agent/mcp-config.d.ts +0 -5
- package/dist/agent/mcp-config.d.ts.map +1 -1
- package/dist/agent/mcp-config.js +2 -1
- package/dist/agent/mcp-config.js.map +1 -1
- package/dist/agent/models.d.ts +13 -0
- package/dist/agent/models.d.ts.map +1 -1
- package/dist/agent/models.js +262 -8
- package/dist/agent/models.js.map +1 -1
- package/dist/agent/nativeTools.d.ts.map +1 -1
- package/dist/agent/nativeTools.js +1 -0
- package/dist/agent/nativeTools.js.map +1 -1
- package/dist/agent/orchestrator.d.ts.map +1 -1
- package/dist/agent/orchestrator.js +3 -2
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/agent/session.d.ts +1 -0
- package/dist/agent/session.d.ts.map +1 -1
- package/dist/agent/session.js.map +1 -1
- package/dist/analyzers/detect-deps.js +16 -1
- package/dist/analyzers/detect-deps.js.map +1 -1
- package/dist/analyzers/run-analyzer.d.ts.map +1 -1
- package/dist/analyzers/run-analyzer.js.map +1 -1
- package/dist/commands/adapter.d.ts.map +1 -1
- package/dist/commands/adapter.js +15 -14
- package/dist/commands/adapter.js.map +1 -1
- package/dist/commands/add-repo.d.ts.map +1 -1
- package/dist/commands/add-repo.js +6 -5
- package/dist/commands/add-repo.js.map +1 -1
- package/dist/commands/commit.js +6 -8
- package/dist/commands/commit.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +2 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/create.d.ts +4 -4
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +8 -7
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/desktop.d.ts +44 -3
- package/dist/commands/desktop.d.ts.map +1 -1
- package/dist/commands/desktop.js +246 -7
- package/dist/commands/desktop.js.map +1 -1
- package/dist/commands/diff.d.ts.map +1 -1
- package/dist/commands/diff.js +3 -2
- package/dist/commands/diff.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +3 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/finish.js +2 -1
- package/dist/commands/finish.js.map +1 -1
- package/dist/commands/handoff.d.ts.map +1 -1
- package/dist/commands/handoff.js +12 -12
- package/dist/commands/handoff.js.map +1 -1
- package/dist/commands/init.d.ts +2 -2
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +8 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/isolate.d.ts.map +1 -1
- package/dist/commands/isolate.js +2 -1
- package/dist/commands/isolate.js.map +1 -1
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +3 -2
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +3 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/logs.js +3 -3
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/mcp.d.ts +1 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +19 -12
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/migrate.d.ts +12 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +128 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/open.d.ts.map +1 -1
- package/dist/commands/open.js +2 -1
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/progress.d.ts.map +1 -1
- package/dist/commands/progress.js +2 -1
- package/dist/commands/progress.js.map +1 -1
- package/dist/commands/project.d.ts.map +1 -1
- package/dist/commands/project.js +7 -6
- package/dist/commands/project.js.map +1 -1
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +8 -11
- package/dist/commands/refresh.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +2 -1
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/schedule.js +16 -18
- package/dist/commands/schedule.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +9 -8
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +2 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +2 -1
- package/dist/commands/stop.js.map +1 -1
- package/dist/commands/strategy.d.ts.map +1 -1
- package/dist/commands/strategy.js +6 -5
- package/dist/commands/strategy.js.map +1 -1
- package/dist/commands/sync.js +8 -10
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/tui.d.ts.map +1 -1
- package/dist/commands/tui.js +11 -10
- package/dist/commands/tui.js.map +1 -1
- package/dist/commands/ui.d.ts.map +1 -1
- package/dist/commands/ui.js +4 -3
- package/dist/commands/ui.js.map +1 -1
- package/dist/core/adapters/local-storage.d.ts +3 -1
- package/dist/core/adapters/local-storage.d.ts.map +1 -1
- package/dist/core/adapters/local-storage.js +62 -4
- package/dist/core/adapters/local-storage.js.map +1 -1
- package/dist/core/analysis-cache.d.ts.map +1 -1
- package/dist/core/analysis-cache.js +8 -7
- package/dist/core/analysis-cache.js.map +1 -1
- package/dist/core/brand-config.d.ts +261 -0
- package/dist/core/brand-config.d.ts.map +1 -0
- package/dist/core/brand-config.js +514 -0
- package/dist/core/brand-config.js.map +1 -0
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +18 -8
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.d.ts +88 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +103 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +11 -3
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/generation-lock.d.ts +2 -2
- package/dist/core/generation-lock.d.ts.map +1 -1
- package/dist/core/generation-lock.js +49 -22
- package/dist/core/generation-lock.js.map +1 -1
- package/dist/core/knowledge.d.ts +19 -0
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +150 -24
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/migrate.d.ts +53 -0
- package/dist/core/migrate.d.ts.map +1 -0
- package/dist/core/migrate.js +607 -0
- package/dist/core/migrate.js.map +1 -0
- package/dist/core/new-repo.js +1 -1
- package/dist/core/new-repo.js.map +1 -1
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js +13 -4
- package/dist/core/projects.js.map +1 -1
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +6 -4
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/scheduler.d.ts +1 -1
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +11 -9
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/sync.js +1 -1
- package/dist/core/sync.js.map +1 -1
- package/dist/core/workspace-git.d.ts.map +1 -1
- package/dist/core/workspace-git.js +34 -10
- package/dist/core/workspace-git.js.map +1 -1
- package/dist/core/workspace-state.d.ts +4 -0
- package/dist/core/workspace-state.d.ts.map +1 -1
- package/dist/core/workspace-state.js +8 -8
- package/dist/core/workspace-state.js.map +1 -1
- package/dist/core/workspace.d.ts +3 -4
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +62 -30
- package/dist/core/workspace.js.map +1 -1
- package/dist/desktop-server.js +6 -3
- package/dist/desktop-server.js.map +1 -1
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +7 -5
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +2 -1
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/cursor.d.ts +1 -1
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +9 -4
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/index.d.ts +4 -8
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +34 -69
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +20 -11
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/skills-generator.d.ts.map +1 -1
- package/dist/generators/skills-generator.js +26 -11
- package/dist/generators/skills-generator.js.map +1 -1
- package/dist/gui/app_logo.png +0 -0
- package/dist/gui/assets/AgentsPage-CnXzZFo1.js +3 -0
- package/dist/gui/assets/DashboardPage-rm3hKgsw.js +1 -0
- package/dist/gui/assets/GettingStartedPage-BKeuSHZQ.js +1 -0
- package/dist/gui/assets/NullStore-DuSDhGOe.js +1 -0
- package/dist/gui/assets/ProjectsPage-CioaA4uf.js +1 -0
- package/dist/gui/assets/ScaffoldRepoInline-DKZ1rPmE.js +1 -0
- package/dist/gui/assets/Separator-BgWyHDtg.js +1 -0
- package/dist/gui/assets/SettingsPage-BevO8oge.js +1 -0
- package/dist/gui/assets/SkillsPage-D2stJRWy.js +6 -0
- package/dist/gui/assets/StartWorkPage-C8a6eN90.js +1 -0
- package/dist/gui/assets/{StrategiesPage-C36TZgDX.js β StrategiesPage-BRQMly_d.js} +2 -2
- package/dist/gui/assets/WorkroomsPage-KqBkRD-x.js +4 -0
- package/dist/gui/assets/WorkspacesPage-DcA2i5HN.js +2 -0
- package/dist/gui/assets/alert-QnMXzwpU.js +1 -0
- package/dist/gui/assets/alert-dialog-BHEUQVyS.js +1 -0
- package/dist/gui/assets/badge-DTBzXOWn.js +1 -0
- package/dist/gui/assets/brand-hHByyyzq.js +1 -0
- package/dist/gui/assets/button-CREn1mup.js +1 -0
- package/dist/gui/assets/card-yrg6ov8B.js +1 -0
- package/dist/gui/assets/chevron-down-B_Mwbim8.js +1 -0
- package/dist/gui/assets/{circle-plus-lmU1yNJd.js β circle-plus--zM3-3r3.js} +1 -1
- package/dist/gui/assets/{code-xml-jFAa3-TT.js β code-xml-DH-38Tt7.js} +1 -1
- package/dist/gui/assets/{git-branch-Cfj9D8yW.js β git-branch-Ce0I2663.js} +1 -1
- package/dist/gui/assets/index-BB4BuHBQ.css +2 -0
- package/dist/gui/assets/index-BTe-_1Mu.js +57 -0
- package/dist/gui/assets/isElementDisabled-BrwmCB1d.js +1 -0
- package/dist/gui/assets/label-DC730X8s.js +1 -0
- package/dist/gui/assets/layers-j_brOuoa.js +1 -0
- package/dist/gui/assets/menu-d_G9km1-.js +1 -0
- package/dist/gui/assets/shield-check-Dd1Yv3l2.js +1 -0
- package/dist/gui/assets/square-check-big-BSIiYXPI.js +1 -0
- package/dist/gui/assets/tabs-BHwTt4t1.js +1 -0
- package/dist/gui/assets/{trash-2-CtR35_eF.js β trash-2-CMdv3eD3.js} +1 -1
- package/dist/gui/assets/useAriaLabelledBy-BmJErI5a.js +1 -0
- package/dist/gui/assets/useValueChanged-WS99hTmm.js +1 -0
- package/dist/gui/assets/{vsc-DFh0-53h.js β vsc-eMRaEwN3.js} +1 -1
- package/dist/gui/favicon-aurora.svg +8 -0
- package/dist/gui/favicon.ico +0 -0
- package/dist/gui/favicon.svg +8 -1
- package/dist/gui/index.html +21 -12
- package/dist/harness/claude.d.ts.map +1 -1
- package/dist/harness/claude.js +97 -7
- package/dist/harness/claude.js.map +1 -1
- package/dist/harness/codex.d.ts +1 -0
- package/dist/harness/codex.d.ts.map +1 -1
- package/dist/harness/codex.js +51 -34
- package/dist/harness/codex.js.map +1 -1
- package/dist/index.js +57 -27
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts +12 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +24 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools.d.ts +4 -2
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +372 -17
- package/dist/mcp/tools.js.map +1 -1
- package/dist/orchestration/detect.d.ts.map +1 -1
- package/dist/orchestration/detect.js +12 -5
- package/dist/orchestration/detect.js.map +1 -1
- package/dist/orchestration/log-tail.js +17 -17
- package/dist/orchestration/log-tail.js.map +1 -1
- package/dist/orchestration/runner.d.ts +1 -1
- package/dist/orchestration/runner.d.ts.map +1 -1
- package/dist/orchestration/runner.js +13 -8
- package/dist/orchestration/runner.js.map +1 -1
- package/dist/resources/agents-catalog.d.ts +3 -1
- package/dist/resources/agents-catalog.d.ts.map +1 -1
- package/dist/resources/agents-catalog.js +12 -6
- package/dist/resources/agents-catalog.js.map +1 -1
- package/dist/resources/contracts.d.ts +7 -0
- package/dist/resources/contracts.d.ts.map +1 -1
- package/dist/resources/contracts.js +8 -1
- package/dist/resources/contracts.js.map +1 -1
- package/dist/resources/fs-safety.d.ts +7 -1
- package/dist/resources/fs-safety.d.ts.map +1 -1
- package/dist/resources/fs-safety.js +44 -1
- package/dist/resources/fs-safety.js.map +1 -1
- package/dist/resources/materializer.d.ts +1 -0
- package/dist/resources/materializer.d.ts.map +1 -1
- package/dist/resources/materializer.js +48 -17
- package/dist/resources/materializer.js.map +1 -1
- package/dist/resources/service.d.ts.map +1 -1
- package/dist/resources/service.js +3 -2
- package/dist/resources/service.js.map +1 -1
- package/dist/server.d.ts +2 -19
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +1158 -318
- package/dist/server.js.map +1 -1
- package/dist/static-resources/workflows/cost-aware-sol-luna.md +95 -0
- package/dist/storage/db.d.ts +94 -0
- package/dist/storage/db.d.ts.map +1 -0
- package/dist/storage/db.js +609 -0
- package/dist/storage/db.js.map +1 -0
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/detect-ai.d.ts.map +1 -1
- package/dist/utils/detect-ai.js +1 -3
- package/dist/utils/detect-ai.js.map +1 -1
- package/dist/utils/multi-git.d.ts +0 -8
- package/dist/utils/multi-git.d.ts.map +1 -1
- package/dist/utils/multi-git.js +12 -4
- package/dist/utils/multi-git.js.map +1 -1
- package/dist/utils/pr.d.ts.map +1 -1
- package/dist/utils/pr.js +10 -5
- package/dist/utils/pr.js.map +1 -1
- package/dist/utils/resolve-workspace.d.ts +1 -1
- package/dist/utils/resolve-workspace.d.ts.map +1 -1
- package/dist/utils/resolve-workspace.js +10 -3
- package/dist/utils/resolve-workspace.js.map +1 -1
- package/dist/utils/session-finder.d.ts +12 -1
- package/dist/utils/session-finder.d.ts.map +1 -1
- package/dist/utils/session-finder.js +183 -0
- package/dist/utils/session-finder.js.map +1 -1
- package/dist/utils/skills-catalog.d.ts +5 -1
- package/dist/utils/skills-catalog.d.ts.map +1 -1
- package/dist/utils/skills-catalog.js +131 -75
- package/dist/utils/skills-catalog.js.map +1 -1
- package/dist/utils/terminal-launch.d.ts +4 -0
- package/dist/utils/terminal-launch.d.ts.map +1 -1
- package/dist/utils/terminal-launch.js +71 -12
- package/dist/utils/terminal-launch.js.map +1 -1
- package/dist/utils/update-check.d.ts +4 -1
- package/dist/utils/update-check.d.ts.map +1 -1
- package/dist/utils/update-check.js +66 -19
- package/dist/utils/update-check.js.map +1 -1
- package/dist/utils/workflows.d.ts +4 -1
- package/dist/utils/workflows.d.ts.map +1 -1
- package/dist/utils/workflows.js +51 -21
- package/dist/utils/workflows.js.map +1 -1
- package/dist/workrooms/client.d.ts +54 -0
- package/dist/workrooms/client.d.ts.map +1 -0
- package/dist/workrooms/client.js +191 -0
- package/dist/workrooms/client.js.map +1 -0
- package/dist/workrooms/contracts.d.ts +579 -0
- package/dist/workrooms/contracts.d.ts.map +1 -0
- package/dist/workrooms/contracts.js +231 -0
- package/dist/workrooms/contracts.js.map +1 -0
- package/dist/workrooms/crypto.d.ts +30 -0
- package/dist/workrooms/crypto.d.ts.map +1 -0
- package/dist/workrooms/crypto.js +72 -0
- package/dist/workrooms/crypto.js.map +1 -0
- package/dist/workrooms/host.d.ts +61 -0
- package/dist/workrooms/host.d.ts.map +1 -0
- package/dist/workrooms/host.js +747 -0
- package/dist/workrooms/host.js.map +1 -0
- package/dist/workrooms/local-resources.d.ts +26 -0
- package/dist/workrooms/local-resources.d.ts.map +1 -0
- package/dist/workrooms/local-resources.js +367 -0
- package/dist/workrooms/local-resources.js.map +1 -0
- package/dist/workrooms/manager.d.ts +228 -0
- package/dist/workrooms/manager.d.ts.map +1 -0
- package/dist/workrooms/manager.js +768 -0
- package/dist/workrooms/manager.js.map +1 -0
- package/dist/workrooms/milestones.d.ts +42 -0
- package/dist/workrooms/milestones.d.ts.map +1 -0
- package/dist/workrooms/milestones.js +94 -0
- package/dist/workrooms/milestones.js.map +1 -0
- package/dist/workrooms/portable.d.ts +21 -0
- package/dist/workrooms/portable.d.ts.map +1 -0
- package/dist/workrooms/portable.js +201 -0
- package/dist/workrooms/portable.js.map +1 -0
- package/dist/workrooms/resource-package.d.ts +7 -0
- package/dist/workrooms/resource-package.d.ts.map +1 -0
- package/dist/workrooms/resource-package.js +260 -0
- package/dist/workrooms/resource-package.js.map +1 -0
- package/dist/workrooms/service.d.ts +92 -0
- package/dist/workrooms/service.d.ts.map +1 -0
- package/dist/workrooms/service.js +788 -0
- package/dist/workrooms/service.js.map +1 -0
- package/dist/workrooms/sqlite-store.d.ts +31 -0
- package/dist/workrooms/sqlite-store.d.ts.map +1 -0
- package/dist/workrooms/sqlite-store.js +511 -0
- package/dist/workrooms/sqlite-store.js.map +1 -0
- package/dist/workrooms/store.d.ts +542 -0
- package/dist/workrooms/store.d.ts.map +1 -0
- package/dist/workrooms/store.js +71 -0
- package/dist/workrooms/store.js.map +1 -0
- package/package.json +16 -10
- package/resources/workflows/cost-aware-sol-luna.md +95 -0
- package/dist/agent/AcpCliAdapter.test.d.ts +0 -2
- package/dist/agent/AcpCliAdapter.test.d.ts.map +0 -1
- package/dist/agent/AcpCliAdapter.test.js +0 -235
- package/dist/agent/AcpCliAdapter.test.js.map +0 -1
- package/dist/agent/AntigravityCliAdapter.test.d.ts +0 -2
- package/dist/agent/AntigravityCliAdapter.test.d.ts.map +0 -1
- package/dist/agent/AntigravityCliAdapter.test.js +0 -222
- package/dist/agent/AntigravityCliAdapter.test.js.map +0 -1
- package/dist/agent/ClaudeCliAdapter.test.d.ts +0 -2
- package/dist/agent/ClaudeCliAdapter.test.d.ts.map +0 -1
- package/dist/agent/ClaudeCliAdapter.test.js +0 -320
- package/dist/agent/ClaudeCliAdapter.test.js.map +0 -1
- package/dist/agent/ClaudeSdkAdapter.test.d.ts +0 -2
- package/dist/agent/ClaudeSdkAdapter.test.d.ts.map +0 -1
- package/dist/agent/ClaudeSdkAdapter.test.js +0 -155
- package/dist/agent/ClaudeSdkAdapter.test.js.map +0 -1
- package/dist/agent/CliAdapterBase.test.d.ts +0 -2
- package/dist/agent/CliAdapterBase.test.d.ts.map +0 -1
- package/dist/agent/CliAdapterBase.test.js +0 -240
- package/dist/agent/CliAdapterBase.test.js.map +0 -1
- package/dist/agent/CodexCliAdapter.test.d.ts +0 -2
- package/dist/agent/CodexCliAdapter.test.d.ts.map +0 -1
- package/dist/agent/CodexCliAdapter.test.js +0 -331
- package/dist/agent/CodexCliAdapter.test.js.map +0 -1
- package/dist/agent/CodexSdkAdapter.test.d.ts +0 -2
- package/dist/agent/CodexSdkAdapter.test.d.ts.map +0 -1
- package/dist/agent/CodexSdkAdapter.test.js +0 -76
- package/dist/agent/CodexSdkAdapter.test.js.map +0 -1
- package/dist/agent/ProviderRegistry.test.d.ts +0 -2
- package/dist/agent/ProviderRegistry.test.d.ts.map +0 -1
- package/dist/agent/ProviderRegistry.test.js +0 -129
- package/dist/agent/ProviderRegistry.test.js.map +0 -1
- package/dist/agent/adapters.test.d.ts +0 -2
- package/dist/agent/adapters.test.d.ts.map +0 -1
- package/dist/agent/adapters.test.js +0 -71
- package/dist/agent/adapters.test.js.map +0 -1
- package/dist/agent/cliAvailability.test.d.ts +0 -2
- package/dist/agent/cliAvailability.test.d.ts.map +0 -1
- package/dist/agent/cliAvailability.test.js +0 -217
- package/dist/agent/cliAvailability.test.js.map +0 -1
- package/dist/agent/mcp-config.test.d.ts +0 -2
- package/dist/agent/mcp-config.test.d.ts.map +0 -1
- package/dist/agent/mcp-config.test.js +0 -22
- package/dist/agent/mcp-config.test.js.map +0 -1
- package/dist/agent/models.test.d.ts +0 -2
- package/dist/agent/models.test.d.ts.map +0 -1
- package/dist/agent/models.test.js +0 -40
- package/dist/agent/models.test.js.map +0 -1
- package/dist/agent/nativeAgent.test.d.ts +0 -2
- package/dist/agent/nativeAgent.test.d.ts.map +0 -1
- package/dist/agent/nativeAgent.test.js +0 -35
- package/dist/agent/nativeAgent.test.js.map +0 -1
- package/dist/agent/nativeTools.test.d.ts +0 -2
- package/dist/agent/nativeTools.test.d.ts.map +0 -1
- package/dist/agent/nativeTools.test.js +0 -67
- package/dist/agent/nativeTools.test.js.map +0 -1
- package/dist/agent/orchestrator.test.d.ts +0 -2
- package/dist/agent/orchestrator.test.d.ts.map +0 -1
- package/dist/agent/orchestrator.test.js +0 -284
- package/dist/agent/orchestrator.test.js.map +0 -1
- package/dist/agent/session.test.d.ts +0 -2
- package/dist/agent/session.test.d.ts.map +0 -1
- package/dist/agent/session.test.js +0 -74
- package/dist/agent/session.test.js.map +0 -1
- package/dist/agent/smoke-chat.test.d.ts +0 -2
- package/dist/agent/smoke-chat.test.d.ts.map +0 -1
- package/dist/agent/smoke-chat.test.js +0 -166
- package/dist/agent/smoke-chat.test.js.map +0 -1
- package/dist/commands/add-repo.test.d.ts +0 -2
- package/dist/commands/add-repo.test.d.ts.map +0 -1
- package/dist/commands/add-repo.test.js +0 -30
- package/dist/commands/add-repo.test.js.map +0 -1
- package/dist/commands/commands.test.d.ts +0 -2
- package/dist/commands/commands.test.d.ts.map +0 -1
- package/dist/commands/commands.test.js +0 -156
- package/dist/commands/commands.test.js.map +0 -1
- package/dist/commands/commit.test.d.ts +0 -2
- package/dist/commands/commit.test.d.ts.map +0 -1
- package/dist/commands/commit.test.js +0 -54
- package/dist/commands/commit.test.js.map +0 -1
- package/dist/commands/isolate.test.d.ts +0 -2
- package/dist/commands/isolate.test.d.ts.map +0 -1
- package/dist/commands/isolate.test.js +0 -59
- package/dist/commands/isolate.test.js.map +0 -1
- package/dist/commands/knowledge.test.d.ts +0 -2
- package/dist/commands/knowledge.test.d.ts.map +0 -1
- package/dist/commands/knowledge.test.js +0 -90
- package/dist/commands/knowledge.test.js.map +0 -1
- package/dist/commands/status.test.d.ts +0 -2
- package/dist/commands/status.test.d.ts.map +0 -1
- package/dist/commands/status.test.js +0 -31
- package/dist/commands/status.test.js.map +0 -1
- package/dist/commands/ui.test.d.ts +0 -2
- package/dist/commands/ui.test.d.ts.map +0 -1
- package/dist/commands/ui.test.js +0 -58
- package/dist/commands/ui.test.js.map +0 -1
- package/dist/core/adapters/storage.test.d.ts +0 -2
- package/dist/core/adapters/storage.test.d.ts.map +0 -1
- package/dist/core/adapters/storage.test.js +0 -65
- package/dist/core/adapters/storage.test.js.map +0 -1
- package/dist/core/analysis-cache.test.d.ts +0 -2
- package/dist/core/analysis-cache.test.d.ts.map +0 -1
- package/dist/core/analysis-cache.test.js +0 -163
- package/dist/core/analysis-cache.test.js.map +0 -1
- package/dist/core/config.test.d.ts +0 -2
- package/dist/core/config.test.d.ts.map +0 -1
- package/dist/core/config.test.js +0 -90
- package/dist/core/config.test.js.map +0 -1
- package/dist/core/finish.test.d.ts +0 -2
- package/dist/core/finish.test.d.ts.map +0 -1
- package/dist/core/finish.test.js +0 -110
- package/dist/core/finish.test.js.map +0 -1
- package/dist/core/generation-lock.test.d.ts +0 -2
- package/dist/core/generation-lock.test.d.ts.map +0 -1
- package/dist/core/generation-lock.test.js +0 -134
- package/dist/core/generation-lock.test.js.map +0 -1
- package/dist/core/isolate.test.d.ts +0 -2
- package/dist/core/isolate.test.d.ts.map +0 -1
- package/dist/core/isolate.test.js +0 -320
- package/dist/core/isolate.test.js.map +0 -1
- package/dist/core/knowledge.test.d.ts +0 -2
- package/dist/core/knowledge.test.d.ts.map +0 -1
- package/dist/core/knowledge.test.js +0 -287
- package/dist/core/knowledge.test.js.map +0 -1
- package/dist/core/locks.test.d.ts +0 -2
- package/dist/core/locks.test.d.ts.map +0 -1
- package/dist/core/locks.test.js +0 -143
- package/dist/core/locks.test.js.map +0 -1
- package/dist/core/new-repo.test.d.ts +0 -2
- package/dist/core/new-repo.test.d.ts.map +0 -1
- package/dist/core/new-repo.test.js +0 -78
- package/dist/core/new-repo.test.js.map +0 -1
- package/dist/core/progress.test.d.ts +0 -2
- package/dist/core/progress.test.d.ts.map +0 -1
- package/dist/core/progress.test.js +0 -52
- package/dist/core/progress.test.js.map +0 -1
- package/dist/core/projects.test.d.ts +0 -2
- package/dist/core/projects.test.d.ts.map +0 -1
- package/dist/core/projects.test.js +0 -165
- package/dist/core/projects.test.js.map +0 -1
- package/dist/core/refresh.test.d.ts +0 -2
- package/dist/core/refresh.test.d.ts.map +0 -1
- package/dist/core/refresh.test.js +0 -93
- package/dist/core/refresh.test.js.map +0 -1
- package/dist/core/scanner.test.d.ts +0 -2
- package/dist/core/scanner.test.d.ts.map +0 -1
- package/dist/core/scanner.test.js +0 -53
- package/dist/core/scanner.test.js.map +0 -1
- package/dist/core/scheduler.test.d.ts +0 -2
- package/dist/core/scheduler.test.d.ts.map +0 -1
- package/dist/core/scheduler.test.js +0 -169
- package/dist/core/scheduler.test.js.map +0 -1
- package/dist/core/sync.test.d.ts +0 -2
- package/dist/core/sync.test.d.ts.map +0 -1
- package/dist/core/sync.test.js +0 -128
- package/dist/core/sync.test.js.map +0 -1
- package/dist/core/workspace-git.test.d.ts +0 -2
- package/dist/core/workspace-git.test.d.ts.map +0 -1
- package/dist/core/workspace-git.test.js +0 -52
- package/dist/core/workspace-git.test.js.map +0 -1
- package/dist/core/workspace-skills-workflow.integration.test.d.ts +0 -2
- package/dist/core/workspace-skills-workflow.integration.test.d.ts.map +0 -1
- package/dist/core/workspace-skills-workflow.integration.test.js +0 -177
- package/dist/core/workspace-skills-workflow.integration.test.js.map +0 -1
- package/dist/core/workspace-state.test.d.ts +0 -2
- package/dist/core/workspace-state.test.d.ts.map +0 -1
- package/dist/core/workspace-state.test.js +0 -84
- package/dist/core/workspace-state.test.js.map +0 -1
- package/dist/core/workspace.create.test.d.ts +0 -2
- package/dist/core/workspace.create.test.d.ts.map +0 -1
- package/dist/core/workspace.create.test.js +0 -224
- package/dist/core/workspace.create.test.js.map +0 -1
- package/dist/core/workspace.test.d.ts +0 -2
- package/dist/core/workspace.test.d.ts.map +0 -1
- package/dist/core/workspace.test.js +0 -53
- package/dist/core/workspace.test.js.map +0 -1
- package/dist/core/worktree.test.d.ts +0 -2
- package/dist/core/worktree.test.d.ts.map +0 -1
- package/dist/core/worktree.test.js +0 -153
- package/dist/core/worktree.test.js.map +0 -1
- package/dist/generators/base.test.d.ts +0 -2
- package/dist/generators/base.test.d.ts.map +0 -1
- package/dist/generators/base.test.js +0 -287
- package/dist/generators/base.test.js.map +0 -1
- package/dist/generators/knowledge-migration.test.d.ts +0 -2
- package/dist/generators/knowledge-migration.test.d.ts.map +0 -1
- package/dist/generators/knowledge-migration.test.js +0 -22
- package/dist/generators/knowledge-migration.test.js.map +0 -1
- package/dist/generators/plan-generator.test.d.ts +0 -2
- package/dist/generators/plan-generator.test.d.ts.map +0 -1
- package/dist/generators/plan-generator.test.js +0 -220
- package/dist/generators/plan-generator.test.js.map +0 -1
- package/dist/generators/skills-generator.test.d.ts +0 -2
- package/dist/generators/skills-generator.test.d.ts.map +0 -1
- package/dist/generators/skills-generator.test.js +0 -79
- package/dist/generators/skills-generator.test.js.map +0 -1
- package/dist/gui/assets/AgentsPage-B4fx43rd.js +0 -3
- package/dist/gui/assets/CSPContext-DBUu9tE0.js +0 -1
- package/dist/gui/assets/DashboardPage-DH52G8IG.js +0 -1
- package/dist/gui/assets/GettingStartedPage-BlTrQhvi.js +0 -1
- package/dist/gui/assets/ProjectsPage-BPVSLPXv.js +0 -1
- package/dist/gui/assets/ScaffoldRepoInline-ywcpq9PX.js +0 -1
- package/dist/gui/assets/SettingsPage-RQr8SalV.js +0 -1
- package/dist/gui/assets/SkillsPage-CYoSRrwx.js +0 -6
- package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +0 -1
- package/dist/gui/assets/WorkspacesPage-DxEONvSq.js +0 -6
- package/dist/gui/assets/alert-dialog-CQAX2yRx.js +0 -1
- package/dist/gui/assets/badge-CAohJGj6.js +0 -1
- package/dist/gui/assets/bot-C2HWrAft.js +0 -1
- package/dist/gui/assets/button-BDDZnIHx.js +0 -1
- package/dist/gui/assets/card-BKXzd_5L.js +0 -1
- package/dist/gui/assets/chevron-down-qTL8HPug.js +0 -1
- package/dist/gui/assets/cpu-Cdwd84Jz.js +0 -1
- package/dist/gui/assets/empty-BdlgbifD.js +0 -1
- package/dist/gui/assets/index-BF6pre6G.css +0 -2
- package/dist/gui/assets/index-C_rwnBzF.js +0 -52
- package/dist/gui/assets/isElementDisabled-uy_EOitH.js +0 -1
- package/dist/gui/assets/label-CG5exjag.js +0 -1
- package/dist/gui/assets/square-DlIYnlSq.js +0 -1
- package/dist/gui/assets/textarea-ByfoCb54.js +0 -1
- package/dist/gui/assets/useAriaLabelledBy-ClesgjMe.js +0 -1
- package/dist/gui/assets/useValueChanged-DeYvGnKs.js +0 -1
- package/dist/gui/assets/zap-CWG_Lvki.js +0 -1
- package/dist/harness/contract.test.d.ts +0 -2
- package/dist/harness/contract.test.d.ts.map +0 -1
- package/dist/harness/contract.test.js +0 -426
- package/dist/harness/contract.test.js.map +0 -1
- package/dist/harness/harness.test.d.ts +0 -2
- package/dist/harness/harness.test.d.ts.map +0 -1
- package/dist/harness/harness.test.js +0 -215
- package/dist/harness/harness.test.js.map +0 -1
- package/dist/mcp/tools.test.d.ts +0 -2
- package/dist/mcp/tools.test.d.ts.map +0 -1
- package/dist/mcp/tools.test.js +0 -194
- package/dist/mcp/tools.test.js.map +0 -1
- package/dist/orchestration/log-tail.test.d.ts +0 -2
- package/dist/orchestration/log-tail.test.d.ts.map +0 -1
- package/dist/orchestration/log-tail.test.js +0 -72
- package/dist/orchestration/log-tail.test.js.map +0 -1
- package/dist/orchestration/orchestrator.test.d.ts +0 -2
- package/dist/orchestration/orchestrator.test.d.ts.map +0 -1
- package/dist/orchestration/orchestrator.test.js +0 -85
- package/dist/orchestration/orchestrator.test.js.map +0 -1
- package/dist/orchestration/runner.test.d.ts +0 -2
- package/dist/orchestration/runner.test.d.ts.map +0 -1
- package/dist/orchestration/runner.test.js +0 -233
- package/dist/orchestration/runner.test.js.map +0 -1
- package/dist/resources/agents-catalog.test.d.ts +0 -2
- package/dist/resources/agents-catalog.test.d.ts.map +0 -1
- package/dist/resources/agents-catalog.test.js +0 -50
- package/dist/resources/agents-catalog.test.js.map +0 -1
- package/dist/resources/codex-agent.test.d.ts +0 -2
- package/dist/resources/codex-agent.test.d.ts.map +0 -1
- package/dist/resources/codex-agent.test.js +0 -27
- package/dist/resources/codex-agent.test.js.map +0 -1
- package/dist/resources/materializer.test.d.ts +0 -2
- package/dist/resources/materializer.test.d.ts.map +0 -1
- package/dist/resources/materializer.test.js +0 -149
- package/dist/resources/materializer.test.js.map +0 -1
- package/dist/resources/service.test.d.ts +0 -2
- package/dist/resources/service.test.d.ts.map +0 -1
- package/dist/resources/service.test.js +0 -58
- package/dist/resources/service.test.js.map +0 -1
- package/dist/server.test.d.ts +0 -2
- package/dist/server.test.d.ts.map +0 -1
- package/dist/server.test.js +0 -1697
- package/dist/server.test.js.map +0 -1
- package/dist/utils/detect-ai.test.d.ts +0 -2
- package/dist/utils/detect-ai.test.d.ts.map +0 -1
- package/dist/utils/detect-ai.test.js +0 -70
- package/dist/utils/detect-ai.test.js.map +0 -1
- package/dist/utils/detect-editors.test.d.ts +0 -2
- package/dist/utils/detect-editors.test.d.ts.map +0 -1
- package/dist/utils/detect-editors.test.js +0 -85
- package/dist/utils/detect-editors.test.js.map +0 -1
- package/dist/utils/git.test.d.ts +0 -2
- package/dist/utils/git.test.d.ts.map +0 -1
- package/dist/utils/git.test.js +0 -125
- package/dist/utils/git.test.js.map +0 -1
- package/dist/utils/multi-git.test.d.ts +0 -2
- package/dist/utils/multi-git.test.d.ts.map +0 -1
- package/dist/utils/multi-git.test.js +0 -330
- package/dist/utils/multi-git.test.js.map +0 -1
- package/dist/utils/pr.test.d.ts +0 -2
- package/dist/utils/pr.test.d.ts.map +0 -1
- package/dist/utils/pr.test.js +0 -47
- package/dist/utils/pr.test.js.map +0 -1
- package/dist/utils/session-finder.test.d.ts +0 -2
- package/dist/utils/session-finder.test.d.ts.map +0 -1
- package/dist/utils/session-finder.test.js +0 -304
- package/dist/utils/session-finder.test.js.map +0 -1
- package/dist/utils/skills-catalog.test.d.ts +0 -2
- package/dist/utils/skills-catalog.test.d.ts.map +0 -1
- package/dist/utils/skills-catalog.test.js +0 -281
- package/dist/utils/skills-catalog.test.js.map +0 -1
- package/dist/utils/system-scanner.test.d.ts +0 -2
- package/dist/utils/system-scanner.test.d.ts.map +0 -1
- package/dist/utils/system-scanner.test.js +0 -73
- package/dist/utils/system-scanner.test.js.map +0 -1
- package/dist/utils/terminal-launch.test.d.ts +0 -2
- package/dist/utils/terminal-launch.test.d.ts.map +0 -1
- package/dist/utils/terminal-launch.test.js +0 -117
- package/dist/utils/terminal-launch.test.js.map +0 -1
- package/dist/utils/update-check.test.d.ts +0 -2
- package/dist/utils/update-check.test.d.ts.map +0 -1
- package/dist/utils/update-check.test.js +0 -30
- package/dist/utils/update-check.test.js.map +0 -1
- package/dist/utils/workflows.test.d.ts +0 -2
- package/dist/utils/workflows.test.d.ts.map +0 -1
- package/dist/utils/workflows.test.js +0 -86
- package/dist/utils/workflows.test.js.map +0 -1
- package/dist/utils/workspace-launch.test.d.ts +0 -2
- package/dist/utils/workspace-launch.test.d.ts.map +0 -1
- package/dist/utils/workspace-launch.test.js +0 -128
- package/dist/utils/workspace-launch.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<h1 align="center"
|
|
2
|
+
<h1 align="center">π ContextSpace</h1>
|
|
3
3
|
<p align="center">
|
|
4
|
-
<strong>Multi-
|
|
4
|
+
<strong>Deterministic Multi-Repo Context Engine for Autonomous AI Assistants</strong>
|
|
5
5
|
</p>
|
|
6
6
|
<p align="center">
|
|
7
7
|
Group repositories Β· Generate AI context Β· Resume LLM sessions Β· Orchestrate services
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
ContextSpace combines multiple Git repositories into a single feature workspace and generates the deterministic context files that your AI coding assistant needs to understand all of them at once. It can create isolated **git worktrees** on clean feature branches, or work in-place directly in your source repositories when you want to manage branches yourself.
|
|
14
14
|
|
|
15
|
-
> **New to
|
|
15
|
+
> **New to ContextSpace?** Jump to the [Getting Started Guide](GETTING_STARTED.md) for a hands-on walkthrough.
|
|
16
16
|
|
|
17
17
|
## β¨ Features
|
|
18
18
|
|
|
19
19
|
- **Multi-repo workspaces** β group any set of local Git repos in isolated worktrees or in-place source repositories
|
|
20
|
-
- **Project registry** β save named, persistent repo groups in `~/.
|
|
20
|
+
- **Project registry** β save named, persistent repo groups in `~/.contextspace/projects.json` and reuse them from the CLI or API
|
|
21
21
|
- **The full feature loop** β `create` opens a workspace, `finish` closes it: commit + push every repo, open PRs (or print compare links), promote learnings, and optionally clean up
|
|
22
22
|
- **Knowledge that accumulates durably** β titled, scoped decisions and gotchas are auto-committed to the workspace artifact repository, then reusable entries can be promoted into per-repo memory
|
|
23
|
-
- **Provenance-checked AI context** β `
|
|
23
|
+
- **Provenance-checked AI context** β `contextspace.lock` records repo fingerprints and generated-view hashes; `ctxspace refresh --check` and `doctor` expose stale or modified context loudly
|
|
24
24
|
- **Single-source AI context generation** β `AGENTS.md` is canonical; stamped Claude, Copilot, Cursor, and skill views are generated artifacts
|
|
25
25
|
- **Drive it from your assistant** β an MCP server exposes the whole loop (status, diff, commit, sync, refresh, doctor, knowledge, finish) so your AI can run it without leaving the session
|
|
26
26
|
- **Smart codebase analysis** β detects tech stacks, ports, API endpoints, dependencies, and existing AI configs across all projects
|
|
@@ -28,12 +28,11 @@ NexusFlow combines multiple Git repositories into a single feature workspace and
|
|
|
28
28
|
- **Owned Resource Deployment** β installs portable skills to native discovery folders and Codex agents to `.codex/agents/`, refusing unmanaged collisions and preserving locally modified files
|
|
29
29
|
- **Teamwork Strategy Workflows** β predefine coordination flows and subagent behaviors (e.g. plan-implement-review) and inspect them with local AI coding assistant harnesses
|
|
30
30
|
- **Session history & resumption** β browse past conversation transcripts from Antigravity, Claude Code, OpenAI Codex, and GitHub Copilot, then resume where you left off
|
|
31
|
-
|
|
32
31
|
- **Incremental, token-efficient refresh** β an analysis cache fingerprints each repo (HEAD + dirty files), so `refresh`/`sync` only re-analyze repos that changed and unchanged maps stay byte-identical (keeping your AI assistant's prompt cache warm)
|
|
33
32
|
- **Scheduled workspace jobs** β recurring `sync`/`refresh` per workspace (e.g. every 2h) that run while the dashboard server is up, so context files stay fresh without manual runs
|
|
34
33
|
- **Service orchestration** β start, stop, and tail logs for all services in a workspace with a single command
|
|
35
34
|
- **Interactive Web Dashboard** β rich dark-themed GUI for managing workspaces, viewing sessions, and streaming logs
|
|
36
|
-
- **CLI-first** β every action available from the terminal via the `
|
|
35
|
+
- **CLI-first** β every action available from the terminal via the `ctxspace` command (aliases: `contextspace`, `cs`, `nexusflow`)
|
|
37
36
|
|
|
38
37
|
## π¦ Installation
|
|
39
38
|
|
|
@@ -41,28 +40,48 @@ NexusFlow combines multiple Git repositories into a single feature workspace and
|
|
|
41
40
|
|
|
42
41
|
| Requirement | Version | Platform Notes |
|
|
43
42
|
|:---|:---|:---|
|
|
44
|
-
| [Node.js](https://nodejs.org) |
|
|
43
|
+
| [Node.js](https://nodejs.org) | 22.13 or later | Needed for the CLI, source setup, or `npx` bootstrap; **not required by packaged desktop installers** |
|
|
45
44
|
| [Git](https://git-scm.com) | 2.20 or later | Required for worktree and multi-git operations |
|
|
46
45
|
| npm | Bundled with Node.js | Standard package manager |
|
|
47
46
|
| `xdg-utils` | Recommended | Linux only (for auto-opening the web dashboard) |
|
|
48
47
|
|
|
49
|
-
###
|
|
48
|
+
### Desktop installers (recommended)
|
|
49
|
+
|
|
50
|
+
Download the first-class Windows NSIS installer or Linux AppImage from the
|
|
51
|
+
[NexusFlow GitHub Releases](https://github.com/antan87/NexusFlow/releases). Each
|
|
52
|
+
release includes `latest.yml`/`latest-linux.yml` update metadata and a required
|
|
53
|
+
SHA-256 sidecar. The desktop app is the primary distribution and includes the
|
|
54
|
+
full GUI plus optional, user-controlled native updates.
|
|
55
|
+
|
|
56
|
+
After a release is published, the new explicit bootstrap command can download
|
|
57
|
+
and verify the matching asset for the current x64 OS:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npx @mrpatronz/nexusflow desktop install
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
It launches the Windows installer, or installs a stable Linux AppImage under
|
|
64
|
+
`~/.local/share/contextspace/` and creates a desktop entry (existing NexusFlow installs keep their launcher and install directory). It never runs from
|
|
65
|
+
`npm install`/postinstall and does not support macOS or ARM assets yet.
|
|
66
|
+
|
|
67
|
+
### Install the secondary npm CLI
|
|
68
|
+
|
|
69
|
+
ContextSpace continues to use the existing `@mrpatronz/nexusflow` npm package.
|
|
70
|
+
It provides `ctxspace` plus the compatible command aliases.
|
|
50
71
|
|
|
51
72
|
```bash
|
|
52
73
|
npm install -g @mrpatronz/nexusflow
|
|
53
74
|
```
|
|
54
75
|
|
|
55
|
-
### Install from source
|
|
76
|
+
### Install from source (CLI, GUI, desktop, and extension development)
|
|
56
77
|
|
|
57
78
|
```bash
|
|
58
79
|
git clone https://github.com/antan87/NexusFlow.git
|
|
59
80
|
cd NexusFlow
|
|
60
81
|
|
|
61
|
-
# Install
|
|
82
|
+
# Install root dependencies, then GUI/desktop/extension dependencies
|
|
62
83
|
npm install
|
|
63
|
-
|
|
64
|
-
# Install GUI dependencies
|
|
65
|
-
cd gui && npm install && cd ..
|
|
84
|
+
npm run setup # includes the Electron runtime for source desktop start
|
|
66
85
|
|
|
67
86
|
# Build everything
|
|
68
87
|
npm run build
|
|
@@ -71,19 +90,32 @@ npm run build
|
|
|
71
90
|
npm link
|
|
72
91
|
```
|
|
73
92
|
|
|
74
|
-
After linking, the `nexusflow`
|
|
93
|
+
After linking, the `ctxspace` (and aliases `contextspace`, `cs`, `nexusflow`) commands are available system-wide.
|
|
75
94
|
|
|
76
95
|
## π Quick Start
|
|
77
96
|
|
|
97
|
+
### Desktop (recommended)
|
|
98
|
+
|
|
99
|
+
On Windows or Linux, download the latest NSIS installer/AppImage from
|
|
100
|
+
[GitHub Releases](https://github.com/antan87/NexusFlow/releases) and launch the
|
|
101
|
+
app. No Node.js or npm installation is needed. If Node.js is already available,
|
|
102
|
+
the explicit post-release bootstrap is also convenient:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
npx @mrpatronz/nexusflow desktop install
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### CLI and browser dashboard
|
|
109
|
+
|
|
78
110
|
```bash
|
|
79
111
|
# 1 β Initialize config (optional, defaults work out of the box)
|
|
80
|
-
|
|
112
|
+
ctxspace init
|
|
81
113
|
|
|
82
114
|
# 2 β Create a feature workspace
|
|
83
|
-
|
|
115
|
+
ctxspace create
|
|
84
116
|
|
|
85
|
-
# 3 β Or use the GUI: desktop app
|
|
86
|
-
|
|
117
|
+
# 3 β Or use the GUI: packaged desktop app or the fully functional browser dashboard
|
|
118
|
+
ctxspace dashboard
|
|
87
119
|
```
|
|
88
120
|
|
|
89
121
|
The `create` wizard walks you through:
|
|
@@ -97,27 +129,27 @@ The `create` wizard walks you through:
|
|
|
97
129
|
|
|
98
130
|
## π Projects
|
|
99
131
|
|
|
100
|
-
A project is a named, persistent group of source repositories stored centrally in `~/.nexusflow/projects.json
|
|
132
|
+
A project is a named, persistent group of source repositories stored centrally in `~/.contextspace/projects.json` (with automatic fallback to `~/.nexusflow/projects.json`). Project ids are slugified from the name, so `Hogia Billing` becomes `hogia-billing`. Use either the `project` command group or its `proj` alias:
|
|
101
133
|
|
|
102
134
|
| Command | Description |
|
|
103
135
|
|:---|:---|
|
|
104
|
-
| `
|
|
105
|
-
| `
|
|
106
|
-
| `
|
|
107
|
-
| `
|
|
136
|
+
| `ctxspace project add -n, --name <name> -r, --repos <paths...> [-d, --description <text>]` | Register a project; omit `--repos` to use the interactive repo picker |
|
|
137
|
+
| `ctxspace project list` | List registered projects (alias: `ls`) |
|
|
138
|
+
| `ctxspace project show [id]` | Show a registered project |
|
|
139
|
+
| `ctxspace project remove [id] [-y, --yes]` | Remove a project from the registry (alias: `rm`) |
|
|
108
140
|
|
|
109
141
|
Removing a project only edits the registry β it never deletes repositories or workspaces on disk. The HTTP API exposes the same registry through `GET /api/projects`, `POST /api/projects`, `PUT /api/projects/:id`, and `DELETE /api/projects/:id`.
|
|
110
142
|
|
|
111
143
|
## π§ Work Modes
|
|
112
144
|
|
|
113
|
-
`
|
|
145
|
+
`ctxspace create` offers registered projects first (ad-hoc repo scanning is still available), then asks how the workspace should work:
|
|
114
146
|
|
|
115
147
|
| Mode | What it does |
|
|
116
148
|
|:---|:---|
|
|
117
|
-
| **Isolated worktrees** | The classic flow:
|
|
118
|
-
| **In-place** |
|
|
149
|
+
| **Isolated worktrees** | The classic flow: ContextSpace creates a feature branch and git worktree per repo inside the workspace directory. |
|
|
150
|
+
| **In-place** | ContextSpace works directly in the source repositories. No branches or worktrees are created; you provide a workspace name, and the workspace directory only holds `contextspace.json` plus generated AI context files. |
|
|
119
151
|
|
|
120
|
-
In in-place workspaces, `
|
|
152
|
+
In in-place workspaces, `ctxspace sync` never mutates source-repo branches because you manage them yourself; it only reconciles stale generated views. `ctxspace finish` commits and pushes each repo's current branch, and only offers PR/compare links when that branch differs from the default branch. Deleting an in-place workspace never touches the source repositories, `ctxspace list` tags it with `[in-place]`, and agent sessions for single-repo in-place workspaces run in the repo root.
|
|
121
153
|
|
|
122
154
|
For API callers, `POST /api/workspace` accepts optional `mode` (`worktree` default, or `in-place`), `name` (required for in-place), and `projectId`. Existing workspace manifests without a `mode` field are treated as `worktree` mode.
|
|
123
155
|
|
|
@@ -140,9 +172,9 @@ In isolated worktree mode:
|
|
|
140
172
|
β βββ instructions/ # Scoped skill instructions for Copilot
|
|
141
173
|
βββ .cursor/
|
|
142
174
|
β βββ rules/ # Context & rules for Cursor (.mdc)
|
|
143
|
-
βββ
|
|
144
|
-
βββ
|
|
145
|
-
βββ
|
|
175
|
+
βββ contextspace.json # Feature config (branch, repos, etc.)
|
|
176
|
+
βββ contextspace-knowledge.md # Persistent workspace memory (decisions & gotchas)
|
|
177
|
+
βββ contextspace-plan.md # AI dependency build & merge plan
|
|
146
178
|
βββ my-api/ # β Git worktree on feature branch
|
|
147
179
|
βββ my-frontend/ # β Git worktree on feature branch
|
|
148
180
|
```
|
|
@@ -155,40 +187,41 @@ Open this folder in your editor β your AI assistant picks up the context and s
|
|
|
155
187
|
|
|
156
188
|
| Command | Description |
|
|
157
189
|
|:---|:---|
|
|
158
|
-
| `
|
|
159
|
-
| `
|
|
160
|
-
| `
|
|
161
|
-
| `
|
|
162
|
-
| `
|
|
163
|
-
| `
|
|
164
|
-
| `
|
|
165
|
-
| `
|
|
166
|
-
| `
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
173
|
-
| `
|
|
174
|
-
| `
|
|
175
|
-
| `
|
|
176
|
-
| `
|
|
177
|
-
| `
|
|
178
|
-
| `
|
|
179
|
-
| `
|
|
180
|
-
| `
|
|
181
|
-
| `
|
|
182
|
-
| `
|
|
183
|
-
| `
|
|
184
|
-
| `
|
|
185
|
-
| `
|
|
186
|
-
| `
|
|
187
|
-
| `
|
|
190
|
+
| `ctxspace create` | Interactive wizard to create a new worktree or in-place workspace |
|
|
191
|
+
| `ctxspace list` | List all existing workspaces, tagging in-place ones with `[in-place]` (alias: `ls`) |
|
|
192
|
+
| `ctxspace open` | Re-open a workspace in your editor |
|
|
193
|
+
| `ctxspace init` | Configure ContextSpace settings |
|
|
194
|
+
| `ctxspace project` | Manage registered repo groups: `add`, `list`/`ls`, `show`, `remove`/`rm` (alias: `proj`) |
|
|
195
|
+
| `ctxspace add-repo` | Add a repository to an existing workspace (alias: `add`) |
|
|
196
|
+
| `ctxspace remove` | Delete a workspace and prune its git worktrees when present (alias: `rm`) |
|
|
197
|
+
| `ctxspace start` | Start all services in a workspace (auto-detected) |
|
|
198
|
+
| `ctxspace stop` | Stop all running services |
|
|
199
|
+
| `ctxspace status` | Show live repo SHA/branch/dirty/push state, generated-context freshness, and service status |
|
|
200
|
+
| `ctxspace progress` | Derive implementation progress from live branch, push, and available PR state |
|
|
201
|
+
| `ctxspace logs` | Tail aggregated logs from all services |
|
|
202
|
+
| `ctxspace ui` | Start the dashboard server β the backend the desktop app embeds (`--port`, `--open`, `--strict-port`) |
|
|
203
|
+
| `ctxspace dashboard` | Open the dashboard in your browser (alias: `dash`) |
|
|
204
|
+
| `ctxspace tui` | Open the interactive terminal (TUI) dashboard |
|
|
205
|
+
| `ctxspace diff` | View changes across all sub-repositories, including unpushed commits (`--repo` to filter) |
|
|
206
|
+
| `ctxspace commit` | Commit and push changes across all modified repositories (`--repo`, `--no-push`, `--dry-run`) |
|
|
207
|
+
| `ctxspace sync` | Rebase worktree-mode repositories and reconcile generated views; in-place workspaces skip repo mutation but still reconcile stale context |
|
|
208
|
+
| `ctxspace finish` | Close out a feature: commit & push all repos, open PRs / print compare links, promote learnings, optionally remove the workspace (`-m`, `--no-pr`, `--no-knowledge`, `--cleanup`, `--dry-run`) |
|
|
209
|
+
| `ctxspace review` | Start an iterative reviewer-implementer agent loop with automated verification harnesses |
|
|
210
|
+
| `ctxspace knowledge` | Capture titled decisions/gotchas/assumptions/questions with optional `--scope` and `--evidence`; `show`, `promote` into per-repo base knowledge |
|
|
211
|
+
| `ctxspace refresh`| Regenerate plan and AI context files; use `--check` for a non-regenerating CI/pre-commit freshness gate |
|
|
212
|
+
| `ctxspace remote` | Add, push, or pull the workspace artifact repository remote without touching child repo remotes |
|
|
213
|
+
| `ctxspace handoff` | Generate a compact handoff bundle (`contextspace-handoff.md`) for session resumption |
|
|
214
|
+
| `ctxspace schedule` | Manage recurring workspace jobs: `add`, `list`, `remove`, `enable`, `disable`, `run` |
|
|
215
|
+
| `ctxspace doctor` | Run health checks and diagnostics to verify workspace integrity |
|
|
216
|
+
| `ctxspace config` | View and update configuration: `show`, `get <key>`, `set <key> <value>` |
|
|
217
|
+
| `ctxspace adapter` | Manage storage adapters: `list`, `use`, `info`, `init` |
|
|
218
|
+
| `ctxspace mcp` | Manage the MCP server for AI assistants: `run`, `setup` |
|
|
219
|
+
| `ctxspace desktop` | Launch the Electron desktop app from a source checkout (requires a built CLI and `desktop/` deps installed) |
|
|
220
|
+
| `ctxspace desktop install` | Download and checksum-verify the matching Windows NSIS/Linux AppImage release, then install it locally |
|
|
188
221
|
|
|
189
222
|
## π€ Supported AI Assistants
|
|
190
223
|
|
|
191
|
-
|
|
224
|
+
ContextSpace auto-detects which assistants are available on your machine and generates the right context files and skills for each:
|
|
192
225
|
|
|
193
226
|
| Assistant | Config File & Skills Target | How It's Detected |
|
|
194
227
|
|:---|:---|:---|
|
|
@@ -196,22 +229,22 @@ NexusFlow auto-detects which assistants are available on your machine and genera
|
|
|
196
229
|
| **Claude Code** | `CLAUDE.md` & `.claude/skills/` | `claude` in PATH |
|
|
197
230
|
| **OpenAI Codex** | `AGENTS.md`, `.agents/skills/` & `.codex/agents/` | `codex` in PATH |
|
|
198
231
|
| **GitHub Copilot** | `.github/copilot-instructions.md` & `.agents/skills/` | Always available |
|
|
199
|
-
| **Cursor** | `.cursor/rules/
|
|
232
|
+
| **Cursor** | `.cursor/rules/contextspace.mdc` & `.agents/skills/` | `cursor` in PATH |
|
|
200
233
|
|
|
201
234
|
|
|
202
235
|
## π The Feature Loop: create β work β learn β finish
|
|
203
236
|
|
|
204
|
-
|
|
237
|
+
ContextSpace is built around a single loop:
|
|
205
238
|
|
|
206
|
-
1. **`
|
|
239
|
+
1. **`ctxspace create`** β open a worktree or in-place workspace with AI context files generated. Along the way you can **scaffold a brand-new project** (a fresh local git repo in your dev directory) and, per repo, **check out an existing branch** β local or remote β instead of creating the feature branch.
|
|
207
240
|
2. **Work** β your AI assistant edits code across repos. As it goes, it records learnings:
|
|
208
241
|
```bash
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
242
|
+
ctxspace knowledge add -t decision --title "worktree isolation" -m "Chose worktrees over submodules for isolation"
|
|
243
|
+
ctxspace knowledge add -t gotcha --title "windows ebusy" --scope "path:src/core/workspace.ts" -m "fs.rm needs maxRetries on Windows (EBUSY)"
|
|
244
|
+
ctxspace progress
|
|
212
245
|
```
|
|
213
|
-
Entries land under searchable dated slug headings in `
|
|
214
|
-
3. **`
|
|
246
|
+
Entries land under searchable dated slug headings in `contextspace-knowledge.md`. Identical retries are idempotent. If the storage write succeeds but Git auto-commit fails, ContextSpace reports "recorded but not committed" instead of inviting a duplicate retry. Git auto-commit applies to local workspace storage; custom adapters retain their own durability contract. The 300-character body cap remains enforced; implementation progress is never authored and is derived live instead.
|
|
247
|
+
3. **`ctxspace finish`** β close it out:
|
|
215
248
|
- Shows a preflight status table (branch, dirty files, unpushed commits) per repo.
|
|
216
249
|
- Commits any remaining changes and pushes every branch; worktree-mode repos on the wrong branch or in a detached HEAD are skipped, while in-place workspaces use each repo's current branch.
|
|
217
250
|
- Opens a PR per repo with the GitHub CLI when it's installed and authenticated; otherwise prints a ready-to-click **compare URL** for GitHub, GitLab, Azure DevOps, or Bitbucket.
|
|
@@ -219,13 +252,15 @@ NexusFlow is built around a single loop:
|
|
|
219
252
|
- With `--cleanup`, removes the workspace once everything is confirmed pushed (never while you're `cd`'d inside it, and never touching source repositories for in-place workspaces).
|
|
220
253
|
|
|
221
254
|
```bash
|
|
222
|
-
|
|
223
|
-
|
|
255
|
+
ctxspace finish --dry-run # preview what would happen
|
|
256
|
+
ctxspace finish -m "Ship feature" --cleanup
|
|
224
257
|
```
|
|
225
258
|
|
|
226
259
|
## π MCP Server & Tools
|
|
227
260
|
|
|
228
|
-
`
|
|
261
|
+
`ctxspace mcp setup` registers ContextSpace's MCP server with Claude Desktop, Cursor, and VS Code so your assistant can drive the whole loop without leaving the session. The server exposes:
|
|
262
|
+
|
|
263
|
+
An ad-hoc `nexusflow mcp run` with no `--role` fails closed to the `readonly` tool surface. The explicit `nexusflow mcp setup` command installs `--role interactive` for the full workspace-management experience; use `--role readonly` or `--role review` for untrusted or inspection-only agents.
|
|
229
264
|
|
|
230
265
|
| Tool | What it does |
|
|
231
266
|
|:---|:---|
|
|
@@ -242,11 +277,11 @@ NexusFlow is built around a single loop:
|
|
|
242
277
|
| `get_service_logs` | Tail a running service's logs |
|
|
243
278
|
|
|
244
279
|
|
|
245
|
-
Read-only tools are annotated as such; `finish_workspace` deliberately cannot delete worktrees (cleanup stays a human-confirmed CLI action). Pass `--debug` (or set `
|
|
280
|
+
Read-only tools are annotated as such; `finish_workspace` deliberately cannot delete worktrees (cleanup stays a human-confirmed CLI action). Pass `--debug` (or set `CONTEXTSPACE_DEBUG=1`) on any CLI command to surface diagnostic logging on stderr.
|
|
246
281
|
|
|
247
282
|
## π Session History & Resumption
|
|
248
283
|
|
|
249
|
-
|
|
284
|
+
ContextSpace can discover and display your past AI coding sessions across all supported assistants. This lets you:
|
|
250
285
|
|
|
251
286
|
- **Browse** conversation transcripts from previous sessions
|
|
252
287
|
- **Search** through your interaction history
|
|
@@ -270,11 +305,11 @@ GET /api/session/:assistant/:sessionId/transcript
|
|
|
270
305
|
|
|
271
306
|
## ποΈ Pluggable Storage & Vault Adapters
|
|
272
307
|
|
|
273
|
-
|
|
308
|
+
ContextSpace supports multiple storage backends to control where workspace context maps, plans, and persistent AI knowledge files are stored. This allows keeping your Git repository workspaces completely clean from AI file clutter.
|
|
274
309
|
|
|
275
310
|
Available storage providers:
|
|
276
311
|
- **Local (`local`)** β Stores files directly in the workspace directory (default).
|
|
277
|
-
- **Central Vault (`central-vault`)** β Stores files in a centralized folder on your machine at `~/.nexusflow/vault
|
|
312
|
+
- **Central Vault (`central-vault`)** β Stores files in a centralized folder on your machine at `~/.contextspace/vault/` (with fallback to `~/.nexusflow/vault/`). The folder is plain markdown, so it can be opened as (or symlinked into) an Obsidian vault.
|
|
278
313
|
|
|
279
314
|
### CLI Adapter Management
|
|
280
315
|
|
|
@@ -282,16 +317,16 @@ Configure storage adapters from the command line:
|
|
|
282
317
|
|
|
283
318
|
```bash
|
|
284
319
|
# List all registered storage adapters and the active provider
|
|
285
|
-
|
|
320
|
+
ctxspace adapter list
|
|
286
321
|
|
|
287
322
|
# View configurations and fields for a specific adapter
|
|
288
|
-
|
|
323
|
+
ctxspace adapter info central-vault
|
|
289
324
|
|
|
290
325
|
# Switch to a different adapter (e.g. central-vault) and configure its settings
|
|
291
|
-
|
|
326
|
+
ctxspace adapter use central-vault
|
|
292
327
|
|
|
293
328
|
# Scaffolds a template for creating a new custom storage adapter plugin
|
|
294
|
-
|
|
329
|
+
ctxspace adapter init my-custom-plugin
|
|
295
330
|
```
|
|
296
331
|
|
|
297
332
|
## π Scheduled Workspace Jobs
|
|
@@ -300,24 +335,24 @@ Keep workspaces fresh without manual runs β schedule recurring `sync` or `refr
|
|
|
300
335
|
|
|
301
336
|
```bash
|
|
302
337
|
# Rebase + regenerate context every 2 hours
|
|
303
|
-
|
|
338
|
+
ctxspace schedule add --task sync --every 2h
|
|
304
339
|
|
|
305
340
|
# Nightly context refresh for a specific workspace
|
|
306
|
-
|
|
341
|
+
ctxspace schedule add ~/dev/workspaces/my-feature --task refresh --every 1d
|
|
307
342
|
|
|
308
343
|
# Inspect, pause, or run jobs
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
344
|
+
ctxspace schedule list
|
|
345
|
+
ctxspace schedule disable <id>
|
|
346
|
+
ctxspace schedule run <id>
|
|
312
347
|
```
|
|
313
348
|
|
|
314
|
-
Jobs are stored in `~/.nexusflow/schedules.json` and executed while a
|
|
349
|
+
Jobs are stored in `~/.contextspace/schedules.json` (fallback: `~/.nexusflow/schedules.json`) and executed while a ContextSpace server is running β start one with `ctxspace ui` (use `--daemon` for a background host). A job whose interval elapsed while no server was running simply runs on the next scheduler tick.
|
|
315
350
|
|
|
316
|
-
Scheduled runs are **token-efficient by design**: they use the same analysis cache as `
|
|
351
|
+
Scheduled runs are **token-efficient by design**: they use the same analysis cache as `ctxspace refresh`, so only repos whose content changed are re-analyzed, and unchanged context files are left byte-identical (no git churn, no invalidated AI prompt caches). The dashboard API exposes the same functionality under `/api/schedules`.
|
|
317
352
|
|
|
318
353
|
## π§© Resource Library
|
|
319
354
|
|
|
320
|
-
|
|
355
|
+
ContextSpace provides separate libraries for portable Agent Skills and Codex-native custom agents. Skills are complete directories; agents are validated native TOML definitions rather than skills disguised as personas.
|
|
321
356
|
|
|
322
357
|
Skills bundle metadata triggers (for AI autonomous discovery) with full Markdown execution playbooks, auxiliary reference runbooks (`references/`), and automation scripts (`scripts/`).
|
|
323
358
|
|
|
@@ -328,7 +363,7 @@ Skills are grouped into clear visual accordion boxes by category. You can drag a
|
|
|
328
363
|
#### Built-in Category Templates & Skills:
|
|
329
364
|
- π **Pull Requests & Review**: `pr-review-toolkit`, `pr-description-gen`, `merge-conflict-resolver`
|
|
330
365
|
- π§ͺ **Testing & Quality Assurance**: `verifier-workspace`, `e2e-runner`, `unit-test-coverage`
|
|
331
|
-
- π¦ **Cross-Repo & Release Ordering**: `
|
|
366
|
+
- π¦ **Cross-Repo & Release Ordering**: `cross-repo-local-package-loop`, `release-ordering`
|
|
332
367
|
- ποΈ **Database & Migrations**: `schema-migration-validator`, `sql-fluff-linter`
|
|
333
368
|
- π‘οΈ **Security & Auditing**: `secret-scanner`, `security-auditor`
|
|
334
369
|
|
|
@@ -342,7 +377,7 @@ The Codex Agent Library supports creating, editing, importing, and deleting basi
|
|
|
342
377
|
|
|
343
378
|
### Cross-Harness Deployment
|
|
344
379
|
|
|
345
|
-
When a workspace is refreshed,
|
|
380
|
+
When a workspace is refreshed, ContextSpace reconciles enabled resources through `.contextspace/resources.lock.json` (fallback: `.nexusflow/resources.lock.json`). It refuses unmanaged target collisions, removes only unchanged ContextSpace-owned outputs, and reports modified-file conflicts instead of overwriting them.
|
|
346
381
|
|
|
347
382
|
| Assistant Harness | Deployment Path | Format |
|
|
348
383
|
|:---|:---|:---|
|
|
@@ -356,26 +391,47 @@ Codex custom agents are separate resources and deploy to `.codex/agents/<name>.t
|
|
|
356
391
|
|
|
357
392
|
## π₯ Teamwork Strategy Workflows
|
|
358
393
|
|
|
359
|
-
|
|
394
|
+
ContextSpace allows you to predefine orchestration workflows and cooperation rules that govern how multiple AI subagents coordinate when solving complex, multi-repo software engineering tasks.
|
|
360
395
|
|
|
361
396
|
You can select a strategy workflow when creating a workspace (or define custom ones). Built-in templates include:
|
|
362
397
|
- **Plan-Implement-Review** β A structured, multi-agent flow where an Orchestrator coordinates planning, implementation, review, and documentation.
|
|
363
398
|
- **Research-Verify** β A fast iteration strategy centered on research, drafting code, and immediately running verification test suites.
|
|
364
399
|
- **Solo Developer** β A simplified, lightweight direct-action workflow for minor tweaks and linear tasks.
|
|
400
|
+
- **Cost-Aware Sol Control + Luna Worker** β Optional advisory instructions for a cheaper Luna/max builder and a more capable/expensive Sol reviewer, with fresh-context review, acceptance-driven feedback, finite safety-guard escalation, and no silent model upgrades.
|
|
365
401
|
|
|
366
402
|
### Custom Strategies & AI Inspection
|
|
367
403
|
|
|
368
404
|
You can create, edit, or delete custom strategies directly via the Web Dashboard's **Team Strategies** tab. Strategies are written in clean Markdown guidelines and stored in:
|
|
369
|
-
`~/.nexusflow/workflows/`
|
|
405
|
+
`~/.contextspace/workflows/` (with fallback to `~/.nexusflow/workflows/`)
|
|
370
406
|
|
|
371
407
|
The dashboard integrates an **AI Strategy Analysis** inspector:
|
|
372
408
|
1. Select an AI assistant harness installed on your machine (e.g. *Claude Code*, *Antigravity*).
|
|
373
409
|
2. (Optional) Provide a comment or specific evaluation focus (e.g. *"Ensure subagent roles are distinct"*).
|
|
374
410
|
3. Click **Inspect Strategy** to have the AI analyze the strategy rules, identify ambiguities/contradictions, rate its orchestration effectiveness, and generate an optimized rewritten guideline.
|
|
375
411
|
|
|
412
|
+
## π Workrooms (Experimental)
|
|
413
|
+
|
|
414
|
+
Workrooms let two or more developers share explicitly reviewed feature context, handoffs, workflow progress, skills, agents, and workflows over a private LAN or an existing VPN. Each developer keeps their own Git checkout, credentials, terminal, editor, and AI sessions. NexusFlow never collects source files, diffs, local paths, or AI transcripts automatically, but user-authored context can contain sensitive text and must be reviewed before inclusion.
|
|
415
|
+
|
|
416
|
+
Open **Workrooms** in the dashboard to start or join one. A host selects one network address, sets a room password, and creates a 30-minute one-use invitation. The guest verifies the invitation's pinned TLS fingerprint and waits for explicit host approval. The privileged NexusFlow dashboard always remains on localhost; Workrooms use a separate, narrowly scoped HTTPS server that runs only while hosted.
|
|
417
|
+
|
|
418
|
+
Shared resources are immutable, digest-verified, and bounded by per-package and room-wide storage quotas. NexusFlow downloads them to a local review cache, shows the exact applied definition and complete file contents, identifies local create/update conflicts, and requires approval bound to both the package digest and the reviewed local resource revision before updating the local catalog. Optional compatibility metadata is enforced again at both download and apply: `platforms` lists `win32`, `linux`, and/or `darwin`, while `nexusflow` accepts an exact `major.minor.patch` version or space-separated comparisons such as `>=2.8.0 <3.0.0`. Hosts can quarantine a bad version, which removes it from downloads and future exports, then explicitly purge its digest to release the package bytes and room quota; both actions are audited. Quarantine and purge do not remotely erase review-cache copies that another developer already downloaded; those remain local until that developer removes them. Agent credentials can read context and propose workflow completion only; MCP Workroom reads are explicitly labeled as untrusted collaborator data and are available only to read-only/review tool roles. Human host authority is encrypted at rest and unlocked into a generation-bound HttpOnly local-dashboard session for confirmation and every other mutation. If that browser cookie is lost, a host must enter the room password to recover control; a guest must leave the locked local connection and join again. A paused host must also re-enter the room password to resume. Hosts can create encrypted portable backups; imports are fully validated before a listener starts, are quarantined if any later creation step fails, always receive new credentials and a new TLS identity, and can be inspected and discarded from the dashboard before retrying the original export.
|
|
419
|
+
|
|
420
|
+
The optional **Cost-Aware Sol Control + Luna Worker** strategy can be selected locally or shared as an immutable Workroom workflow. It is advisory: NexusFlow does not currently launch those roles, enforce their model/cost tiers or reasoning effort, create fresh review contexts, track acceptance, or wait for provider rate-limit resets. The developer or selected agent harness must perform those controls. Accepted, in-scope review findings return to the same cheaper builder until the explicit acceptance criteria are met; a blocked prerequisite, repeated no-progress finding, or finite safety guard requires an explicit human decision and never silently auto-accepts or loops forever.
|
|
421
|
+
|
|
422
|
+
Workrooms do not provide a public relay, NAT traversal, remote commands, shared terminals, raw diff sharing, browser-only guest access, or automatic resource updates. For home working, connect both machines to the same organization VPN and choose the VPN interface when hosting.
|
|
423
|
+
|
|
376
424
|
## π₯οΈ Dashboard (Desktop App & Browser)
|
|
377
425
|
|
|
378
|
-
The primary
|
|
426
|
+
The primary distribution is the Electron desktop app from GitHub Releases (or
|
|
427
|
+
`ctxspace desktop install`). A source checkout can run it with
|
|
428
|
+
`npm run setup && npm run build && npm start --prefix desktop`. It embeds the
|
|
429
|
+
same full-featured dashboard available in a browser. For browser access, run
|
|
430
|
+
`ctxspace dashboard`; `ctxspace ui` starts the underlying server without
|
|
431
|
+
opening anything (add `--open` to launch a browser). The browser is fully
|
|
432
|
+
functional except that native desktop update installation is unavailable; its
|
|
433
|
+
update panel links to the release page. For the platform rationale (Electron vs
|
|
434
|
+
Tauri and friends), see [docs/desktop-platform.md](docs/desktop-platform.md). The dashboard is a full-featured dark-themed GUI:
|
|
379
435
|
|
|
380
436
|
- **Workspaces tab** β create, browse, and manage feature workspaces
|
|
381
437
|
- **Skills & Agents tab** β manage reusable skills, categories, drag-and-drop boxes, and workspace skill assignments
|
|
@@ -383,16 +439,18 @@ The primary GUI is the Electron desktop app in `desktop/` (`npm install && npm s
|
|
|
383
439
|
- **Open withβ¦** β launch the workspace directly in a detected Codex Desktop, Claude Desktop, VS Code, VS Code Insiders, Cursor, JetBrains IDE, or other supported editor; unavailable apps stay out of the primary picker
|
|
384
440
|
- **AI & Sessions (GA)** β use the embedded first-party Claude/Codex SDK or local CLI harnesses with provider-owned model selection, then inspect and resume recorded sessions; subscription sign-ins are reused when available
|
|
385
441
|
- **Logs panel** β real-time aggregated service log output
|
|
386
|
-
- **Config panel** β edit
|
|
442
|
+
- **Config panel** β edit ContextSpace settings from the browser
|
|
387
443
|
|
|
388
444
|
|
|
389
445
|
The deprecated `POST /api/open-editor` endpoint remains available to older GUI clients only for recognized graphical editors. Interactive terminal editors such as Vim, Neovim, Nano, and Emacs are not supported by that detached HTTP launch route because it cannot provide a TTY.
|
|
390
446
|
|
|
391
447
|
The dashboard runs a local [Hono](https://hono.dev) server on port 3000 and serves a [React](https://react.dev) + [Vite](https://vite.dev) frontend.
|
|
392
448
|
|
|
449
|
+
When running the Vite development server separately on `http://localhost:5173`, start the backend with `NEXUSFLOW_DASHBOARD_ORIGIN` set to that exact origin. Workroom browser requests intentionally fail closed when this development origin is absent or differs by host, scheme, or port.
|
|
450
|
+
|
|
393
451
|
## βοΈ Configuration
|
|
394
452
|
|
|
395
|
-
|
|
453
|
+
ContextSpace stores its config at `~/.contextspace/config.json` (fallback: `~/.nexusflow/config.json`):
|
|
396
454
|
|
|
397
455
|
```json
|
|
398
456
|
{
|
|
@@ -411,28 +469,29 @@ NexusFlow stores its config at `~/.nexusflow/config.json`:
|
|
|
411
469
|
| `scanDepth` | `2` | How many levels deep to scan for repos |
|
|
412
470
|
| `defaultAssistant` | `null` | Pre-select an assistant during workspace creation |
|
|
413
471
|
|
|
414
|
-
Run `
|
|
472
|
+
Run `ctxspace init` to interactively set these values.
|
|
415
473
|
|
|
416
474
|
## ποΈ Architecture
|
|
417
475
|
|
|
418
476
|
```
|
|
419
|
-
|
|
477
|
+
ContextSpace/
|
|
420
478
|
βββ src/
|
|
421
479
|
β βββ index.ts # CLI entry point (Commander.js)
|
|
422
480
|
β βββ server.ts # Hono API server (REST endpoints)
|
|
423
481
|
β βββ types.ts # Shared TypeScript interfaces
|
|
424
482
|
β βββ commands/ # CLI command handlers
|
|
425
|
-
β β βββ create.ts #
|
|
426
|
-
β β βββ init.ts #
|
|
427
|
-
β β βββ list.ts #
|
|
428
|
-
β β βββ open.ts #
|
|
429
|
-
β β βββ start.ts #
|
|
430
|
-
β β βββ stop.ts #
|
|
431
|
-
β β βββ status.ts #
|
|
432
|
-
β β βββ logs.ts #
|
|
433
|
-
β β βββ ui.ts #
|
|
483
|
+
β β βββ create.ts # ctxspace create
|
|
484
|
+
β β βββ init.ts # ctxspace init
|
|
485
|
+
β β βββ list.ts # ctxspace list
|
|
486
|
+
β β βββ open.ts # ctxspace open
|
|
487
|
+
β β βββ start.ts # ctxspace start
|
|
488
|
+
β β βββ stop.ts # ctxspace stop
|
|
489
|
+
β β βββ status.ts # ctxspace status
|
|
490
|
+
β β βββ logs.ts # ctxspace logs
|
|
491
|
+
β β βββ ui.ts # ctxspace ui
|
|
434
492
|
β βββ core/ # Core workspace logic
|
|
435
|
-
β β βββ
|
|
493
|
+
β β βββ constants.ts # Brand, manifest & lockfile constants
|
|
494
|
+
β β βββ config.ts # Config management (~/.contextspace/)
|
|
436
495
|
β β βββ scanner.ts # Git repo scanner
|
|
437
496
|
β β βββ worktree.ts # Git worktree operations
|
|
438
497
|
β β βββ workspace.ts # Workspace CRUD
|
|
@@ -449,11 +508,11 @@ NexusFlow/
|
|
|
449
508
|
β β βββ antigravity.ts # Antigravity AGENTS.md generator
|
|
450
509
|
β β βββ codex.ts # Codex AGENTS.md generator
|
|
451
510
|
β β βββ copilot.ts # copilot-instructions.md generator
|
|
452
|
-
β β βββ cursor.ts #
|
|
511
|
+
β β βββ cursor.ts # contextspace.mdc generator
|
|
453
512
|
β β βββ skills-generator.ts # Cross-harness skill deployment (.agents, .claude, .cursor, .codex)
|
|
454
513
|
β βββ orchestration/ # Service start/stop/log management
|
|
455
514
|
β βββ utils/ # Helper utilities
|
|
456
|
-
β βββ skills-catalog.ts # Skills & Categories catalog manager (~/.
|
|
515
|
+
β βββ skills-catalog.ts # Skills & Categories catalog manager (~/.contextspace/)
|
|
457
516
|
β βββ git.ts # Git operations
|
|
458
517
|
β βββ detect-ai.ts # AI assistant detection
|
|
459
518
|
β βββ detect-editors.ts # Editor detection
|
|
@@ -482,9 +541,9 @@ Contributions are welcome! Here's how to get set up:
|
|
|
482
541
|
git clone https://github.com/antan87/NexusFlow.git
|
|
483
542
|
cd NexusFlow
|
|
484
543
|
|
|
485
|
-
# Install all dependencies
|
|
544
|
+
# Install all source dependencies
|
|
486
545
|
npm install
|
|
487
|
-
|
|
546
|
+
npm run setup
|
|
488
547
|
|
|
489
548
|
# Start the TypeScript compiler in watch mode
|
|
490
549
|
npm run dev
|
|
@@ -60,6 +60,7 @@ export declare class AcpCliAdapter extends EventEmitter implements AgentHarness
|
|
|
60
60
|
private acceptAgentMessages;
|
|
61
61
|
private turnProducedMessage;
|
|
62
62
|
private stderrTail;
|
|
63
|
+
private readonly pendingPermissions;
|
|
63
64
|
constructor(options: AcpCliAdapterOptions);
|
|
64
65
|
start(cwd: string, session?: AgentSession): Promise<void>;
|
|
65
66
|
private connect;
|
|
@@ -70,6 +71,7 @@ export declare class AcpCliAdapter extends EventEmitter implements AgentHarness
|
|
|
70
71
|
private reportConnectionFailure;
|
|
71
72
|
private toActionableError;
|
|
72
73
|
private stopTransport;
|
|
74
|
+
respondToApproval(requestId: string, decision: 'allow' | 'deny', _message?: string): void;
|
|
73
75
|
private shutdownTransport;
|
|
74
76
|
}
|
|
75
77
|
//# sourceMappingURL=AcpCliAdapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcpCliAdapter.d.ts","sourceRoot":"","sources":["../../src/agent/AcpCliAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AcpCliAdapter.d.ts","sourceRoot":"","sources":["../../src/agent/AcpCliAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC3E,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC3E,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,CAAC;IACtB,UAAU,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,YAAY,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC5C,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACxC;AAoDD,kFAAkF;AAClF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY,CAsB7E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,GAAG,CAAC,wBAAwB,GACnC,GAAG,CAAC,yBAAyB,CAY/B;AAED,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEtD;AAWD;;;;;;GAMG;AACH,qBAAa,aAAc,SAAQ,YAAa,YAAW,YAAY;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsB;IAEvD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAG9B;gBAEO,OAAO,EAAE,oBAAoB;IAM5B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAgBxD,OAAO;IA4ErB,OAAO,CAAC,mBAAmB;IAad,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BvC,IAAI,IAAI,IAAI;IAanB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,aAAa;IAYd,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;YA2BlF,iBAAiB;CAehC"}
|