Skip to content

Provider Plugin Contract

Ivan Seredkin edited this page May 23, 2026 · 2 revisions

Provider Plugin Contract

Stub. Tracked as a "still to write" page on the Home hub.

This page will spec the Provider trait — budi's single extension point for adding a new AI coding agent:

  • The four methodsdiscover_files(), parse_file(path, content, offset), watch_roots(), and the optional sync_direct(...) for agents with a real Usage API (currently Cursor)
  • Live tailer vs. one-shot import — both consume the same Provider impl through the same pipeline (IdentityEnricher → GitEnricher → ToolEnricher → FileEnricher → CostEnricher → TagEnricher)
  • Attribution contracttimestamp (RFC3339 UTC), session_id, provider key, git_branch, ticket_id, activity, file_path and what each must satisfy
  • Provider registration — wiring a new impl into the daemon tailer and the import command
  • Worked example — adding a hypothetical "Windsurf" provider, end to end

Current source of truth

How to contribute

If you're adding a new provider, drafting this page is welcome work. Open an issue with the proposed scope; the goal is one wiki page that lets someone unfamiliar with the codebase ship a new provider without reading every existing one.

Clone this wiki locally