systemlink-cli 1.26.2__tar.gz → 1.26.3__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.
Files changed (157) hide show
  1. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/PKG-INFO +1 -1
  2. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/pyproject.toml +1 -1
  3. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/_version.py +1 -1
  4. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/alarm_click.py +3 -1
  5. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/asset_click.py +4 -1
  6. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/cli_utils.py +16 -15
  7. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/spec_click.py +8 -1
  8. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/system_click.py +7 -1
  9. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/tag_click.py +4 -1
  10. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/testmonitor_click.py +4 -1
  11. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_click.py +4 -1
  12. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/workitem_click.py +7 -1
  13. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/LICENSE +0 -0
  14. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/dff-editor/editor.js +0 -0
  15. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/dff-editor/index.html +0 -0
  16. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/__init__.py +0 -0
  17. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/__main__.py +0 -0
  18. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/cli_formatters.py +0 -0
  19. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/comment_click.py +0 -0
  20. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/completion_click.py +0 -0
  21. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/config.py +0 -0
  22. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/config_click.py +0 -0
  23. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/dataframe_click.py +0 -0
  24. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/dff_click.py +0 -0
  25. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/dff_decorators.py +0 -0
  26. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/example_click.py +0 -0
  27. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/example_loader.py +0 -0
  28. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/example_provisioner.py +0 -0
  29. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/README.md +0 -0
  30. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/_schema/schema-v1.0.json +0 -0
  31. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-1/README.md +0 -0
  32. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-1/config.yaml +0 -0
  33. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-2/README.md +0 -0
  34. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-2/config.yaml +0 -0
  35. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/config.yaml +0 -0
  36. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/leakage-current-results.json +0 -0
  37. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/overvoltage-results.json +0 -0
  38. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/product-xyz-compliance-report.json +0 -0
  39. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/product-xyz-specification.csv +0 -0
  40. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/demo-data-3/thermal-response-results.json +0 -0
  41. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/exercise-5-1-parametric-insights/README.md +0 -0
  42. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/exercise-5-1-parametric-insights/config.yaml +0 -0
  43. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/exercise-7-1-test-plans/README.md +0 -0
  44. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/exercise-7-1-test-plans/config.yaml +0 -0
  45. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/README.md +0 -0
  46. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/config.yaml +0 -0
  47. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/notebooks/SpecAnalysis_ComplianceCalculation.ipynb +0 -0
  48. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/notebooks/SpecComplianceCalculation.ipynb +0 -0
  49. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/notebooks/SpecfileExtractionAndIngestion.ipynb +0 -0
  50. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/examples/spec-compliance-notebooks/spec_template.xlsx +0 -0
  51. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/feed_click.py +0 -0
  52. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/file_click.py +0 -0
  53. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/function_click.py +0 -0
  54. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/function_templates.py +0 -0
  55. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/main.py +0 -0
  56. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/mcp_click.py +0 -0
  57. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/mcp_reachability.py +0 -0
  58. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/mcp_server.py +0 -0
  59. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/notebook_click.py +0 -0
  60. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/pkce.py +0 -0
  61. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/platform.py +0 -0
  62. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/policy_click.py +0 -0
  63. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/policy_utils.py +0 -0
  64. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/profiles.py +0 -0
  65. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/response_handlers.py +0 -0
  66. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/rich_output.py +0 -0
  67. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/routine_click.py +0 -0
  68. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skill_click.py +0 -0
  69. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/SKILL.md +0 -0
  70. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/analysis-recipes.md +0 -0
  71. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/commands.md +0 -0
  72. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/datasheet-workflow.md +0 -0
  73. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/example-authoring.md +0 -0
  74. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/filtering.md +0 -0
  75. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/import-specs.min.json +0 -0
  76. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/job-debugging/overview.md +0 -0
  77. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/nipkg/overview.md +0 -0
  78. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/notebook/interfaces.md +0 -0
  79. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/notebook/notebook-patterns.md +0 -0
  80. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/notebook/overview.md +0 -0
  81. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/python-test/overview.md +0 -0
  82. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/routine-examples.md +0 -0
  83. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/troubleshooting.md +0 -0
  84. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/angular-ui-packages.md +0 -0
  85. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/deployment.md +0 -0
  86. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/layout-patterns.md +0 -0
  87. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/nimble-angular.md +0 -0
  88. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/overview.md +0 -0
  89. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/systemlink-services.md +0 -0
  90. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/references/webapp/troubleshooting.md +0 -0
  91. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/skills/slcli/scripts/spec_import_helper.py +0 -0
  92. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/ssl_trust.py +0 -0
  93. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/state_click.py +0 -0
  94. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/system_query_utils.py +0 -0
  95. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/systemlink-logo.svg +0 -0
  96. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/table_utils.py +0 -0
  97. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/templates_click.py +0 -0
  98. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/universal_handlers.py +0 -0
  99. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/user_click.py +0 -0
  100. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/utils.py +0 -0
  101. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/web_editor.py +0 -0
  102. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_bootstrap.py +0 -0
  103. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/.gitignore +0 -0
  104. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/README.md +0 -0
  105. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/angular.json +0 -0
  106. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/package.json +0 -0
  107. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/scripts/filter-sbom.js +0 -0
  108. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/app-routing.module.ts +0 -0
  109. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/app.component.html +0 -0
  110. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/app.component.scss +0 -0
  111. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/app.component.ts +0 -0
  112. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/app.module.ts +0 -0
  113. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.html +0 -0
  114. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.scss +0 -0
  115. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/layout/app-shell.component.ts +0 -0
  116. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/state/app-view-state.service.ts +0 -0
  117. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/systemlink-context.service.ts +0 -0
  118. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/theme-sync.service.ts +0 -0
  119. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/core/systemlink/webapp-home-data.service.ts +0 -0
  120. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.html +0 -0
  121. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.scss +0 -0
  122. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/assets/assets-page.component.ts +0 -0
  123. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.html +0 -0
  124. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.scss +0 -0
  125. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/datasets/datasets-page.component.ts +0 -0
  126. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.html +0 -0
  127. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.scss +0 -0
  128. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/home/home-page.component.ts +0 -0
  129. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.html +0 -0
  130. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.scss +0 -0
  131. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/master-detail/master-detail-page.component.ts +0 -0
  132. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.html +0 -0
  133. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.scss +0 -0
  134. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/operations/operations-page.component.ts +0 -0
  135. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.html +0 -0
  136. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.scss +0 -0
  137. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/features/settings/settings-page.component.ts +0 -0
  138. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.html +0 -0
  139. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.scss +0 -0
  140. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/empty-state.component.ts +0 -0
  141. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.html +0 -0
  142. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.scss +0 -0
  143. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/error-banner.component.ts +0 -0
  144. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.html +0 -0
  145. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.scss +0 -0
  146. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/components/loading-state.component.ts +0 -0
  147. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/app/shared/states/view-state.model.ts +0 -0
  148. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/assets/README.md +0 -0
  149. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/index.html +0 -0
  150. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/main.ts +0 -0
  151. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/src/styles.scss +0 -0
  152. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/tsconfig.app.json +0 -0
  153. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/webapp_templates/angular/blank/tsconfig.json +0 -0
  154. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/workflow_preview.py +0 -0
  155. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/workflows_click.py +0 -0
  156. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/workspace_click.py +0 -0
  157. {systemlink_cli-1.26.2 → systemlink_cli-1.26.3}/slcli/workspace_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: systemlink-cli
3
- Version: 1.26.2
3
+ Version: 1.26.3
4
4
  Summary: SystemLink Integrator CLI - cross-platform CLI for SystemLink workflows and templates.
5
5
  License-File: LICENSE
6
6
  Author: Fred Visser
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "systemlink-cli"
3
- version = "1.26.2"
3
+ version = "1.26.3"
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" }]
@@ -1,4 +1,4 @@
1
1
  """Version information for slcli."""
2
2
 
3
3
  # This file is auto-generated. Do not edit manually.
4
- __version__ = "1.26.2"
4
+ __version__ = "1.26.3"
@@ -11,7 +11,7 @@ from urllib.parse import quote
11
11
  import click
12
12
  import questionary
13
13
 
14
- from .cli_utils import confirm_bulk_operation, validate_output_format
14
+ from .cli_utils import confirm_bulk_operation, is_interactive_environment, validate_output_format
15
15
  from .rich_output import render_table
16
16
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
17
17
  from .utils import (
@@ -501,6 +501,8 @@ def _run_list_alarms(
501
501
  )
502
502
  if not continuation_token:
503
503
  break
504
+ if not is_interactive_environment():
505
+ break
504
506
  if not questionary.confirm("Show next set of alarms?", default=True).ask():
505
507
  break
506
508
 
@@ -12,7 +12,7 @@ from typing import Any, Dict, List, Optional, Tuple
12
12
  import click
13
13
  import questionary
14
14
 
15
- from .cli_utils import validate_output_format
15
+ from .cli_utils import is_interactive_environment, validate_output_format
16
16
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
17
17
  from .utils import (
18
18
  ExitCodes,
@@ -302,6 +302,9 @@ def _handle_asset_interactive_pagination(
302
302
  if shown_count >= total_count:
303
303
  break
304
304
 
305
+ if not is_interactive_environment():
306
+ break
307
+
305
308
  if not questionary.confirm("Show next set of results?", default=True).ask():
306
309
  break
307
310
 
@@ -1,5 +1,6 @@
1
1
  """Common utility functions for all CLI commands."""
2
2
 
3
+ import os
3
4
  import sys
4
5
  from typing import Any, Callable, Dict, List, Optional
5
6
 
@@ -11,6 +12,19 @@ from .rich_output import print_json, render_table
11
12
  from .utils import ExitCodes, handle_api_error
12
13
 
13
14
 
15
+ def is_interactive_environment() -> bool:
16
+ """Return whether interactive prompts should be displayed.
17
+
18
+ In-process pytest callers remain interactive so prompt behavior can be tested with mocks.
19
+ Captured E2E subprocesses set ``SLCLI_NON_INTERACTIVE`` explicitly.
20
+ """
21
+ if os.getenv("SLCLI_NON_INTERACTIVE", "").lower() == "true":
22
+ return False
23
+ if os.getenv("PYTEST_CURRENT_TEST") is not None:
24
+ return True
25
+ return sys.stdin.isatty() and sys.stdout.isatty() and os.getenv("CI", "").lower() != "true"
26
+
27
+
14
28
  def resolve_resource_by_name_or_id(
15
29
  session: requests.Session,
16
30
  base_url: str,
@@ -408,26 +422,13 @@ def paginate_list_output(
408
422
  f"{remaining} more available."
409
423
  )
410
424
 
411
- # Check if we're in an interactive environment
412
- # If stdin is not a TTY or we're in a test environment, disable interactive pagination
413
- import os
414
- import sys
415
-
416
- is_non_interactive = (
417
- not sys.stdin.isatty() # Piped input
418
- or not sys.stdout.isatty() # Piped output
419
- or os.getenv("CI") == "true" # CI environment
420
- or os.getenv("PYTEST_CURRENT_TEST") is not None # pytest
421
- or os.getenv("SLCLI_NON_INTERACTIVE") == "true" # Explicit override
422
- )
423
-
424
- if is_non_interactive:
425
+ if not is_interactive_environment():
425
426
  click.echo("Non-interactive environment detected. Showing all remaining results...")
426
427
  # Continue to show all remaining pages without prompting
427
428
  current_page += 1
428
429
  continue
429
430
 
430
- if not questionary.confirm("Show next 25 results?", default=True).ask():
431
+ if not questionary.confirm(f"Show next {page_size} results?", default=True).ask():
431
432
  break
432
433
 
433
434
  click.echo() # Add blank line between pages
@@ -8,7 +8,11 @@ from typing import Any, Dict, List, Optional, Tuple
8
8
  import click
9
9
  import questionary
10
10
 
11
- from .cli_utils import confirm_bulk_operation, validate_output_format
11
+ from .cli_utils import (
12
+ confirm_bulk_operation,
13
+ is_interactive_environment,
14
+ validate_output_format,
15
+ )
12
16
  from .rich_output import render_table
13
17
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
14
18
  from .utils import (
@@ -1070,6 +1074,9 @@ def _handle_spec_interactive_pagination(
1070
1074
  if not cont:
1071
1075
  break
1072
1076
 
1077
+ if not is_interactive_environment():
1078
+ break
1079
+
1073
1080
  if not questionary.confirm("Show next set of results?", default=True).ask():
1074
1081
  break
1075
1082
 
@@ -18,7 +18,7 @@ import click
18
18
  import questionary
19
19
  import requests as requests_lib
20
20
 
21
- from .cli_utils import validate_output_format
21
+ from .cli_utils import is_interactive_environment, validate_output_format
22
22
  from .rich_output import render_table
23
23
  from .system_query_utils import (
24
24
  DEFAULT_SYSTEM_JSON_FIELDS,
@@ -682,6 +682,9 @@ def _handle_interactive_pagination(
682
682
  if not page_was_full:
683
683
  break
684
684
 
685
+ if not is_interactive_environment():
686
+ break
687
+
685
688
  if not questionary.confirm(
686
689
  "More results may be available. Show next set?", default=True
687
690
  ).ask():
@@ -768,6 +771,9 @@ def _handle_materialized_system_pagination_with_fallback(
768
771
  if len(page_items) < take:
769
772
  break
770
773
 
774
+ if not is_interactive_environment():
775
+ break
776
+
771
777
  if not questionary.confirm(
772
778
  "More results may be available. Show next set?", default=True
773
779
  ).ask():
@@ -14,7 +14,7 @@ from typing import Any, Dict, List, Optional, Tuple
14
14
  import click
15
15
  import questionary
16
16
 
17
- from .cli_utils import validate_output_format
17
+ from .cli_utils import is_interactive_environment, validate_output_format
18
18
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
19
19
  from .utils import (
20
20
  ExitCodes,
@@ -460,6 +460,9 @@ def register_tag_commands(cli: Any) -> None:
460
460
  break
461
461
 
462
462
  # Ask if user wants more
463
+ if not is_interactive_environment():
464
+ break
465
+
463
466
  if questionary.confirm(f"Show next {take} results?", default=True).ask():
464
467
  query_params["continuationToken"] = continuation_token
465
468
  resp = make_api_request("POST", url, payload=query_params)
@@ -8,7 +8,7 @@ from typing import Any, Dict, Iterable, List, Optional, Tuple
8
8
  import click
9
9
  import questionary
10
10
 
11
- from .cli_utils import validate_output_format
11
+ from .cli_utils import is_interactive_environment, validate_output_format
12
12
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
13
13
  from .utils import (
14
14
  ExitCodes,
@@ -207,6 +207,9 @@ def _handle_interactive_pagination(
207
207
  if not cont:
208
208
  break
209
209
 
210
+ if not is_interactive_environment():
211
+ break
212
+
210
213
  if not questionary.confirm("Show next set of results?", default=True).ask():
211
214
  break
212
215
 
@@ -19,7 +19,7 @@ import click
19
19
  import questionary
20
20
  import requests
21
21
 
22
- from .cli_utils import validate_output_format
22
+ from .cli_utils import is_interactive_environment, validate_output_format
23
23
  from .skill_click import install_skills_to_directory
24
24
  from .universal_handlers import UniversalResponseHandler
25
25
  from .utils import (
@@ -1415,6 +1415,9 @@ def register_webapp_commands(cli: Any) -> None:
1415
1415
  break
1416
1416
 
1417
1417
  # Ask the user if they want to fetch the next set
1418
+ if not is_interactive_environment():
1419
+ break
1420
+
1418
1421
  if not questionary.confirm("Show next set of results?", default=True).ask():
1419
1422
  break
1420
1423
 
@@ -12,7 +12,7 @@ import click
12
12
  import requests
13
13
 
14
14
  from . import workflow_preview
15
- from .cli_utils import validate_output_format
15
+ from .cli_utils import is_interactive_environment, validate_output_format
16
16
  from .platform import require_feature
17
17
  from .universal_handlers import FilteredResponse, UniversalResponseHandler
18
18
  from .utils import (
@@ -574,6 +574,8 @@ def register_workitem_commands(cli: Any) -> None:
574
574
  if not cont:
575
575
  break
576
576
  click.echo(f"\nShowing {displayed} work item(s). More may be available.")
577
+ if not is_interactive_environment():
578
+ break
577
579
  if not click.confirm(f"Show next {take} results?", default=True):
578
580
  break
579
581
 
@@ -1280,6 +1282,8 @@ def register_workitem_commands(cli: Any) -> None:
1280
1282
  if not cont:
1281
1283
  break
1282
1284
  click.echo(f"\nShowing {displayed} template(s). More may be available.")
1285
+ if not is_interactive_environment():
1286
+ break
1283
1287
  if not click.confirm(f"Show next {take} results?", default=True):
1284
1288
  break
1285
1289
 
@@ -1864,6 +1868,8 @@ def register_workitem_commands(cli: Any) -> None:
1864
1868
  if not cont:
1865
1869
  break
1866
1870
  click.echo(f"\nShowing {displayed} workflow(s). More may be available.")
1871
+ if not is_interactive_environment():
1872
+ break
1867
1873
  if not click.confirm(f"Show next {take} results?", default=True):
1868
1874
  break
1869
1875
 
File without changes