@agimon-ai/po-domain

Domain selection, resource staging, and MCP scoping for Po sessions.

Packages

Package details

extensionskill

Install @agimon-ai/po-domain from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@agimon-ai/po-domain
Package
@agimon-ai/po-domain
Version
0.0.0-alpha.40
Published
Oct 21, 2026
Downloads
3,876/mo · 3,876/wk
Author
agiflow-ai
License
BUSL-1.1
Types
extension, skill
Size
444.9 KB
Dependencies
6 dependencies · 2 peers

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@agimon-ai/po-domain

Domain selection for Po sessions.

Domains are one of the four axes of a Po selection, alongside the major mode, the profile, and the minor modes. Unlike a major mode, domains compose: a session selects a set of them, and the union of what they contribute is what the model sees.

# .po/domains.yaml
plugins:
  entries:
    frontend: plugins/frontend
    infra: plugins/infra
domains:
  development:
    description: Application code, tests, and review tooling.
    plugins: [frontend]
    mcp:
      servers: [code-intel]
  platform:
    description: Deployment, infrastructure, and incident tooling.
    plugins: [infra]
aliases:
  everything: [development, platform]

What it registers

Surface Behavior
/domains prints the selection, or switches to name[,name...]

When the @agimon-ai/po-help minor mode is active, this package contributes the help-how-to-domain skill. It provides package-owned guidance for plugin catalogs, domain filters, aliases, defaults, shared skills, and MCP scopes in domains.yaml. The contribution is registered through the session's po/help Cordis service and is withdrawn with this package's plugin fiber.

What a switch stages

A domain switch is not just a config write, which is why it does not live in @agimon-ai/po-config/selectionSwitch with the major-mode and profile switches. Applying a selection:

  • materializes any remote (Git or npm) plugins the selected domains name into a content-addressed cache guarded by an install marker;
  • discovers the exact SKILL.md files behind the selection, through a manifest cache keyed by worktree so a second session does not rescan the tree;
  • adapts each plugin's Claude-authored agent definitions into the form Pi loads, and stages them privately (0600) beside a dispatcher agent;
  • merges the repository and legacy plugin .mcp.json layers, and validates root mcp.json for schema-gated Agent Plugins v1 (including plugin-relative commands, data directories, and transport normalization);
  • applies the selected domains' MCP allowlists and rewrites the proxy's upstream list into a private per-run config; and
  • atomically stores an immutable MCP projection in harness state. Config publishes that snapshot through the session Cordis registry for Po MCP to consume; Domain never reaches into the live MCP runtime.

An allowlist only takes effect once every selected domain declares one. Mixing a scoped domain with a domain that has not opted in leaves the session unfiltered, so an unmigrated domain cannot silently lose its tools.

Installation

Po depends on this package and activates it as fixed host core, so a Po install already has it. It is not selectable from .po/modes.yaml; it reads .po/domains.yaml.

License

Business Source License 1.1: free for personal use, organisations under USD 1M revenue, non-profits and education. See LICENSE and https://agimon.ai/licensing.