-
Notifications
You must be signed in to change notification settings - Fork 18
Feature: add first-party generated plugin system for mounted CLIs #62
Description
We found it useful in a fork to add a shared generated-plugin runtime for mounted APIs, so different generated integrations can plug into incur without adding integration-specific branching throughout Cli, Mcp, schema inspection, and skill generation.
Two concrete examples we built on top of that shared path were:
- ConnectRPC
- GraphQL
The main benefit was having generated integrations mount through shared operation metadata instead of each one needing bespoke framework wiring.
One caveat: the fork implementation is not the ideal packaging shape. Because these integrations live in the main package, they also pull integration-specific dependencies into core. A cleaner upstream design would likely keep the shared generated-plugin runtime in incur and move integration-specific implementations/dependencies into separate first-party packages.
There is also a small standalone example repo exercising the approach with both ConnectRPC and GraphQL:
Reference commits:
- shared generated plugin runtime + ConnectRPC: 0xBigBoss/incur@a4b2785
- GraphQL generated plugin: 0xBigBoss/incur@b9536b2
Would you be open to a first-party generated plugin system in incur, with the long-term goal of keeping integration-specific dependencies outside the core package?