systemlink-cli 1.17.2__tar.gz → 1.17.4__tar.gz
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.
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/PKG-INFO +3 -1
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/pyproject.toml +5 -7
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/_version.py +1 -1
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/mcp_click.py +3 -1
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_click.py +117 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/LICENSE +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/dff-editor/editor.js +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/dff-editor/index.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/__init__.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/__main__.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/asset_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/cli_formatters.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/cli_utils.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/comment_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/completion_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/config.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/config_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/dataframe_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/dff_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/dff_decorators.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/example_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/example_loader.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/example_provisioner.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/_schema/schema-v1.0.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-complete-workflow/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-complete-workflow/config.yaml +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-test-plans/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-test-plans/config.yaml +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/feed_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/file_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/function_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/function_templates.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/main.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/mcp_reachability.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/mcp_server.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/notebook_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/platform.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/policy_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/policy_utils.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/profiles.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/response_handlers.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/rich_output.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/routine_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skill_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/SKILL.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/analysis-recipes.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/commands.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/datasheet-workflow.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/filtering.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/import-specs.min.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/job-debugging/overview.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/nipkg/overview.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/notebook/interfaces.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/notebook/notebook-patterns.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/notebook/overview.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/python-test/overview.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/routine-examples.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/troubleshooting.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/angular-ui-packages.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/deployment.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/layout-patterns.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/nimble-angular.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/overview.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/systemlink-services.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/troubleshooting.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/scripts/spec_import_helper.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/spec_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/ssl_trust.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/state_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/system_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/system_query_utils.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/table_utils.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/tag_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/templates_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/testmonitor_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/universal_handlers.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/user_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/utils.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/web_editor.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_bootstrap.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/.gitignore +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/angular.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/package.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/app-routing.module.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/app.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/app.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/app.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/app.module.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/state/app-view-state.service.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/systemlink-context.service.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/theme-sync.service.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/webapp-home-data.service.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/app/shared/states/view-state.model.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/assets/README.md +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/index.html +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/main.ts +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/styles.scss +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/tsconfig.app.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/tsconfig.json +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/workflow_preview.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/workflows_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/workitem_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/workspace_click.py +0 -0
- {systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/workspace_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: systemlink-cli
|
|
3
|
-
Version: 1.17.
|
|
3
|
+
Version: 1.17.4
|
|
4
4
|
Summary: SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates.
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Author: Fred Visser
|
|
@@ -10,9 +10,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.12
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.13
|
|
12
12
|
Classifier: Programming Language :: Python :: 3.14
|
|
13
|
+
Provides-Extra: mcp
|
|
13
14
|
Requires-Dist: click (>=7.1.2)
|
|
14
15
|
Requires-Dist: cryptography (>=49.0.0)
|
|
15
16
|
Requires-Dist: keyring (>=25.6.0,<26.0.0)
|
|
17
|
+
Requires-Dist: mcp (>=1.0) ; extra == "mcp"
|
|
16
18
|
Requires-Dist: packaging (>=21.0)
|
|
17
19
|
Requires-Dist: pygments (>=2.20.0)
|
|
18
20
|
Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "systemlink-cli"
|
|
3
|
-
version = "1.17.
|
|
3
|
+
version = "1.17.4"
|
|
4
4
|
description = "SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates."
|
|
5
5
|
authors = ["Fred Visser <fred.visser@emerson.com>"]
|
|
6
6
|
packages = [{ include = "slcli" }]
|
|
@@ -21,12 +21,6 @@ update-version = "scripts.update_version:main"
|
|
|
21
21
|
release-from-changes = "scripts.towncrier_release:main"
|
|
22
22
|
lint = "scripts.lint:main"
|
|
23
23
|
|
|
24
|
-
[tool.poetry.group.mcp]
|
|
25
|
-
optional = true
|
|
26
|
-
|
|
27
|
-
[tool.poetry.group.mcp.dependencies]
|
|
28
|
-
mcp = ">=1.0"
|
|
29
|
-
|
|
30
24
|
[tool.poetry.dependencies]
|
|
31
25
|
python = ">=3.11.1,<3.15"
|
|
32
26
|
# cli
|
|
@@ -43,6 +37,10 @@ rich = ">=15,<16"
|
|
|
43
37
|
rich-click = ">=1.8,<2"
|
|
44
38
|
cryptography = ">=49.0.0"
|
|
45
39
|
pygments = ">=2.20.0"
|
|
40
|
+
mcp = { version = ">=1.0", optional = true }
|
|
41
|
+
|
|
42
|
+
[tool.poetry.extras]
|
|
43
|
+
mcp = ["mcp"]
|
|
46
44
|
|
|
47
45
|
|
|
48
46
|
[tool.poetry.group.dev.dependencies]
|
|
@@ -200,7 +200,9 @@ def register_mcp_commands(cli: Any) -> None:
|
|
|
200
200
|
click.echo(
|
|
201
201
|
"✗ The 'mcp' package is not installed.\n"
|
|
202
202
|
" Install it with: pip install 'mcp>=1.0'\n"
|
|
203
|
-
" Or in a Poetry project: poetry add mcp"
|
|
203
|
+
" Or in a Poetry project: poetry add mcp\n"
|
|
204
|
+
" If slcli was installed with pipx:\n"
|
|
205
|
+
" pipx runpip systemlink-cli install 'mcp>=1.0'\n",
|
|
204
206
|
err=True,
|
|
205
207
|
)
|
|
206
208
|
sys.exit(ExitCodes.GENERAL_ERROR)
|
|
@@ -151,6 +151,111 @@ def _build_published_webapp_url(
|
|
|
151
151
|
return ""
|
|
152
152
|
|
|
153
153
|
|
|
154
|
+
def _find_conflicting_webapp_id(value: Any) -> str:
|
|
155
|
+
"""Find a webapp ID in a duplicate-create response payload."""
|
|
156
|
+
if isinstance(value, dict):
|
|
157
|
+
for key in (
|
|
158
|
+
"id",
|
|
159
|
+
"webappId",
|
|
160
|
+
"webAppId",
|
|
161
|
+
"existingId",
|
|
162
|
+
"existingWebappId",
|
|
163
|
+
"existingWebAppId",
|
|
164
|
+
"resourceId",
|
|
165
|
+
):
|
|
166
|
+
candidate = value.get(key)
|
|
167
|
+
if candidate:
|
|
168
|
+
return str(candidate)
|
|
169
|
+
for nested in value.values():
|
|
170
|
+
conflict_id = _find_conflicting_webapp_id(nested)
|
|
171
|
+
if conflict_id:
|
|
172
|
+
return conflict_id
|
|
173
|
+
elif isinstance(value, list):
|
|
174
|
+
for nested in value:
|
|
175
|
+
conflict_id = _find_conflicting_webapp_id(nested)
|
|
176
|
+
if conflict_id:
|
|
177
|
+
return conflict_id
|
|
178
|
+
return ""
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def _find_existing_webapp(webapp_name: str, workspace_id: str) -> Optional[Dict[str, Any]]:
|
|
182
|
+
"""Find an existing WebVI with the requested name and workspace."""
|
|
183
|
+
escaped_name = webapp_name.replace("\\", "\\\\").replace('"', '\\"')
|
|
184
|
+
filter_parts = [f'type == "WebVI"', f'name.Contains("{escaped_name}")']
|
|
185
|
+
if workspace_id:
|
|
186
|
+
escaped_workspace = workspace_id.replace("\\", "\\\\").replace('"', '\\"')
|
|
187
|
+
filter_parts.append(f'workspace == "{escaped_workspace}"')
|
|
188
|
+
|
|
189
|
+
try:
|
|
190
|
+
webapps = _query_webapps_http(" and ".join(filter_parts), max_items=100)
|
|
191
|
+
except Exception:
|
|
192
|
+
return None
|
|
193
|
+
|
|
194
|
+
for webapp in webapps:
|
|
195
|
+
if (
|
|
196
|
+
webapp.get("type") == "WebVI"
|
|
197
|
+
and webapp.get("name") == webapp_name
|
|
198
|
+
and (not workspace_id or webapp.get("workspace") == workspace_id)
|
|
199
|
+
):
|
|
200
|
+
return webapp
|
|
201
|
+
return None
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
def _handle_webapp_create_conflict(
|
|
205
|
+
response: Any,
|
|
206
|
+
workspace_id: str,
|
|
207
|
+
workspace_name_hint: str,
|
|
208
|
+
webapp_name: str,
|
|
209
|
+
) -> None:
|
|
210
|
+
"""Display details for a webapp that conflicts with a create request."""
|
|
211
|
+
if response.status_code != 409:
|
|
212
|
+
return
|
|
213
|
+
|
|
214
|
+
try:
|
|
215
|
+
response_data = response.json()
|
|
216
|
+
except (ValueError, AttributeError):
|
|
217
|
+
response_data = {}
|
|
218
|
+
|
|
219
|
+
conflict_id = _find_conflicting_webapp_id(response_data)
|
|
220
|
+
conflict_record: Optional[Dict[str, Any]] = None
|
|
221
|
+
if not conflict_id:
|
|
222
|
+
conflict_record = _find_existing_webapp(webapp_name, workspace_id)
|
|
223
|
+
if conflict_record:
|
|
224
|
+
conflict_id = str(conflict_record.get("id", ""))
|
|
225
|
+
conflict_message = ""
|
|
226
|
+
if isinstance(response_data, dict):
|
|
227
|
+
error_data = response_data.get("error")
|
|
228
|
+
if isinstance(error_data, dict):
|
|
229
|
+
message = error_data.get("message")
|
|
230
|
+
if message:
|
|
231
|
+
conflict_message = str(message)
|
|
232
|
+
if not conflict_message:
|
|
233
|
+
message = response_data.get("message")
|
|
234
|
+
if message:
|
|
235
|
+
conflict_message = str(message)
|
|
236
|
+
|
|
237
|
+
if not conflict_message:
|
|
238
|
+
conflict_message = "A webapp with this name already exists."
|
|
239
|
+
|
|
240
|
+
click.echo(f"✗ {conflict_message}", err=True)
|
|
241
|
+
if conflict_id:
|
|
242
|
+
conflict_name = str(conflict_record.get("name", "")) if conflict_record else webapp_name
|
|
243
|
+
conflict_workspace_id = (
|
|
244
|
+
str(conflict_record.get("workspace", "")) if conflict_record else workspace_id
|
|
245
|
+
)
|
|
246
|
+
conflict_properties = conflict_record.get("properties", {}) if conflict_record else None
|
|
247
|
+
conflict_url = _build_published_webapp_url(
|
|
248
|
+
conflict_id,
|
|
249
|
+
webapp_name=conflict_name,
|
|
250
|
+
workspace_id=conflict_workspace_id,
|
|
251
|
+
workspace_name_hint=workspace_name_hint,
|
|
252
|
+
properties=conflict_properties,
|
|
253
|
+
)
|
|
254
|
+
click.echo(f" Conflicting Webapp ID: {conflict_id}", err=True)
|
|
255
|
+
click.echo(f" Conflicting Webapp URL: {conflict_url}", err=True)
|
|
256
|
+
sys.exit(ExitCodes.INVALID_INPUT)
|
|
257
|
+
|
|
258
|
+
|
|
154
259
|
def _query_webapps_http(filter_str: str, max_items: int = 1000) -> List[Dict[str, Any]]:
|
|
155
260
|
"""Query webapps using continuation token pagination.
|
|
156
261
|
|
|
@@ -1518,6 +1623,12 @@ def register_webapp_commands(cli: Any) -> None:
|
|
|
1518
1623
|
json=payload,
|
|
1519
1624
|
verify=get_ssl_verify(),
|
|
1520
1625
|
)
|
|
1626
|
+
_handle_webapp_create_conflict(
|
|
1627
|
+
resp_create,
|
|
1628
|
+
workspace_id=created_workspace_id,
|
|
1629
|
+
workspace_name_hint=get_effective_workspace(workspace) or workspace,
|
|
1630
|
+
webapp_name=name,
|
|
1631
|
+
)
|
|
1521
1632
|
resp_create.raise_for_status()
|
|
1522
1633
|
created = resp_create.json()
|
|
1523
1634
|
webapp_id = created.get("id")
|
|
@@ -1590,6 +1701,12 @@ def register_webapp_commands(cli: Any) -> None:
|
|
|
1590
1701
|
json=payload,
|
|
1591
1702
|
verify=get_ssl_verify(),
|
|
1592
1703
|
)
|
|
1704
|
+
_handle_webapp_create_conflict(
|
|
1705
|
+
resp_create,
|
|
1706
|
+
workspace_id=created_workspace_id,
|
|
1707
|
+
workspace_name_hint=get_effective_workspace(workspace) or workspace,
|
|
1708
|
+
webapp_name=name,
|
|
1709
|
+
)
|
|
1593
1710
|
resp_create.raise_for_status()
|
|
1594
1711
|
created = resp_create.json()
|
|
1595
1712
|
webapp_id = created.get("id")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-complete-workflow/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/demo-complete-workflow/config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-7-1-test-plans/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/exercise-7-1-test-plans/config.yaml
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/examples/spec-compliance-notebooks/config.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/analysis-recipes.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/datasheet-workflow.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/import-specs.min.json
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/nipkg/overview.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/notebook/interfaces.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/notebook/overview.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/routine-examples.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/troubleshooting.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/deployment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/references/webapp/overview.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/skills/slcli/scripts/spec_import_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/.gitignore
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/angular.json
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/package.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/index.html
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/main.ts
RENAMED
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/src/styles.scss
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.17.2 → systemlink_cli-1.17.4}/slcli/webapp_templates/angular/blank/tsconfig.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|