import { Type } from "@earendil-works/pi-ai"; import { defineExtension } from "@berry/api"; import { providers } from "./types.ts"; import { subscriptionUsage } from "./usage.ts"; export default defineExtension({ name: "subscription", description: "view subscription limits and reset times for Codex, Claude, and OpenCode Go plans", alwaysOn: true, initial: () => null, setup(ext) { const usage = subscriptionUsage({ auth: ext.auth }); ext.handle({ name: "usage", parameters: Type.Object({ provider: Type.Union(providers.map((provider) => Type.Literal(provider))), }), execute: ({ provider }) => usage(provider), }); }, });