forgexa-cli 1.28.0__tar.gz → 1.29.0__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 (27) hide show
  1. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/PKG-INFO +1 -1
  2. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/__init__.py +1 -1
  3. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/daemon.py +11 -9
  4. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/main.py +1 -1
  5. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/PKG-INFO +1 -1
  6. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/pyproject.toml +1 -1
  7. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/README.md +0 -0
  8. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/_build_config.py +0 -0
  9. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/_local_bind.py +0 -0
  10. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/agent_core.py +0 -0
  11. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/autoupgrade.py +0 -0
  12. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli/py.typed +0 -0
  13. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/SOURCES.txt +0 -0
  14. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/dependency_links.txt +0 -0
  15. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/entry_points.txt +0 -0
  16. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/requires.txt +0 -0
  17. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/forgexa_cli.egg-info/top_level.txt +0 -0
  18. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/setup.cfg +0 -0
  19. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_auth_and_runtime_commands.py +0 -0
  20. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_autoupgrade.py +0 -0
  21. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_check_command.py +0 -0
  22. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_expiry_warnings_and_revoke.py +0 -0
  23. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_local_bind_commands.py +0 -0
  24. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_runtime_credentials.py +0 -0
  25. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_session_credentials.py +0 -0
  26. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_silent_install.py +0 -0
  27. {forgexa_cli-1.28.0 → forgexa_cli-1.29.0}/tests/test_upgrade_observability.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.28.0
3
+ Version: 1.29.0
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,2 +1,2 @@
1
1
  """forgexa-cli — Forgexa command-line client."""
2
- __version__ = "1.28.0"
2
+ __version__ = "1.29.0"
@@ -62,17 +62,18 @@ except ImportError:
62
62
  # Agent discovery, process primitives, agent command/env builders, output
63
63
  # parsing and advisory file locks live in agent_core.py (shared with the IDE
64
64
  # agent_host sidecar). Both files are mirrored byte-identical into the
65
- # CLI/Desktop/IDE bundles by cli/scripts/sync-daemon.sh — edit only the
65
+ # CLI/Desktop bundles by cli/scripts/sync-daemon.sh — edit only the
66
66
  # backend/app/ copies. The import shim covers the backend package layout
67
67
  # (app.agent_core), the CLI package layout (forgexa_cli.agent_core) and the
68
- # flat mirror layout (agent_core next to daemon.py in desktop/IDE resources).
68
+ # flat mirror layout (agent_core next to daemon.py in the desktop app's
69
+ # resources).
69
70
  try:
70
71
  from app import agent_core
71
72
  except ImportError:
72
73
  try:
73
74
  from . import agent_core # type: ignore[no-redef] # CLI package layout
74
75
  except ImportError:
75
- import agent_core # type: ignore[no-redef] # flat script layout (desktop/IDE resources)
76
+ import agent_core # type: ignore[no-redef] # flat script layout (desktop resources)
76
77
 
77
78
  # Backwards-compatible aliases: keep every moved symbol importable from
78
79
  # app.daemon (tests patch e.g. app.daemon._kill_proc) while the single source
@@ -909,14 +910,14 @@ except (ImportError, ModuleNotFoundError):
909
910
  # DAEMON_VERSION is the protocol/logic version of the daemon code.
910
911
  # Kept in sync with pyproject.toml version via bump-version.sh.
911
912
  # CLIENT_TYPE identifies which packaging/distribution this daemon runs in.
912
- DAEMON_VERSION = "1.28.0"
913
+ DAEMON_VERSION = "1.29.0"
913
914
 
914
915
 
915
916
  def _detect_client_type() -> str:
916
917
  """Auto-detect client type from runtime context.
917
918
 
918
919
  Priority:
919
- 1. FORGEXA_CLIENT_TYPE env var (set by desktop/IDE Tauri launcher)
920
+ 1. FORGEXA_CLIENT_TYPE env var (set by the desktop Tauri launcher)
920
921
  2. Import context: app.config importable → "server"
921
922
  3. Default: "cli" (standalone pip-installed daemon)
922
923
 
@@ -924,9 +925,10 @@ def _detect_client_type() -> str:
924
925
  of deployment context, making the bundle-daemon.sh copy safe.
925
926
  """
926
927
  env_type = os.environ.get("FORGEXA_CLIENT_TYPE", "").strip().lower()
927
- # "ide" is the pre-rename Studio value (renamed 2026-08-16):
928
- # already-installed builds keep sending it forever, so it must stay
929
- # accepted permanently alongside "studio".
928
+ # "ide" and "studio" are pre-rename client_type values (ide→studio
929
+ # 2026-08-16, studio→desktop 2026-08-25): already-installed builds keep
930
+ # sending them forever, so they must stay accepted permanently alongside
931
+ # "desktop", which the current app reports.
930
932
  if env_type in ("server", "cli", "desktop", "ide", "studio"):
931
933
  return env_type
932
934
  # Server: app.config was successfully imported at module level above
@@ -1862,7 +1864,7 @@ def _save_local_workspaces_mapping(mapping: dict) -> None:
1862
1864
  # machine but must NEVER reach the server (on_output_chunk below already
1863
1865
  # skips buffering local_bind lines into the server-bound progress report).
1864
1866
  # This file is the "same-machine-visible" channel: the Forgexa IDE tails it
1865
- # directly via a Tauri command (studio/src-tauri/src/local_bind_output.rs) - it
1867
+ # directly via a Tauri command (desktop/src-tauri/src/local_bind_output.rs) - it
1866
1868
  # is never read or transmitted by anything in this module over HTTP.
1867
1869
  def _local_bind_output_log_path(task_id: str) -> Path:
1868
1870
  return Path.home() / ".forgexa" / "local-bind-output" / f"{task_id}.log"
@@ -3434,7 +3434,7 @@ def main() -> None:
3434
3434
  pc.add_argument("name", help="Project name")
3435
3435
  pc.add_argument("--workspace", required=True, help="Workspace ID")
3436
3436
  pc.add_argument("--stack", default=None, help="Tech stack")
3437
- bl = proj_sub.add_parser("bind-local", help="Bind a local directory for Forgexa Studio direct execution")
3437
+ bl = proj_sub.add_parser("bind-local", help="Bind a local directory for Forgexa Desktop direct execution")
3438
3438
  bl.add_argument("path", help="Absolute path to your local working directory")
3439
3439
  bl.add_argument("--project", required=True, help="Project ID")
3440
3440
  bl.add_argument("--runtime", default=None, help="Personal runtime ID prefix (if you have more than one)")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: forgexa-cli
3
- Version: 1.28.0
3
+ Version: 1.29.0
4
4
  Summary: Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform
5
5
  Author-email: Jason Sun <dev.winds@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "forgexa-cli"
3
- version = "1.28.0"
3
+ version = "1.29.0"
4
4
  description = "Forgexa CLI — command-line client and AI agent runtime for the Forgexa platform"
5
5
  requires-python = ">=3.9"
6
6
  license = "MIT"
File without changes
File without changes