@adverant-nexus/cli 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +1366 -0
- package/LICENSE +21 -0
- package/README.md +593 -0
- package/completions/_nexus +452 -0
- package/completions/nexus.bash +329 -0
- package/completions/nexus.fish +187 -0
- package/dist/cli.d.ts +35 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +135 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent/index.d.ts +9 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +20 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/list.d.ts +9 -0
- package/dist/commands/agent/list.d.ts.map +1 -0
- package/dist/commands/agent/list.js +122 -0
- package/dist/commands/agent/list.js.map +1 -0
- package/dist/commands/agent/run.d.ts +10 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +167 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/status.d.ts +9 -0
- package/dist/commands/agent/status.d.ts.map +1 -0
- package/dist/commands/agent/status.js +157 -0
- package/dist/commands/agent/status.js.map +1 -0
- package/dist/commands/compute/agent.d.ts +21 -0
- package/dist/commands/compute/agent.d.ts.map +1 -0
- package/dist/commands/compute/agent.js +158 -0
- package/dist/commands/compute/agent.js.map +1 -0
- package/dist/commands/compute/index.d.ts +10 -0
- package/dist/commands/compute/index.d.ts.map +1 -0
- package/dist/commands/compute/index.js +27 -0
- package/dist/commands/compute/index.js.map +1 -0
- package/dist/commands/compute/lib/hardware-detection.d.ts +52 -0
- package/dist/commands/compute/lib/hardware-detection.d.ts.map +1 -0
- package/dist/commands/compute/lib/hardware-detection.js +432 -0
- package/dist/commands/compute/lib/hardware-detection.js.map +1 -0
- package/dist/commands/compute/lib/local-compute-agent.d.ts +143 -0
- package/dist/commands/compute/lib/local-compute-agent.d.ts.map +1 -0
- package/dist/commands/compute/lib/local-compute-agent.js +1162 -0
- package/dist/commands/compute/lib/local-compute-agent.js.map +1 -0
- package/dist/commands/compute/lib/local-compute-client.d.ts +89 -0
- package/dist/commands/compute/lib/local-compute-client.d.ts.map +1 -0
- package/dist/commands/compute/lib/local-compute-client.js +388 -0
- package/dist/commands/compute/lib/local-compute-client.js.map +1 -0
- package/dist/commands/compute/list.d.ts +14 -0
- package/dist/commands/compute/list.d.ts.map +1 -0
- package/dist/commands/compute/list.js +164 -0
- package/dist/commands/compute/list.js.map +1 -0
- package/dist/commands/compute/logs.d.ts +14 -0
- package/dist/commands/compute/logs.d.ts.map +1 -0
- package/dist/commands/compute/logs.js +105 -0
- package/dist/commands/compute/logs.js.map +1 -0
- package/dist/commands/compute/resources.d.ts +14 -0
- package/dist/commands/compute/resources.d.ts.map +1 -0
- package/dist/commands/compute/resources.js +163 -0
- package/dist/commands/compute/resources.js.map +1 -0
- package/dist/commands/compute/status.d.ts +13 -0
- package/dist/commands/compute/status.d.ts.map +1 -0
- package/dist/commands/compute/status.js +223 -0
- package/dist/commands/compute/status.js.map +1 -0
- package/dist/commands/compute/submit.d.ts +19 -0
- package/dist/commands/compute/submit.d.ts.map +1 -0
- package/dist/commands/compute/submit.js +99 -0
- package/dist/commands/compute/submit.js.map +1 -0
- package/dist/commands/deploy.d.ts +11 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +117 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dynamic/graphrag-commands.d.ts +16 -0
- package/dist/commands/dynamic/graphrag-commands.d.ts.map +1 -0
- package/dist/commands/dynamic/graphrag-commands.js +562 -0
- package/dist/commands/dynamic/graphrag-commands.js.map +1 -0
- package/dist/commands/dynamic/index.d.ts +10 -0
- package/dist/commands/dynamic/index.d.ts.map +1 -0
- package/dist/commands/dynamic/index.js +17 -0
- package/dist/commands/dynamic/index.js.map +1 -0
- package/dist/commands/dynamic/mageagent-commands.d.ts +8 -0
- package/dist/commands/dynamic/mageagent-commands.d.ts.map +1 -0
- package/dist/commands/dynamic/mageagent-commands.js +86 -0
- package/dist/commands/dynamic/mageagent-commands.js.map +1 -0
- package/dist/commands/dynamic/mcp-tool-mapper.d.ts +97 -0
- package/dist/commands/dynamic/mcp-tool-mapper.d.ts.map +1 -0
- package/dist/commands/dynamic/mcp-tool-mapper.js +328 -0
- package/dist/commands/dynamic/mcp-tool-mapper.js.map +1 -0
- package/dist/commands/dynamic/nexus-commands.d.ts +78 -0
- package/dist/commands/dynamic/nexus-commands.d.ts.map +1 -0
- package/dist/commands/dynamic/nexus-commands.js +426 -0
- package/dist/commands/dynamic/nexus-commands.js.map +1 -0
- package/dist/commands/dynamic/sandbox-commands.d.ts +8 -0
- package/dist/commands/dynamic/sandbox-commands.d.ts.map +1 -0
- package/dist/commands/dynamic/sandbox-commands.js +80 -0
- package/dist/commands/dynamic/sandbox-commands.js.map +1 -0
- package/dist/commands/init.d.ts +11 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +128 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +10 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +81 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/login.d.ts +10 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +83 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logs.d.ts +11 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +79 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/nexus/index.d.ts +69 -0
- package/dist/commands/nexus/index.d.ts.map +1 -0
- package/dist/commands/nexus/index.js +336 -0
- package/dist/commands/nexus/index.js.map +1 -0
- package/dist/commands/plugin/disable.d.ts +8 -0
- package/dist/commands/plugin/disable.d.ts.map +1 -0
- package/dist/commands/plugin/disable.js +31 -0
- package/dist/commands/plugin/disable.js.map +1 -0
- package/dist/commands/plugin/enable.d.ts +8 -0
- package/dist/commands/plugin/enable.d.ts.map +1 -0
- package/dist/commands/plugin/enable.js +37 -0
- package/dist/commands/plugin/enable.js.map +1 -0
- package/dist/commands/plugin/index.d.ts +8 -0
- package/dist/commands/plugin/index.d.ts.map +1 -0
- package/dist/commands/plugin/index.js +23 -0
- package/dist/commands/plugin/index.js.map +1 -0
- package/dist/commands/plugin/info.d.ts +8 -0
- package/dist/commands/plugin/info.d.ts.map +1 -0
- package/dist/commands/plugin/info.js +129 -0
- package/dist/commands/plugin/info.js.map +1 -0
- package/dist/commands/plugin/init.d.ts +8 -0
- package/dist/commands/plugin/init.d.ts.map +1 -0
- package/dist/commands/plugin/init.js +83 -0
- package/dist/commands/plugin/init.js.map +1 -0
- package/dist/commands/plugin/install.d.ts +8 -0
- package/dist/commands/plugin/install.d.ts.map +1 -0
- package/dist/commands/plugin/install.js +56 -0
- package/dist/commands/plugin/install.js.map +1 -0
- package/dist/commands/plugin/list.d.ts +8 -0
- package/dist/commands/plugin/list.d.ts.map +1 -0
- package/dist/commands/plugin/list.js +72 -0
- package/dist/commands/plugin/list.js.map +1 -0
- package/dist/commands/plugin/uninstall.d.ts +8 -0
- package/dist/commands/plugin/uninstall.d.ts.map +1 -0
- package/dist/commands/plugin/uninstall.js +49 -0
- package/dist/commands/plugin/uninstall.js.map +1 -0
- package/dist/commands/register.d.ts +10 -0
- package/dist/commands/register.d.ts.map +1 -0
- package/dist/commands/register.js +85 -0
- package/dist/commands/register.js.map +1 -0
- package/dist/commands/services/health.d.ts +7 -0
- package/dist/commands/services/health.d.ts.map +1 -0
- package/dist/commands/services/health.js +73 -0
- package/dist/commands/services/health.js.map +1 -0
- package/dist/commands/services/index.d.ts +16 -0
- package/dist/commands/services/index.d.ts.map +1 -0
- package/dist/commands/services/index.js +26 -0
- package/dist/commands/services/index.js.map +1 -0
- package/dist/commands/services/info.d.ts +7 -0
- package/dist/commands/services/info.d.ts.map +1 -0
- package/dist/commands/services/info.js +68 -0
- package/dist/commands/services/info.js.map +1 -0
- package/dist/commands/services/list.d.ts +9 -0
- package/dist/commands/services/list.d.ts.map +1 -0
- package/dist/commands/services/list.js +43 -0
- package/dist/commands/services/list.js.map +1 -0
- package/dist/commands/services/logs.d.ts +7 -0
- package/dist/commands/services/logs.d.ts.map +1 -0
- package/dist/commands/services/logs.js +107 -0
- package/dist/commands/services/logs.js.map +1 -0
- package/dist/commands/services/ports.d.ts +7 -0
- package/dist/commands/services/ports.d.ts.map +1 -0
- package/dist/commands/services/ports.js +65 -0
- package/dist/commands/services/ports.js.map +1 -0
- package/dist/commands/services/restart.d.ts +7 -0
- package/dist/commands/services/restart.d.ts.map +1 -0
- package/dist/commands/services/restart.js +67 -0
- package/dist/commands/services/restart.js.map +1 -0
- package/dist/commands/services/start.d.ts +7 -0
- package/dist/commands/services/start.d.ts.map +1 -0
- package/dist/commands/services/start.js +67 -0
- package/dist/commands/services/start.js.map +1 -0
- package/dist/commands/services/status.d.ts +9 -0
- package/dist/commands/services/status.d.ts.map +1 -0
- package/dist/commands/services/status.js +119 -0
- package/dist/commands/services/status.js.map +1 -0
- package/dist/commands/services/stop.d.ts +7 -0
- package/dist/commands/services/stop.d.ts.map +1 -0
- package/dist/commands/services/stop.js +67 -0
- package/dist/commands/services/stop.js.map +1 -0
- package/dist/commands/session/delete.d.ts +9 -0
- package/dist/commands/session/delete.d.ts.map +1 -0
- package/dist/commands/session/delete.js +51 -0
- package/dist/commands/session/delete.js.map +1 -0
- package/dist/commands/session/export.d.ts +9 -0
- package/dist/commands/session/export.d.ts.map +1 -0
- package/dist/commands/session/export.js +36 -0
- package/dist/commands/session/export.js.map +1 -0
- package/dist/commands/session/import.d.ts +9 -0
- package/dist/commands/session/import.d.ts.map +1 -0
- package/dist/commands/session/import.js +54 -0
- package/dist/commands/session/import.js.map +1 -0
- package/dist/commands/session/index.d.ts +9 -0
- package/dist/commands/session/index.d.ts.map +1 -0
- package/dist/commands/session/index.js +28 -0
- package/dist/commands/session/index.js.map +1 -0
- package/dist/commands/session/list.d.ts +9 -0
- package/dist/commands/session/list.d.ts.map +1 -0
- package/dist/commands/session/list.js +88 -0
- package/dist/commands/session/list.js.map +1 -0
- package/dist/commands/session/load.d.ts +9 -0
- package/dist/commands/session/load.d.ts.map +1 -0
- package/dist/commands/session/load.js +71 -0
- package/dist/commands/session/load.js.map +1 -0
- package/dist/commands/session/resume.d.ts +9 -0
- package/dist/commands/session/resume.d.ts.map +1 -0
- package/dist/commands/session/resume.js +49 -0
- package/dist/commands/session/resume.js.map +1 -0
- package/dist/commands/session/save.d.ts +9 -0
- package/dist/commands/session/save.d.ts.map +1 -0
- package/dist/commands/session/save.js +69 -0
- package/dist/commands/session/save.js.map +1 -0
- package/dist/commands/workspace/git-commit.d.ts +9 -0
- package/dist/commands/workspace/git-commit.d.ts.map +1 -0
- package/dist/commands/workspace/git-commit.js +156 -0
- package/dist/commands/workspace/git-commit.js.map +1 -0
- package/dist/commands/workspace/git-status.d.ts +9 -0
- package/dist/commands/workspace/git-status.d.ts.map +1 -0
- package/dist/commands/workspace/git-status.js +192 -0
- package/dist/commands/workspace/git-status.js.map +1 -0
- package/dist/commands/workspace/index.d.ts +9 -0
- package/dist/commands/workspace/index.d.ts.map +1 -0
- package/dist/commands/workspace/index.js +24 -0
- package/dist/commands/workspace/index.js.map +1 -0
- package/dist/commands/workspace/info.d.ts +10 -0
- package/dist/commands/workspace/info.d.ts.map +1 -0
- package/dist/commands/workspace/info.js +191 -0
- package/dist/commands/workspace/info.js.map +1 -0
- package/dist/commands/workspace/init.d.ts +9 -0
- package/dist/commands/workspace/init.d.ts.map +1 -0
- package/dist/commands/workspace/init.js +193 -0
- package/dist/commands/workspace/init.js.map +1 -0
- package/dist/commands/workspace/validate.d.ts +9 -0
- package/dist/commands/workspace/validate.d.ts.map +1 -0
- package/dist/commands/workspace/validate.js +140 -0
- package/dist/commands/workspace/validate.js.map +1 -0
- package/dist/core/agent-client.d.ts +49 -0
- package/dist/core/agent-client.d.ts.map +1 -0
- package/dist/core/agent-client.js +289 -0
- package/dist/core/agent-client.js.map +1 -0
- package/dist/core/config/config-manager.d.ts +75 -0
- package/dist/core/config/config-manager.d.ts.map +1 -0
- package/dist/core/config/config-manager.js +379 -0
- package/dist/core/config/config-manager.js.map +1 -0
- package/dist/core/config/profile-manager.d.ts +76 -0
- package/dist/core/config/profile-manager.d.ts.map +1 -0
- package/dist/core/config/profile-manager.js +250 -0
- package/dist/core/config/profile-manager.js.map +1 -0
- package/dist/core/config/workspace-detector.d.ts +66 -0
- package/dist/core/config/workspace-detector.d.ts.map +1 -0
- package/dist/core/config/workspace-detector.js +291 -0
- package/dist/core/config/workspace-detector.js.map +1 -0
- package/dist/core/discovery/docker-parser.d.ts +27 -0
- package/dist/core/discovery/docker-parser.d.ts.map +1 -0
- package/dist/core/discovery/docker-parser.js +361 -0
- package/dist/core/discovery/docker-parser.js.map +1 -0
- package/dist/core/discovery/index.d.ts +11 -0
- package/dist/core/discovery/index.d.ts.map +1 -0
- package/dist/core/discovery/index.js +16 -0
- package/dist/core/discovery/index.js.map +1 -0
- package/dist/core/discovery/mcp-discovery.d.ts +41 -0
- package/dist/core/discovery/mcp-discovery.d.ts.map +1 -0
- package/dist/core/discovery/mcp-discovery.js +439 -0
- package/dist/core/discovery/mcp-discovery.js.map +1 -0
- package/dist/core/discovery/openapi-parser.d.ts +95 -0
- package/dist/core/discovery/openapi-parser.d.ts.map +1 -0
- package/dist/core/discovery/openapi-parser.js +353 -0
- package/dist/core/discovery/openapi-parser.js.map +1 -0
- package/dist/core/discovery/plugin-discovery.d.ts +63 -0
- package/dist/core/discovery/plugin-discovery.d.ts.map +1 -0
- package/dist/core/discovery/plugin-discovery.js +333 -0
- package/dist/core/discovery/plugin-discovery.js.map +1 -0
- package/dist/core/discovery/service-discovery.d.ts +107 -0
- package/dist/core/discovery/service-discovery.d.ts.map +1 -0
- package/dist/core/discovery/service-discovery.js +349 -0
- package/dist/core/discovery/service-discovery.js.map +1 -0
- package/dist/core/nexus-client.d.ts +119 -0
- package/dist/core/nexus-client.d.ts.map +1 -0
- package/dist/core/nexus-client.js +292 -0
- package/dist/core/nexus-client.js.map +1 -0
- package/dist/core/nexus-tool-executor.d.ts +102 -0
- package/dist/core/nexus-tool-executor.d.ts.map +1 -0
- package/dist/core/nexus-tool-executor.js +386 -0
- package/dist/core/nexus-tool-executor.js.map +1 -0
- package/dist/core/react-handler.d.ts +17 -0
- package/dist/core/react-handler.d.ts.map +1 -0
- package/dist/core/react-handler.js +296 -0
- package/dist/core/react-handler.js.map +1 -0
- package/dist/core/router/command-registry.d.ts +61 -0
- package/dist/core/router/command-registry.d.ts.map +1 -0
- package/dist/core/router/command-registry.js +138 -0
- package/dist/core/router/command-registry.js.map +1 -0
- package/dist/core/router/command-router.d.ts +33 -0
- package/dist/core/router/command-router.d.ts.map +1 -0
- package/dist/core/router/command-router.js +111 -0
- package/dist/core/router/command-router.js.map +1 -0
- package/dist/core/router/index.d.ts +9 -0
- package/dist/core/router/index.d.ts.map +1 -0
- package/dist/core/router/index.js +8 -0
- package/dist/core/router/index.js.map +1 -0
- package/dist/core/session/context-manager.d.ts +69 -0
- package/dist/core/session/context-manager.d.ts.map +1 -0
- package/dist/core/session/context-manager.js +109 -0
- package/dist/core/session/context-manager.js.map +1 -0
- package/dist/core/session/history-manager.d.ts +72 -0
- package/dist/core/session/history-manager.d.ts.map +1 -0
- package/dist/core/session/history-manager.js +175 -0
- package/dist/core/session/history-manager.js.map +1 -0
- package/dist/core/session/index.d.ts +9 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +9 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/session-manager.d.ts +50 -0
- package/dist/core/session/session-manager.d.ts.map +1 -0
- package/dist/core/session/session-manager.js +200 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/session/session-storage.d.ts +59 -0
- package/dist/core/session/session-storage.d.ts.map +1 -0
- package/dist/core/session/session-storage.js +226 -0
- package/dist/core/session/session-storage.js.map +1 -0
- package/dist/core/transport/http-client.d.ts +27 -0
- package/dist/core/transport/http-client.d.ts.map +1 -0
- package/dist/core/transport/http-client.js +182 -0
- package/dist/core/transport/http-client.js.map +1 -0
- package/dist/core/transport/index.d.ts +11 -0
- package/dist/core/transport/index.d.ts.map +1 -0
- package/dist/core/transport/index.js +10 -0
- package/dist/core/transport/index.js.map +1 -0
- package/dist/core/transport/mcp-client.d.ts +69 -0
- package/dist/core/transport/mcp-client.d.ts.map +1 -0
- package/dist/core/transport/mcp-client.js +252 -0
- package/dist/core/transport/mcp-client.js.map +1 -0
- package/dist/core/transport/stream-handler.d.ts +51 -0
- package/dist/core/transport/stream-handler.d.ts.map +1 -0
- package/dist/core/transport/stream-handler.js +264 -0
- package/dist/core/transport/stream-handler.js.map +1 -0
- package/dist/core/transport/websocket-client.d.ts +66 -0
- package/dist/core/transport/websocket-client.d.ts.map +1 -0
- package/dist/core/transport/websocket-client.js +232 -0
- package/dist/core/transport/websocket-client.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/output/formatters/index.d.ts +9 -0
- package/dist/output/formatters/index.d.ts.map +1 -0
- package/dist/output/formatters/index.js +9 -0
- package/dist/output/formatters/index.js.map +1 -0
- package/dist/output/formatters/json-formatter.d.ts +71 -0
- package/dist/output/formatters/json-formatter.d.ts.map +1 -0
- package/dist/output/formatters/json-formatter.js +236 -0
- package/dist/output/formatters/json-formatter.js.map +1 -0
- package/dist/output/formatters/stream-formatter.d.ts +107 -0
- package/dist/output/formatters/stream-formatter.d.ts.map +1 -0
- package/dist/output/formatters/stream-formatter.js +247 -0
- package/dist/output/formatters/stream-formatter.js.map +1 -0
- package/dist/output/formatters/table-formatter.d.ts +63 -0
- package/dist/output/formatters/table-formatter.d.ts.map +1 -0
- package/dist/output/formatters/table-formatter.js +294 -0
- package/dist/output/formatters/table-formatter.js.map +1 -0
- package/dist/output/formatters/text-formatter.d.ts +63 -0
- package/dist/output/formatters/text-formatter.d.ts.map +1 -0
- package/dist/output/formatters/text-formatter.js +202 -0
- package/dist/output/formatters/text-formatter.js.map +1 -0
- package/dist/output/formatters/yaml-formatter.d.ts +71 -0
- package/dist/output/formatters/yaml-formatter.d.ts.map +1 -0
- package/dist/output/formatters/yaml-formatter.js +239 -0
- package/dist/output/formatters/yaml-formatter.js.map +1 -0
- package/dist/output/index.d.ts +7 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +7 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/output-manager.d.ts +156 -0
- package/dist/output/output-manager.d.ts.map +1 -0
- package/dist/output/output-manager.js +339 -0
- package/dist/output/output-manager.js.map +1 -0
- package/dist/output/renderers/index.d.ts +6 -0
- package/dist/output/renderers/index.d.ts.map +1 -0
- package/dist/output/renderers/index.js +6 -0
- package/dist/output/renderers/index.js.map +1 -0
- package/dist/output/renderers/progress-renderer.d.ts +56 -0
- package/dist/output/renderers/progress-renderer.d.ts.map +1 -0
- package/dist/output/renderers/progress-renderer.js +306 -0
- package/dist/output/renderers/progress-renderer.js.map +1 -0
- package/dist/output/renderers/terminal-renderer.d.ts +117 -0
- package/dist/output/renderers/terminal-renderer.d.ts.map +1 -0
- package/dist/output/renderers/terminal-renderer.js +294 -0
- package/dist/output/renderers/terminal-renderer.js.map +1 -0
- package/dist/plugins/index.d.ts +12 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +18 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/plugin-loader.d.ts +37 -0
- package/dist/plugins/plugin-loader.d.ts.map +1 -0
- package/dist/plugins/plugin-loader.js +155 -0
- package/dist/plugins/plugin-loader.js.map +1 -0
- package/dist/plugins/plugin-manager.d.ts +78 -0
- package/dist/plugins/plugin-manager.d.ts.map +1 -0
- package/dist/plugins/plugin-manager.js +310 -0
- package/dist/plugins/plugin-manager.js.map +1 -0
- package/dist/plugins/plugin-sdk.d.ts +136 -0
- package/dist/plugins/plugin-sdk.d.ts.map +1 -0
- package/dist/plugins/plugin-sdk.js +260 -0
- package/dist/plugins/plugin-sdk.js.map +1 -0
- package/dist/plugins/plugin-storage.d.ts +109 -0
- package/dist/plugins/plugin-storage.d.ts.map +1 -0
- package/dist/plugins/plugin-storage.js +207 -0
- package/dist/plugins/plugin-storage.js.map +1 -0
- package/dist/plugins/plugin-validator.d.ts +44 -0
- package/dist/plugins/plugin-validator.d.ts.map +1 -0
- package/dist/plugins/plugin-validator.js +272 -0
- package/dist/plugins/plugin-validator.js.map +1 -0
- package/dist/plugins/template-generator.d.ts +35 -0
- package/dist/plugins/template-generator.d.ts.map +1 -0
- package/dist/plugins/template-generator.js +438 -0
- package/dist/plugins/template-generator.js.map +1 -0
- package/dist/repl/completer.d.ts +58 -0
- package/dist/repl/completer.d.ts.map +1 -0
- package/dist/repl/completer.js +198 -0
- package/dist/repl/completer.js.map +1 -0
- package/dist/repl/evaluator.d.ts +55 -0
- package/dist/repl/evaluator.d.ts.map +1 -0
- package/dist/repl/evaluator.js +299 -0
- package/dist/repl/evaluator.js.map +1 -0
- package/dist/repl/index.d.ts +10 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +10 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/renderer.d.ts +77 -0
- package/dist/repl/renderer.d.ts.map +1 -0
- package/dist/repl/renderer.js +291 -0
- package/dist/repl/renderer.js.map +1 -0
- package/dist/repl/repl.d.ts +89 -0
- package/dist/repl/repl.d.ts.map +1 -0
- package/dist/repl/repl.js +339 -0
- package/dist/repl/repl.js.map +1 -0
- package/dist/templates/python.d.ts +15 -0
- package/dist/templates/python.d.ts.map +1 -0
- package/dist/templates/python.js +375 -0
- package/dist/templates/python.js.map +1 -0
- package/dist/templates/typescript.d.ts +15 -0
- package/dist/templates/typescript.d.ts.map +1 -0
- package/dist/templates/typescript.js +274 -0
- package/dist/templates/typescript.js.map +1 -0
- package/dist/types/agent.d.ts +109 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +7 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/api.d.ts +125 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +53 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/command.d.ts +101 -0
- package/dist/types/command.d.ts.map +1 -0
- package/dist/types/command.js +7 -0
- package/dist/types/command.js.map +1 -0
- package/dist/types/compute.d.ts +317 -0
- package/dist/types/compute.d.ts.map +1 -0
- package/dist/types/compute.js +19 -0
- package/dist/types/compute.js.map +1 -0
- package/dist/types/config.d.ts +71 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +7 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +56 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +64 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +16 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +16 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/nexus.d.ts +254 -0
- package/dist/types/nexus.d.ts.map +1 -0
- package/dist/types/nexus.js +7 -0
- package/dist/types/nexus.js.map +1 -0
- package/dist/types/output.d.ts +107 -0
- package/dist/types/output.d.ts.map +1 -0
- package/dist/types/output.js +7 -0
- package/dist/types/output.js.map +1 -0
- package/dist/types/plugin.d.ts +118 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +7 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/service.d.ts +94 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/service.js +15 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/session.d.ts +80 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +7 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/transport.d.ts +96 -0
- package/dist/types/transport.d.ts.map +1 -0
- package/dist/types/transport.js +7 -0
- package/dist/types/transport.js.map +1 -0
- package/dist/utils/config.d.ts +47 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +166 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/error-handler.d.ts +82 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +238 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +61 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +200 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/prompt.d.ts +57 -0
- package/dist/utils/prompt.d.ts.map +1 -0
- package/dist/utils/prompt.js +141 -0
- package/dist/utils/prompt.js.map +1 -0
- package/dist/utils/spinner.d.ts +47 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +123 -0
- package/dist/utils/spinner.js.map +1 -0
- package/dist/utils/validation.d.ts +97 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +289 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/COMPLETIONS.md +528 -0
- package/docs/REPL.md +466 -0
- package/docs/graphrag-commands.md +387 -0
- package/package.json +154 -0
- package/scripts/install-completions.sh +356 -0
- package/scripts/prepublish.js +522 -0
- package/scripts/verify-package.js +505 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Profile Manager for Nexus CLI
|
|
3
|
+
*
|
|
4
|
+
* Manages configuration profiles:
|
|
5
|
+
* - Create/delete profiles
|
|
6
|
+
* - Switch between profiles
|
|
7
|
+
* - Export/import profiles
|
|
8
|
+
* - List all profiles
|
|
9
|
+
*/
|
|
10
|
+
import * as fs from 'fs-extra';
|
|
11
|
+
import { ConfigurationError } from '../../utils/error-handler.js';
|
|
12
|
+
import { logger } from '../../utils/logger.js';
|
|
13
|
+
export class ProfileManager {
|
|
14
|
+
configManager;
|
|
15
|
+
constructor(configManager) {
|
|
16
|
+
this.configManager = configManager;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* List all profiles
|
|
20
|
+
*/
|
|
21
|
+
async listProfiles() {
|
|
22
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
23
|
+
return globalConfig.profiles;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get current profile
|
|
27
|
+
*/
|
|
28
|
+
async getCurrentProfile() {
|
|
29
|
+
return await this.configManager.getCurrentProfile();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get profile by name
|
|
33
|
+
*/
|
|
34
|
+
async getProfile(name) {
|
|
35
|
+
const profiles = await this.listProfiles();
|
|
36
|
+
return profiles.find((p) => p.name === name) || null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a new profile
|
|
40
|
+
*/
|
|
41
|
+
async createProfile(name, config, setAsDefault = false) {
|
|
42
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
43
|
+
// Check if profile already exists
|
|
44
|
+
if (globalConfig.profiles.some((p) => p.name === name)) {
|
|
45
|
+
throw new ConfigurationError(`Profile '${name}' already exists`, { profileName: name });
|
|
46
|
+
}
|
|
47
|
+
const newProfile = {
|
|
48
|
+
name,
|
|
49
|
+
config,
|
|
50
|
+
default: setAsDefault,
|
|
51
|
+
};
|
|
52
|
+
// If setting as default, unset other defaults
|
|
53
|
+
if (setAsDefault) {
|
|
54
|
+
globalConfig.profiles.forEach((p) => {
|
|
55
|
+
p.default = false;
|
|
56
|
+
});
|
|
57
|
+
globalConfig.currentProfile = name;
|
|
58
|
+
}
|
|
59
|
+
globalConfig.profiles.push(newProfile);
|
|
60
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
61
|
+
logger.success(`Created profile '${name}'${setAsDefault ? ' (set as default)' : ''}`);
|
|
62
|
+
return newProfile;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Delete a profile
|
|
66
|
+
*/
|
|
67
|
+
async deleteProfile(name) {
|
|
68
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
69
|
+
// Cannot delete default profile if it's the only one
|
|
70
|
+
if (globalConfig.profiles.length === 1) {
|
|
71
|
+
throw new ConfigurationError('Cannot delete the only profile', { profileName: name });
|
|
72
|
+
}
|
|
73
|
+
const profileIndex = globalConfig.profiles.findIndex((p) => p.name === name);
|
|
74
|
+
if (profileIndex === -1) {
|
|
75
|
+
throw new ConfigurationError(`Profile '${name}' not found`, { profileName: name });
|
|
76
|
+
}
|
|
77
|
+
const wasDefault = globalConfig.profiles[profileIndex].default;
|
|
78
|
+
const wasCurrent = globalConfig.currentProfile === name;
|
|
79
|
+
// Remove profile
|
|
80
|
+
globalConfig.profiles.splice(profileIndex, 1);
|
|
81
|
+
// If we deleted the default or current profile, set a new one
|
|
82
|
+
if (wasDefault || wasCurrent) {
|
|
83
|
+
globalConfig.profiles[0].default = true;
|
|
84
|
+
globalConfig.currentProfile = globalConfig.profiles[0].name;
|
|
85
|
+
}
|
|
86
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
87
|
+
logger.success(`Deleted profile '${name}'`);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Switch to a different profile
|
|
91
|
+
*/
|
|
92
|
+
async switchProfile(name) {
|
|
93
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
94
|
+
const profile = globalConfig.profiles.find((p) => p.name === name);
|
|
95
|
+
if (!profile) {
|
|
96
|
+
throw new ConfigurationError(`Profile '${name}' not found`, {
|
|
97
|
+
profileName: name,
|
|
98
|
+
availableProfiles: globalConfig.profiles.map((p) => p.name),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
globalConfig.currentProfile = name;
|
|
102
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
103
|
+
// Clear cached config
|
|
104
|
+
this.configManager.clearCache();
|
|
105
|
+
logger.success(`Switched to profile '${name}'`);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Set a profile as default
|
|
109
|
+
*/
|
|
110
|
+
async setDefaultProfile(name) {
|
|
111
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
112
|
+
const profileIndex = globalConfig.profiles.findIndex((p) => p.name === name);
|
|
113
|
+
if (profileIndex === -1) {
|
|
114
|
+
throw new ConfigurationError(`Profile '${name}' not found`, { profileName: name });
|
|
115
|
+
}
|
|
116
|
+
// Unset all defaults
|
|
117
|
+
globalConfig.profiles.forEach((p) => {
|
|
118
|
+
p.default = false;
|
|
119
|
+
});
|
|
120
|
+
// Set new default
|
|
121
|
+
globalConfig.profiles[profileIndex].default = true;
|
|
122
|
+
globalConfig.currentProfile = name;
|
|
123
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
124
|
+
logger.success(`Set '${name}' as default profile`);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Update profile configuration
|
|
128
|
+
*/
|
|
129
|
+
async updateProfile(name, config) {
|
|
130
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
131
|
+
const profileIndex = globalConfig.profiles.findIndex((p) => p.name === name);
|
|
132
|
+
if (profileIndex === -1) {
|
|
133
|
+
throw new ConfigurationError(`Profile '${name}' not found`, { profileName: name });
|
|
134
|
+
}
|
|
135
|
+
// Merge configurations
|
|
136
|
+
const currentConfig = globalConfig.profiles[profileIndex].config;
|
|
137
|
+
globalConfig.profiles[profileIndex].config = {
|
|
138
|
+
...currentConfig,
|
|
139
|
+
workspace: { ...currentConfig.workspace, ...config.workspace },
|
|
140
|
+
services: { ...currentConfig.services, ...config.services },
|
|
141
|
+
auth: { ...currentConfig.auth, ...config.auth },
|
|
142
|
+
defaults: { ...currentConfig.defaults, ...config.defaults },
|
|
143
|
+
agent: { ...currentConfig.agent, ...config.agent },
|
|
144
|
+
plugins: { ...currentConfig.plugins, ...config.plugins },
|
|
145
|
+
nexus: { ...currentConfig.nexus, ...config.nexus },
|
|
146
|
+
shortcuts: [...(currentConfig.shortcuts || []), ...(config.shortcuts || [])],
|
|
147
|
+
};
|
|
148
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
149
|
+
// Clear cached config
|
|
150
|
+
this.configManager.clearCache();
|
|
151
|
+
logger.success(`Updated profile '${name}'`);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Rename a profile
|
|
155
|
+
*/
|
|
156
|
+
async renameProfile(oldName, newName) {
|
|
157
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
158
|
+
// Check if new name already exists
|
|
159
|
+
if (globalConfig.profiles.some((p) => p.name === newName)) {
|
|
160
|
+
throw new ConfigurationError(`Profile '${newName}' already exists`, { profileName: newName });
|
|
161
|
+
}
|
|
162
|
+
const profileIndex = globalConfig.profiles.findIndex((p) => p.name === oldName);
|
|
163
|
+
if (profileIndex === -1) {
|
|
164
|
+
throw new ConfigurationError(`Profile '${oldName}' not found`, { profileName: oldName });
|
|
165
|
+
}
|
|
166
|
+
// Rename profile
|
|
167
|
+
globalConfig.profiles[profileIndex].name = newName;
|
|
168
|
+
// Update current profile if needed
|
|
169
|
+
if (globalConfig.currentProfile === oldName) {
|
|
170
|
+
globalConfig.currentProfile = newName;
|
|
171
|
+
}
|
|
172
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
173
|
+
logger.success(`Renamed profile '${oldName}' to '${newName}'`);
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Export profile to JSON
|
|
177
|
+
*/
|
|
178
|
+
async exportProfile(name) {
|
|
179
|
+
const profile = await this.getProfile(name);
|
|
180
|
+
if (!profile) {
|
|
181
|
+
throw new ConfigurationError(`Profile '${name}' not found`, { profileName: name });
|
|
182
|
+
}
|
|
183
|
+
return profile;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Export profile to file
|
|
187
|
+
*/
|
|
188
|
+
async exportProfileToFile(name, filePath) {
|
|
189
|
+
const profile = await this.exportProfile(name);
|
|
190
|
+
try {
|
|
191
|
+
await fs.writeJson(filePath, profile, { spaces: 2 });
|
|
192
|
+
logger.success(`Exported profile '${name}' to ${filePath}`);
|
|
193
|
+
}
|
|
194
|
+
catch (error) {
|
|
195
|
+
throw new ConfigurationError(`Failed to export profile: ${error instanceof Error ? error.message : String(error)}`, { profileName: name, filePath });
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Import profile from JSON
|
|
200
|
+
*/
|
|
201
|
+
async importProfile(profileData, overwrite = false) {
|
|
202
|
+
const globalConfig = await this.configManager.loadGlobalConfig();
|
|
203
|
+
const existingIndex = globalConfig.profiles.findIndex((p) => p.name === profileData.name);
|
|
204
|
+
if (existingIndex !== -1 && !overwrite) {
|
|
205
|
+
throw new ConfigurationError(`Profile '${profileData.name}' already exists. Use overwrite option to replace it.`, { profileName: profileData.name });
|
|
206
|
+
}
|
|
207
|
+
if (existingIndex !== -1) {
|
|
208
|
+
// Overwrite existing
|
|
209
|
+
globalConfig.profiles[existingIndex] = profileData;
|
|
210
|
+
logger.success(`Overwrote profile '${profileData.name}'`);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
// Add new profile
|
|
214
|
+
globalConfig.profiles.push(profileData);
|
|
215
|
+
logger.success(`Imported profile '${profileData.name}'`);
|
|
216
|
+
}
|
|
217
|
+
await this.configManager.saveGlobalConfig(globalConfig);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Import profile from file
|
|
221
|
+
*/
|
|
222
|
+
async importProfileFromFile(filePath, overwrite = false) {
|
|
223
|
+
try {
|
|
224
|
+
const profileData = await fs.readJson(filePath);
|
|
225
|
+
await this.importProfile(profileData, overwrite);
|
|
226
|
+
logger.success(`Imported profile from ${filePath}`);
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
throw new ConfigurationError(`Failed to import profile: ${error instanceof Error ? error.message : String(error)}`, { filePath });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Copy profile
|
|
234
|
+
*/
|
|
235
|
+
async copyProfile(sourceName, targetName, setAsDefault = false) {
|
|
236
|
+
const sourceProfile = await this.getProfile(sourceName);
|
|
237
|
+
if (!sourceProfile) {
|
|
238
|
+
throw new ConfigurationError(`Profile '${sourceName}' not found`, { profileName: sourceName });
|
|
239
|
+
}
|
|
240
|
+
// Create a copy with new name
|
|
241
|
+
return await this.createProfile(targetName, { ...sourceProfile.config }, setAsDefault);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Create profile manager instance
|
|
246
|
+
*/
|
|
247
|
+
export function createProfileManager(configManager) {
|
|
248
|
+
return new ProfileManager(configManager);
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=profile-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile-manager.js","sourceRoot":"","sources":["../../../src/core/config/profile-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Detection for Nexus CLI
|
|
3
|
+
*
|
|
4
|
+
* Auto-detects workspace characteristics:
|
|
5
|
+
* - Project type (typescript, python, go, rust, java)
|
|
6
|
+
* - Git repository info
|
|
7
|
+
* - Docker compose files
|
|
8
|
+
* - Service availability
|
|
9
|
+
*/
|
|
10
|
+
import type { NexusConfig } from '../../types/config.js';
|
|
11
|
+
export interface WorkspaceInfo {
|
|
12
|
+
cwd: string;
|
|
13
|
+
projectType: 'typescript' | 'python' | 'go' | 'rust' | 'java' | 'unknown';
|
|
14
|
+
projectName: string;
|
|
15
|
+
gitRepo: boolean;
|
|
16
|
+
gitBranch?: string;
|
|
17
|
+
gitRemote?: string;
|
|
18
|
+
gitStatus?: string;
|
|
19
|
+
dockerComposeFiles: string[];
|
|
20
|
+
nexusConfig: NexusConfig | null;
|
|
21
|
+
packageManager?: 'npm' | 'yarn' | 'pnpm' | 'pip' | 'poetry' | 'cargo' | 'gradle' | 'maven';
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Workspace Detector
|
|
25
|
+
*/
|
|
26
|
+
export declare class WorkspaceDetector {
|
|
27
|
+
private cwd;
|
|
28
|
+
constructor(cwd?: string);
|
|
29
|
+
/**
|
|
30
|
+
* Detect all workspace characteristics
|
|
31
|
+
*/
|
|
32
|
+
detect(): Promise<WorkspaceInfo>;
|
|
33
|
+
/**
|
|
34
|
+
* Detect project type based on files present
|
|
35
|
+
*/
|
|
36
|
+
private detectProjectType;
|
|
37
|
+
/**
|
|
38
|
+
* Detect project name from package files
|
|
39
|
+
*/
|
|
40
|
+
private detectProjectName;
|
|
41
|
+
/**
|
|
42
|
+
* Detect git repository info
|
|
43
|
+
*/
|
|
44
|
+
private detectGitInfo;
|
|
45
|
+
/**
|
|
46
|
+
* Detect docker-compose files
|
|
47
|
+
*/
|
|
48
|
+
private detectDockerComposeFiles;
|
|
49
|
+
/**
|
|
50
|
+
* Detect package manager
|
|
51
|
+
*/
|
|
52
|
+
private detectPackageManager;
|
|
53
|
+
/**
|
|
54
|
+
* Check if running in a Nexus workspace
|
|
55
|
+
*/
|
|
56
|
+
isNexusWorkspace(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Find nearest .nexus.toml by walking up the directory tree
|
|
59
|
+
*/
|
|
60
|
+
findNexusWorkspaceRoot(startDir?: string): Promise<string | null>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create workspace detector instance
|
|
64
|
+
*/
|
|
65
|
+
export declare function createWorkspaceDetector(cwd?: string): WorkspaceDetector;
|
|
66
|
+
//# sourceMappingURL=workspace-detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-detector.d.ts","sourceRoot":"","sources":["../../../src/core/config/workspace-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1E,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC5F;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,CAAC,EAAE,MAAM;IAIxB;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;IA2BtC;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;YACW,iBAAiB;IA4D/B;;OAEG;YACW,aAAa;IA0D3B;;OAEG;YACW,wBAAwB;IAoCtC;;OAEG;YACW,oBAAoB;IA4BlC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAK1C;;OAEG;IACG,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAcxE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAEvE"}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace Detection for Nexus CLI
|
|
3
|
+
*
|
|
4
|
+
* Auto-detects workspace characteristics:
|
|
5
|
+
* - Project type (typescript, python, go, rust, java)
|
|
6
|
+
* - Git repository info
|
|
7
|
+
* - Docker compose files
|
|
8
|
+
* - Service availability
|
|
9
|
+
*/
|
|
10
|
+
import * as fs from 'fs-extra';
|
|
11
|
+
import * as path from 'path';
|
|
12
|
+
import { execaCommand } from 'execa';
|
|
13
|
+
import { glob } from 'glob';
|
|
14
|
+
import { logger } from '../../utils/logger.js';
|
|
15
|
+
/**
|
|
16
|
+
* Workspace Detector
|
|
17
|
+
*/
|
|
18
|
+
export class WorkspaceDetector {
|
|
19
|
+
cwd;
|
|
20
|
+
constructor(cwd) {
|
|
21
|
+
this.cwd = cwd || process.cwd();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Detect all workspace characteristics
|
|
25
|
+
*/
|
|
26
|
+
async detect() {
|
|
27
|
+
const [projectType, projectName, gitInfo, dockerFiles, packageManager] = await Promise.all([
|
|
28
|
+
this.detectProjectType(),
|
|
29
|
+
this.detectProjectName(),
|
|
30
|
+
this.detectGitInfo(),
|
|
31
|
+
this.detectDockerComposeFiles(),
|
|
32
|
+
this.detectPackageManager(),
|
|
33
|
+
]);
|
|
34
|
+
// Check for .nexus.toml
|
|
35
|
+
const nexusConfigPath = path.join(this.cwd, '.nexus.toml');
|
|
36
|
+
const hasNexusConfig = await fs.pathExists(nexusConfigPath);
|
|
37
|
+
return {
|
|
38
|
+
cwd: this.cwd,
|
|
39
|
+
projectType,
|
|
40
|
+
projectName,
|
|
41
|
+
gitRepo: gitInfo.isRepo,
|
|
42
|
+
gitBranch: gitInfo.branch,
|
|
43
|
+
gitRemote: gitInfo.remote,
|
|
44
|
+
gitStatus: gitInfo.status,
|
|
45
|
+
dockerComposeFiles: dockerFiles,
|
|
46
|
+
nexusConfig: hasNexusConfig ? {} : null, // Actual config loaded by ConfigManager
|
|
47
|
+
packageManager,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Detect project type based on files present
|
|
52
|
+
*/
|
|
53
|
+
async detectProjectType() {
|
|
54
|
+
const checks = [
|
|
55
|
+
{
|
|
56
|
+
type: 'typescript',
|
|
57
|
+
files: ['package.json', 'tsconfig.json'],
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
type: 'python',
|
|
61
|
+
files: ['requirements.txt', 'setup.py', 'pyproject.toml', 'Pipfile'],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: 'go',
|
|
65
|
+
files: ['go.mod', 'go.sum'],
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
type: 'rust',
|
|
69
|
+
files: ['Cargo.toml', 'Cargo.lock'],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
type: 'java',
|
|
73
|
+
files: ['pom.xml', 'build.gradle', 'build.gradle.kts'],
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
for (const check of checks) {
|
|
77
|
+
for (const file of check.files) {
|
|
78
|
+
const filePath = path.join(this.cwd, file);
|
|
79
|
+
if (await fs.pathExists(filePath)) {
|
|
80
|
+
logger.debug(`Detected ${check.type} project (found ${file})`);
|
|
81
|
+
return check.type;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
logger.debug('Could not detect project type');
|
|
86
|
+
return 'unknown';
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Detect project name from package files
|
|
90
|
+
*/
|
|
91
|
+
async detectProjectName() {
|
|
92
|
+
// Try package.json
|
|
93
|
+
const packageJsonPath = path.join(this.cwd, 'package.json');
|
|
94
|
+
if (await fs.pathExists(packageJsonPath)) {
|
|
95
|
+
try {
|
|
96
|
+
const packageJson = await fs.readJson(packageJsonPath);
|
|
97
|
+
if (packageJson.name) {
|
|
98
|
+
return packageJson.name;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
logger.debug(`Failed to read package.json: ${error}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Try pyproject.toml
|
|
106
|
+
const pyprojectPath = path.join(this.cwd, 'pyproject.toml');
|
|
107
|
+
if (await fs.pathExists(pyprojectPath)) {
|
|
108
|
+
try {
|
|
109
|
+
const content = await fs.readFile(pyprojectPath, 'utf-8');
|
|
110
|
+
const match = content.match(/name\s*=\s*"([^"]+)"/);
|
|
111
|
+
if (match) {
|
|
112
|
+
return match[1];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
logger.debug(`Failed to read pyproject.toml: ${error}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// Try Cargo.toml
|
|
120
|
+
const cargoPath = path.join(this.cwd, 'Cargo.toml');
|
|
121
|
+
if (await fs.pathExists(cargoPath)) {
|
|
122
|
+
try {
|
|
123
|
+
const content = await fs.readFile(cargoPath, 'utf-8');
|
|
124
|
+
const match = content.match(/name\s*=\s*"([^"]+)"/);
|
|
125
|
+
if (match) {
|
|
126
|
+
return match[1];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
logger.debug(`Failed to read Cargo.toml: ${error}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
// Try go.mod
|
|
134
|
+
const goModPath = path.join(this.cwd, 'go.mod');
|
|
135
|
+
if (await fs.pathExists(goModPath)) {
|
|
136
|
+
try {
|
|
137
|
+
const content = await fs.readFile(goModPath, 'utf-8');
|
|
138
|
+
const match = content.match(/module\s+([^\s]+)/);
|
|
139
|
+
if (match) {
|
|
140
|
+
return match[1].split('/').pop() || match[1];
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
logger.debug(`Failed to read go.mod: ${error}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Fallback to directory name
|
|
148
|
+
return path.basename(this.cwd);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Detect git repository info
|
|
152
|
+
*/
|
|
153
|
+
async detectGitInfo() {
|
|
154
|
+
const gitDir = path.join(this.cwd, '.git');
|
|
155
|
+
const isRepo = await fs.pathExists(gitDir);
|
|
156
|
+
if (!isRepo) {
|
|
157
|
+
return { isRepo: false };
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
// Get current branch
|
|
161
|
+
const branchResult = await execaCommand('git rev-parse --abbrev-ref HEAD', {
|
|
162
|
+
cwd: this.cwd,
|
|
163
|
+
shell: true,
|
|
164
|
+
});
|
|
165
|
+
const branch = branchResult.stdout.trim();
|
|
166
|
+
// Get remote URL
|
|
167
|
+
let remote;
|
|
168
|
+
try {
|
|
169
|
+
const remoteResult = await execaCommand('git config --get remote.origin.url', {
|
|
170
|
+
cwd: this.cwd,
|
|
171
|
+
shell: true,
|
|
172
|
+
});
|
|
173
|
+
remote = remoteResult.stdout.trim();
|
|
174
|
+
}
|
|
175
|
+
catch {
|
|
176
|
+
// No remote configured
|
|
177
|
+
}
|
|
178
|
+
// Get status
|
|
179
|
+
let status;
|
|
180
|
+
try {
|
|
181
|
+
const statusResult = await execaCommand('git status --porcelain', {
|
|
182
|
+
cwd: this.cwd,
|
|
183
|
+
shell: true,
|
|
184
|
+
});
|
|
185
|
+
const hasChanges = statusResult.stdout.trim().length > 0;
|
|
186
|
+
status = hasChanges ? 'modified' : 'clean';
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
// Status check failed
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
isRepo: true,
|
|
193
|
+
branch,
|
|
194
|
+
remote,
|
|
195
|
+
status,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
catch (error) {
|
|
199
|
+
logger.debug(`Failed to get git info: ${error}`);
|
|
200
|
+
return { isRepo: true };
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Detect docker-compose files
|
|
205
|
+
*/
|
|
206
|
+
async detectDockerComposeFiles() {
|
|
207
|
+
const patterns = [
|
|
208
|
+
'docker-compose.yml',
|
|
209
|
+
'docker-compose.yaml',
|
|
210
|
+
'docker/docker-compose.yml',
|
|
211
|
+
'docker/docker-compose.yaml',
|
|
212
|
+
'docker-compose.*.yml',
|
|
213
|
+
'docker-compose.*.yaml',
|
|
214
|
+
'docker/docker-compose.*.yml',
|
|
215
|
+
'docker/docker-compose.*.yaml',
|
|
216
|
+
];
|
|
217
|
+
const files = [];
|
|
218
|
+
for (const pattern of patterns) {
|
|
219
|
+
try {
|
|
220
|
+
const matches = await glob(pattern, {
|
|
221
|
+
cwd: this.cwd,
|
|
222
|
+
absolute: true,
|
|
223
|
+
});
|
|
224
|
+
files.push(...matches);
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
logger.debug(`Failed to search for ${pattern}: ${error}`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
// Remove duplicates and sort
|
|
231
|
+
const uniqueFiles = Array.from(new Set(files)).sort();
|
|
232
|
+
if (uniqueFiles.length > 0) {
|
|
233
|
+
logger.debug(`Found ${uniqueFiles.length} docker-compose file(s)`);
|
|
234
|
+
}
|
|
235
|
+
return uniqueFiles;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Detect package manager
|
|
239
|
+
*/
|
|
240
|
+
async detectPackageManager() {
|
|
241
|
+
const checks = [
|
|
242
|
+
{ manager: 'pnpm', files: ['pnpm-lock.yaml'] },
|
|
243
|
+
{ manager: 'yarn', files: ['yarn.lock'] },
|
|
244
|
+
{ manager: 'npm', files: ['package-lock.json'] },
|
|
245
|
+
{ manager: 'poetry', files: ['poetry.lock'] },
|
|
246
|
+
{ manager: 'pip', files: ['requirements.txt'] },
|
|
247
|
+
{ manager: 'cargo', files: ['Cargo.lock'] },
|
|
248
|
+
{ manager: 'gradle', files: ['build.gradle', 'build.gradle.kts'] },
|
|
249
|
+
{ manager: 'maven', files: ['pom.xml'] },
|
|
250
|
+
];
|
|
251
|
+
for (const check of checks) {
|
|
252
|
+
for (const file of check.files) {
|
|
253
|
+
const filePath = path.join(this.cwd, file);
|
|
254
|
+
if (await fs.pathExists(filePath)) {
|
|
255
|
+
logger.debug(`Detected ${check.manager} package manager (found ${file})`);
|
|
256
|
+
return check.manager;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Check if running in a Nexus workspace
|
|
264
|
+
*/
|
|
265
|
+
async isNexusWorkspace() {
|
|
266
|
+
const nexusConfigPath = path.join(this.cwd, '.nexus.toml');
|
|
267
|
+
return await fs.pathExists(nexusConfigPath);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Find nearest .nexus.toml by walking up the directory tree
|
|
271
|
+
*/
|
|
272
|
+
async findNexusWorkspaceRoot(startDir) {
|
|
273
|
+
let currentDir = startDir || this.cwd;
|
|
274
|
+
const root = path.parse(currentDir).root;
|
|
275
|
+
while (currentDir !== root) {
|
|
276
|
+
const configPath = path.join(currentDir, '.nexus.toml');
|
|
277
|
+
if (await fs.pathExists(configPath)) {
|
|
278
|
+
return currentDir;
|
|
279
|
+
}
|
|
280
|
+
currentDir = path.dirname(currentDir);
|
|
281
|
+
}
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Create workspace detector instance
|
|
287
|
+
*/
|
|
288
|
+
export function createWorkspaceDetector(cwd) {
|
|
289
|
+
return new WorkspaceDetector(cwd);
|
|
290
|
+
}
|
|
291
|
+
//# sourceMappingURL=workspace-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-detector.js","sourceRoot":"","sources":["../../../src/core/config/workspace-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Docker Compose Parser
|
|
3
|
+
*
|
|
4
|
+
* Parses docker-compose.yml files (v3.8) to extract service metadata
|
|
5
|
+
*/
|
|
6
|
+
import type { DockerComposeConfig, DockerComposeService, ServiceMetadata } from '../../types/service.js';
|
|
7
|
+
export interface DockerParserOptions {
|
|
8
|
+
defaultProtocol?: 'http' | 'https';
|
|
9
|
+
defaultHost?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Parse docker-compose YAML file
|
|
13
|
+
*/
|
|
14
|
+
export declare function parseDockerCompose(filePath: string, options?: DockerParserOptions): Promise<DockerComposeConfig>;
|
|
15
|
+
/**
|
|
16
|
+
* Extract service metadata from docker-compose service definition
|
|
17
|
+
*/
|
|
18
|
+
export declare function extractServiceMetadata(name: string, service: DockerComposeService, options?: DockerParserOptions): ServiceMetadata;
|
|
19
|
+
/**
|
|
20
|
+
* Parse multiple docker-compose files and merge services
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseMultipleComposeFiles(filePaths: string[], options?: DockerParserOptions): Promise<Map<string, ServiceMetadata>>;
|
|
23
|
+
/**
|
|
24
|
+
* Filter services by type (exclude databases, infrastructure)
|
|
25
|
+
*/
|
|
26
|
+
export declare function filterApplicationServices(services: Map<string, ServiceMetadata>): Map<string, ServiceMetadata>;
|
|
27
|
+
//# sourceMappingURL=docker-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docker-parser.d.ts","sourceRoot":"","sources":["../../../src/core/discovery/docker-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EAGhB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAgB9B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,OAAO,GAAE,mBAAwB,GAChC,eAAe,CA0DjB;AAkSD;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAkBvC;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GACrC,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAgB9B"}
|