Skip to content

Expose plugin authoring internals as public API #46

@elijahr

Description

@elijahr

Problem

Writing a custom bigfoot plugin requires importing from private modules:

from bigfoot._base_plugin import BasePlugin
from bigfoot._timeline import Interaction
from bigfoot._context import _GuardPassThrough, _get_verifier_or_raise
from bigfoot._registry import GUARD_ELIGIBLE_PREFIXES

Some related types are already public (StrictVerifier, UnmockedInteractionError, GuardedCallError are all importable from bigfoot directly), but the core plugin authoring types are not.

Requested public exports

Everything a plugin author needs should be importable from bigfoot (or bigfoot.plugins):

Type Current path Used for
BasePlugin bigfoot._base_plugin Subclassing to create plugins
Interaction bigfoot._timeline Type hint for matches(), format_interaction(), etc.
_GuardPassThrough bigfoot._context Catching guard passthrough in interceptors
_get_verifier_or_raise bigfoot._context Getting active verifier in interceptors
GUARD_ELIGIBLE_PREFIXES bigfoot._registry Registering custom source_id prefixes for guard mode
Timeline bigfoot._timeline Creating bare verifiers in test fixtures

Context

We built custom bigfoot plugins for claude-agent-sdk and openai-agents SDK. The plugins work great but rely on private imports that could break between releases.

A bigfoot.authoring or simply exporting from bigfoot would make plugin development a first-class use case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions