agents
v0.1.48
KickSide user agents — agent/tool registries, user-created agent components, the agent resolver, runner, and capability library, with a user-facing CRUD API.
Run
wippy run kickside/agentsKickSide Agents
User agents for KickSide: the agent and tool registries, user-created agent components, the agent resolver and runner, a capability library, and a user-facing CRUD API.
What it provides
- Registries —
kickside.agents:agentsandkickside.agents:toolscontract definitions (default bindings inkickside.agents.registry). - User agents as components — the
user_agentbinding implementskickside.contract:component(status) andkickside.contract:deletable(cleanup); agents are stored as rows in the sharedcomponentstable viakickside.component. - Resolver —
agent_resolverbindswippy.agent:resolver(default) so the runtime can load any user or built-in agent. - Runner — projection worker that runs an agent turn and writes the reply
back through
kickside.connection. - Traits — reusable agent capabilities (thread read/write, connection read/manage/admin, workspace, workflow runner, agent switch, attachments, inbox request, navigation, rich artifacts).
- Registry discovery — built-in agent entries can be contributed by the app
or any installed module via
agent.gen1registry entries. - HTTP API —
/user-agentsCRUD +/agents/{list,traits,tools}discovery.
Requirements
api_router(requiredns.requirement) — a firewalled router the endpoints attach to. The handlers do no auth of their own.kickside.component— persistence and access-control service for user-owned agent components.
Boundary
Permission-agnostic: all authorization is enforced by the host router (token_auth + endpoint_firewall) and by the component service. Optional modules publish their own traits and tools instead of becoming dependencies of Agents. Automation is one such optional consumer: Agents exposes agent discovery and invocation contracts without depending on the Automation package.
Creation defaults
The registry create path and POST /api/v1/user-agents use the agents-owned
DEFAULT_MODEL when model is omitted. An explicit model overrides it.
New user agents receive the public Artifacts and File Manager capabilities
by default. Existing agents keep their persisted capability list, and an explicit
empty traits array is an opt-out. File Manager reads attached uploads through
ViewFiles, using the attachment ID and the caller's upload permissions. It reads
converted document text before answering questions about an attachment.
Artifacts owns the CreateArtifact member tool and
its live, bounded component/page catalog; the tool is not independently public
because direct assignment would omit that catalog and can duplicate the same
LLM tool alias.
CreateArtifact accepts exactly one server-validated content mode: bounded
Markdown/HTML text that declares its content_type, an approved auto-registered component tag, or an approved
registry component/page reference. Component props must match the live declared
schema; undeclared, event-handler, and host-control attributes are rejected.
Text is rendered only by a Web Host release that sanitizes artifact markup to a
fixed non-executable subset. The tool emits the session contract's canonical
display_type (standalone or inline); artifact type remains the
session-owned content kind. The session runtime owns persistence and inline-token
generation.
Session owns standalone artifact persistence and chat messages, while Web Host owns rendering. Use current compatible releases and verify the result in chat or the gallery under the intended user. A successful creation response does not prove the client renders an artifact.