AIOSAI d43ff41978 🔧 chore(.claude): add initial claude config, hooks, and settings
- add .claude/.gitignore to exclude local claude files and caches
- add .claude/commands/memo.md with memory update instructions
- add notification, stop, tool_use, and branch_prompt_loader hooks scripts
- add .claude/settings.json configuring permissions and hooks integration
- add .gitattributes for text normalization and binary file handling

✨ feat(src/aipass): introduce multi-agent orchestration framework structure

- add core aipass package with version 2.0.0 and repo link
- add submodules for api, assistant, devpulse, drone, flow, mail, memory, prax, seedgo, skills, templates, trigger
- provide base module docstrings describing purpose and architecture
- add branch template for cortex branch with scaffolded files and verification tool
- remove legacy cortex module and seedgo standalone package to consolidate into aipass

✨ feat(src/aipass/drone): simplify drone module interface and routing system

- refactor drone module to expose main routing and resolution functionality
- remove CLI, registry, executor, resolver, router, modules, discovery, exceptions, and handlers files
- replace with minimal drone package exposing core routing and resolution API

✨ feat(src/aipass/templates/cortex/branch_template): add default branch template files

- add .backup_ignore.json to exclude large and unnecessary files from backups
- add .migrations.json for template structural migrations
- add .registry_ignore.json to exclude internal template files during updates
- add .template_registry.json tracking template files and directories with placeholders
- add default trinity memory files: local.json, observations.json, passport.json
- add DASHBOARD.local.json with autogenerated branch status
- add README.md describing branch purpose, architecture, commands, and integrations
- add apps/ package and branch.py entry point with auto-discovery routing
- add empty handlers/, modules/, plugins/ packages
- add artifacts/ with a birth certificate JSON
- add docs/, flow.local.md, logs/, pytest.ini, tests/ with conftest.py
- add tools/verify_branch.py for verifying branch consistency against template

🔧 chore(src/aipass/): remove deprecated packages and modules

- delete legacy cortex, paths, seedgo packages and their modules/plugins
- remove seedgo CLI and plugins from repo to focus on aipass core

✨ feat(src/aipass/templates/flow): add placeholder for planning and workflow management

✨ feat(src/aipass/templates/memory): add placeholder for memory scaffolding

✨ feat(src/aipass/templates/system): add placeholder for system files

✨ feat(src/aipass/trigger): add error detection and auto-dispatch module

- scaffold trigger package with handlers, modules, plugins for error matching and escalation

✨ feat(src/aipass/mail): add inter-branch messaging module with handlers, modules, plugins

✨ feat(src/aipass/memory): add unified memory system with trinity, agents, and bank submodules

✨ feat(src/aipass/prax): add monitoring and observability framework with handlers, modules, plugins

✨ feat(src/aipass/seedgo): add code standards framework skeleton

✨ feat(src/aipass/skills): add user-built add-ons infrastructure module

✨ feat(src/aipass/templates): add central template storage for plans, memory, and configs
2026-03-05 02:21:30 -08:00
2026-02-27 08:04:44 -08:00
2026-02-27 08:04:44 -08:00

AIPass Framework

Orchestration framework for autonomous AI agent ecosystems.

What is this?

AIPass provides routing, workflow management, inter-agent messaging, and monitoring for autonomous AI agent ecosystems. It coordinates multiple agents working together across branches, plans, and tasks. Trinity Pattern serves as the memory layer.

Install

pip install aipass

Note: This package is not yet published to PyPI. This repo is in early development.

Features

Routing & Discovery (v1.0)

Symbolic addressing for multi-agent systems. Instead of hard-coded paths, agents use @branch symbolic names that resolve to actual locations at runtime.

Quick Start:

from aipass.routing import initialize_registry, register_branch, resolve_branch

# Initialize registry (first time only)
initialize_registry()

# Register your agents
register_branch("my_agent", "/path/to/agents/my_agent", branch_type="agent")
register_branch("researcher", "/path/to/agents/researcher", branch_type="agent")
register_branch("monitor", "/path/to/services/monitor", branch_type="service")

# Resolve symbolic names to paths
agent_path = resolve_branch("@my_agent")
# Returns: "/path/to/agents/my_agent"

# Works with or without @ prefix
researcher_path = resolve_branch("researcher")
# Returns: "/path/to/agents/researcher"

Discovery:

from aipass.routing import list_branches, branch_exists, get_branch_info

# Check if a branch exists
if branch_exists("@my_agent"):
    print("Agent found!")

# List all registered branches
all_branches = list_branches()
# Returns: ["@my_agent", "@researcher", "@monitor"]

# List branches by type
agents_only = list_branches(branch_type="agent")
# Returns: ["@my_agent", "@researcher"]

# Get full branch metadata
info = get_branch_info("@my_agent")
# Returns: {
#   "name": "my_agent",
#   "path": "/path/to/agents/my_agent",
#   "type": "agent",
#   "status": "active",
#   "created": "2026-03-01T10:00:00Z"
# }

Configuration:

By default, the registry is stored at ~/.aipass/BRANCH_REGISTRY.json. You can customize this:

from aipass.routing import set_registry_path

# Set custom registry location
set_registry_path("/custom/path/to/registry.json")

Or via environment variable:

export AIPASS_REGISTRY_PATH=/custom/path/to/registry.json

Integration with Trinity Pattern:

from trinity_pattern import Agent
from aipass.routing import resolve_branch

# Before: hard-coded paths
agent = Agent(directory="/home/user/agents/my_agent")

# After: symbolic addressing
agent_dir = resolve_branch("@my_agent")
agent = Agent(directory=agent_dir)

Error Handling:

from aipass.routing import resolve_branch, BranchNotFoundError

try:
    path = resolve_branch("@nonexistent")
except BranchNotFoundError as e:
    print(f"Branch not found: {e}")

Seed Go

Linters enforce language rules. Seed Go enforces yours.

A portable, plugin-based code standards checker. Define your team's conventions as simple Python functions — function length limits, docstring coverage, file structure rules — and run them like any other linter. Zero external dependencies. No API keys. Deterministic results.

Quick Start

# Install
pip install aipass[seedgo]

# Initialize config in your project
seedgo init

# Run all enabled plugins
seedgo check

# List available plugins
seedgo list

Write a Plugin in 60 Seconds

# .seedgo/plugins/my_plugin.py
import re
from seedgo import CheckResult, CheckItem, Severity

PLUGIN_NAME = "no-bare-except"
PLUGIN_DESCRIPTION = "Flag bare except: clauses."
FILE_TYPES = ["*.py"]

_BARE_EXCEPT = re.compile(r"^\s*except\s*:\s*(#.*)?$")

def check(file_path: str, config: dict | None = None) -> CheckResult:
    lines = open(file_path).readlines()
    violations = [
        CheckItem(
            name="bare-except",
            passed=False,
            message=f"Bare except: at line {i+1}",
            severity=Severity.WARNING,
            line=i + 1,
            fix_hint="Use `except Exception:` instead.",
        )
        for i, line in enumerate(lines)
        if _BARE_EXCEPT.match(line)
    ]
    return CheckResult(
        plugin=PLUGIN_NAME,
        passed=not violations,
        checks=violations or [CheckItem(name="bare-except", passed=True,
                                        message="No bare excepts found.",
                                        severity=Severity.WARNING)],
        file_path=file_path,
    )

Starter Plugins (5 Built-in)

Plugin What it checks Linter equivalent?
no-bare-except Bare except: clauses ruff E722 (but with fix hints)
type-hints-required Missing type annotations mypy (but project-configurable)
docstring-coverage Missing module/function docstrings pydocstyle (but simpler)
function-length Functions exceeding N lines No linter equivalent
file-structure Forbidden files in root/dirs No linter equivalent

Two of the five check things no standard linter can enforce.

vs. Pre-Commit

Seed Go is complementary to pre-commit, not a replacement. Run it as a hook:

# .pre-commit-config.yaml
- repo: local
  hooks:
    - id: seedgo
      name: Seed Go standards check
      entry: seedgo check
      language: system
      pass_filenames: false

Or standalone in CI:

seedgo check --format github  # GitHub Actions annotations
seedgo check --format json    # machine-readable output

Honest About What It Is

  • Deterministic checks — same input always produces same output
  • No AI in the validation loop — no API keys, no network calls
  • Plugin contract is stable: check(file_path, config) -> CheckResult
  • Scores are weighted: errors block (weight 1.0), warnings degrade (0.5), info is reported only (0.0). Threshold is configurable (default: 75/100).

License

MIT

S
Description
Persistent Agent Workspace — AI agents that remember, collaborate, and never start from zero.
Readme MIT
17 MiB
Languages
Python 99.2%
Shell 0.6%
HTML 0.2%