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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions