@oh-my-pi/pi-catalog 18.3.4 → 18.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.ts CHANGED
@@ -43,7 +43,7 @@ export type ModelKind = (typeof MODEL_KINDS)[number];
43
43
  export const KIND_API_KINDS = ["image", "tts", "stt", "embedding", "rerank", "video"] as const;
44
44
  export type KindApiKind = (typeof KIND_API_KINDS)[number];
45
45
  /** Grounding transport available to chat models selected by the web role. */
46
- export type WebSearchGrounding = "gemini" | "anthropic" | "codex" | "xai" | "openrouter";
46
+ export type WebSearchGrounding = "gemini" | "anthropic" | "codex" | "xai" | "openrouter" | "openai";
47
47
  /** Non-chat runner protocols accepted by catalog seeds, outside the chat dispatch union. */
48
48
  export const RUNNER_APIS = [
49
49
  "local-inference",
@@ -1153,6 +1153,13 @@ export interface TimeBasedCost {
1153
1153
  effectiveRates?: readonly EffectiveTokenCost[];
1154
1154
  }
1155
1155
 
1156
+ /**
1157
+ * Best-effort prompt-cache entry lifetime in seconds for each retention tier a
1158
+ * request can ask for. A missing tier means the lifetime is unknown; consumers
1159
+ * must not schedule cache warming against unknown lifetimes.
1160
+ */
1161
+ export type ModelPromptCache = Partial<Record<"short" | "long", number>>;
1162
+
1156
1163
  /** Base token rates plus optional long-context and time-based pricing. */
1157
1164
  export interface ModelCost extends TokenCost {
1158
1165
  longContext?: LongContextTokenCost;
@@ -1291,6 +1298,14 @@ export interface Model<TApi extends Api = Api> {
1291
1298
  */
1292
1299
  accountAccess?: Readonly<Record<string, ModelAccountAccess>>;
1293
1300
  cost: ModelCost;
1301
+ /**
1302
+ * Prompt-cache entry lifetime per retention tier, in seconds. Populated only
1303
+ * for providers whose cache-expiry and replay behavior has been validated
1304
+ * for cache warming (direct Anthropic: 5m / 1h). A missing entry means the
1305
+ * provider's cache behavior is unknown — such models are never warmed.
1306
+ * Custom models and provider overrides opt in via models.yml `promptCache`.
1307
+ */
1308
+ promptCache?: ModelPromptCache;
1294
1309
  /** Premium Copilot requests charged per user-initiated request (defaults to 1). */
1295
1310
  premiumMultiplier?: number;
1296
1311
  contextWindow: number | null;