amina-cli 0.2.3__tar.gz → 0.2.4__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 (65) hide show
  1. {amina_cli-0.2.3 → amina_cli-0.2.4}/PKG-INFO +1 -1
  2. {amina_cli-0.2.3 → amina_cli-0.2.4}/pyproject.toml +1 -1
  3. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/__init__.py +1 -1
  4. amina_cli-0.2.4/src/amina_cli/commands/__init__.py +9 -0
  5. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/main.py +5 -6
  6. amina_cli-0.2.3/src/amina_cli/commands/__init__.py +0 -9
  7. amina_cli-0.2.3/src/amina_cli/commands/init_cmd.py +0 -96
  8. {amina_cli-0.2.3 → amina_cli-0.2.4}/.gitignore +0 -0
  9. {amina_cli-0.2.3 → amina_cli-0.2.4}/LICENSE +0 -0
  10. {amina_cli-0.2.3 → amina_cli-0.2.4}/README.md +0 -0
  11. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/auth.py +0 -0
  12. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/client.py +0 -0
  13. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/auth_cmd.py +0 -0
  14. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/jobs_cmd.py +0 -0
  15. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/run_cmd.py +0 -0
  16. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/__init__.py +0 -0
  17. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/__init__.py +0 -0
  18. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/hydrophobicity.py +0 -0
  19. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/mmseqs2_cluster.py +0 -0
  20. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/rmsd.py +0 -0
  21. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/sasa.py +0 -0
  22. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/simple_rmsd.py +0 -0
  23. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/surface_charge.py +0 -0
  24. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/analysis/usalign.py +0 -0
  25. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/design/__init__.py +0 -0
  26. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/design/esm_if1.py +0 -0
  27. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/design/protein_mc.py +0 -0
  28. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/design/proteinmpnn.py +0 -0
  29. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/design/rfdiffusion.py +0 -0
  30. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/display.py +0 -0
  31. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/folding/__init__.py +0 -0
  32. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/folding/boltz2.py +0 -0
  33. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/folding/esmfold.py +0 -0
  34. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/folding/openfold3.py +0 -0
  35. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/folding/protenix.py +0 -0
  36. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/__init__.py +0 -0
  37. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/autodock_vina.py +0 -0
  38. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/diffdock.py +0 -0
  39. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/dockq.py +0 -0
  40. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/emngly.py +0 -0
  41. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/glycosylation_ensemble.py +0 -0
  42. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/interface_identifier.py +0 -0
  43. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/isoglyp.py +0 -0
  44. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/lmngly.py +0 -0
  45. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/p2rank.py +0 -0
  46. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/interactions/pesto.py +0 -0
  47. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/properties/__init__.py +0 -0
  48. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/properties/aminosol.py +0 -0
  49. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/properties/esm1v.py +0 -0
  50. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/properties/esm2_embedding.py +0 -0
  51. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/__init__.py +0 -0
  52. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/activesite_verifier.py +0 -0
  53. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/chain_select.py +0 -0
  54. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/distance_calculator.py +0 -0
  55. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/maxit_convert.py +0 -0
  56. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/mol_size_calculator.py +0 -0
  57. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/obabel_convert.py +0 -0
  58. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/pdb_bfactor_overwrite.py +0 -0
  59. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/pdb_cleaner.py +0 -0
  60. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/pdb_quality_assessment.py +0 -0
  61. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/pdb_to_fasta.py +0 -0
  62. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools/utilities/protein_relaxer.py +0 -0
  63. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/commands/tools_cmd.py +0 -0
  64. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/registry.py +0 -0
  65. {amina_cli-0.2.3 → amina_cli-0.2.4}/src/amina_cli/storage.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amina-cli
3
- Version: 0.2.3
3
+ Version: 0.2.4
4
4
  Summary: CLI for AminoAnalytica protein engineering platform
5
5
  Project-URL: Homepage, https://aminoanalytica.com
6
6
  Project-URL: Documentation, https://docs.aminoanalytica.com
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "amina-cli"
3
- version = "0.2.3"
3
+ version = "0.2.4"
4
4
  description = "CLI for AminoAnalytica protein engineering platform"
5
5
  readme = "README.md"
6
6
  license = {text = "Apache-2.0"}
@@ -9,4 +9,4 @@ Quick start:
9
9
  amina run esmfold --sequence "MKFLILLFNILCLFPVLAADNH"
10
10
  """
11
11
 
12
- __version__ = "0.2.3"
12
+ __version__ = "0.2.4"
@@ -0,0 +1,9 @@
1
+ """
2
+ CLI command modules.
3
+
4
+ Each module defines a Typer sub-application for a command group.
5
+ """
6
+
7
+ from amina_cli.commands import auth_cmd, jobs_cmd, run_cmd, tools_cmd
8
+
9
+ __all__ = ["auth_cmd", "jobs_cmd", "run_cmd", "tools_cmd"]
@@ -9,7 +9,7 @@ import typer
9
9
  from rich.console import Console
10
10
 
11
11
  from amina_cli import __version__
12
- from amina_cli.commands import auth_cmd, init_cmd, jobs_cmd, run_cmd, tools_cmd
12
+ from amina_cli.commands import auth_cmd, jobs_cmd, run_cmd, tools_cmd
13
13
 
14
14
  # Create the main application
15
15
  app = typer.Typer(
@@ -26,10 +26,10 @@ app = typer.Typer(
26
26
 
27
27
  [bold]Get an API key:[/bold] https://aminoanalytica.com
28
28
 
29
- [bold]Claude Code integration:[/bold]
30
- amina init claude-skills # Install skills to .claude/skills/
29
+ [bold]AI agent integration:[/bold]
30
+ npx skills add AminoAnalytica/amina-skills --all
31
31
 
32
- Then run [bold]/amina-init[/bold] in Claude Code to get started.""",
32
+ Then run [bold]/amina-init[/bold] in your AI agent to get started.""",
33
33
  no_args_is_help=True,
34
34
  rich_markup_mode="rich",
35
35
  )
@@ -39,7 +39,6 @@ console = Console()
39
39
 
40
40
  # Register subcommands
41
41
  app.add_typer(auth_cmd.app, name="auth", help="Manage API key authentication")
42
- app.add_typer(init_cmd.app, name="init", help="Initialize project resources")
43
42
  app.add_typer(jobs_cmd.app, name="jobs", help="Manage background jobs")
44
43
  app.add_typer(run_cmd.app, name="run", help="Run computational biology tools")
45
44
  app.add_typer(tools_cmd.app, name="tools", help="List tools and view their parameters")
@@ -67,7 +66,7 @@ def main(
67
66
 
68
67
  Run computational biology tools from the command line with your AminoAnalytica API key.
69
68
 
70
- Claude Code: Run 'amina init claude-skills' then '/amina-init' to get started.
69
+ AI agents: Run 'npx skills add AminoAnalytica/amina-skills --all' then '/amina-init' to get started.
71
70
  """
72
71
  if version:
73
72
  console.print(f"amina-cli version {__version__}")
@@ -1,9 +0,0 @@
1
- """
2
- CLI command modules.
3
-
4
- Each module defines a Typer sub-application for a command group.
5
- """
6
-
7
- from amina_cli.commands import auth_cmd, init_cmd, jobs_cmd, run_cmd, tools_cmd
8
-
9
- __all__ = ["auth_cmd", "init_cmd", "jobs_cmd", "run_cmd", "tools_cmd"]
@@ -1,96 +0,0 @@
1
- """Initialize Claude Code skills for Amina."""
2
-
3
- import io
4
- import zipfile
5
- from pathlib import Path
6
-
7
- import httpx
8
- import typer
9
- from rich.console import Console
10
- from rich.panel import Panel
11
-
12
- app = typer.Typer(no_args_is_help=True)
13
- console = Console()
14
-
15
- SKILLS_REPO = "AminoAnalytica/amina-skills"
16
- SKILLS_BRANCH = "main"
17
- GITHUB_ZIPBALL_URL = f"https://github.com/{SKILLS_REPO}/archive/refs/heads/{SKILLS_BRANCH}.zip"
18
-
19
-
20
- @app.command("claude-skills")
21
- def init_claude_skills():
22
- """Download and install Claude Code skills for Amina.
23
-
24
- Installs skills to .claude/skills/ in the current directory,
25
- enabling Claude Code to assist with protein engineering tasks.
26
-
27
- Always updates to the latest skills from the repository.
28
- """
29
- skills_dir = Path.cwd() / ".claude" / "skills"
30
-
31
- console.print("[bold]Downloading Amina skills for Claude Code...[/bold]\n")
32
-
33
- try:
34
- # Download zipball from GitHub
35
- with console.status("[dim]Fetching from GitHub...[/dim]"):
36
- response = httpx.get(GITHUB_ZIPBALL_URL, follow_redirects=True, timeout=60)
37
- response.raise_for_status()
38
-
39
- # Extract skills
40
- with console.status("[dim]Extracting skills...[/dim]"):
41
- skills_dir.mkdir(parents=True, exist_ok=True)
42
-
43
- with zipfile.ZipFile(io.BytesIO(response.content)) as zf:
44
- # Find the claude-skills/ directory in the archive
45
- # Archive structure: amina-skills-main/claude-skills/...
46
- prefix = None
47
- for name in zf.namelist():
48
- if "/claude-skills/" in name:
49
- prefix = name.split("/claude-skills/")[0] + "/claude-skills/"
50
- break
51
-
52
- if not prefix:
53
- console.print("[red]Error: Could not find skills in archive[/red]")
54
- raise typer.Exit(1)
55
-
56
- # Extract each skill
57
- skill_names = set()
58
- for name in zf.namelist():
59
- if name.startswith(prefix) and name != prefix:
60
- # Get relative path within skills/
61
- rel_path = name[len(prefix) :]
62
- if rel_path:
63
- skill_name = rel_path.split("/")[0]
64
- skill_names.add(skill_name)
65
-
66
- # Extract file
67
- target_path = skills_dir / rel_path
68
- if name.endswith("/"):
69
- target_path.mkdir(parents=True, exist_ok=True)
70
- else:
71
- target_path.parent.mkdir(parents=True, exist_ok=True)
72
- target_path.write_bytes(zf.read(name))
73
-
74
- # Print success
75
- console.print("[green]Installed skills:[/green]")
76
- for skill in sorted(skill_names):
77
- if skill: # Skip empty strings
78
- console.print(f" [dim]•[/dim] {skill}")
79
-
80
- console.print(
81
- Panel(
82
- "Run [bold]claude[/bold] from this directory to use Amina skills.",
83
- title="Done",
84
- border_style="green",
85
- )
86
- )
87
-
88
- except httpx.HTTPError as e:
89
- console.print(
90
- Panel(
91
- f"[red]Failed to download skills:[/red] {e}\n\nCheck your internet connection and try again.",
92
- title="Error",
93
- border_style="red",
94
- )
95
- )
96
- raise typer.Exit(1)
File without changes
File without changes
File without changes