SuperPi.Harness.Defaults (super_pi v0.1.0)

Copy Markdown View Source

Builds the pi.agent defaults of a harness declared with use SuperPi.Harness.

Each setting resolves in one order: the caller's opts, then the harness declaration, then the application environment, then a fallback.

SettingoptsApplication environmentFallback
model:modelconfig :super_pi, :default_model"gemini-3-flash-preview"
effort:effort"medium"
executionMode:mode"accept-edits"
workspacePaths:workspace_paths:workspace_paths (:knowledge_paths for workspace: :knowledge_paths)working directory
systemSections:system_sectionsthe declared prompt

The tool loadout is :all, {:only, names} or {:except, names}, resolved against SuperPi.Tools.active_llm_tools/0.

Summary

Functions

Builds the pi.agent map for module (a module that used SuperPi.Harness).

Machine-readable summary of module, derived from its declaration. "plugins" lists plugin ids in load order; "tools" is "all", %{"only" => names} or %{"except" => names}; "workspace" is the workspace kind; "network" is false when the workspace turns off the :net capability.

Model for a harness that does not name one. Set it with config :super_pi, :default_model.

Options for SuperPi.Plugins.JevRouter from config :super_pi, :planning_model and :implementation_model. A model that is not configured is left out, so the router keeps its own fallback.

Resolves a tool loadout against the tool catalog.

Functions

build(module, opts \\ [])

@spec build(module(), keyword()) :: map()

Builds the pi.agent map for module (a module that used SuperPi.Harness).

capabilities(module)

@spec capabilities(module()) :: map()

Machine-readable summary of module, derived from its declaration. "plugins" lists plugin ids in load order; "tools" is "all", %{"only" => names} or %{"except" => names}; "workspace" is the workspace kind; "network" is false when the workspace turns off the :net capability.

default_model()

@spec default_model() :: String.t()

Model for a harness that does not name one. Set it with config :super_pi, :default_model.

model_route()

@spec model_route() :: keyword()

Options for SuperPi.Plugins.JevRouter from config :super_pi, :planning_model and :implementation_model. A model that is not configured is left out, so the router keeps its own fallback.

resolve_tools(arg1)

@spec resolve_tools(:all | {:only, [String.t()]} | {:except, [String.t()]}) :: [map()]

Resolves a tool loadout against the tool catalog.