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 a reproducible install:

python -m pip install aaax==0.2.1

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.1.tar.gz (1.2 MB 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.1-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for aaax-0.2.1.tar.gz
Algorithm Hash digest
SHA256 28972bc4a160a126ba6c0dff4e016315045a84a745fcb9e8d8cf2eef5744cbcf
MD5 24bb1d6b89ccf746552a4762e7596214
BLAKE2b-256 4aefd2298dd8353e0a35d648d8fd23f49b82768cd58deaa6936676b3837fe8cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aaax-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9036dc0928b3af619d8e27dcfe57670facc3438af3da17f58d8c522a4e9f076e
MD5 ba27a604f4dadb66cdf21742faea4cfb
BLAKE2b-256 6204b25f9175bb13fee7ccd11858bda031ad87f6f3c00927a711f644731764dd

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