agentstack-cli 0.7.0rc15__tar.gz → 0.7.1__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 (23) hide show
  1. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/PKG-INFO +1 -1
  2. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/pyproject.toml +1 -1
  3. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/__init__.py +6 -1
  4. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/agent.py +8 -7
  5. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/platform.py +7 -4
  6. agentstack_cli-0.7.1/src/agentstack_cli/data/helm-chart.tgz +0 -0
  7. agentstack_cli-0.7.0rc15/src/agentstack_cli/data/helm-chart.tgz +0 -0
  8. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/README.md +0 -0
  9. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/api.py +0 -0
  10. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/async_typer.py +0 -0
  11. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/auth_manager.py +0 -0
  12. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/__init__.py +0 -0
  13. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/build.py +0 -0
  14. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/connector.py +0 -0
  15. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/model.py +0 -0
  16. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/self.py +0 -0
  17. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/server.py +0 -0
  18. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/commands/user.py +0 -0
  19. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/configuration.py +0 -0
  20. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/console.py +0 -0
  21. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/data/.gitignore +0 -0
  22. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/server_utils.py +0 -0
  23. {agentstack_cli-0.7.0rc15 → agentstack_cli-0.7.1}/src/agentstack_cli/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentstack-cli
3
- Version: 0.7.0rc15
3
+ Version: 0.7.1
4
4
  Summary: Agent Stack CLI
5
5
  Author: IBM Corp.
6
6
  Requires-Dist: anyio>=4.12.1
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agentstack-cli"
3
- version = "0.7.0-rc15"
3
+ version = "0.7.1"
4
4
  description = "Agent Stack CLI"
5
5
  readme = "README.md"
6
6
  authors = [{ name = "IBM Corp." }]
@@ -3,6 +3,7 @@
3
3
 
4
4
  from __future__ import annotations
5
5
 
6
+ import asyncio
6
7
  import logging
7
8
  import re
8
9
  import typing
@@ -52,13 +53,13 @@ Usage: agentstack [OPTIONS] COMMAND [ARGS]...
52
53
  │ model Configure 15+ LLM providers [Admin only] │
53
54
  │ platform Start, stop, or delete local platform [Local only] │
54
55
  │ server Connect to remote Agent Stack servers │
55
- │ user Manage users and roles [Admin only] │
56
56
  │ self version Show Agent Stack CLI and Platform version │
57
57
  │ self upgrade Upgrade Agent Stack CLI and Platform [Local only] │
58
58
  │ self uninstall Uninstall Agent Stack CLI and Platform [Local only] │
59
59
  ╰────────────────────────────────────────────────────────────────────────────╯
60
60
 
61
61
  ╭─ Options ──────────────────────────────────────────────────────────────────╮
62
+ │ --version Show CLI version and exit │
62
63
  │ --help Show this help message │
63
64
  │ --show-completion Show tab completion script │
64
65
  │ --install-completion Enable tab completion for commands │
@@ -73,7 +74,11 @@ app = AsyncTyper()
73
74
  def main(
74
75
  ctx: typer.Context,
75
76
  help: bool = typer.Option(False, "--help", help="Show this message and exit."),
77
+ version: bool = typer.Option(False, "--version", help="Show CLI version and exit."),
76
78
  ):
79
+ if version:
80
+ asyncio.run(agentstack_cli.commands.self.version())
81
+ raise typer.Exit()
77
82
  if help or ctx.invoked_subcommand is None:
78
83
  typer.echo(HELP_TEXT)
79
84
  raise typer.Exit()
@@ -433,10 +433,11 @@ def search_path_match_providers(search_path: str, providers: list[Provider]) ->
433
433
 
434
434
  def select_provider(search_path: str, providers: list[Provider]):
435
435
  provider_candidates = search_path_match_providers(search_path, providers)
436
- if len(provider_candidates) != 1:
437
- provider_candidates = [f" - {c}" for c in provider_candidates]
438
- remove_providers_detail = ":\n" + "\n".join(provider_candidates) if provider_candidates else ""
439
- raise ValueError(f"{len(provider_candidates)} matching agents{remove_providers_detail}")
436
+ if len(provider_candidates) == 0:
437
+ raise ValueError(f"No agents matched '{search_path}'")
438
+ if len(provider_candidates) > 1:
439
+ candidates_detail = "\n".join(f" - {c}" for c in provider_candidates)
440
+ raise ValueError(f"Multiple agents matched '{search_path}':\n{candidates_detail}")
440
441
  [selected_provider] = provider_candidates.values()
441
442
  return selected_provider
442
443
 
@@ -520,10 +521,10 @@ async def stream_logs(
520
521
  ],
521
522
  ):
522
523
  """Stream agent provider logs. [Admin only]"""
523
- announce_server_action(f"Streaming logs for '{search_path}' from")
524
524
  async with configuration.use_platform_client():
525
- provider = select_provider(search_path, await Provider.list()).id
526
- async for message in Provider.stream_logs(provider):
525
+ provider = select_provider(search_path, await Provider.list())
526
+ announce_server_action(f"Streaming logs for '{provider.agent_card.name}' from")
527
+ async for message in Provider.stream_logs(provider.id):
527
528
  print_log(message, ansi_mode=True)
528
529
 
529
530
 
@@ -62,14 +62,17 @@ def detect_driver() -> typing.Literal["lima", "wsl"]:
62
62
  elif platform_module.system() == "Linux":
63
63
  if not has_lima:
64
64
  console.hint(
65
- "This Linux distribution is not suppored by Lima VM binary releases (required: glibc>=2.34). Manually install Lima VM v2.0.3 through either:\n"
65
+ "This Linux distribution is not suppored by Lima VM binary releases (required: glibc>=2.34). Manually install Lima VM by either:\n"
66
66
  + " - Your distribution's package manager, if available (https://repology.org/project/lima/versions)\n"
67
- + " - Homebrew, which uses its own separate glibc on Linux (https://brew.sh)\n"
68
- + " - Building it yourself, and ensuring that limactl is in PATH (https://lima-vm.io/docs/installation/source/)"
67
+ + " - Homebrew for Linux, which uses its own separate glibc (https://brew.sh)\n"
68
+ + " - Building it yourself, and ensuring that [green]limactl[/green] is in PATH (https://lima-vm.io/docs/installation/source/)"
69
69
  )
70
70
  if not shutil.which(f"qemu-system-{arch}"):
71
71
  console.hint(
72
- f"QEMU is needed on Linux, please install it and ensure that qemu-system-{arch} is in PATH. Refer to https://www.qemu.org/download/ for instructions."
72
+ f"QEMU is needed on Linux, please install it and ensure that [green]qemu-system-{arch}[/green] is in PATH. Refer to https://www.qemu.org/download/ for instructions."
73
+ )
74
+ console.hint(
75
+ f"On some distributions (e.g. RHEL) you might need to manually create the symlink: [green]sudo ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-system-{arch}[/green]"
73
76
  )
74
77
  sys.exit(1)
75
78