@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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"skills-catalog.test.js","sourceRoot":"","sources":["../../src/utils/skills-catalog.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-scanner.test.d.ts","sourceRoot":"","sources":["../../src/utils/system-scanner.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { execa } from 'execa';
|
|
3
|
-
import * as os from 'node:os';
|
|
4
|
-
import { scanSystemSpecs } from './system-scanner.js';
|
|
5
|
-
vi.mock('execa');
|
|
6
|
-
vi.mock('node:os', async () => {
|
|
7
|
-
const actual = await vi.importActual('node:os');
|
|
8
|
-
return {
|
|
9
|
-
...actual,
|
|
10
|
-
totalmem: vi.fn(),
|
|
11
|
-
platform: vi.fn(),
|
|
12
|
-
};
|
|
13
|
-
});
|
|
14
|
-
describe('scanSystemSpecs', () => {
|
|
15
|
-
beforeEach(() => {
|
|
16
|
-
vi.clearAllMocks();
|
|
17
|
-
});
|
|
18
|
-
it('should recommend 7b on windows with 16GB RAM even if no GPU detected', async () => {
|
|
19
|
-
vi.mocked(os.totalmem).mockReturnValue(16 * 1024 * 1024 * 1024);
|
|
20
|
-
vi.mocked(os.platform).mockReturnValue('win32');
|
|
21
|
-
vi.mocked(execa).mockResolvedValue({ stdout: '' });
|
|
22
|
-
const specs = await scanSystemSpecs();
|
|
23
|
-
expect(specs.totalRamGb).toBe(16);
|
|
24
|
-
expect(specs.gpuName).toBe('Unknown/Integrated');
|
|
25
|
-
expect(specs.hasHardwareAcceleration).toBe(false);
|
|
26
|
-
expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
|
|
27
|
-
});
|
|
28
|
-
it('should recommend 1.5b on windows with 8GB RAM and no GPU', async () => {
|
|
29
|
-
vi.mocked(os.totalmem).mockReturnValue(8 * 1024 * 1024 * 1024);
|
|
30
|
-
vi.mocked(os.platform).mockReturnValue('win32');
|
|
31
|
-
vi.mocked(execa).mockResolvedValue({ stdout: '' });
|
|
32
|
-
const specs = await scanSystemSpecs();
|
|
33
|
-
expect(specs.totalRamGb).toBe(8);
|
|
34
|
-
expect(specs.recommendedModel).toBe('qwen2.5-coder:1.5b');
|
|
35
|
-
});
|
|
36
|
-
it('should detect Nvidia GPU on Windows and recommend 7b with 12GB RAM', async () => {
|
|
37
|
-
vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
|
|
38
|
-
vi.mocked(os.platform).mockReturnValue('win32');
|
|
39
|
-
vi.mocked(execa).mockResolvedValue({
|
|
40
|
-
stdout: 'NVIDIA GeForce RTX 4070 Laptop GPU\r\n'
|
|
41
|
-
});
|
|
42
|
-
const specs = await scanSystemSpecs();
|
|
43
|
-
expect(specs.totalRamGb).toBe(12);
|
|
44
|
-
expect(specs.gpuName).toBe('NVIDIA GeForce RTX 4070 Laptop GPU');
|
|
45
|
-
expect(specs.hasHardwareAcceleration).toBe(true);
|
|
46
|
-
expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
|
|
47
|
-
});
|
|
48
|
-
it('should detect Apple Silicon on Darwin and recommend 7b with 12GB RAM', async () => {
|
|
49
|
-
vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
|
|
50
|
-
vi.mocked(os.platform).mockReturnValue('darwin');
|
|
51
|
-
vi.mocked(execa).mockResolvedValue({
|
|
52
|
-
stdout: 'Apple M3 Max\n'
|
|
53
|
-
});
|
|
54
|
-
const specs = await scanSystemSpecs();
|
|
55
|
-
expect(specs.totalRamGb).toBe(12);
|
|
56
|
-
expect(specs.gpuName).toBe('Apple Silicon (Integrated)');
|
|
57
|
-
expect(specs.hasHardwareAcceleration).toBe(true);
|
|
58
|
-
expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
|
|
59
|
-
});
|
|
60
|
-
it('should detect Linux GPU and recommend 7b with 12GB RAM', async () => {
|
|
61
|
-
vi.mocked(os.totalmem).mockReturnValue(12 * 1024 * 1024 * 1024);
|
|
62
|
-
vi.mocked(os.platform).mockReturnValue('linux');
|
|
63
|
-
vi.mocked(execa).mockResolvedValue({
|
|
64
|
-
stdout: '01:00.0 VGA compatible controller: NVIDIA Corporation AD104 [GeForce RTX 4070 Ti] (rev a1)\n'
|
|
65
|
-
});
|
|
66
|
-
const specs = await scanSystemSpecs();
|
|
67
|
-
expect(specs.totalRamGb).toBe(12);
|
|
68
|
-
expect(specs.gpuName).toBe('NVIDIA Corporation AD104 [GeForce RTX 4070 Ti] (rev a1)');
|
|
69
|
-
expect(specs.hasHardwareAcceleration).toBe(true);
|
|
70
|
-
expect(specs.recommendedModel).toBe('qwen2.5-coder:7b');
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
//# sourceMappingURL=system-scanner.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"system-scanner.test.js","sourceRoot":"","sources":["../../src/utils/system-scanner.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-launch.test.d.ts","sourceRoot":"","sources":["../../src/utils/terminal-launch.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { buildHarnessCliCommand, launchWorkspaceTerminal, escapePsSingleQuote, escapePosixSingleQuote, } from './terminal-launch.js';
|
|
3
|
-
import { execa, execaSync } from 'execa';
|
|
4
|
-
vi.mock('execa');
|
|
5
|
-
describe('terminal-launch utility', () => {
|
|
6
|
-
beforeEach(() => {
|
|
7
|
-
vi.resetAllMocks();
|
|
8
|
-
});
|
|
9
|
-
describe('escaping helpers', () => {
|
|
10
|
-
it('escapes single quotes for PowerShell', () => {
|
|
11
|
-
expect(escapePsSingleQuote("C:\\Bob's Workspace\\repo")).toBe("C:\\Bob''s Workspace\\repo");
|
|
12
|
-
});
|
|
13
|
-
it('escapes single quotes for POSIX shell', () => {
|
|
14
|
-
expect(escapePosixSingleQuote("/home/bob's-workspace/repo")).toBe("/home/bob'\\''s-workspace/repo");
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
describe('buildHarnessCliCommand', () => {
|
|
18
|
-
it('builds start commands for known assistants', () => {
|
|
19
|
-
expect(buildHarnessCliCommand('antigravity')).toBe('agy');
|
|
20
|
-
expect(buildHarnessCliCommand('claude')).toBe('claude');
|
|
21
|
-
expect(buildHarnessCliCommand('codex')).toBe('codex');
|
|
22
|
-
expect(buildHarnessCliCommand('copilot')).toBe('copilot');
|
|
23
|
-
expect(buildHarnessCliCommand('cursor')).toBe('cursor-agent');
|
|
24
|
-
});
|
|
25
|
-
it('builds resume commands when a valid UUID is provided', () => {
|
|
26
|
-
const uuid = '3a14e9f7-628b-4d51-87b4-1065a7df4921';
|
|
27
|
-
expect(buildHarnessCliCommand('antigravity', uuid)).toBe(`agy --conversation ${uuid}`);
|
|
28
|
-
expect(buildHarnessCliCommand('claude', uuid)).toBe(`claude --resume ${uuid}`);
|
|
29
|
-
expect(buildHarnessCliCommand('codex', uuid)).toBe(`codex resume ${uuid}`);
|
|
30
|
-
expect(buildHarnessCliCommand('copilot', uuid)).toBe(`copilot --resume ${uuid}`);
|
|
31
|
-
expect(buildHarnessCliCommand('cursor', uuid)).toBe(`cursor-agent --resume ${uuid}`);
|
|
32
|
-
});
|
|
33
|
-
it('throws on invalid session UUID', () => {
|
|
34
|
-
expect(() => buildHarnessCliCommand('claude', 'invalid-id')).toThrow('Invalid session UUID format');
|
|
35
|
-
});
|
|
36
|
-
it('throws on unsupported assistant', () => {
|
|
37
|
-
expect(() => buildHarnessCliCommand('unsupported-ai')).toThrow('Unsupported assistant');
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('launchWorkspaceTerminal', () => {
|
|
41
|
-
it('throws on relative workspace path', async () => {
|
|
42
|
-
await expect(launchWorkspaceTerminal('relative/path')).rejects.toThrow('must be an absolute directory');
|
|
43
|
-
});
|
|
44
|
-
it('launches PowerShell via Start-Process when available on Windows', async () => {
|
|
45
|
-
vi.mocked(execaSync).mockImplementation((_cmd, args) => {
|
|
46
|
-
if (Array.isArray(args) && args[0] === 'pwsh.exe')
|
|
47
|
-
return { exitCode: 0 };
|
|
48
|
-
return { exitCode: 1 };
|
|
49
|
-
});
|
|
50
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
|
|
51
|
-
const res = await launchWorkspaceTerminal("C:\\workspaces\\bob's-app", {
|
|
52
|
-
assistant: 'antigravity',
|
|
53
|
-
sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
|
|
54
|
-
}, 'win32');
|
|
55
|
-
expect(res.success).toBe(true);
|
|
56
|
-
expect(res.command).toBe('agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921');
|
|
57
|
-
const expectedScript = "$host.UI.RawUI.WindowTitle = 'NexusFlow Terminal'; $wshell = New-Object -ComObject Wscript.Shell; try { $wshell.AppActivate($PID) } catch {}; Set-Location -LiteralPath 'C:\\workspaces\\bob''s-app'; agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921";
|
|
58
|
-
const expectedEncoded = Buffer.from(expectedScript, 'utf16le').toString('base64');
|
|
59
|
-
expect(execa).toHaveBeenCalledWith('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', `Start-Process -FilePath 'pwsh.exe' -ArgumentList '-NoExit', '-EncodedCommand', '${expectedEncoded}' -WorkingDirectory 'C:\\workspaces\\bob''s-app'`], { reject: false, stdio: 'ignore' });
|
|
60
|
-
});
|
|
61
|
-
it('falls back to cmd.exe start when Start-Process fails on Windows', async () => {
|
|
62
|
-
const mockUnref = vi.fn();
|
|
63
|
-
vi.mocked(execaSync).mockImplementation((_cmd, args) => {
|
|
64
|
-
if (Array.isArray(args) && args[0] === 'pwsh.exe')
|
|
65
|
-
return { exitCode: 0 };
|
|
66
|
-
return { exitCode: 1 };
|
|
67
|
-
});
|
|
68
|
-
vi.mocked(execa).mockImplementation((cmd) => {
|
|
69
|
-
if (cmd === 'powershell.exe') {
|
|
70
|
-
return Promise.resolve({ exitCode: 1 });
|
|
71
|
-
}
|
|
72
|
-
return { unref: mockUnref, catch: vi.fn() };
|
|
73
|
-
});
|
|
74
|
-
const res = await launchWorkspaceTerminal("C:\\workspaces\\bob's-app", {
|
|
75
|
-
assistant: 'antigravity',
|
|
76
|
-
sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
|
|
77
|
-
}, 'win32');
|
|
78
|
-
expect(res.success).toBe(true);
|
|
79
|
-
expect(res.command).toBe('agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921');
|
|
80
|
-
const expectedScript = "$host.UI.RawUI.WindowTitle = 'NexusFlow Terminal'; $wshell = New-Object -ComObject Wscript.Shell; try { $wshell.AppActivate($PID) } catch {}; Set-Location -LiteralPath 'C:\\workspaces\\bob''s-app'; agy --conversation 3a14e9f7-628b-4d51-87b4-1065a7df4921";
|
|
81
|
-
const expectedEncoded = Buffer.from(expectedScript, 'utf16le').toString('base64');
|
|
82
|
-
expect(execa).toHaveBeenCalledWith('cmd.exe', ['/c', 'start', '""', 'pwsh.exe', '-NoExit', '-EncodedCommand', expectedEncoded], expect.objectContaining({ detached: true, shell: false, windowsHide: false }));
|
|
83
|
-
expect(mockUnref).toHaveBeenCalled();
|
|
84
|
-
});
|
|
85
|
-
it('launches Terminal.app on macOS via osascript', async () => {
|
|
86
|
-
const mockUnref = vi.fn();
|
|
87
|
-
vi.mocked(execa).mockReturnValue({ unref: mockUnref, catch: vi.fn() });
|
|
88
|
-
const res = await launchWorkspaceTerminal('/Users/user/workspace', {
|
|
89
|
-
assistant: 'codex',
|
|
90
|
-
sessionId: '3a14e9f7-628b-4d51-87b4-1065a7df4921',
|
|
91
|
-
}, 'darwin');
|
|
92
|
-
expect(res.success).toBe(true);
|
|
93
|
-
expect(res.command).toBe('codex resume 3a14e9f7-628b-4d51-87b4-1065a7df4921');
|
|
94
|
-
expect(execa).toHaveBeenCalledWith('/usr/bin/osascript', ['-e', expect.stringContaining('tell application "Terminal"')], expect.objectContaining({ detached: true, stdio: 'ignore' }));
|
|
95
|
-
expect(mockUnref).toHaveBeenCalled();
|
|
96
|
-
});
|
|
97
|
-
it('searches and launches terminal emulator on Linux', async () => {
|
|
98
|
-
const mockUnref = vi.fn();
|
|
99
|
-
vi.mocked(execaSync).mockImplementation((_cmd, args) => {
|
|
100
|
-
if (Array.isArray(args) && (args[0] === 'gnome-terminal' || args[0] === 'konsole'))
|
|
101
|
-
return { exitCode: 1 };
|
|
102
|
-
if (Array.isArray(args) && args[0] === 'xfce4-terminal')
|
|
103
|
-
return { exitCode: 0 };
|
|
104
|
-
return { exitCode: 1 };
|
|
105
|
-
});
|
|
106
|
-
vi.mocked(execa).mockReturnValue({ unref: mockUnref, catch: vi.fn() });
|
|
107
|
-
const res = await launchWorkspaceTerminal('/home/user/workspace', {
|
|
108
|
-
assistant: 'claude',
|
|
109
|
-
}, 'linux');
|
|
110
|
-
expect(res.success).toBe(true);
|
|
111
|
-
expect(res.command).toBe('claude');
|
|
112
|
-
expect(execa).toHaveBeenCalledWith('xfce4-terminal', ['--working-directory', '/home/user/workspace', '-e', 'bash -c "claude; exec bash"'], expect.objectContaining({ detached: true, stdio: 'ignore' }));
|
|
113
|
-
expect(mockUnref).toHaveBeenCalled();
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
//# sourceMappingURL=terminal-launch.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"terminal-launch.test.js","sourceRoot":"","sources":["../../src/utils/terminal-launch.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.test.d.ts","sourceRoot":"","sources":["../../src/utils/update-check.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { isNewerVersion } from './update-check.js';
|
|
3
|
-
describe('isNewerVersion', () => {
|
|
4
|
-
it('detects higher major/minor/patch', () => {
|
|
5
|
-
expect(isNewerVersion('1.8.0', '2.0.0')).toBe(true);
|
|
6
|
-
expect(isNewerVersion('1.8.0', '1.9.0')).toBe(true);
|
|
7
|
-
expect(isNewerVersion('1.8.0', '1.8.1')).toBe(true);
|
|
8
|
-
});
|
|
9
|
-
it('returns false when equal or older', () => {
|
|
10
|
-
expect(isNewerVersion('1.8.0', '1.8.0')).toBe(false);
|
|
11
|
-
expect(isNewerVersion('1.9.0', '1.8.0')).toBe(false);
|
|
12
|
-
expect(isNewerVersion('2.0.0', '1.9.9')).toBe(false);
|
|
13
|
-
});
|
|
14
|
-
it('tolerates a leading v and a prerelease/build suffix instead of returning NaN-false', () => {
|
|
15
|
-
// Previously `.map(Number)` turned '0-rc' into NaN and reported no update.
|
|
16
|
-
expect(isNewerVersion('1.8.0', 'v1.9.0')).toBe(true);
|
|
17
|
-
expect(isNewerVersion('1.8.0', '1.9.0-rc.1')).toBe(true);
|
|
18
|
-
expect(isNewerVersion('1.8.0-beta.2', '1.8.0-beta.3')).toBe(false); // same numeric core
|
|
19
|
-
});
|
|
20
|
-
it('treats a stable release as newer than a prerelease of the same core', () => {
|
|
21
|
-
expect(isNewerVersion('1.8.0-rc.1', '1.8.0')).toBe(true);
|
|
22
|
-
expect(isNewerVersion('1.8.0', '1.8.0-rc.1')).toBe(false);
|
|
23
|
-
});
|
|
24
|
-
it('safely handles empty, 0.0.0, or unknown fallback version strings', () => {
|
|
25
|
-
expect(isNewerVersion('0.0.0', '2.5.2')).toBe(false);
|
|
26
|
-
expect(isNewerVersion('unknown', '2.5.2')).toBe(false);
|
|
27
|
-
expect(isNewerVersion('', '2.5.2')).toBe(false);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
//# sourceMappingURL=update-check.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update-check.test.js","sourceRoot":"","sources":["../../src/utils/update-check.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;QAC5F,2EAA2E;QAC3E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,oBAAoB;IAC1F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;QAC7E,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,GAAG,EAAE;QAC1E,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.test.d.ts","sourceRoot":"","sources":["../../src/utils/workflows.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import * as fs from 'node:fs/promises';
|
|
3
|
-
import * as path from 'node:path';
|
|
4
|
-
import { getWorkflowTemplates, saveWorkflowTemplate, deleteWorkflowTemplate } from './workflows.js';
|
|
5
|
-
vi.mock('node:fs/promises');
|
|
6
|
-
vi.mock('node:os', () => ({
|
|
7
|
-
homedir: () => '/mock/home'
|
|
8
|
-
}));
|
|
9
|
-
describe('Workflows Utility Unit Tests', () => {
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
vi.clearAllMocks();
|
|
12
|
-
});
|
|
13
|
-
describe('saveWorkflowTemplate', () => {
|
|
14
|
-
it('should save a template and extract its name from H1 header', async () => {
|
|
15
|
-
vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
|
|
16
|
-
vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
|
|
17
|
-
const result = await saveWorkflowTemplate('My Temp Name', '# Final Strategy Name\n\nStrategy Content');
|
|
18
|
-
expect(fs.mkdir).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows'), { recursive: true });
|
|
19
|
-
expect(fs.writeFile).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'final-strategy-name.md'), '# Final Strategy Name\n\nStrategy Content', 'utf-8');
|
|
20
|
-
expect(result).toEqual({
|
|
21
|
-
id: 'final-strategy-name',
|
|
22
|
-
name: 'Final Strategy Name',
|
|
23
|
-
description: 'Strategy Content',
|
|
24
|
-
content: '# Final Strategy Name\n\nStrategy Content',
|
|
25
|
-
custom: true
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
it('should add H1 header if not present', async () => {
|
|
29
|
-
vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
|
|
30
|
-
vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
|
|
31
|
-
const result = await saveWorkflowTemplate('My Temp Name', 'Strategy Content');
|
|
32
|
-
expect(fs.writeFile).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'my-temp-name.md'), '# My Temp Name\n\nStrategy Content', 'utf-8');
|
|
33
|
-
expect(result.id).toBe('my-temp-name');
|
|
34
|
-
});
|
|
35
|
-
it('should clean up originalId file if template is renamed', async () => {
|
|
36
|
-
vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
|
|
37
|
-
vi.spyOn(fs, 'writeFile').mockResolvedValue(undefined);
|
|
38
|
-
vi.spyOn(fs, 'unlink').mockResolvedValue(undefined);
|
|
39
|
-
const result = await saveWorkflowTemplate('New Name', '# New Name\n\nContent', 'old-id');
|
|
40
|
-
expect(fs.unlink).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'old-id.md'));
|
|
41
|
-
expect(result.id).toBe('new-name');
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
describe('deleteWorkflowTemplate', () => {
|
|
45
|
-
it('should delete template file', async () => {
|
|
46
|
-
vi.spyOn(fs, 'unlink').mockResolvedValue(undefined);
|
|
47
|
-
await deleteWorkflowTemplate('some-id');
|
|
48
|
-
expect(fs.unlink).toHaveBeenCalledWith(path.join('/mock/home', '.nexusflow', 'workflows', 'some-id.md'));
|
|
49
|
-
});
|
|
50
|
-
it('should ignore ENOENT error', async () => {
|
|
51
|
-
const error = new Error('File not found');
|
|
52
|
-
error.code = 'ENOENT';
|
|
53
|
-
vi.spyOn(fs, 'unlink').mockRejectedValue(error);
|
|
54
|
-
await expect(deleteWorkflowTemplate('some-id')).resolves.toBeUndefined();
|
|
55
|
-
});
|
|
56
|
-
});
|
|
57
|
-
describe('getWorkflowTemplates', () => {
|
|
58
|
-
it('should load and merge built-in and user templates', async () => {
|
|
59
|
-
vi.spyOn(fs, 'mkdir').mockResolvedValue(undefined);
|
|
60
|
-
// Mock readdir to return files
|
|
61
|
-
vi.spyOn(fs, 'readdir').mockImplementation(async (dirPath) => {
|
|
62
|
-
if (dirPath.toString().includes('.nexusflow')) {
|
|
63
|
-
return ['custom-one.md'];
|
|
64
|
-
}
|
|
65
|
-
return ['solo-developer.md'];
|
|
66
|
-
});
|
|
67
|
-
// Mock readFile
|
|
68
|
-
vi.spyOn(fs, 'readFile').mockImplementation(async (filePath) => {
|
|
69
|
-
if (filePath.toString().includes('custom-one.md')) {
|
|
70
|
-
return '# Custom One\n\nDescription content.';
|
|
71
|
-
}
|
|
72
|
-
return '# Solo Developer\n\nOverride content.';
|
|
73
|
-
});
|
|
74
|
-
const templates = await getWorkflowTemplates();
|
|
75
|
-
expect(templates.length).toBe(2);
|
|
76
|
-
expect(templates.find(t => t.id === 'custom-one')).toEqual({
|
|
77
|
-
id: 'custom-one',
|
|
78
|
-
name: 'Custom One',
|
|
79
|
-
description: 'Description content.',
|
|
80
|
-
content: '# Custom One\n\nDescription content.',
|
|
81
|
-
custom: true
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
//# sourceMappingURL=workflows.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.test.js","sourceRoot":"","sources":["../../src/utils/workflows.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEpG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAC5B,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;IACxB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY;CAC5B,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;YAEvG,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/G,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,wBAAwB,CAAC,EAC5E,2CAA2C,EAC3C,OAAO,CACR,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,EAAE,EAAE,qBAAqB;gBACzB,IAAI,EAAE,qBAAqB;gBAC3B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,2CAA2C;gBACpD,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAE9E,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACvC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,CAAC,EACrE,oCAAoC,EACpC,OAAO,CACR,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEpD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YAEzF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;YACxG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEpD,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAExC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3G,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC1C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,gBAAgB,CAAQ,CAAC;YACjD,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;YACtB,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEhD,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACnD,+BAA+B;YAC/B,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3D,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC9C,OAAO,CAAC,eAAe,CAAQ,CAAC;gBAClC,CAAC;gBACD,OAAO,CAAC,mBAAmB,CAAQ,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,gBAAgB;YAChB,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBAC7D,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;oBAClD,OAAO,sCAA6C,CAAC;gBACvD,CAAC;gBACD,OAAO,uCAA8C,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,MAAM,oBAAoB,EAAE,CAAC;YAE/C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,sBAAsB;gBACnC,OAAO,EAAE,sCAAsC;gBAC/C,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-launch.test.d.ts","sourceRoot":"","sources":["../../src/utils/workspace-launch.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { execa } from 'execa';
|
|
3
|
-
import * as path from 'node:path';
|
|
4
|
-
import { buildWorkspaceLaunchPrompt, detectWorkspaceLaunchTargets, hasDesktopProtocol, launchTargetIdForEditorCommand, launchWorkspaceTarget, openDesktopUri, } from './workspace-launch.js';
|
|
5
|
-
vi.mock('execa');
|
|
6
|
-
vi.mock('./detect-editors.js', () => ({
|
|
7
|
-
detectEditors: vi.fn().mockResolvedValue([
|
|
8
|
-
{ name: 'VS Code', command: 'code', detected: true },
|
|
9
|
-
{ name: 'VS Code Insiders', command: 'code-insiders', detected: false },
|
|
10
|
-
]),
|
|
11
|
-
}));
|
|
12
|
-
vi.mock('./open-editor.js', () => ({ openInEditor: vi.fn().mockResolvedValue(undefined) }));
|
|
13
|
-
describe('workspace launch catalog', () => {
|
|
14
|
-
beforeEach(() => vi.clearAllMocks());
|
|
15
|
-
it('detects a Windows protocol association without using a shell', async () => {
|
|
16
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
|
|
17
|
-
await expect(hasDesktopProtocol({ scheme: 'codex', macAppNames: [] }, 'win32')).resolves.toBe(true);
|
|
18
|
-
expect(execa).toHaveBeenCalledWith('reg.exe', ['query', 'HKCU\\Software\\Classes\\codex'], { reject: false, shell: false });
|
|
19
|
-
});
|
|
20
|
-
it('detects and activates Claude Desktop links on Linux', async () => {
|
|
21
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
|
|
22
|
-
await expect(hasDesktopProtocol({ scheme: 'claude', macAppNames: [] }, 'linux')).resolves.toBe(true);
|
|
23
|
-
expect(execa).toHaveBeenCalledWith('xdg-mime', ['query', 'default', 'x-scheme-handler/claude'], { reject: false, shell: false });
|
|
24
|
-
await openDesktopUri('claude://code/new?folder=%2Ftmp%2Fworkspace', 'linux');
|
|
25
|
-
expect(execa).toHaveBeenCalledWith('xdg-open', ['claude://code/new?folder=%2Ftmp%2Fworkspace'], { shell: false });
|
|
26
|
-
});
|
|
27
|
-
it('does not advertise Codex Desktop on Linux', async () => {
|
|
28
|
-
await expect(hasDesktopProtocol({ scheme: 'codex', macAppNames: [] }, 'linux')).resolves.toBe(false);
|
|
29
|
-
expect(execa).not.toHaveBeenCalled();
|
|
30
|
-
});
|
|
31
|
-
it('returns unavailable targets with useful reasons', async () => {
|
|
32
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 1 });
|
|
33
|
-
const targets = await detectWorkspaceLaunchTargets();
|
|
34
|
-
expect(targets.find((target) => target.id === 'codex-desktop')).toMatchObject({
|
|
35
|
-
kind: 'ai-app',
|
|
36
|
-
available: false,
|
|
37
|
-
});
|
|
38
|
-
expect(targets.find((target) => target.id === 'vscode')).toMatchObject({
|
|
39
|
-
kind: 'editor',
|
|
40
|
-
available: true,
|
|
41
|
-
});
|
|
42
|
-
expect(targets.find((target) => target.id === 'vscode-insiders')).toMatchObject({
|
|
43
|
-
available: false,
|
|
44
|
-
unavailableReason: expect.stringMatching(/not detected/i),
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
it('builds a once-encoded Codex URI and activates it without a shell', async () => {
|
|
48
|
-
vi.mocked(execa).mockImplementation((async (command) => ({
|
|
49
|
-
exitCode: command === 'reg.exe' ? 0 : 0,
|
|
50
|
-
})));
|
|
51
|
-
const workspacePath = path.resolve('work spaces', 'one & two');
|
|
52
|
-
const prompt = buildWorkspaceLaunchPrompt({ description: 'Fix launch & resume' });
|
|
53
|
-
await launchWorkspaceTarget('codex-desktop', workspacePath, { kind: 'new-workspace', prompt }, 'win32');
|
|
54
|
-
expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
|
|
55
|
-
env: {
|
|
56
|
-
NEXUSFLOW_DESKTOP_URI: `codex://threads/new?path=${encodeURIComponent(workspacePath)}&prompt=${encodeURIComponent(prompt)}`,
|
|
57
|
-
},
|
|
58
|
-
shell: false,
|
|
59
|
-
windowsHide: true,
|
|
60
|
-
windowsVerbatimArguments: true,
|
|
61
|
-
});
|
|
62
|
-
});
|
|
63
|
-
it('uses the documented Windows URI dispatcher without reparsing encoded values', async () => {
|
|
64
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
|
|
65
|
-
const uri = 'claude://code/new?folder=C%3A%5Cwork%5Cnexus&q=Fix%20one%20%26%20two';
|
|
66
|
-
await openDesktopUri(uri, 'win32');
|
|
67
|
-
expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
|
|
68
|
-
env: { NEXUSFLOW_DESKTOP_URI: uri },
|
|
69
|
-
shell: false,
|
|
70
|
-
windowsHide: true,
|
|
71
|
-
windowsVerbatimArguments: true,
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
it('rejects an unsafe Windows desktop URI before invoking cmd.exe', async () => {
|
|
75
|
-
await expect(openDesktopUri('https://example.com', 'win32')).rejects.toThrow('Unsupported desktop URI');
|
|
76
|
-
expect(execa).not.toHaveBeenCalled();
|
|
77
|
-
});
|
|
78
|
-
it('does not expose a Windows desktop URI when activation fails', async () => {
|
|
79
|
-
const uri = 'claude://code/new?folder=C%3A%5Cprivate-workspace&q=Private%20task';
|
|
80
|
-
vi.mocked(execa).mockRejectedValue(new Error(`Command failed: cmd.exe ${uri}`));
|
|
81
|
-
const result = openDesktopUri(uri, 'win32');
|
|
82
|
-
await expect(result).rejects.toThrow('Windows could not open the selected desktop app');
|
|
83
|
-
await expect(result).rejects.not.toThrow(/claude:\/\/|private-workspace|Private%20task/);
|
|
84
|
-
});
|
|
85
|
-
it('builds a once-encoded Claude URI with the workspace kickoff', async () => {
|
|
86
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
|
|
87
|
-
const workspacePath = path.resolve('work spaces', 'claude & nexusflow');
|
|
88
|
-
const prompt = buildWorkspaceLaunchPrompt({ description: 'Continue the integration' });
|
|
89
|
-
await launchWorkspaceTarget('claude-desktop', workspacePath, { kind: 'new-workspace', prompt }, 'linux');
|
|
90
|
-
expect(execa).toHaveBeenCalledWith('xdg-open', [`claude://code/new?folder=${encodeURIComponent(workspacePath)}&q=${encodeURIComponent(prompt)}`], { shell: false });
|
|
91
|
-
});
|
|
92
|
-
it('keeps a truncated emoji-bearing kickoff well-formed for URI encoding', () => {
|
|
93
|
-
const basePrompt = buildWorkspaceLaunchPrompt({ description: '' });
|
|
94
|
-
const marker = '\n\nWorkspace task: ';
|
|
95
|
-
const remaining = 1_600 - basePrompt.length - marker.length;
|
|
96
|
-
const description = `${'a'.repeat(remaining - 1)}😀tail`;
|
|
97
|
-
const prompt = buildWorkspaceLaunchPrompt({ description });
|
|
98
|
-
expect(prompt.length).toBeLessThanOrEqual(1_600);
|
|
99
|
-
expect(() => encodeURIComponent(prompt)).not.toThrow();
|
|
100
|
-
expect(prompt.endsWith('a')).toBe(true);
|
|
101
|
-
});
|
|
102
|
-
it('opens an existing Codex thread by its validated technical id', async () => {
|
|
103
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0 });
|
|
104
|
-
const workspacePath = path.resolve('workspace');
|
|
105
|
-
const sessionId = '0199a213-81c0-7800-8aa1-bbab2a035a53';
|
|
106
|
-
await launchWorkspaceTarget('codex-desktop', workspacePath, { kind: 'resume-session', sessionId }, 'win32');
|
|
107
|
-
expect(execa).toHaveBeenCalledWith('cmd.exe', ['/d', '/v:off', '/s', '/c', 'start "" "%NEXUSFLOW_DESKTOP_URI%"'], {
|
|
108
|
-
env: { NEXUSFLOW_DESKTOP_URI: `codex://threads/${sessionId}` },
|
|
109
|
-
shell: false,
|
|
110
|
-
windowsHide: true,
|
|
111
|
-
windowsVerbatimArguments: true,
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
it('does not claim that Claude Desktop can resume a local Code session', async () => {
|
|
115
|
-
vi.mocked(execa).mockResolvedValue({ exitCode: 0, stdout: 'claude.desktop\n' });
|
|
116
|
-
await expect(launchWorkspaceTarget('claude-desktop', path.resolve('workspace'), { kind: 'resume-session', sessionId: '0199a213-81c0-7800-8aa1-bbab2a035a53' }, 'linux')).rejects.toThrow(/does not support/i);
|
|
117
|
-
expect(execa).not.toHaveBeenCalledWith('xdg-open', expect.anything(), expect.anything());
|
|
118
|
-
});
|
|
119
|
-
it('never maps arbitrary commands to launch targets', () => {
|
|
120
|
-
expect(launchTargetIdForEditorCommand('code')).toBe('vscode');
|
|
121
|
-
expect(launchTargetIdForEditorCommand('code && calc.exe')).toBeNull();
|
|
122
|
-
});
|
|
123
|
-
it('rejects unknown targets before launching anything', async () => {
|
|
124
|
-
await expect(launchWorkspaceTarget('editor:../../calc', path.resolve('workspace'))).rejects.toThrow('Unknown workspace launch target');
|
|
125
|
-
expect(execa).not.toHaveBeenCalled();
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
//# sourceMappingURL=workspace-launch.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-launch.test.js","sourceRoot":"","sources":["../../src/utils/workspace-launch.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,8BAA8B,EAC9B,qBAAqB,EACrB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAE/B,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACjB,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,CAAC;IACpC,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;QACvC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QACpD,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE;KACxE,CAAC;CACH,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5F,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;IAErC,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAS,CAAC,CAAC;QAE3D,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpG,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,SAAS,EACT,CAAC,OAAO,EAAE,gCAAgC,CAAC,EAC3C,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAChC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAS,CAAC,CAAC;QAEvF,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrG,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,UAAU,EACV,CAAC,OAAO,EAAE,SAAS,EAAE,yBAAyB,CAAC,EAC/C,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAChC,CAAC;QAEF,MAAM,cAAc,CAAC,6CAA6C,EAAE,OAAO,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,UAAU,EACV,CAAC,6CAA6C,CAAC,EAC/C,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,MAAM,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAS,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,MAAM,4BAA4B,EAAE,CAAC;QAErD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5E,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YACrE,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9E,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,eAAe,CAAC;SAC1D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,OAAY,EAAgB,EAAE,CAAC,CAAC;YAC1E,QAAQ,EAAE,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxC,CAAC,CAAQ,CAAC,CAAC;QACZ,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;QAElF,MAAM,qBAAqB,CAAC,eAAe,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QAExG,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,SAAS,EACT,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,oCAAoC,CAAC,EAClE;YACE,GAAG,EAAE;gBACH,qBAAqB,EACnB,4BAA4B,kBAAkB,CAAC,aAAa,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE;aACvG;YACD,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,IAAI;YACjB,wBAAwB,EAAE,IAAI;SAC/B,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAS,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,sEAAsE,CAAC;QAEnF,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAEnC,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,SAAS,EACT,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,oCAAoC,CAAC,EAClE;YACE,GAAG,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;YACnC,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,IAAI;YACjB,wBAAwB,EAAE,IAAI;SAC/B,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC7E,MAAM,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC1E,yBAAyB,CAC1B,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,GAAG,GAAG,oEAAoE,CAAC;QACjF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,EAAE,CAAC,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QACxF,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAS,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC,CAAC;QAEvF,MAAM,qBAAqB,CAAC,gBAAgB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QAEzG,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,UAAU,EACV,CAAC,4BAA4B,kBAAkB,CAAC,aAAa,CAAC,MAAM,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,EACjG,EAAE,KAAK,EAAE,KAAK,EAAE,CACjB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,sBAAsB,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5D,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;QAEzD,MAAM,MAAM,GAAG,0BAA0B,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;QAC5E,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAS,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,sCAAsC,CAAC;QAEzD,MAAM,qBAAqB,CACzB,eAAe,EACf,aAAa,EACb,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EACrC,OAAO,CACR,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAChC,SAAS,EACT,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,oCAAoC,CAAC,EAClE;YACE,GAAG,EAAE,EAAE,qBAAqB,EAAE,mBAAmB,SAAS,EAAE,EAAE;YAC9D,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,IAAI;YACjB,wBAAwB,EAAE,IAAI;SAC/B,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAS,CAAC,CAAC;QAEvF,MAAM,MAAM,CAAC,qBAAqB,CAChC,gBAAgB,EAChB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EACzB,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,sCAAsC,EAAE,EAC7E,OAAO,CACR,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAExC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACjG,iCAAiC,CAClC,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|