feat: add psagentai agent with deployment and configuration
Initial project setup including the main agent script, configuration files, profile JSON state, systemd service unit, startup script, deployment documentation, and Python dependencies. Includes .env, venv/, and __pycache__/ which should likely be excluded via .gitignore to avoid committing secrets and artifacts.
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
from pip._vendor.packaging.version import Version
|
||||
from pip._vendor.packaging.version import parse as parse_version
|
||||
|
||||
from pip._internal.models.link import Link
|
||||
|
||||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class InstallationCandidate:
|
||||
"""Represents a potential "candidate" for installation."""
|
||||
|
||||
name: str
|
||||
version: Version
|
||||
link: Link
|
||||
locked: bool
|
||||
|
||||
def __init__(
|
||||
self, name: str, version: str, link: Link, locked: bool = False
|
||||
) -> None:
|
||||
object.__setattr__(self, "name", name)
|
||||
object.__setattr__(self, "version", parse_version(version))
|
||||
object.__setattr__(self, "link", link)
|
||||
object.__setattr__(self, "locked", locked)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f"{self.name!r} candidate (version {self.version} at {self.link})"
|
||||
Reference in New Issue
Block a user