memory/local. It adds three things:
A campaign selects it in
piloop.toml, as it selects any provider:
Core
Core is the mechanism that every plugin builds on:- The SQLite database, and its event feed: every change appends a typed event in the same transaction.
- The daemon’s loop, which runs the consumers on new events.
- The plugin host, which finds, checks and loads plugins.
- The API, the CLI and the interfaces that plugins implement.
- Leases, which hand jobs to workers.
campaigns, agent_sessions, events, comments, secrets, tokens, limits, migrations,
and the tables of leases and workers. The database schema lists each table under the plugin
that owns it.
The research model is a plugin
Ideas, runs, candidates, evaluations and the head are the campaign typeoptimization. Its tables are
ideas, idea_links, runs, candidates, evaluators, evaluations, measurements and techniques. Every
campaign is of this type: it is what the rest of these docs describe.
Capabilities
A capability is one kind of decision or service, such as the verdict, the stop condition or where jobs run. Each capability has at least one built-in provider, which is a plugin of piloop itself. Your configuration selects a provider by its name. A plugin package adds more providers.What a plugin adds
A plugin is a Python package that you install next to piloop. It declares what it adds with entry points in itspyproject.toml:
A provider that the daemon opens also adds, through its
contribution(), consumers (jobs of the daemon’s loop
that wake on events) and routes of the daemon’s server.
piloop declares its own capabilities, providers, tables and commands in the same groups. So a plugin can do anything
that a built-in provider does. Write a plugin shows how.