llamactl 0.3.24__tar.gz → 0.3.25__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 (46) hide show
  1. {llamactl-0.3.24 → llamactl-0.3.25}/PKG-INFO +3 -3
  2. {llamactl-0.3.24 → llamactl-0.3.25}/pyproject.toml +3 -3
  3. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/dev.py +79 -1
  4. {llamactl-0.3.24 → llamactl-0.3.25}/README.md +0 -0
  5. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/__init__.py +0 -0
  6. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/app.py +0 -0
  7. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/auth/client.py +0 -0
  8. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/client.py +0 -0
  9. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/aliased_group.py +0 -0
  10. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/auth.py +0 -0
  11. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/deployment.py +0 -0
  12. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/env.py +0 -0
  13. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/init.py +0 -0
  14. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/pkg.py +0 -0
  15. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/commands/serve.py +0 -0
  16. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/_config.py +0 -0
  17. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/_migrations.py +0 -0
  18. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/auth_service.py +0 -0
  19. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/env_service.py +0 -0
  20. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/migrations/0001_init.sql +0 -0
  21. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/migrations/0002_add_auth_fields.sql +0 -0
  22. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/migrations/__init__.py +0 -0
  23. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/config/schema.py +0 -0
  24. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/debug.py +0 -0
  25. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/env.py +0 -0
  26. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/interactive_prompts/session_utils.py +0 -0
  27. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/interactive_prompts/utils.py +0 -0
  28. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/options.py +0 -0
  29. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/pkg/__init__.py +0 -0
  30. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/pkg/defaults.py +0 -0
  31. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/pkg/options.py +0 -0
  32. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/pkg/utils.py +0 -0
  33. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/py.typed +0 -0
  34. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/styles.py +0 -0
  35. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/deployment_form.py +0 -0
  36. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/deployment_help.py +0 -0
  37. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/deployment_monitor.py +0 -0
  38. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/git_validation.py +0 -0
  39. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/github_callback_server.py +0 -0
  40. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/llama_loader.py +0 -0
  41. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/secrets_form.py +0 -0
  42. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/textual/styles.tcss +0 -0
  43. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/utils/env_inject.py +0 -0
  44. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/utils/redact.py +0 -0
  45. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/utils/retry.py +0 -0
  46. {llamactl-0.3.24 → llamactl-0.3.25}/src/llama_deploy/cli/utils/version.py +0 -0
@@ -1,12 +1,12 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: llamactl
3
- Version: 0.3.24
3
+ Version: 0.3.25
4
4
  Summary: A command-line interface for managing LlamaDeploy projects and deployments
5
5
  Author: Adrian Lyjak
6
6
  Author-email: Adrian Lyjak <adrianlyjak@gmail.com>
7
7
  License: MIT
8
- Requires-Dist: llama-deploy-core[client]>=0.3.24,<0.4.0
9
- Requires-Dist: llama-deploy-appserver>=0.3.24,<0.4.0
8
+ Requires-Dist: llama-deploy-core[client]>=0.3.25,<0.4.0
9
+ Requires-Dist: llama-deploy-appserver>=0.3.25,<0.4.0
10
10
  Requires-Dist: vibe-llama-core>=0.1.0
11
11
  Requires-Dist: rich>=13.0.0
12
12
  Requires-Dist: questionary>=2.0.0
@@ -14,7 +14,7 @@ dev = [
14
14
 
15
15
  [project]
16
16
  name = "llamactl"
17
- version = "0.3.24"
17
+ version = "0.3.25"
18
18
  description = "A command-line interface for managing LlamaDeploy projects and deployments"
19
19
  readme = "README.md"
20
20
  license = {text = "MIT"}
@@ -23,8 +23,8 @@ authors = [
23
23
  ]
24
24
  requires-python = ">=3.10, <4"
25
25
  dependencies = [
26
- "llama-deploy-core[client]>=0.3.24,<0.4.0",
27
- "llama-deploy-appserver>=0.3.24,<0.4.0",
26
+ "llama-deploy-core[client]>=0.3.25,<0.4.0",
27
+ "llama-deploy-appserver>=0.3.25,<0.4.0",
28
28
  "vibe-llama-core>=0.1.0",
29
29
  "rich>=13.0.0",
30
30
  "questionary>=2.0.0",
@@ -79,6 +79,69 @@ def validate_command(deployment_file: Path, interactive: bool) -> None:
79
79
  rprint(f"[green]Validated workflows in {config_dir} successfully.[/green]")
80
80
 
81
81
 
82
+ @dev.command(
83
+ "export-json-graph",
84
+ help="Produce a JSON graph representation of registered workflows",
85
+ hidden=True, # perhaps expose if we have a built in visualization (mermaid, etc.)
86
+ )
87
+ @click.argument(
88
+ "deployment_file",
89
+ required=False,
90
+ default=DEFAULT_DEPLOYMENT_FILE_PATH,
91
+ type=_ClickPath(dir_okay=True, resolve_path=True, path_type=Path),
92
+ )
93
+ @click.option(
94
+ "--output",
95
+ help=(
96
+ "File where output JSON graph will be saved. "
97
+ "Defaults to workflows.json in the current directory."
98
+ ),
99
+ required=False,
100
+ default=None,
101
+ type=_ClickPath(dir_okay=True, resolve_path=True, path_type=Path),
102
+ )
103
+ @interactive_option
104
+ @global_options
105
+ def export_json_graph_command(
106
+ deployment_file: Path,
107
+ output: Path | None,
108
+ interactive: bool,
109
+ ) -> None:
110
+ """Export the configured workflows to a JSON document that may be used for graph visualization."""
111
+ if not deployment_file.exists():
112
+ rprint(f"[red]Deployment file '{deployment_file}' does not exist[/red]")
113
+ raise click.Abort()
114
+
115
+ _ensure_project_layout(
116
+ deployment_file, command_name="llamactl dev export-json-graph"
117
+ )
118
+ _maybe_inject_llama_cloud_credentials(
119
+ deployment_file, interactive, require_cloud=False
120
+ )
121
+
122
+ prepare_server(
123
+ deployment_file=deployment_file,
124
+ install=True,
125
+ build=False,
126
+ install_ui_deps=False,
127
+ )
128
+
129
+ wd = Path.cwd()
130
+ if output is None:
131
+ output = wd / "workflows.json"
132
+
133
+ try:
134
+ start_export_json_graph_in_target_venv(
135
+ cwd=wd,
136
+ deployment_file=deployment_file,
137
+ output=output,
138
+ )
139
+ except subprocess.CalledProcessError as exc:
140
+ rprint("[red]Workflow JSON graph export failed. See errors above.[/red]")
141
+ raise Exit(exc.returncode)
142
+ rprint(f"[green]Exported workflow JSON graph to {output}[/green]")
143
+
144
+
82
145
  @dev.command(
83
146
  "run",
84
147
  help=(
@@ -199,6 +262,21 @@ def start_preflight_in_target_venv(*, cwd: Path, deployment_file: Path) -> None:
199
262
  _start_preflight_in_target_venv(cwd=cwd, deployment_file=deployment_file)
200
263
 
201
264
 
265
+ def start_export_json_graph_in_target_venv(
266
+ *, cwd: Path, deployment_file: Path, output: Path
267
+ ) -> None:
268
+ """Thin wrapper so tests can monkeypatch `dev.start_export_json_graph_in_target_venv`."""
269
+ from llama_deploy.appserver.app import (
270
+ start_export_json_graph_in_target_venv as _start_export_json_graph_in_target_venv,
271
+ )
272
+
273
+ _start_export_json_graph_in_target_venv(
274
+ cwd=cwd,
275
+ deployment_file=deployment_file,
276
+ output=output,
277
+ )
278
+
279
+
202
280
  def parse_environment_variables(
203
281
  config: DeploymentConfig, config_parent: Path
204
282
  ) -> dict[str, str]:
@@ -210,4 +288,4 @@ def parse_environment_variables(
210
288
  return _parse_environment_variables(config, config_parent)
211
289
 
212
290
 
213
- __all__ = ["dev", "validate_command", "run_command"]
291
+ __all__ = ["dev", "validate_command", "run_command", "export_json_graph_command"]
File without changes