package plugins

// Deferred extension points (deliberately NOT in v1 — the "Management MVP").
// The contract and manager are shaped so these can be added without a redesign:
//
//   - Invocation API: the Plugin.Invoke method already exists; a
//     POST /api/admin/plugins/{name}/action endpoint + a normalized request/
//     response envelope would expose it. Add a mapper layer so core logic never
//     depends on a provider's schema.
//   - Resilience: wrap plugin calls with retry/backoff + a circuit breaker, and
//     record per-plugin latency/error/quota metrics for the panel.
//   - Per-tenant credentials: today config is a single global blob per plugin.
//     A (pluginName, orgID/userID) → config store would let users connect their
//     own third-party accounts.
//   - Audit logging: record which plugin accessed what and when.
//   - Sandboxing: the "external" plugin kind is the isolation story — run less
//     trusted plugins as separate processes/containers behind the HTTP contract.
//   - Hot-adding builtin Go code without a rebuild is intentionally unsupported
//     (Go .so plugins are Linux-only and toolchain-fragile); use the external
//     HTTP kind to add plugins at runtime instead.
