llamactl 0.3.17__tar.gz → 0.3.18__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.
- {llamactl-0.3.17 → llamactl-0.3.18}/PKG-INFO +3 -3
- {llamactl-0.3.17 → llamactl-0.3.18}/pyproject.toml +3 -3
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/aliased_group.py +2 -2
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/auth.py +2 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/deployment_form.py +19 -7
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/deployment_monitor.py +3 -1
- {llamactl-0.3.17 → llamactl-0.3.18}/README.md +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/__init__.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/app.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/auth/client.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/client.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/deployment.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/env.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/init.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/pkg.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/commands/serve.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/_config.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/_migrations.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/auth_service.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/env_service.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/migrations/0001_init.sql +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/migrations/0002_add_auth_fields.sql +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/migrations/__init__.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/schema.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/debug.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/env.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/interactive_prompts/session_utils.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/interactive_prompts/utils.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/options.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/pkg/__init__.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/pkg/defaults.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/pkg/options.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/pkg/utils.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/py.typed +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/styles.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/deployment_help.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/git_validation.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/github_callback_server.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/llama_loader.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/secrets_form.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/textual/styles.tcss +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/utils/env_inject.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/utils/redact.py +0 -0
- {llamactl-0.3.17 → llamactl-0.3.18}/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.
|
|
3
|
+
Version: 0.3.18
|
|
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.
|
|
9
|
-
Requires-Dist: llama-deploy-appserver>=0.3.
|
|
8
|
+
Requires-Dist: llama-deploy-core[client]>=0.3.18,<0.4.0
|
|
9
|
+
Requires-Dist: llama-deploy-appserver>=0.3.18,<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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "llamactl"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.18"
|
|
4
4
|
description = "A command-line interface for managing LlamaDeploy projects and deployments"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -9,8 +9,8 @@ authors = [
|
|
|
9
9
|
]
|
|
10
10
|
requires-python = ">=3.11, <4"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"llama-deploy-core[client]>=0.3.
|
|
13
|
-
"llama-deploy-appserver>=0.3.
|
|
12
|
+
"llama-deploy-core[client]>=0.3.18,<0.4.0",
|
|
13
|
+
"llama-deploy-appserver>=0.3.18,<0.4.0",
|
|
14
14
|
"vibe-llama-core>=0.1.0",
|
|
15
15
|
"rich>=13.0.0",
|
|
16
16
|
"questionary>=2.0.0",
|
|
@@ -27,7 +27,7 @@ class AliasedGroup(click.Group):
|
|
|
27
27
|
|
|
28
28
|
def resolve_command(
|
|
29
29
|
self, ctx: click.Context, args: list[str]
|
|
30
|
-
) -> tuple[str, click.Command, list[str]]:
|
|
30
|
+
) -> tuple[str | None, click.Command | None, list[str]]:
|
|
31
31
|
# always return the full command name
|
|
32
32
|
_, cmd, args = super().resolve_command(ctx, args)
|
|
33
|
-
return cmd.name, cmd, args
|
|
33
|
+
return cmd.name if cmd else None, cmd, args
|
|
@@ -501,6 +501,8 @@ async def _run_device_authentication(base_url: str) -> DeviceOIDC:
|
|
|
501
501
|
raise click.ClickException(
|
|
502
502
|
"Device flow failed: token response missing access_token"
|
|
503
503
|
)
|
|
504
|
+
if not provider.jwks_uri:
|
|
505
|
+
raise click.ClickException("Provider does not expose jwks_uri")
|
|
504
506
|
claims = await decode_jwt_claims(token.id_token, provider.jwks_uri)
|
|
505
507
|
email = claims.get("email")
|
|
506
508
|
if not email:
|
|
@@ -6,6 +6,7 @@ import re
|
|
|
6
6
|
from dataclasses import dataclass, field
|
|
7
7
|
from pathlib import Path
|
|
8
8
|
from textwrap import dedent
|
|
9
|
+
from typing import cast
|
|
9
10
|
from urllib.parse import urlsplit
|
|
10
11
|
|
|
11
12
|
from llama_deploy.cli.client import get_project_client as get_client
|
|
@@ -117,7 +118,11 @@ class DeploymentForm:
|
|
|
117
118
|
def to_update(self) -> DeploymentUpdate:
|
|
118
119
|
"""Convert form data to API format"""
|
|
119
120
|
|
|
120
|
-
secrets: dict[str, str | None] =
|
|
121
|
+
secrets: dict[str, str | None] = cast(
|
|
122
|
+
# dict isn't covariant, so whatever, make it work
|
|
123
|
+
dict[str, str | None],
|
|
124
|
+
self.secrets.copy(),
|
|
125
|
+
)
|
|
121
126
|
for secret in self.removed_secrets:
|
|
122
127
|
secrets[secret] = None
|
|
123
128
|
|
|
@@ -287,7 +292,11 @@ class DeploymentFormWidget(Widget):
|
|
|
287
292
|
or existing_version
|
|
288
293
|
or installed_version
|
|
289
294
|
)
|
|
290
|
-
is_upgrade =
|
|
295
|
+
is_upgrade = (
|
|
296
|
+
installed_version
|
|
297
|
+
and existing_version
|
|
298
|
+
and Version(installed_version) > Version(existing_version)
|
|
299
|
+
)
|
|
291
300
|
label = "Upgrade" if is_upgrade else "Downgrade"
|
|
292
301
|
yield Select(
|
|
293
302
|
[
|
|
@@ -563,11 +572,14 @@ class DeploymentEditApp(App[DeploymentResponse | None]):
|
|
|
563
572
|
result = self.form_data
|
|
564
573
|
client = get_client()
|
|
565
574
|
try:
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
575
|
+
if result.is_editing:
|
|
576
|
+
if not result.id:
|
|
577
|
+
raise ValueError("Deployment ID is required for update")
|
|
578
|
+
update_deployment = await client.update_deployment(
|
|
579
|
+
result.id, result.to_update()
|
|
580
|
+
)
|
|
581
|
+
else:
|
|
582
|
+
update_deployment = await client.create_deployment(result.to_create())
|
|
571
583
|
# Save and navigate to embedded monitor screen
|
|
572
584
|
self.saved_deployment = update_deployment
|
|
573
585
|
# Ensure form_data carries the new ID for any subsequent operations
|
|
@@ -365,7 +365,9 @@ class DeploymentMonitorWidget(Widget):
|
|
|
365
365
|
ev_details_widget = self.query_one("#last_event_details", Static)
|
|
366
366
|
deployment_link_button = self.query_one("#deployment_link_button", Button)
|
|
367
367
|
widget.update(self._render_status_line())
|
|
368
|
-
deployment_link_button.label =
|
|
368
|
+
deployment_link_button.label = (
|
|
369
|
+
f"{str(self.deployment.apiserver_url or '') if self.deployment else ''}"
|
|
370
|
+
)
|
|
369
371
|
# Update last event line
|
|
370
372
|
ev_widget.update(self._render_last_event_status())
|
|
371
373
|
ev_details_widget.update(self._render_last_event_details())
|
|
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
|
{llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/config/migrations/0002_add_auth_fields.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{llamactl-0.3.17 → llamactl-0.3.18}/src/llama_deploy/cli/interactive_prompts/session_utils.py
RENAMED
|
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
|