@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
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module core/brand-config
|
|
3
|
+
* Centralized, strongly-typed Brand and Naming Configuration System.
|
|
4
|
+
*
|
|
5
|
+
* Governs all product identities, CLI binary names, aliases, manifest files,
|
|
6
|
+
* lockfiles, markdown artifacts, environment variables, sentinels, and fallback
|
|
7
|
+
* chains.
|
|
8
|
+
*
|
|
9
|
+
* Future rebrands or white-label naming changes only require updating this
|
|
10
|
+
* configuration structure.
|
|
11
|
+
*/
|
|
12
|
+
import * as path from 'node:path';
|
|
13
|
+
import * as os from 'node:os';
|
|
14
|
+
import * as fs from 'node:fs/promises';
|
|
15
|
+
import { existsSync } from 'node:fs';
|
|
16
|
+
import { createHash } from 'node:crypto';
|
|
17
|
+
export const BRAND_CONFIG = {
|
|
18
|
+
identity: {
|
|
19
|
+
name: 'ContextSpace',
|
|
20
|
+
shortName: 'CS',
|
|
21
|
+
legacyName: 'NexusFlow',
|
|
22
|
+
cliName: 'ctxspace',
|
|
23
|
+
cliAliases: ['contextspace', 'cs', 'nexusflow'],
|
|
24
|
+
tagline: 'Deterministic AI Context Engine & Multi-Repo Workspace Orchestrator',
|
|
25
|
+
},
|
|
26
|
+
files: {
|
|
27
|
+
manifest: {
|
|
28
|
+
primary: 'contextspace.json',
|
|
29
|
+
legacy: 'nexusflow.json',
|
|
30
|
+
},
|
|
31
|
+
lock: {
|
|
32
|
+
primary: 'contextspace.lock',
|
|
33
|
+
legacy: 'nexusflow.lock',
|
|
34
|
+
},
|
|
35
|
+
knowledge: {
|
|
36
|
+
primary: 'contextspace-knowledge.md',
|
|
37
|
+
legacy: 'nexusflow-knowledge.md',
|
|
38
|
+
},
|
|
39
|
+
plan: {
|
|
40
|
+
primary: 'contextspace-plan.md',
|
|
41
|
+
legacy: 'nexusflow-plan.md',
|
|
42
|
+
},
|
|
43
|
+
overview: {
|
|
44
|
+
primary: 'contextspace-overview.md',
|
|
45
|
+
legacy: 'nexusflow-overview.md',
|
|
46
|
+
},
|
|
47
|
+
handoff: {
|
|
48
|
+
primary: 'contextspace-handoff.md',
|
|
49
|
+
legacy: 'nexusflow-handoff.md',
|
|
50
|
+
},
|
|
51
|
+
cursorRule: {
|
|
52
|
+
primary: '.cursor/rules/contextspace.mdc',
|
|
53
|
+
legacy: '.cursor/rules/nexusflow.mdc',
|
|
54
|
+
},
|
|
55
|
+
configDir: {
|
|
56
|
+
primary: '.contextspace',
|
|
57
|
+
legacy: '.nexusflow',
|
|
58
|
+
},
|
|
59
|
+
chatLedger: {
|
|
60
|
+
primary: '.contextspace/chat.jsonl',
|
|
61
|
+
legacy: '.nexusflow/chat.jsonl',
|
|
62
|
+
},
|
|
63
|
+
state: {
|
|
64
|
+
primary: '.contextspace-state.json',
|
|
65
|
+
legacy: '.nexusflow-state.json',
|
|
66
|
+
},
|
|
67
|
+
runningState: {
|
|
68
|
+
primary: '.contextspace-running.json',
|
|
69
|
+
legacy: '.nexusflow-running.json',
|
|
70
|
+
},
|
|
71
|
+
analysisCache: {
|
|
72
|
+
primary: '.contextspace-analysis-cache.json',
|
|
73
|
+
legacy: '.nexusflow-analysis-cache.json',
|
|
74
|
+
},
|
|
75
|
+
logsDir: {
|
|
76
|
+
primary: '.contextspace-logs',
|
|
77
|
+
legacy: '.nexusflow-logs',
|
|
78
|
+
},
|
|
79
|
+
mutationLock: {
|
|
80
|
+
primary: '.contextspace-mutation.lock',
|
|
81
|
+
legacy: '.nexusflow-mutation.lock',
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
env: {
|
|
85
|
+
home: ['CONTEXTSPACE_HOME', 'NEXUSFLOW_HOME'],
|
|
86
|
+
port: ['CONTEXTSPACE_PORT', 'CS_PORT', 'NEXUSFLOW_PORT', 'NF_PORT'],
|
|
87
|
+
packagedExe: ['CONTEXTSPACE_PACKAGED_EXE', 'NEXUSFLOW_PACKAGED_EXE'],
|
|
88
|
+
desktopLog: ['CONTEXTSPACE_DESKTOP_LOG', 'NEXUSFLOW_DESKTOP_LOG'],
|
|
89
|
+
desktopUri: ['CONTEXTSPACE_DESKTOP_URI', 'NEXUSFLOW_DESKTOP_URI'],
|
|
90
|
+
},
|
|
91
|
+
mcp: {
|
|
92
|
+
serverName: 'contextspace-mcp',
|
|
93
|
+
legacyServerName: 'nexusflow-mcp',
|
|
94
|
+
adapterServerName: 'contextspace',
|
|
95
|
+
legacyAdapterServerName: 'nexusflow',
|
|
96
|
+
packageName: '@mrpatronz/nexusflow',
|
|
97
|
+
legacyPackageName: '@mrpatronz/nexusflow',
|
|
98
|
+
},
|
|
99
|
+
extension: {
|
|
100
|
+
id: 'contextspace.contextspace-vscode',
|
|
101
|
+
legacyId: 'nexusflow.nexusflow-vscode',
|
|
102
|
+
commandPrefix: 'contextspace',
|
|
103
|
+
legacyCommandPrefix: 'nexusflow',
|
|
104
|
+
},
|
|
105
|
+
desktop: {
|
|
106
|
+
appId: 'se.hogia.nexusflow',
|
|
107
|
+
productName: 'ContextSpace',
|
|
108
|
+
legacyProductName: 'NexusFlow',
|
|
109
|
+
installerName: 'ContextSpaceSetup.exe',
|
|
110
|
+
legacyInstallerName: 'NexusFlowSetup.exe',
|
|
111
|
+
readyTokenPrefixes: ['CONTEXTSPACE_READY_PORT', 'NEXUSFLOW_READY_PORT'],
|
|
112
|
+
},
|
|
113
|
+
sentinels: {
|
|
114
|
+
freshnessStart: ['CONTEXTSPACE:FRESHNESS:START', 'NEXUSFLOW:FRESHNESS:START'],
|
|
115
|
+
freshnessEnd: ['CONTEXTSPACE:FRESHNESS:END', 'NEXUSFLOW:FRESHNESS:END'],
|
|
116
|
+
},
|
|
117
|
+
resources: {
|
|
118
|
+
skillsDir: 'skills',
|
|
119
|
+
agentsDir: 'agents',
|
|
120
|
+
workflowsDir: 'workflows',
|
|
121
|
+
locksDir: '.locks',
|
|
122
|
+
catalogLockFile: 'resource-catalog.lock',
|
|
123
|
+
adminLockFile: 'resource-administration.lock',
|
|
124
|
+
managedOwnershipName: 'ContextSpace',
|
|
125
|
+
legacyOwnershipName: 'NexusFlow',
|
|
126
|
+
metadataKey: 'contextspace',
|
|
127
|
+
legacyMetadataKey: 'nexusflow',
|
|
128
|
+
packageLoopSkillId: 'contextspace-local-package-loop',
|
|
129
|
+
legacyPackageLoopSkillId: 'nexusflow-local-package-loop',
|
|
130
|
+
releaseOrderingSkillId: 'contextspace-release-ordering',
|
|
131
|
+
legacyReleaseOrderingSkillId: 'nexusflow-release-ordering',
|
|
132
|
+
},
|
|
133
|
+
stores: {
|
|
134
|
+
config: 'config.json',
|
|
135
|
+
projects: 'projects.json',
|
|
136
|
+
schedules: 'schedules.json',
|
|
137
|
+
categories: 'categories.json',
|
|
138
|
+
},
|
|
139
|
+
github: {
|
|
140
|
+
owner: 'antan87',
|
|
141
|
+
repo: 'NexusFlow',
|
|
142
|
+
legacyRepo: 'NexusFlow',
|
|
143
|
+
repoUrl: 'https://github.com/antan87/NexusFlow',
|
|
144
|
+
releaseApiUrl: 'https://api.github.com/repos/antan87/NexusFlow/releases/latest',
|
|
145
|
+
releasePageUrl: 'https://github.com/antan87/NexusFlow/releases/latest',
|
|
146
|
+
userAgent: 'ContextSpace-Updater',
|
|
147
|
+
legacyUserAgent: 'NexusFlow-Updater',
|
|
148
|
+
desktopInstallerUserAgent: 'ContextSpace-Desktop-Installer',
|
|
149
|
+
},
|
|
150
|
+
engine: {
|
|
151
|
+
id: 'contextspace',
|
|
152
|
+
legacyId: 'nexusflow',
|
|
153
|
+
name: 'ContextSpace Engine',
|
|
154
|
+
command: 'ctxspace',
|
|
155
|
+
legacyCommand: 'nexusflow',
|
|
156
|
+
npmPackage: '@mrpatronz/nexusflow',
|
|
157
|
+
legacyNpmPackage: '@mrpatronz/nexusflow',
|
|
158
|
+
},
|
|
159
|
+
terminal: {
|
|
160
|
+
titlePrefix: 'ContextSpace:',
|
|
161
|
+
legacyTitlePrefix: 'NexusFlow:',
|
|
162
|
+
defaultTitle: 'ContextSpace Terminal',
|
|
163
|
+
legacyDefaultTitle: 'NexusFlow Terminal',
|
|
164
|
+
runnerTitle: 'ContextSpace Runner',
|
|
165
|
+
legacyRunnerTitle: 'NexusFlow Runner',
|
|
166
|
+
},
|
|
167
|
+
workrooms: {
|
|
168
|
+
bootstrapHeaders: ['x-contextspace-workroom-bootstrap', 'x-nexusflow-workroom-bootstrap'],
|
|
169
|
+
bootstrapCookies: ['contextspace_workroom_bootstrap', 'nexusflow_workroom_bootstrap'],
|
|
170
|
+
defaultBootstrapHeader: 'X-ContextSpace-Workroom-Bootstrap',
|
|
171
|
+
defaultBootstrapCookie: 'contextspace_workroom_bootstrap',
|
|
172
|
+
inviteProtocols: ['contextspace:', 'nexusflow:'],
|
|
173
|
+
defaultInviteProtocol: 'contextspace:',
|
|
174
|
+
roomExportExtension: '.contextspace-room.json',
|
|
175
|
+
legacyRoomExportExtension: '.nexusflow-room.json',
|
|
176
|
+
},
|
|
177
|
+
theme: {
|
|
178
|
+
primary: '#F97316',
|
|
179
|
+
sunset: {
|
|
180
|
+
gold: '#FDE047',
|
|
181
|
+
coral: '#FB923C',
|
|
182
|
+
hibiscus: '#F43F5E',
|
|
183
|
+
indigo: '#6366F1',
|
|
184
|
+
},
|
|
185
|
+
dark: {
|
|
186
|
+
background: '#0A0812',
|
|
187
|
+
foreground: '#F8FAFC',
|
|
188
|
+
card: '#140F22',
|
|
189
|
+
popover: '#181228',
|
|
190
|
+
border: 'rgba(251, 146, 60, 0.14)',
|
|
191
|
+
},
|
|
192
|
+
light: {
|
|
193
|
+
background: '#FAF8F6',
|
|
194
|
+
foreground: '#0F172A',
|
|
195
|
+
card: '#FFFFFF',
|
|
196
|
+
popover: '#FFFFFF',
|
|
197
|
+
border: 'rgba(234, 88, 12, 0.10)',
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
};
|
|
201
|
+
// ─── Typed Resolution Helpers ────────────────────────────────────────────────
|
|
202
|
+
/**
|
|
203
|
+
* Returns the first non-empty value from a list of environment variable names.
|
|
204
|
+
*/
|
|
205
|
+
export function resolveFirstEnv(envKeys) {
|
|
206
|
+
for (const key of envKeys) {
|
|
207
|
+
const val = process.env[key];
|
|
208
|
+
if (val && val !== 'undefined' && val.trim()) {
|
|
209
|
+
return val.trim();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return undefined;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Resolves the ContextSpace global home directory.
|
|
216
|
+
* Priority: CONTEXTSPACE_HOME -> NEXUSFLOW_HOME -> ~/.contextspace -> ~/.nexusflow -> ~/.contextspace
|
|
217
|
+
*/
|
|
218
|
+
export function resolveBrandHomeDir() {
|
|
219
|
+
const csHome = process.env.CONTEXTSPACE_HOME?.trim();
|
|
220
|
+
const nfHome = process.env.NEXUSFLOW_HOME?.trim();
|
|
221
|
+
if (csHome && existsSync(path.resolve(csHome)))
|
|
222
|
+
return path.resolve(csHome);
|
|
223
|
+
if (nfHome && existsSync(path.resolve(nfHome)) && !csHome)
|
|
224
|
+
return path.resolve(nfHome);
|
|
225
|
+
if (csHome)
|
|
226
|
+
return path.resolve(csHome);
|
|
227
|
+
if (nfHome)
|
|
228
|
+
return path.resolve(nfHome);
|
|
229
|
+
const primary = path.join(os.homedir(), BRAND_CONFIG.files.configDir.primary);
|
|
230
|
+
const legacy = path.join(os.homedir(), BRAND_CONFIG.files.configDir.legacy);
|
|
231
|
+
if (existsSync(primary))
|
|
232
|
+
return primary;
|
|
233
|
+
if (existsSync(legacy))
|
|
234
|
+
return legacy;
|
|
235
|
+
return primary;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Resolves the path of a file key within a workspace, checking primary then legacy.
|
|
239
|
+
* If neither exists, returns the canonical primary path.
|
|
240
|
+
*/
|
|
241
|
+
export async function resolveWorkspaceFilePath(workspaceDir, key) {
|
|
242
|
+
const pair = BRAND_CONFIG.files[key];
|
|
243
|
+
const primaryPath = path.join(workspaceDir, pair.primary);
|
|
244
|
+
try {
|
|
245
|
+
await fs.access(primaryPath);
|
|
246
|
+
return { path: primaryPath, isLegacy: false, exists: true };
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
const legacyPath = path.join(workspaceDir, pair.legacy);
|
|
250
|
+
try {
|
|
251
|
+
await fs.access(legacyPath);
|
|
252
|
+
return { path: legacyPath, isLegacy: true, exists: true };
|
|
253
|
+
}
|
|
254
|
+
catch {
|
|
255
|
+
return { path: primaryPath, isLegacy: false, exists: false };
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Synchronously resolves a workspace file path with fallback to legacy.
|
|
261
|
+
*/
|
|
262
|
+
export function resolveWorkspaceFilePathSync(workspaceDir, key) {
|
|
263
|
+
const pair = BRAND_CONFIG.files[key];
|
|
264
|
+
const primaryPath = path.join(workspaceDir, pair.primary);
|
|
265
|
+
if (existsSync(primaryPath)) {
|
|
266
|
+
return { path: primaryPath, isLegacy: false, exists: true };
|
|
267
|
+
}
|
|
268
|
+
const legacyPath = path.join(workspaceDir, pair.legacy);
|
|
269
|
+
if (existsSync(legacyPath)) {
|
|
270
|
+
return { path: legacyPath, isLegacy: true, exists: true };
|
|
271
|
+
}
|
|
272
|
+
return { path: primaryPath, isLegacy: false, exists: false };
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Synchronously resolves the workspace configuration directory (.contextspace vs .nexusflow).
|
|
276
|
+
*/
|
|
277
|
+
export function resolveWorkspaceConfigDir(workspaceDir) {
|
|
278
|
+
return resolveWorkspaceFilePathSync(workspaceDir, 'configDir');
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Synchronously resolves the workspace chat ledger path and directory.
|
|
282
|
+
* Preserves existing legacy history when present, and supports mixed or native workspaces.
|
|
283
|
+
*/
|
|
284
|
+
export function resolveWorkspaceChatLedgerSync(workspaceDir) {
|
|
285
|
+
const primaryDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.primary);
|
|
286
|
+
const legacyDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.legacy);
|
|
287
|
+
const primaryChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.primary);
|
|
288
|
+
const legacyChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.legacy);
|
|
289
|
+
const primaryExists = existsSync(primaryChat);
|
|
290
|
+
const legacyExists = existsSync(legacyChat);
|
|
291
|
+
const primaryDirExists = existsSync(primaryDir);
|
|
292
|
+
const legacyDirExists = existsSync(legacyDir);
|
|
293
|
+
const readPaths = [];
|
|
294
|
+
if (legacyExists)
|
|
295
|
+
readPaths.push(legacyChat);
|
|
296
|
+
if (primaryExists && !readPaths.includes(primaryChat))
|
|
297
|
+
readPaths.push(primaryChat);
|
|
298
|
+
// 1. If primary chat file exists, use it as the authoritative ledger.
|
|
299
|
+
if (primaryExists) {
|
|
300
|
+
return {
|
|
301
|
+
chatPath: primaryChat,
|
|
302
|
+
chatDir: primaryDir,
|
|
303
|
+
isLegacy: false,
|
|
304
|
+
exists: true,
|
|
305
|
+
readPaths,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
// 2. If legacy chat file exists, preserve existing history and use it.
|
|
309
|
+
if (legacyExists) {
|
|
310
|
+
return {
|
|
311
|
+
chatPath: legacyChat,
|
|
312
|
+
chatDir: legacyDir,
|
|
313
|
+
isLegacy: true,
|
|
314
|
+
exists: true,
|
|
315
|
+
readPaths,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
// 3. Neither file exists yet.
|
|
319
|
+
// If only legacy directory exists, place in legacy directory.
|
|
320
|
+
if (legacyDirExists && !primaryDirExists) {
|
|
321
|
+
return {
|
|
322
|
+
chatPath: legacyChat,
|
|
323
|
+
chatDir: legacyDir,
|
|
324
|
+
isLegacy: true,
|
|
325
|
+
exists: false,
|
|
326
|
+
readPaths,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
// 4. In native, mixed, or fresh workspaces without an existing ledger, default to primary (.contextspace).
|
|
330
|
+
return {
|
|
331
|
+
chatPath: primaryChat,
|
|
332
|
+
chatDir: primaryDir,
|
|
333
|
+
isLegacy: false,
|
|
334
|
+
exists: false,
|
|
335
|
+
readPaths,
|
|
336
|
+
};
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Asynchronously resolves the workspace chat ledger path and directory.
|
|
340
|
+
* Preserves existing legacy history when present, and supports mixed or native workspaces.
|
|
341
|
+
*/
|
|
342
|
+
export async function resolveWorkspaceChatLedger(workspaceDir) {
|
|
343
|
+
const primaryDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.primary);
|
|
344
|
+
const legacyDir = path.join(workspaceDir, BRAND_CONFIG.files.configDir.legacy);
|
|
345
|
+
const primaryChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.primary);
|
|
346
|
+
const legacyChat = path.join(workspaceDir, BRAND_CONFIG.files.chatLedger.legacy);
|
|
347
|
+
const [primaryExists, legacyExists, primaryDirExists, legacyDirExists] = await Promise.all([
|
|
348
|
+
fs.access(primaryChat).then(() => true).catch(() => false),
|
|
349
|
+
fs.access(legacyChat).then(() => true).catch(() => false),
|
|
350
|
+
fs.access(primaryDir).then(() => true).catch(() => false),
|
|
351
|
+
fs.access(legacyDir).then(() => true).catch(() => false),
|
|
352
|
+
]);
|
|
353
|
+
const readPaths = [];
|
|
354
|
+
if (legacyExists)
|
|
355
|
+
readPaths.push(legacyChat);
|
|
356
|
+
if (primaryExists && !readPaths.includes(primaryChat))
|
|
357
|
+
readPaths.push(primaryChat);
|
|
358
|
+
if (primaryExists) {
|
|
359
|
+
return {
|
|
360
|
+
chatPath: primaryChat,
|
|
361
|
+
chatDir: primaryDir,
|
|
362
|
+
isLegacy: false,
|
|
363
|
+
exists: true,
|
|
364
|
+
readPaths,
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
if (legacyExists) {
|
|
368
|
+
return {
|
|
369
|
+
chatPath: legacyChat,
|
|
370
|
+
chatDir: legacyDir,
|
|
371
|
+
isLegacy: true,
|
|
372
|
+
exists: true,
|
|
373
|
+
readPaths,
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
if (legacyDirExists && !primaryDirExists) {
|
|
377
|
+
return {
|
|
378
|
+
chatPath: legacyChat,
|
|
379
|
+
chatDir: legacyDir,
|
|
380
|
+
isLegacy: true,
|
|
381
|
+
exists: false,
|
|
382
|
+
readPaths,
|
|
383
|
+
};
|
|
384
|
+
}
|
|
385
|
+
return {
|
|
386
|
+
chatPath: primaryChat,
|
|
387
|
+
chatDir: primaryDir,
|
|
388
|
+
isLegacy: false,
|
|
389
|
+
exists: false,
|
|
390
|
+
readPaths,
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Reads all messages from the workspace chat ledger, combining historical legacy messages
|
|
395
|
+
* and primary messages if both exist, deduplicating by ID, and sorting chronologically.
|
|
396
|
+
*/
|
|
397
|
+
export async function readWorkspaceChatMessages(workspaceDir, limit) {
|
|
398
|
+
const ledgerInfo = await resolveWorkspaceChatLedger(workspaceDir);
|
|
399
|
+
const pathsToRead = ledgerInfo.readPaths.length > 0 ? ledgerInfo.readPaths : (ledgerInfo.exists ? [ledgerInfo.chatPath] : []);
|
|
400
|
+
const allMessages = [];
|
|
401
|
+
const seenIds = new Set();
|
|
402
|
+
for (const filePath of pathsToRead) {
|
|
403
|
+
try {
|
|
404
|
+
const raw = await fs.readFile(filePath, 'utf8');
|
|
405
|
+
const lines = raw.split('\n');
|
|
406
|
+
for (const line of lines) {
|
|
407
|
+
const trimmed = line.trim();
|
|
408
|
+
if (!trimmed)
|
|
409
|
+
continue;
|
|
410
|
+
try {
|
|
411
|
+
const parsed = JSON.parse(trimmed);
|
|
412
|
+
if (parsed && typeof parsed === 'object') {
|
|
413
|
+
const id = parsed.id || `${parsed.timestamp || ''}-${parsed.message || ''}`;
|
|
414
|
+
if (!seenIds.has(id)) {
|
|
415
|
+
seenIds.add(id);
|
|
416
|
+
allMessages.push(parsed);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
// ignore malformed lines
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
catch {
|
|
426
|
+
// ignore unreadable file
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
allMessages.sort((a, b) => {
|
|
430
|
+
const ta = a.timestamp ? new Date(a.timestamp).getTime() : 0;
|
|
431
|
+
const tb = b.timestamp ? new Date(b.timestamp).getTime() : 0;
|
|
432
|
+
if (ta !== tb)
|
|
433
|
+
return ta - tb;
|
|
434
|
+
return 0;
|
|
435
|
+
});
|
|
436
|
+
const messages = typeof limit === 'number' && limit > 0 ? allMessages.slice(-limit) : allMessages;
|
|
437
|
+
return { messages, ledgerInfo };
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Resolves a durable global state path under the home config directory,
|
|
441
|
+
* falling back to ~/.nexusflow/<relPath> if it exists and ~/.contextspace/<relPath> does not.
|
|
442
|
+
*/
|
|
443
|
+
export function resolveGlobalDurablePath(relPath) {
|
|
444
|
+
const csHome = process.env.CONTEXTSPACE_HOME?.trim();
|
|
445
|
+
const nfHome = process.env.NEXUSFLOW_HOME?.trim();
|
|
446
|
+
if (csHome && existsSync(path.join(path.resolve(csHome), relPath))) {
|
|
447
|
+
return path.join(path.resolve(csHome), relPath);
|
|
448
|
+
}
|
|
449
|
+
if (nfHome && existsSync(path.join(path.resolve(nfHome), relPath))) {
|
|
450
|
+
return path.join(path.resolve(nfHome), relPath);
|
|
451
|
+
}
|
|
452
|
+
if (csHome) {
|
|
453
|
+
return path.join(path.resolve(csHome), relPath);
|
|
454
|
+
}
|
|
455
|
+
if (nfHome) {
|
|
456
|
+
return path.join(path.resolve(nfHome), relPath);
|
|
457
|
+
}
|
|
458
|
+
const primary = path.join(os.homedir(), BRAND_CONFIG.files.configDir.primary, relPath);
|
|
459
|
+
if (existsSync(primary))
|
|
460
|
+
return primary;
|
|
461
|
+
const legacy = path.join(os.homedir(), BRAND_CONFIG.files.configDir.legacy, relPath);
|
|
462
|
+
if (existsSync(legacy))
|
|
463
|
+
return legacy;
|
|
464
|
+
return primary;
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Generates the PM2 prefix scoped to a workspace hash.
|
|
468
|
+
*/
|
|
469
|
+
export function getPm2ProcessPrefix(workspacePath) {
|
|
470
|
+
const base = path.basename(workspacePath).replace(/[^a-zA-Z0-9_-]/g, '-').slice(0, 24);
|
|
471
|
+
const hash = createHash('sha256').update(path.resolve(workspacePath)).digest('hex').slice(0, 8);
|
|
472
|
+
return `${BRAND_CONFIG.identity.cliName}-${base}-${hash}-`;
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Generates stdout tokens for the desktop readiness handshake.
|
|
476
|
+
*/
|
|
477
|
+
export function getDesktopReadyTokens(port) {
|
|
478
|
+
return BRAND_CONFIG.desktop.readyTokenPrefixes.map((prefix) => `${prefix}=${port}`);
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Returns a RegExp matching any supported desktop ready port token.
|
|
482
|
+
*/
|
|
483
|
+
export function getDesktopReadyPortRegex() {
|
|
484
|
+
const prefixes = BRAND_CONFIG.desktop.readyTokenPrefixes.join('|');
|
|
485
|
+
return new RegExp(`(?:${prefixes})=(\\d+)`);
|
|
486
|
+
}
|
|
487
|
+
/**
|
|
488
|
+
* Returns a RegExp matching any supported freshness comment sentinel block.
|
|
489
|
+
*/
|
|
490
|
+
export function getFreshnessSentinelRegex() {
|
|
491
|
+
const startTokens = BRAND_CONFIG.sentinels.freshnessStart.join('|');
|
|
492
|
+
const endTokens = BRAND_CONFIG.sentinels.freshnessEnd.join('|');
|
|
493
|
+
return new RegExp(`<!--\\s*(?:${startTokens})\\s*-->[\\s\\S]*?<!--\\s*(?:${endTokens})\\s*-->`);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Formats a canonical freshness sentinel comment block.
|
|
497
|
+
*/
|
|
498
|
+
export function createFreshnessMarker(snapshotSha, command = `${BRAND_CONFIG.identity.cliName} refresh --check`) {
|
|
499
|
+
return `<!-- ${BRAND_CONFIG.sentinels.freshnessStart[0]} -->\n> **${BRAND_CONFIG.identity.name} snapshot:** ${BRAND_CONFIG.identity.name}@${snapshotSha}. Verify live state with \`${command}\`.\n<!-- ${BRAND_CONFIG.sentinels.freshnessEnd[0]} -->`;
|
|
500
|
+
}
|
|
501
|
+
/**
|
|
502
|
+
* Resolves the path of a global persistent store file (config, projects, schedules, categories)
|
|
503
|
+
* with transparent fallback to the legacy ~/.nexusflow/<file> if present.
|
|
504
|
+
*/
|
|
505
|
+
export function resolveUserStorePath(storeKey) {
|
|
506
|
+
return resolveGlobalDurablePath(BRAND_CONFIG.stores[storeKey]);
|
|
507
|
+
}
|
|
508
|
+
/**
|
|
509
|
+
* Resolves a lock file inside the global locks directory.
|
|
510
|
+
*/
|
|
511
|
+
export function resolveResourceLockPath(lockFileName) {
|
|
512
|
+
return path.join(resolveBrandHomeDir(), BRAND_CONFIG.resources.locksDir, lockFileName);
|
|
513
|
+
}
|
|
514
|
+
//# sourceMappingURL=brand-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brand-config.js","sourceRoot":"","sources":["../../src/core/brand-config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { NexusFlowConfig } from '../types.js';
|
|
6
6
|
/**
|
|
7
|
-
* Returns the absolute path to the
|
|
7
|
+
* Returns the absolute path to the ContextSpace config directory (~/.contextspace).
|
|
8
8
|
*/
|
|
9
9
|
export declare function getConfigDir(): string;
|
|
10
10
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA0CnD;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,CAkClD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAsC5F;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAcvE"}
|
package/dist/core/config.js
CHANGED
|
@@ -40,15 +40,14 @@ function activateStorageProvider(config, quiet) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
const CONFIG_DIR_NAME = '.nexusflow';
|
|
43
|
+
import { LEGACY_CONFIG_DIR_NAME, resolveBrandHomeDir, STORE_CONFIG_FILE } from './constants.js';
|
|
45
44
|
/** Name of the config file. */
|
|
46
|
-
const CONFIG_FILE_NAME =
|
|
45
|
+
const CONFIG_FILE_NAME = STORE_CONFIG_FILE;
|
|
47
46
|
/**
|
|
48
|
-
* Returns the absolute path to the
|
|
47
|
+
* Returns the absolute path to the ContextSpace config directory (~/.contextspace).
|
|
49
48
|
*/
|
|
50
49
|
export function getConfigDir() {
|
|
51
|
-
return
|
|
50
|
+
return resolveBrandHomeDir();
|
|
52
51
|
}
|
|
53
52
|
/**
|
|
54
53
|
* Returns a NexusFlowConfig populated with sensible defaults.
|
|
@@ -109,8 +108,15 @@ export async function loadConfig(options = {}) {
|
|
|
109
108
|
raw = await fs.readFile(configPath, 'utf-8');
|
|
110
109
|
}
|
|
111
110
|
catch {
|
|
112
|
-
//
|
|
113
|
-
|
|
111
|
+
// Check legacy ~/.nexusflow/config.json
|
|
112
|
+
try {
|
|
113
|
+
const legacyConfigPath = path.join(os.homedir(), LEGACY_CONFIG_DIR_NAME, CONFIG_FILE_NAME);
|
|
114
|
+
raw = await fs.readFile(legacyConfigPath, 'utf-8');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
// File doesn't exist (first run) or is unreadable — defaults are correct.
|
|
118
|
+
raw = null;
|
|
119
|
+
}
|
|
114
120
|
}
|
|
115
121
|
if (raw !== null) {
|
|
116
122
|
try {
|
|
@@ -139,7 +145,11 @@ export async function loadConfig(options = {}) {
|
|
|
139
145
|
*/
|
|
140
146
|
export async function saveConfig(config) {
|
|
141
147
|
await ensureConfigDir();
|
|
142
|
-
const
|
|
148
|
+
const configDir = path.resolve(getConfigDir());
|
|
149
|
+
const configPath = path.resolve(configDir, CONFIG_FILE_NAME);
|
|
150
|
+
if (path.dirname(configPath) !== configDir) {
|
|
151
|
+
throw new Error('Invalid config path destination');
|
|
152
|
+
}
|
|
143
153
|
const data = JSON.stringify(config, null, 2) + '\n';
|
|
144
154
|
await fs.writeFile(configPath, data, 'utf-8');
|
|
145
155
|
// Re-activate the storage provider based on the saved configuration.
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;;;;GAOG;AACH,SAAS,uBAAuB,CAAC,MAAuB,EAAE,KAAc;IACtE,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,IAAI,OAAO,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QACnE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC;QACD,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CAAC,sBAAsB,YAAY,uDAAuD,CAAC,CACxG,CAAC;QACJ,CAAC;QACD,QAAQ,CAAC,SAAS,EAAE,aAAa,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,iFAAiF;QACjF,IAAI,CAAC;YACH,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,QAAQ,CAAC,SAAS,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|