sima-cli 2.1.10__tar.gz → 2.1.12__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 (151) hide show
  1. {sima_cli-2.1.10/sima_cli.egg-info → sima_cli-2.1.12}/PKG-INFO +56 -16
  2. {sima_cli-2.1.10 → sima_cli-2.1.12}/README.md +53 -13
  3. {sima_cli-2.1.10 → sima_cli-2.1.12}/pyproject.toml +2 -2
  4. {sima_cli-2.1.10 → sima_cli-2.1.12}/setup.cfg +1 -1
  5. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__version__.py +1 -1
  6. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/commands.py +23 -1
  7. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/auth0.py +14 -9
  8. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/devportal.py +12 -4
  9. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/cli.py +26 -12
  10. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/resources_public.yaml +2 -2
  11. sima_cli-2.1.12/sima_cli/install/compatibility.py +213 -0
  12. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_installer.py +180 -54
  13. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_validator.py +80 -6
  14. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/package_builder.py +12 -1
  15. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/registry.py +65 -0
  16. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/commands.py +184 -3
  17. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/install.py +87 -12
  18. sima_cli-2.1.12/sima_cli/sdk/linux_devkit_network.py +3 -0
  19. sima_cli-2.1.12/sima_cli/sdk/linux_shared_network.py +1425 -0
  20. sima_cli-2.1.12/sima_cli/sdk/network_doctor.py +920 -0
  21. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/preinstall.py +80 -42
  22. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/utils.py +46 -21
  23. sima_cli-2.1.12/sima_cli/utils/deprecation.py +8 -0
  24. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/pkg_update_check.py +82 -8
  25. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/commands.py +4 -0
  26. {sima_cli-2.1.10 → sima_cli-2.1.12/sima_cli.egg-info}/PKG-INFO +56 -16
  27. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/SOURCES.txt +10 -1
  28. sima_cli-2.1.12/tests/unit/test_appzoo_commands.py +37 -0
  29. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_auth.py +32 -3
  30. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_auth0.py +35 -0
  31. sima_cli-2.1.12/tests/unit/test_deprecation.py +29 -0
  32. sima_cli-2.1.12/tests/unit/test_generate_cli_markdown_docs.py +90 -0
  33. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_install_stub.py +81 -2
  34. sima_cli-2.1.12/tests/unit/test_metadata_installer.py +572 -0
  35. sima_cli-2.1.12/tests/unit/test_metadata_validator.py +114 -0
  36. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_package_builder.py +132 -0
  37. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_pkg_update_check.py +63 -7
  38. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_image_detection.py +409 -20
  39. sima_cli-2.1.12/tests/unit/test_sdk_linux_shared_network.py +402 -0
  40. sima_cli-2.1.12/tests/unit/test_sdk_network_doctor.py +282 -0
  41. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_preinstall.py +103 -4
  42. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_vulcan.py +114 -0
  43. sima_cli-2.1.10/sima_cli/auth/oauth.py +0 -203
  44. sima_cli-2.1.10/sima_cli/sdk/linux_shared_network.py +0 -579
  45. sima_cli-2.1.10/tests/unit/test_metadata_installer.py +0 -207
  46. {sima_cli-2.1.10 → sima_cli-2.1.12}/LICENSE +0 -0
  47. {sima_cli-2.1.10 → sima_cli-2.1.12}/MANIFEST.in +0 -0
  48. {sima_cli-2.1.10 → sima_cli-2.1.12}/requirements.txt +0 -0
  49. {sima_cli-2.1.10 → sima_cli-2.1.12}/setup.py +0 -0
  50. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__init__.py +0 -0
  51. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/__main__.py +0 -0
  52. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/__init__.py +0 -0
  53. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/app_zoo/app.py +0 -0
  54. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/__init__.py +0 -0
  55. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/auth/login.py +0 -0
  56. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/__init__.py +0 -0
  57. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/data/resources_internal.yaml +0 -0
  58. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/__init__.py +0 -0
  59. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/device/__init__.py +0 -0
  60. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/device/commands.py +0 -0
  61. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/mpk/__init__.py +0 -0
  62. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/deploy_only/mpk/commands.py +0 -0
  63. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/__init__.py +0 -0
  64. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/discover.py +0 -0
  65. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/discover/linuxll.py +0 -0
  66. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/download/__init__.py +0 -0
  67. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/download/downloader.py +0 -0
  68. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/__init__.py +0 -0
  69. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/github_assets.py +0 -0
  70. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/hostdriver.py +0 -0
  71. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/metadata_info.py +0 -0
  72. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/optiview.py +0 -0
  73. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/install/palette.py +0 -0
  74. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/mla/__init__.py +0 -0
  75. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/mla/meminfo.py +0 -0
  76. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/model_zoo/__init__.py +0 -0
  77. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/model_zoo/model.py +0 -0
  78. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/network/__init__.py +0 -0
  79. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/network/network.py +0 -0
  80. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/__init__.py +0 -0
  81. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/commands.py +0 -0
  82. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/playbooks/manager.py +0 -0
  83. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/__init__.py +0 -0
  84. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/cmdexec.py +0 -0
  85. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/config.py +0 -0
  86. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/neat.py +0 -0
  87. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/requirements.json +0 -0
  88. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/script.py +0 -0
  89. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/stop.py +0 -0
  90. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/sdk/uninstall.py +0 -0
  91. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/serial/__init__.py +0 -0
  92. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/serial/serial.py +0 -0
  93. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/__init__.py +0 -0
  94. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/nvme.py +0 -0
  95. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/storage/sdcard.py +0 -0
  96. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/__init__.py +0 -0
  97. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/bmaptool.py +0 -0
  98. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/bootimg.py +0 -0
  99. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/cleanlog.py +0 -0
  100. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/elxr.py +0 -0
  101. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/local.py +0 -0
  102. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/netboot.py +0 -0
  103. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/query.py +0 -0
  104. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/remote.py +0 -0
  105. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/update/updater.py +0 -0
  106. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/upgrade/__init__.py +0 -0
  107. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/upgrade/selfupdate.py +0 -0
  108. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/__init__.py +0 -0
  109. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/api_common.py +0 -0
  110. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/artifactory.py +0 -0
  111. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/common.py +0 -0
  112. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/config.py +0 -0
  113. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/config_loader.py +0 -0
  114. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/container_registries.py +0 -0
  115. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/device_api.py +0 -0
  116. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/disk.py +0 -0
  117. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/docker.py +0 -0
  118. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/env.py +0 -0
  119. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/errors.py +0 -0
  120. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/mpk_api.py +0 -0
  121. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/net.py +0 -0
  122. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/network.py +0 -0
  123. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/pcie.py +0 -0
  124. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/serializers.py +0 -0
  125. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/services.py +0 -0
  126. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/utils/tag.py +0 -0
  127. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/__init__.py +0 -0
  128. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli/vulcan/artifacts.py +0 -0
  129. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/dependency_links.txt +0 -0
  130. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/entry_points.txt +0 -0
  131. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/requires.txt +0 -0
  132. {sima_cli-2.1.10 → sima_cli-2.1.12}/sima_cli.egg-info/top_level.txt +0 -0
  133. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/__init__.py +0 -0
  134. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/e2e/__init__.py +0 -0
  135. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/__init__.py +0 -0
  136. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_app_zoo.py +0 -0
  137. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli.py +0 -0
  138. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_stdio.py +0 -0
  139. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_update.py +0 -0
  140. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_cli_update_rerun.py +0 -0
  141. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_docker_utils.py +0 -0
  142. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_download.py +0 -0
  143. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_elxr_update.py +0 -0
  144. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_firmware.py +0 -0
  145. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_model_zoo.py +0 -0
  146. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_netboot.py +0 -0
  147. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_sdk_uninstall.py +0 -0
  148. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_selfupdate.py +0 -0
  149. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_skills_commands.py +0 -0
  150. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_skills_manager.py +0 -0
  151. {sima_cli-2.1.10 → sima_cli-2.1.12}/tests/unit/test_utils.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sima-cli
3
- Version: 2.1.10
3
+ Version: 2.1.12
4
4
  Summary: CLI tool for SiMa Developer Portal to download models, firmware, and apps.
5
- Home-page: https://developer.sima.ai/
5
+ Home-page: https://community.sima.ai/
6
6
  Author: SiMa.ai
7
7
  Author-email: "Sima.ai" <support@sima.ai>
8
8
  License: MIT
9
- Project-URL: Homepage, https://developer.sima.ai/
9
+ Project-URL: Homepage, https://community.sima.ai/
10
10
  Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Operating System :: OS Independent
12
12
  Classifier: Development Status :: 3 - Alpha
@@ -41,12 +41,12 @@ Dynamic: requires-python
41
41
  [![Python 3.12](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.12&label=python%203.12)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
42
42
  [![Python 3.13](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.13&label=python%203.13)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
43
43
  [![Python 3.14](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.14&label=python%203.14)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
44
- [![E2E macOS](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(macOS%20CLI%20only)&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
44
+ [![E2E macOS](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(macOS)&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
45
45
  [![E2E Windows](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Windows)&label=e2e%20Windows&logo=windows&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
46
46
  [![E2E Ubuntu x86](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Ubuntu%20x86)&label=e2e%20Ubuntu%20x86&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
47
47
  [![E2E Ubuntu ARM64](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Ubuntu%20ARM64)&label=e2e%20Ubuntu%20ARM64&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
48
48
 
49
- `sima-cli` is the command-line interface for SiMa developer workflows. It handles authentication, SDK container setup, DevKit updates, package installation, artifact downloads, Model Zoo/App Zoo access, and related development utilities.
49
+ `sima-cli` is the command-line interface for SiMa developer workflows. Use it to authenticate, set up SDK containers, update DevKits, install packages, download artifacts, and access Model Zoo and App Zoo content.
50
50
 
51
51
  ## Documentation
52
52
 
@@ -59,16 +59,45 @@ Use the generated docs for detailed options, arguments, subcommands, and full he
59
59
 
60
60
  ## Installation
61
61
 
62
- Install the latest `main` build:
62
+ For most users, install the latest official release from the public installer URL for your operating system.
63
+
64
+ ### Linux, macOS, and DevKit
65
+
66
+ Run the installer from a terminal:
67
+
68
+ ```bash
69
+ curl -fsSL https://artifacts.neat.sima.ai/sima-cli/linux-mac.sh | bash
70
+ ```
71
+
72
+ After installation, open a new terminal or reload your shell profile, then verify the install:
63
73
 
64
74
  ```bash
65
- curl -fsSL https://artifacts.sima-neat.com/tools/sima-cli-install.py -o sima-cli-install.py
66
- python3 sima-cli-install.py main latest
75
+ sima-cli --version
76
+ ```
77
+
78
+ ### Windows PowerShell
79
+
80
+ Download and run the Windows installer from PowerShell:
81
+
82
+ ```powershell
83
+ Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/windows.bat -OutFile windows.bat
84
+ .\windows.bat
67
85
  ```
68
86
 
69
- Install interactively:
87
+ After installation, open a new Command Prompt or PowerShell window, then verify the install:
88
+
89
+ ```powershell
90
+ sima-cli --version
91
+ ```
92
+
93
+ ### Advanced: choose a branch or release
94
+
95
+ Use `install.py` only when you need to choose a specific tested branch build or release instead of installing the latest official PyPI release.
96
+
97
+ On Linux, macOS, or DevKit:
70
98
 
71
99
  ```bash
100
+ curl -fsSL https://artifacts.neat.sima.ai/sima-cli/install.py -o sima-cli-install.py
72
101
  python3 sima-cli-install.py
73
102
  ```
74
103
 
@@ -82,10 +111,19 @@ python3 sima-cli-install.py v2.1.6 latest
82
111
  On Windows PowerShell:
83
112
 
84
113
  ```powershell
85
- Invoke-WebRequest https://artifacts.sima-neat.com/tools/sima-cli-install.py -OutFile sima-cli-install.py
86
- python .\sima-cli-install.py main latest
114
+ Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/install.py -OutFile sima-cli-install.py
115
+ python .\sima-cli-install.py
87
116
  ```
88
117
 
118
+ To install a specific branch or release:
119
+
120
+ ```powershell
121
+ python .\sima-cli-install.py feature/my-branch latest
122
+ python .\sima-cli-install.py v2.1.6 latest
123
+ ```
124
+
125
+ Release tags such as `v2.1.6` install from public PyPI. Branch names install tested artifacts from `artifacts.neat.sima.ai/sima-cli`.
126
+
89
127
  Public PyPI releases can also be installed directly:
90
128
 
91
129
  ```bash
@@ -96,15 +134,15 @@ pip install sima-cli
96
134
 
97
135
  ```bash
98
136
  sima-cli --help
137
+ sima-cli --version
99
138
  sima-cli login
100
- sima-cli version
101
139
  ```
102
140
 
103
141
  Use `--internal` or `SIMA_CLI_INTERNAL=1` when internal Artifactory resources are required:
104
142
 
105
143
  ```bash
106
144
  sima-cli --internal login
107
- SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.1 sdk-extensions/model
145
+ SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.2 tools/model-compiler/amd64
108
146
  ```
109
147
 
110
148
  ## Common Workflows
@@ -116,10 +154,13 @@ sima-cli sdk setup
116
154
  sima-cli sdk neat
117
155
  ```
118
156
 
119
- Install a package from metadata:
157
+ Install Model Compiler from package metadata:
120
158
 
121
159
  ```bash
122
- sima-cli install -v 2.1.1 sdk-extensions/model
160
+ # amd64 host
161
+ sima-cli install -v 2.1.2 tools/model-compiler/amd64
162
+ # arm64 host
163
+ sima-cli install -v 2.1.2 tools/model-compiler/arm64
123
164
  ```
124
165
 
125
166
  Download or install Neat artifacts:
@@ -165,7 +206,6 @@ sima-cli appzoo list
165
206
  | `sima-cli selfupdate` | Update sima-cli manually. | [docs](docs/sima-cli/commands/sima-cli-selfupdate.md) |
166
207
  | `sima-cli serial` | Connect to the UART serial console of a DevKit. | [docs](docs/sima-cli/commands/sima-cli-serial.md) |
167
208
  | `sima-cli update` | Update a SiMa DevKit or remote device. | [docs](docs/sima-cli/commands/sima-cli-update.md) |
168
- | `sima-cli version` | Show the installed CLI version. | [docs](docs/sima-cli/commands/sima-cli-version.md) |
169
209
 
170
210
  ## Development
171
211
 
@@ -7,12 +7,12 @@
7
7
  [![Python 3.12](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.12&label=python%203.12)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
8
8
  [![Python 3.13](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.13&label=python%203.13)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
9
9
  [![Python 3.14](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=Compatibility%20Python%203.14&label=python%203.14)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
10
- [![E2E macOS](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(macOS%20CLI%20only)&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
10
+ [![E2E macOS](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(macOS)&label=e2e%20macOS&logo=apple&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
11
11
  [![E2E Windows](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Windows)&label=e2e%20Windows&logo=windows&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
12
12
  [![E2E Ubuntu x86](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Ubuntu%20x86)&label=e2e%20Ubuntu%20x86&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
13
13
  [![E2E Ubuntu ARM64](https://img.shields.io/github/actions/workflow/status/sima-neat/sima-cli/vulcan-ci.yml?branch=main&job=E2E%20Install%20(Ubuntu%20ARM64)&label=e2e%20Ubuntu%20ARM64&logo=ubuntu&logoColor=white)](https://github.com/sima-neat/sima-cli/actions/workflows/vulcan-ci.yml)
14
14
 
15
- `sima-cli` is the command-line interface for SiMa developer workflows. It handles authentication, SDK container setup, DevKit updates, package installation, artifact downloads, Model Zoo/App Zoo access, and related development utilities.
15
+ `sima-cli` is the command-line interface for SiMa developer workflows. Use it to authenticate, set up SDK containers, update DevKits, install packages, download artifacts, and access Model Zoo and App Zoo content.
16
16
 
17
17
  ## Documentation
18
18
 
@@ -25,16 +25,45 @@ Use the generated docs for detailed options, arguments, subcommands, and full he
25
25
 
26
26
  ## Installation
27
27
 
28
- Install the latest `main` build:
28
+ For most users, install the latest official release from the public installer URL for your operating system.
29
+
30
+ ### Linux, macOS, and DevKit
31
+
32
+ Run the installer from a terminal:
33
+
34
+ ```bash
35
+ curl -fsSL https://artifacts.neat.sima.ai/sima-cli/linux-mac.sh | bash
36
+ ```
37
+
38
+ After installation, open a new terminal or reload your shell profile, then verify the install:
29
39
 
30
40
  ```bash
31
- curl -fsSL https://artifacts.sima-neat.com/tools/sima-cli-install.py -o sima-cli-install.py
32
- python3 sima-cli-install.py main latest
41
+ sima-cli --version
42
+ ```
43
+
44
+ ### Windows PowerShell
45
+
46
+ Download and run the Windows installer from PowerShell:
47
+
48
+ ```powershell
49
+ Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/windows.bat -OutFile windows.bat
50
+ .\windows.bat
33
51
  ```
34
52
 
35
- Install interactively:
53
+ After installation, open a new Command Prompt or PowerShell window, then verify the install:
54
+
55
+ ```powershell
56
+ sima-cli --version
57
+ ```
58
+
59
+ ### Advanced: choose a branch or release
60
+
61
+ Use `install.py` only when you need to choose a specific tested branch build or release instead of installing the latest official PyPI release.
62
+
63
+ On Linux, macOS, or DevKit:
36
64
 
37
65
  ```bash
66
+ curl -fsSL https://artifacts.neat.sima.ai/sima-cli/install.py -o sima-cli-install.py
38
67
  python3 sima-cli-install.py
39
68
  ```
40
69
 
@@ -48,10 +77,19 @@ python3 sima-cli-install.py v2.1.6 latest
48
77
  On Windows PowerShell:
49
78
 
50
79
  ```powershell
51
- Invoke-WebRequest https://artifacts.sima-neat.com/tools/sima-cli-install.py -OutFile sima-cli-install.py
52
- python .\sima-cli-install.py main latest
80
+ Invoke-WebRequest https://artifacts.neat.sima.ai/sima-cli/install.py -OutFile sima-cli-install.py
81
+ python .\sima-cli-install.py
53
82
  ```
54
83
 
84
+ To install a specific branch or release:
85
+
86
+ ```powershell
87
+ python .\sima-cli-install.py feature/my-branch latest
88
+ python .\sima-cli-install.py v2.1.6 latest
89
+ ```
90
+
91
+ Release tags such as `v2.1.6` install from public PyPI. Branch names install tested artifacts from `artifacts.neat.sima.ai/sima-cli`.
92
+
55
93
  Public PyPI releases can also be installed directly:
56
94
 
57
95
  ```bash
@@ -62,15 +100,15 @@ pip install sima-cli
62
100
 
63
101
  ```bash
64
102
  sima-cli --help
103
+ sima-cli --version
65
104
  sima-cli login
66
- sima-cli version
67
105
  ```
68
106
 
69
107
  Use `--internal` or `SIMA_CLI_INTERNAL=1` when internal Artifactory resources are required:
70
108
 
71
109
  ```bash
72
110
  sima-cli --internal login
73
- SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.1 sdk-extensions/model
111
+ SIMA_CLI_INTERNAL=1 sima-cli install -v 2.1.2 tools/model-compiler/amd64
74
112
  ```
75
113
 
76
114
  ## Common Workflows
@@ -82,10 +120,13 @@ sima-cli sdk setup
82
120
  sima-cli sdk neat
83
121
  ```
84
122
 
85
- Install a package from metadata:
123
+ Install Model Compiler from package metadata:
86
124
 
87
125
  ```bash
88
- sima-cli install -v 2.1.1 sdk-extensions/model
126
+ # amd64 host
127
+ sima-cli install -v 2.1.2 tools/model-compiler/amd64
128
+ # arm64 host
129
+ sima-cli install -v 2.1.2 tools/model-compiler/arm64
89
130
  ```
90
131
 
91
132
  Download or install Neat artifacts:
@@ -131,7 +172,6 @@ sima-cli appzoo list
131
172
  | `sima-cli selfupdate` | Update sima-cli manually. | [docs](docs/sima-cli/commands/sima-cli-selfupdate.md) |
132
173
  | `sima-cli serial` | Connect to the UART serial console of a DevKit. | [docs](docs/sima-cli/commands/sima-cli-serial.md) |
133
174
  | `sima-cli update` | Update a SiMa DevKit or remote device. | [docs](docs/sima-cli/commands/sima-cli-update.md) |
134
- | `sima-cli version` | Show the installed CLI version. | [docs](docs/sima-cli/commands/sima-cli-version.md) |
135
175
 
136
176
  ## Development
137
177
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "sima-cli"
7
- version = "2.1.10"
7
+ version = "2.1.12"
8
8
  description = "CLI tool for SiMa Developer Portal to download models, firmware, and apps."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"
@@ -37,7 +37,7 @@ dependencies = [
37
37
  ]
38
38
 
39
39
  [project.urls]
40
- Homepage = "https://developer.sima.ai/"
40
+ Homepage = "https://community.sima.ai/"
41
41
 
42
42
  [project.scripts]
43
43
  sima-cli = "sima_cli.cli:main"
@@ -5,7 +5,7 @@ author_email = support@sima.ai
5
5
  description = CLI tool for SiMa Developer Portal to download models, firmware, and apps.
6
6
  long_description = file: README.md
7
7
  long_description_content_type = text/markdown
8
- url = https://developer.sima.ai/
8
+ url = https://community.sima.ai/
9
9
  license = MIT
10
10
  classifiers =
11
11
  Programming Language :: Python :: 3
@@ -1,2 +1,2 @@
1
1
  # sima_cli/__version__.py
2
- __version__ = "2.1.10"
2
+ __version__ = "2.1.12"
@@ -1,9 +1,31 @@
1
1
 
2
2
  import click
3
+ from rich.console import Console
4
+ from rich.panel import Panel
3
5
 
4
6
  from sima_cli.app_zoo.app import list_apps, download_app, describe_app, clone_apps
7
+ from sima_cli.utils.deprecation import should_show_post_neat_ga_deprecation_notice
5
8
  from sima_cli.utils.tag import resolve_version
6
9
 
10
+ console = Console()
11
+
12
+
13
+ def show_appzoo_deprecation_notice() -> None:
14
+ if not should_show_post_neat_ga_deprecation_notice():
15
+ return
16
+
17
+ console.print(
18
+ Panel(
19
+ "[yellow]App Zoo is compatible with legacy Palette SDKs and will be deprecated soon.[/yellow]\n\n"
20
+ "Use https://developer.sima.ai/examples to access current example applications.",
21
+ title="App Zoo Deprecation Notice",
22
+ border_style="yellow",
23
+ style="yellow",
24
+ expand=False,
25
+ )
26
+ )
27
+
28
+
7
29
  @click.group()
8
30
  @click.option(
9
31
  "-v", "--ver", "--version",
@@ -15,6 +37,7 @@ from sima_cli.utils.tag import resolve_version
15
37
  def appzoo(ctx, ver):
16
38
  """Access sample apps from the App Zoo."""
17
39
  ctx.ensure_object(dict)
40
+ show_appzoo_deprecation_notice()
18
41
  internal = ctx.obj.get("internal", False)
19
42
  if not internal:
20
43
  ver = resolve_version(ver)
@@ -71,4 +94,3 @@ def register_appzoo_commands(main):
71
94
  register_appzoo_commands(main)
72
95
  """
73
96
  main.add_command(appzoo)
74
-
@@ -32,8 +32,8 @@ USERINFO_AUDIENCE = PROD_USERINFO_AUDIENCE
32
32
  LATEST_EULA_GRANT = "LatestEULA"
33
33
  DOC_ACCESS_GRANT = "DocsAccess"
34
34
  DOC_ACCESS_GRANT_ALIASES = (DOC_ACCESS_GRANT, "DocAccess")
35
- PROD_DISCOURSE_URL = "https://developer.sima.ai/login"
36
- STAGING_DISCOURSE_URL = "https://discourse-dev.sima.ai/login"
35
+ PROD_DISCOURSE_URL = "https://community.sima.ai/login"
36
+ STAGING_DISCOURSE_URL = "https://community-dev.sima.ai/login"
37
37
 
38
38
  # ─────────────────────────────────────────────
39
39
  # Configuration loader
@@ -286,7 +286,7 @@ def request_device_code(auth_cfg):
286
286
 
287
287
  def poll_for_token(auth_cfg, device_code, interval):
288
288
  """Step 2: Poll for user authorization."""
289
- print(f"⏳ Waiting for user authorization... polling every {interval} seconds.")
289
+ print(f"⏳ Waiting for authorization. Complete the browser login above; checking every {interval} seconds.")
290
290
  while True:
291
291
  time.sleep(interval)
292
292
  resp = requests.post(
@@ -333,16 +333,21 @@ def login_auth0(auth_cfg):
333
333
  highlighted_url = click.style(verify_complete, fg="cyan", bold=True)
334
334
  highlighted_code = click.style(user_code, fg="yellow", bold=True)
335
335
 
336
- print(f" Link expires in {expires_in} minutes.\n")
336
+ print("🔐 sima-cli needs you to authorize this device login.")
337
+ print(f"⏰ Login link/code expires in {expires_in} minutes.\n")
337
338
 
338
339
  # Auto-open browser if possible
339
- if is_browser_available() and verify_complete:
340
+ if is_browser_available() and verify_complete and webbrowser.open(verify_complete):
340
341
  print(f"🌐 Opening browser for login → {highlighted_url}")
341
- webbrowser.open(verify_complete)
342
+ print("After signing in, return to this terminal. sima-cli will continue automatically.")
342
343
  else:
343
- print("🔐 Browser not available open manually:")
344
- print(f" 👉 {highlighted_url}")
345
- print(f" 🪄 Code: {highlighted_code}")
344
+ print("⚠️ A browser could not be opened from this environment.")
345
+ print("Action required:")
346
+ print(" 1. Open this URL in a browser on your workstation:")
347
+ print(f" {highlighted_url}")
348
+ print(" 2. Sign in with your SiMa Developer Portal account.")
349
+ print(f" 3. If prompted, confirm this code: {highlighted_code}")
350
+ print(" 4. Return to this terminal. sima-cli will continue automatically after authorization.")
346
351
 
347
352
  return poll_for_token(auth_cfg, data["device_code"], data["interval"])
348
353
 
@@ -40,15 +40,14 @@ HOST_DOCKER_CONTEXTS_DIR = os.path.join(os.path.expanduser("~"), ".docker", "con
40
40
  # Detect staging or production environment
41
41
  is_staging = False
42
42
  if os.getenv("USE_STAGING_DEV_PORTAL", "false").lower() in ("1", "true", "yes"):
43
- DEV_PORTAL = "https://discourse-dev.sima.ai"
43
+ DEV_PORTAL = "https://community-dev.sima.ai"
44
44
  DOCS_PORTAL = "https://docs-dev.sima.ai"
45
45
  is_staging = True
46
46
  else:
47
- DEV_PORTAL = "https://developer.sima.ai"
47
+ DEV_PORTAL = "https://community.sima.ai"
48
48
  DOCS_PORTAL = "https://docs.sima.ai"
49
49
 
50
50
  # Derived endpoints
51
- LOGIN_URL = f"{DEV_PORTAL}/session"
52
51
  DEV_PORTAL_LOGIN_URL = f"{DEV_PORTAL}/login"
53
52
  DUMMY_CHECK_URL = f"{DOCS_PORTAL}/pkg_downloads/validation"
54
53
  ACCESS_REQUEST_FORM_URL = "https://www2.sima.ai/l/1041271/2025-05-05/37bndg"
@@ -70,8 +69,17 @@ HEADERS = {
70
69
 
71
70
 
72
71
  def _prompt_manual_developer_portal_login(confirm_completion: bool = False) -> bool:
72
+ next_step = (
73
+ "After signing in and accepting the EULA, return here and confirm when prompted."
74
+ if confirm_completion
75
+ else "After signing in and accepting the EULA, rerun the command that required authentication."
76
+ )
73
77
  click.secho(
74
- f"\nOpen this page to accept EULA to proceed, press Y when you are done:\n{DEV_PORTAL_LOGIN_URL}\n",
78
+ "\nA browser could not be opened from this environment.\n"
79
+ "Open the following URL in a browser on your workstation to authenticate "
80
+ "with the SiMa Developer Portal and accept the EULA if prompted:\n\n"
81
+ f"{DEV_PORTAL_LOGIN_URL}\n\n"
82
+ f"{next_step}\n",
75
83
  fg="green",
76
84
  )
77
85
  if confirm_completion:
@@ -82,6 +82,7 @@ def _rerun_current_command() -> None:
82
82
  # Entry point for the CLI tool using Click's command group decorator
83
83
  @click.group(context_settings=dict(help_option_names=["-h", "--help", "-?"], max_content_width=120))
84
84
  @click.option('-i', '--internal', is_flag=True, help="Use internal Artifactory resources, Authorized Sima employees only")
85
+ @click.version_option(version=f"{__version__}", message="SiMa CLI version: %(version)s")
85
86
  @click.pass_context
86
87
  def main(ctx, internal):
87
88
  """
@@ -143,14 +144,6 @@ def login(ctx):
143
144
  internal = ctx.obj.get("internal", False)
144
145
  perform_login.login("internal" if internal else "external")
145
146
 
146
- # ----------------------
147
- # Version Command
148
- # ----------------------
149
- @main.command(name="version")
150
- def version_cmd():
151
- """Show the version of the CLI tool."""
152
- click.echo(f"SiMa CLI version: {__version__}")
153
-
154
147
  # ----------------------
155
148
  # Logout Command
156
149
  # ----------------------
@@ -586,7 +579,7 @@ ALL_COMPONENTS = SDK_DEPENDENT_COMPONENTS | SDK_INDEPENDENT_COMPONENTS
586
579
  default=".",
587
580
  show_default=True,
588
581
  type=click.Path(file_okay=False, dir_okay=True, path_type=str),
589
- help="Directory where Neat package resources are downloaded and installed. Used with --neat or --vulcan.",
582
+ help="Directory where package resources are downloaded and installed.",
590
583
  )
591
584
  @click.option("--json", "json_output", is_flag=True, help="With --neat or --vulcan, print resolved metadata URL and exit.")
592
585
  @click.option(
@@ -662,6 +655,7 @@ def install_cmd(
662
655
  install_dir=install_dir,
663
656
  force=force,
664
657
  json_output=json_output,
658
+ command_name="sima-cli install",
665
659
  )
666
660
  return None
667
661
 
@@ -670,7 +664,13 @@ def install_cmd(
670
664
  if component:
671
665
  click.echo(f"⚠️ Component '{component}' is ignored when using --metadata. Proceeding with metadata-based installation.")
672
666
  click.echo(f"🔧 Installing generic component from metadata URL: {mirror}")
673
- install_from_metadata(metadata_url=mirror, internal=internal, force=force)
667
+ install_from_metadata(
668
+ metadata_url=mirror,
669
+ internal=internal,
670
+ install_dir=install_dir,
671
+ force=force,
672
+ command_name="sima-cli install",
673
+ )
674
674
  return None
675
675
 
676
676
  # No component and no metadata: error
@@ -680,7 +680,13 @@ def install_cmd(
680
680
 
681
681
  # if user specified gh: as component, treat it the same as -m
682
682
  if component.startswith("gh:"):
683
- install_from_metadata(metadata_url=component, internal=False, force=force)
683
+ install_from_metadata(
684
+ metadata_url=component,
685
+ internal=False,
686
+ install_dir=install_dir,
687
+ force=force,
688
+ command_name="sima-cli install",
689
+ )
684
690
  return None
685
691
 
686
692
  # if the user specified cr: or ghcr: as component, install from container registry
@@ -714,8 +720,16 @@ def install_cmd(
714
720
  try:
715
721
  metadata_url = metadata_resolver(component, version, tag)
716
722
  click.echo(f"🔧 Installing '{component}' from resolved metadata: {metadata_url}")
717
- if install_from_metadata(metadata_url=metadata_url, internal=internal, force=force):
723
+ if install_from_metadata(
724
+ metadata_url=metadata_url,
725
+ internal=internal,
726
+ install_dir=install_dir,
727
+ force=force,
728
+ command_name="sima-cli install",
729
+ ):
718
730
  click.echo("✅ Installation complete.")
731
+ except click.ClickException:
732
+ raise
719
733
  except Exception as e:
720
734
  click.echo(f"❌ Failed to resolve metadata for component '{component}': {e}")
721
735
  ctx.exit(1)
@@ -1,5 +1,5 @@
1
1
  artifactory:
2
- url: "https://developer.sima.ai"
2
+ url: "https://community.sima.ai"
3
3
 
4
4
  auth:
5
5
  auth_url: "/login"
@@ -18,4 +18,4 @@ auth-dev:
18
18
  client-id: Rjrv1TXE5VWjMmCmWyT6OmLYEN1K5AIS
19
19
 
20
20
  download:
21
- download_url: "https://docs.sima.ai/pkg_downloads/"
21
+ download_url: "https://docs.sima.ai/pkg_downloads/"