Skip to main content

PSI shell for inspecting, mounting, and serving application packages.

Project description

AAAX

AAAX is the PSI shell for package-shaped agent systems.

Use it to inspect a PsiHub package, mount its tactics and channels, bind local handlers, open a small FastAPI surface, and hand that surface to a human, script, or coding agent. The feel is intentionally shell-like: name the package, see the resources, run one command, and get a callable system.

$ aaax inspect packages/analyst-pack
analysis-pack: Demo analyst package.
package analysis-pack psi://demo/analysis-pack
tactic echo psi://demo/analysis-pack/tactics/echo
channel events psi://demo/analysis-pack/channels/events

$ aaax serve packages/analyst-pack --port 8400
Uvicorn running on http://127.0.0.1:8400

AAAX does not replace LLLM, SSSN, PsiHub, Codex, Claude Code, schedulers, sandboxes, or deployment platforms. It is the thin shell where those pieces are named, mounted, served, and handed off.

Install

python -m pip install aaax

For local PSI composition:

python -m pip install "aaax[integrations]" lllm-core sssn psihub

Mount A PsiHub Package

If a folder contains psi.toml, AAAX can serve it directly:

aaax serve packages/analyst-pack --port 8400

AAAX reads the manifest and mounts:

  • package metadata and card hints;
  • schemas, tactics, services, runs, and config;
  • SSSN channels and snapshots;
  • docs, examples, and assets.

Python tactic entrypoints become /tactics/{name}/run. Channels are backed by a local SSSN store and exposed through /channels/{name}/events. Services that point at one tactic are invokable as resources.

curl -X POST http://127.0.0.1:8400/tactics/finance_baseline/run \
  -H 'content-type: application/json' \
  -d '{"input": {"records": []}, "context": {"request": "demo"}}'

Append and query channel events:

curl -X POST http://127.0.0.1:8400/channels/events/events \
  -H 'content-type: application/json' \
  -d '{"input": {"kind": "record", "payload": {"text": "hello"}}}'

curl http://127.0.0.1:8400/channels/events/events?limit=10

Write A Shell Script

For larger systems, write a strategy.py. A strategy is the shell script: it mounts packages, assigns local names, and optionally defines /run.

from aaax import Strategy


def build_strategy() -> Strategy:
    shell = Strategy(
        "analyst-shell",
        description="Mount source channels and analyst tactics.",
    )
    shell.use_package("packages/source-channels", prefix="sources")
    shell.use_package("packages/analyst-tactics", prefix="analysts")

    @shell.runner
    def run(input_value, *, context=None):
        return {
            "input": input_value,
            "resources": [resource.ref for resource in shell.resources],
            "context": context or {},
        }

    return shell
aaax serve strategy.py --port 8400

Surface

Useful endpoints:

  • GET /health
  • GET /strategy
  • GET /resources
  • GET /packages
  • GET /tactics
  • POST /tactics/{name}/run
  • GET /channels
  • POST /channels/{name}/events
  • GET /channels/{name}/events
  • POST /run
  • POST /resources/{name}/invoke

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aaax-0.2.0.tar.gz (20.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aaax-0.2.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file aaax-0.2.0.tar.gz.

File metadata

  • Download URL: aaax-0.2.0.tar.gz
  • Upload date:
  • Size: 20.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aaax-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e9dcdb3caac7a34fad29a6718fc2dc7b4d062c607761eeafb4b482331fcfc118
MD5 96fece030df20592e58da4f29db15f97
BLAKE2b-256 de20341ec34e872db440b7d25331ac2d0b9c40b9f6742d80d34484d75841ed78

See more details on using hashes here.

File details

Details for the file aaax-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: aaax-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for aaax-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f4a7507a9b4e4def55e5e85a263cc854efb52548c47c8e27fef2c505b9eabe42
MD5 4d097b4353a9a0819711d2a6e5f6540b
BLAKE2b-256 0cf9c76c8591348200591fee53e62d3e2992fd0fd0f4a9db4acf4cc887c818ff

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page