jvcli 2.0.24__tar.gz → 2.0.26__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 (81) hide show
  1. {jvcli-2.0.24/jvcli.egg-info → jvcli-2.0.26}/PKG-INFO +1 -1
  2. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/__init__.py +1 -1
  3. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/app.py +7 -0
  4. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/utils.py +32 -10
  5. {jvcli-2.0.24 → jvcli-2.0.26/jvcli.egg-info}/PKG-INFO +1 -1
  6. {jvcli-2.0.24 → jvcli-2.0.26}/LICENSE +0 -0
  7. {jvcli-2.0.24 → jvcli-2.0.26}/MANIFEST.in +0 -0
  8. {jvcli-2.0.24 → jvcli-2.0.26}/README.md +0 -0
  9. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/api.py +0 -0
  10. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/auth.py +0 -0
  11. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/cli.py +0 -0
  12. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/__init__.py +0 -0
  13. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/lib/__init__.py +0 -0
  14. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/lib/page.py +0 -0
  15. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/lib/utils.py +0 -0
  16. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/lib/widgets.py +0 -0
  17. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/pages/__init__.py +0 -0
  18. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/pages/action_dashboard_page.py +0 -0
  19. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/pages/analytics_page.py +0 -0
  20. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/pages/chat_page.py +0 -0
  21. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/client/pages/graph_page.py +0 -0
  22. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/__init__.py +0 -0
  23. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/auth.py +0 -0
  24. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/clean.py +0 -0
  25. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/client.py +0 -0
  26. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/create.py +0 -0
  27. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/download.py +0 -0
  28. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/info.py +0 -0
  29. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/publish.py +0 -0
  30. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/server.py +0 -0
  31. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/startproject.py +0 -0
  32. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/studio.py +0 -0
  33. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/commands/update.py +0 -0
  34. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/assets/index-DDV79SDu.js +0 -0
  35. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/assets/index-DdMMONxd.css +0 -0
  36. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/index.html +0 -0
  37. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/jac_logo.png +0 -0
  38. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/tauri.svg +0 -0
  39. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio/vite.svg +0 -0
  40. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/assets/index-Bh6lyeXA.js +0 -0
  41. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/assets/index-DdMMONxd.css +0 -0
  42. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/index.html +0 -0
  43. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/jac_logo.png +0 -0
  44. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/tauri.svg +0 -0
  45. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/studio-auth/vite.svg +0 -0
  46. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/action_info.yaml +0 -0
  47. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/agent_descriptor.yaml +0 -0
  48. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/agent_info.yaml +0 -0
  49. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/agent_knowledge.yaml +0 -0
  50. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/agent_memory.yaml +0 -0
  51. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/README.md +0 -0
  52. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/actions/README.md +0 -0
  53. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/daf/README.md +0 -0
  54. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/env.example +0 -0
  55. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/gitignore.example +0 -0
  56. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/globals.jac +0 -0
  57. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/main.jac +0 -0
  58. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/2.0.0/project/tests/README.md +0 -0
  59. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/CHANGELOG.md +0 -0
  60. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli/templates/README.md +0 -0
  61. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli.egg-info/SOURCES.txt +0 -0
  62. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli.egg-info/dependency_links.txt +0 -0
  63. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli.egg-info/entry_points.txt +0 -0
  64. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli.egg-info/requires.txt +0 -0
  65. {jvcli-2.0.24 → jvcli-2.0.26}/jvcli.egg-info/top_level.txt +0 -0
  66. {jvcli-2.0.24 → jvcli-2.0.26}/setup.cfg +0 -0
  67. {jvcli-2.0.24 → jvcli-2.0.26}/setup.py +0 -0
  68. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_api.py +0 -0
  69. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_auth.py +0 -0
  70. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_clean.py +0 -0
  71. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_cli.py +0 -0
  72. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_create.py +0 -0
  73. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_download.py +0 -0
  74. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_info.py +0 -0
  75. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_publish.py +0 -0
  76. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_render_basic.py +0 -0
  77. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_server.py +0 -0
  78. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_startproject.py +0 -0
  79. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_studio.py +0 -0
  80. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_update.py +0 -0
  81. {jvcli-2.0.24 → jvcli-2.0.26}/tests/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jvcli
3
- Version: 2.0.24
3
+ Version: 2.0.26
4
4
  Summary: CLI tool for Jivas Package Repository
5
5
  Home-page: https://github.com/TrueSelph/jvcli
6
6
  Author: TrueSelph Inc.
@@ -4,5 +4,5 @@ jvcli package initialization.
4
4
  This package provides the CLI tool for Jivas Package Repository.
5
5
  """
6
6
 
7
- __version__ = "2.0.24"
7
+ __version__ = "2.0.26"
8
8
  __supported__jivas__versions__ = ["2.0.0"]
@@ -146,6 +146,13 @@ def main() -> None:
146
146
  ):
147
147
  st.session_state.actions_data = actions_data
148
148
 
149
+ # Sort actions_data alphabetically by the action's title
150
+ actions_data.sort(
151
+ key=lambda action: action.get("_package", {})
152
+ .get("meta", {})
153
+ .get("title", "")
154
+ )
155
+
149
156
  for action in actions_data:
150
157
  package = action.get("_package", {})
151
158
 
@@ -96,27 +96,24 @@ def is_version_compatible(
96
96
  version: str, specifiers: str, allow_prerelease: bool = True
97
97
  ) -> bool:
98
98
  """
99
- Determines if the provided version satisfies the given specifiers or exact version match,
100
- with an option to consider prerelease versions.
101
-
102
- - Converts comma-separated specifiers to space-separated (Node-style).
99
+ Determines if the provided version satisfies the given specifiers, with strict
100
+ prerelease checks when `allow_prerelease` is True.
103
101
  """
104
102
  if not version or not specifiers:
105
103
  return False
106
104
 
107
- # Replace comma(s) and optional surrounding spaces with one space
105
+ # Normalize specifiers to Node.js format
108
106
  specifiers = re.sub(r"\s*,\s*", " ", specifiers.strip())
109
107
 
110
108
  try:
111
- # For nodesemver
112
- return nodesemver.satisfies(
109
+ # Check using nodesemver
110
+ result = nodesemver.satisfies(
113
111
  version, specifiers, include_prerelease=allow_prerelease
114
112
  )
115
113
  except ImportError:
116
114
  try:
117
- # For python-semver >=3.0.0
118
- # semver>=3.0.0 supports allow_prerelease
119
- return semver.satisfies(
115
+ # Fallback to python-semver
116
+ result = semver.satisfies(
120
117
  version, specifiers, allow_prerelease=allow_prerelease
121
118
  )
122
119
  except Exception:
@@ -124,6 +121,31 @@ def is_version_compatible(
124
121
  except Exception:
125
122
  return False
126
123
 
124
+ # Additional scrutiny for prerelease logic
125
+ if allow_prerelease and result:
126
+ try:
127
+ version_info = semver.VersionInfo.parse(version)
128
+ # Extract base version from specifier (e.g., "^2.0.0-alpha.44" → "2.0.0-alpha.44")
129
+ base_version_match = re.search(
130
+ r"[\^~>=<]*(?P<version>\d+\.\d+\.\d+(-[a-zA-Z0-9\.]+)?)", specifiers
131
+ )
132
+ if base_version_match:
133
+ base_version_str = base_version_match.group("version")
134
+ base_version_info = semver.VersionInfo.parse(base_version_str)
135
+
136
+ # Case 1: Specifier is a prerelease
137
+ if base_version_info.prerelease:
138
+ # Reject stable versions or prereleases lower than the base prerelease
139
+ if (not version_info.prerelease) or (
140
+ version_info < base_version_info
141
+ ):
142
+ return False
143
+
144
+ except (ValueError, TypeError):
145
+ pass # Fallback to original result if parsing fails
146
+
147
+ return result
148
+
127
149
 
128
150
  def validate_dependencies(dependencies: dict, token: Optional[str] = None) -> None:
129
151
  """Ensure all dependencies exist in the registry."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jvcli
3
- Version: 2.0.24
3
+ Version: 2.0.26
4
4
  Summary: CLI tool for Jivas Package Repository
5
5
  Home-page: https://github.com/TrueSelph/jvcli
6
6
  Author: TrueSelph Inc.
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