systemlink-cli 1.29.3__tar.gz → 1.29.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.29.3 → systemlink_cli-1.29.4}/PKG-INFO +1 -1
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/pyproject.toml +1 -1
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/_version.py +1 -1
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/config_click.py +9 -1
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/platform.py +72 -20
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/LICENSE +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/dff-editor/editor.js +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/dff-editor/index.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/__init__.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/__main__.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/alarm_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/asset_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/cli_formatters.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/cli_utils.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/comment_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/completion_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/config.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/dataframe_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/dff_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/dff_decorators.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/example_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/example_loader.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/example_provisioner.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/_schema/schema-v1.0.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-1/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-1/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-2/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-2/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/leakage-current-results.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/overvoltage-results.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/product-xyz-compliance-report.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/product-xyz-specification.csv +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/thermal-response-results.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/feed_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/file_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/function_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/function_templates.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/main.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/mcp_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/mcp_reachability.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/mcp_server.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/mcp_skills.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/notebook_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/pkce.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/policy_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/policy_utils.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/profiles.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/response_handlers.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/rich_output.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/routine_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skill_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/SKILL.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/COPILOT_BATCH_RUN_PROMPT.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/evals.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/evals.schema.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/files/spec-import/battery-specs.csv +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/files/webapp-package/icon.svg +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/files/webapp-package/nipkg.config.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/files/webapp-package/webapp-content/index.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/trigger_evals.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/analysis-recipes.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/commands.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/datasheet-workflow.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/domain-concepts.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/example-authoring.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/filtering.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/import-specs.min.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/job-debugging/overview.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/nipkg/overview.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/notebook/interfaces.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/notebook/notebook-patterns.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/notebook/overview.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/python-test/overview.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/routine-examples.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/troubleshooting.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/angular-ui-packages.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/deployment.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/layout-patterns.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/nimble-angular.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/overview.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/systemlink-services.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/troubleshooting.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/benchmark_iteration.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/compare_iteration.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/eval_manifest.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/grade_eval_response.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/grade_iteration.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/prepare_eval_prompts.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/prepare_eval_workspace.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/render_eval_review.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/spec_import_helper.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/spec_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/ssl_trust.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/state_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/system_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/system_query_utils.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/systemlink-logo.svg +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/table_utils.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/tag_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/templates_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/testmonitor_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/universal_handlers.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/user_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/utils.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/version_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/web_editor.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_bootstrap.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/.gitignore +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/angular.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/package.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/scripts/filter-sbom.js +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/app-routing.module.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/app.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/app.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/app.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/app.module.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/state/app-view-state.service.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/systemlink-context.service.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/theme-sync.service.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/webapp-home-data.service.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/app/shared/states/view-state.model.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/assets/README.md +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/index.html +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/main.ts +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/styles.scss +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/tsconfig.app.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/tsconfig.json +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/workflow_preview.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/workflows_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/workitem_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/workspace_click.py +0 -0
- {systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/workspace_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "systemlink-cli"
|
|
3
|
-
version = "1.29.
|
|
3
|
+
version = "1.29.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" }]
|
|
@@ -109,6 +109,11 @@ def _all_service_probes_unauthorized(services: dict[str, str]) -> bool:
|
|
|
109
109
|
return bool(services) and all(status == "unauthorized" for status in services.values())
|
|
110
110
|
|
|
111
111
|
|
|
112
|
+
def _any_service_probes_unauthorized(services: dict[str, str]) -> bool:
|
|
113
|
+
"""Return True if any recorded service probe failed with authorization."""
|
|
114
|
+
return bool(services) and any(status == "unauthorized" for status in services.values())
|
|
115
|
+
|
|
116
|
+
|
|
112
117
|
def _normalize_fingerprint(fingerprint: str) -> str:
|
|
113
118
|
"""Normalize a SHA-256 certificate fingerprint supplied by a user."""
|
|
114
119
|
normalized = fingerprint.replace(":", "").replace(" ", "").strip().upper()
|
|
@@ -338,7 +343,10 @@ def _add_profile_impl(
|
|
|
338
343
|
ExitCodes.NETWORK_ERROR,
|
|
339
344
|
)
|
|
340
345
|
|
|
341
|
-
if status["auth_valid"] is False and
|
|
346
|
+
if status["auth_valid"] is False and (
|
|
347
|
+
_all_service_probes_unauthorized(services)
|
|
348
|
+
or (_any_service_probes_unauthorized(services) and platform == PLATFORM_SLS)
|
|
349
|
+
):
|
|
342
350
|
auth_failure_message = (
|
|
343
351
|
"PKCE bearer token validation failed. The server responded, but the token was not authorized. "
|
|
344
352
|
if auth_mode == "pkce"
|
|
@@ -88,6 +88,7 @@ FILE_QUERY_LINQ_PATH = "/nifile/v1/service-groups/Default/query-files-linq"
|
|
|
88
88
|
SYSTEM_SEARCH_PATH = "/nisysmgmt/v1/materialized/search-systems"
|
|
89
89
|
SYSTEM_QUERY_PATH = "/nisysmgmt/v1/query-systems"
|
|
90
90
|
WEB_SERVER_AUTH_PATH = "/niauth/v1/auth"
|
|
91
|
+
SLS_PLATFORM_PROBE_PATH = "/nitagrule/"
|
|
91
92
|
|
|
92
93
|
SLE_ONLY_SERVICE_NAMES = (
|
|
93
94
|
"Dynamic Form Fields",
|
|
@@ -97,17 +98,22 @@ SLE_ONLY_SERVICE_NAMES = (
|
|
|
97
98
|
)
|
|
98
99
|
|
|
99
100
|
|
|
100
|
-
def _detect_platform_from_services(
|
|
101
|
-
|
|
101
|
+
def _detect_platform_from_services(
|
|
102
|
+
services: Dict[str, str], sls_platform_status: Optional[str] = None
|
|
103
|
+
) -> str:
|
|
104
|
+
"""Infer the platform from positive platform capability probes.
|
|
102
105
|
|
|
103
106
|
Args:
|
|
104
107
|
services: Mapping of service display name to probe status.
|
|
105
108
|
|
|
106
109
|
Returns:
|
|
107
110
|
PLATFORM_SLE when any SLE-only service is reachable or explicitly
|
|
108
|
-
unauthorized, PLATFORM_SLS when
|
|
111
|
+
unauthorized, PLATFORM_SLS when the SLS-only platform probe succeeds,
|
|
109
112
|
otherwise PLATFORM_UNKNOWN.
|
|
110
113
|
"""
|
|
114
|
+
if sls_platform_status == "ok":
|
|
115
|
+
return PLATFORM_SLS
|
|
116
|
+
|
|
111
117
|
sle_statuses = [services.get(name) for name in SLE_ONLY_SERVICE_NAMES if name in services]
|
|
112
118
|
if not sle_statuses:
|
|
113
119
|
return PLATFORM_UNKNOWN
|
|
@@ -115,12 +121,47 @@ def _detect_platform_from_services(services: Dict[str, str]) -> str:
|
|
|
115
121
|
if any(status in ("ok", "unauthorized") for status in sle_statuses):
|
|
116
122
|
return PLATFORM_SLE
|
|
117
123
|
|
|
118
|
-
if all(status == "not_found" for status in sle_statuses):
|
|
119
|
-
return PLATFORM_SLS
|
|
120
|
-
|
|
121
124
|
return PLATFORM_UNKNOWN
|
|
122
125
|
|
|
123
126
|
|
|
127
|
+
def _is_valid_sls_platform_probe(response: requests.Response) -> bool:
|
|
128
|
+
"""Return whether a Tag Rule Engine response identifies an SLS instance."""
|
|
129
|
+
try:
|
|
130
|
+
payload = response.json()
|
|
131
|
+
except ValueError:
|
|
132
|
+
return False
|
|
133
|
+
|
|
134
|
+
return isinstance(payload, dict) and (
|
|
135
|
+
isinstance(payload.get("v1"), dict) and "version" in payload
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def _probe_sls_platform(api_url: str, credential: str, auth_scheme: str = "api-key") -> str:
|
|
140
|
+
"""Probe the unauthenticated Tag Rule Engine versioning endpoint."""
|
|
141
|
+
headers = get_auth_headers(credential, auth_scheme, "application/json")
|
|
142
|
+
ssl_verify = get_ssl_verify(api_url)
|
|
143
|
+
|
|
144
|
+
try:
|
|
145
|
+
response = requests.get(
|
|
146
|
+
f"{api_url}{SLS_PLATFORM_PROBE_PATH}",
|
|
147
|
+
headers=headers,
|
|
148
|
+
verify=ssl_verify,
|
|
149
|
+
timeout=10,
|
|
150
|
+
)
|
|
151
|
+
except requests.exceptions.SSLError:
|
|
152
|
+
return "certificate_error"
|
|
153
|
+
except requests.RequestException:
|
|
154
|
+
return "unreachable"
|
|
155
|
+
|
|
156
|
+
if response.status_code == 200:
|
|
157
|
+
return "ok" if _is_valid_sls_platform_probe(response) else "error"
|
|
158
|
+
if response.status_code in (401, 403):
|
|
159
|
+
return "unauthorized"
|
|
160
|
+
if response.status_code in (404, 501):
|
|
161
|
+
return "not_found"
|
|
162
|
+
return "error"
|
|
163
|
+
|
|
164
|
+
|
|
124
165
|
def _get_keyring_config() -> Dict[str, Any]:
|
|
125
166
|
"""Attempt to read a single JSON config entry from keyring.
|
|
126
167
|
|
|
@@ -784,8 +825,6 @@ def _check_service_status(
|
|
|
784
825
|
|
|
785
826
|
services: Dict[str, str] = {}
|
|
786
827
|
any_responded = False
|
|
787
|
-
any_authorized = False
|
|
788
|
-
all_unauthorized = True
|
|
789
828
|
certificate_error = False
|
|
790
829
|
|
|
791
830
|
for display_name, method, url_path in SERVICE_CHECKS:
|
|
@@ -810,26 +849,39 @@ def _check_service_status(
|
|
|
810
849
|
|
|
811
850
|
if resp.status_code in (200, 400):
|
|
812
851
|
services[display_name] = "ok"
|
|
813
|
-
any_authorized = True
|
|
814
|
-
all_unauthorized = False
|
|
815
852
|
elif resp.status_code == 401:
|
|
816
853
|
services[display_name] = "unauthorized"
|
|
817
854
|
elif resp.status_code == 403:
|
|
818
855
|
services[display_name] = "unauthorized"
|
|
819
856
|
elif resp.status_code == 404:
|
|
820
857
|
services[display_name] = "not_found"
|
|
821
|
-
all_unauthorized = False
|
|
822
858
|
else:
|
|
823
859
|
services[display_name] = "error"
|
|
824
|
-
all_unauthorized = False
|
|
825
860
|
except requests.exceptions.SSLError:
|
|
826
861
|
services[display_name] = "certificate_error"
|
|
827
862
|
certificate_error = True
|
|
828
863
|
except requests.RequestException:
|
|
829
864
|
services[display_name] = "unreachable"
|
|
830
865
|
|
|
866
|
+
sls_platform_status = _probe_sls_platform(api_url, credential, auth_scheme)
|
|
867
|
+
certificate_error = certificate_error or sls_platform_status == "certificate_error"
|
|
868
|
+
|
|
831
869
|
# Determine overall status
|
|
832
870
|
if not any_responded:
|
|
871
|
+
if sls_platform_status not in ("unreachable", "certificate_error"):
|
|
872
|
+
return {
|
|
873
|
+
"server_reachable": True,
|
|
874
|
+
"auth_valid": None,
|
|
875
|
+
"services": services,
|
|
876
|
+
"certificate_error": certificate_error,
|
|
877
|
+
"certificate": None,
|
|
878
|
+
"file_query_endpoint": None,
|
|
879
|
+
"elasticsearch_available": None,
|
|
880
|
+
"system_query_endpoint": None,
|
|
881
|
+
"materialized_search_available": None,
|
|
882
|
+
"platform": _detect_platform_from_services(services, sls_platform_status),
|
|
883
|
+
}
|
|
884
|
+
|
|
833
885
|
certificate_details: Optional[Dict[str, Any]] = None
|
|
834
886
|
if certificate_error:
|
|
835
887
|
try:
|
|
@@ -851,20 +903,20 @@ def _check_service_status(
|
|
|
851
903
|
"platform": PLATFORM_UNREACHABLE,
|
|
852
904
|
}
|
|
853
905
|
|
|
854
|
-
# Determine
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
if all_unauthorized and any_responded:
|
|
858
|
-
auth_valid = False
|
|
859
|
-
|
|
860
|
-
# Determine platform from multiple SLE-only service responses.
|
|
861
|
-
platform = _detect_platform_from_services(services)
|
|
906
|
+
# Determine platform from positive capability probes.
|
|
907
|
+
platform = _detect_platform_from_services(services, sls_platform_status)
|
|
908
|
+
initial_auth_valid = any(status == "ok" for status in services.values())
|
|
862
909
|
|
|
863
910
|
file_capability = get_file_query_capability(api_url, credential, auth_scheme)
|
|
864
911
|
services["File"] = file_capability["status"]
|
|
865
912
|
system_capability = get_system_query_capability(api_url, credential, auth_scheme)
|
|
866
913
|
services["Systems"] = system_capability["status"]
|
|
867
914
|
|
|
915
|
+
# Recompute auth after capability probes add their final service statuses.
|
|
916
|
+
auth_valid = initial_auth_valid or any(
|
|
917
|
+
status in ("ok", "fallback") for status in services.values()
|
|
918
|
+
)
|
|
919
|
+
|
|
868
920
|
return {
|
|
869
921
|
"server_reachable": True,
|
|
870
922
|
"auth_valid": auth_valid,
|
|
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.29.3 → systemlink_cli-1.29.4}/slcli/examples/demo-data-3/overvoltage-results.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-7-1-test-plans/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/exercise-7-1-test-plans/config.yaml
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/examples/spec-compliance-notebooks/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.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
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/evals/COPILOT_BATCH_RUN_PROMPT.md
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
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/analysis-recipes.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/datasheet-workflow.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/domain-concepts.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/example-authoring.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/import-specs.min.json
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/nipkg/overview.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/notebook/interfaces.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/notebook/overview.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/routine-examples.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/troubleshooting.md
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/deployment.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/references/webapp/overview.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/benchmark_iteration.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/compare_iteration.py
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/grade_eval_response.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/grade_iteration.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/prepare_eval_prompts.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/prepare_eval_workspace.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/skills/slcli/scripts/render_eval_review.py
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/.gitignore
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/README.md
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/angular.json
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.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
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/index.html
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/main.ts
RENAMED
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.4}/slcli/webapp_templates/angular/blank/src/styles.scss
RENAMED
|
File without changes
|
|
File without changes
|
{systemlink_cli-1.29.3 → systemlink_cli-1.29.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
|