@oh-my-pi/pi-catalog 17.1.0 → 17.1.1

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/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [17.1.1] - 2026-07-24
6
+
7
+ ### Added
8
+
9
+ - Added catalog metadata for models that support native computer-use requests.
10
+ - Added resolved Bedrock Converse prompt-cache compatibility limits, including explicit 5-minute checkpoint support for bundled Nova Lite, Micro, Pro, Premier, and Nova 2 Lite models plus their documented in-region, regional, and global IDs, and model-specific 1-hour Claude retention.
11
+ - Added resolved Bedrock Converse prompt-cache compatibility limits, including explicit 5-minute checkpoint support for bundled Nova Lite, Micro, Pro, and Premier models plus Nova Premier's documented in-region model ID, and model-specific 1-hour Claude retention.
12
+ - Added the native Meta Model API provider and Muse Spark 1.1 with Responses API reasoning replay, image input, and the full supported reasoning-effort ladder ([#4941](https://github.com/can1357/oh-my-pi/issues/4941)).
13
+ - Added an opt-in Vercel AI Gateway automatic prompt-cache compatibility option alongside provider routing preferences.
14
+ - Added Vercel AI Gateway Responses cache-anchor and cache-lifetime compatibility controls.
15
+ - Added resolved OpenAI GPT-5.6 prompt-cache breakpoint capability metadata, keeping older models and compatible endpoints opt-in only.
16
+ - Added the native `alibaba-token-plan` provider with QwenCloud Token Plan Individual discovery and a curated chat-model fallback catalog ([#6151](https://github.com/can1357/oh-my-pi/issues/6151)).
17
+
5
18
  ## [17.1.0] - 2026-07-24
6
19
 
7
20
  ### Added
@@ -676,6 +676,8 @@ export interface Model<TApi extends Api = Api> {
676
676
  * reports that native tool calling is unsupported.
677
677
  */
678
678
  supportsTools?: boolean;
679
+ /** Whether this model accepts the GA OpenAI Responses `{ type: "computer" }` native tool. */
680
+ supportsComputerUse?: boolean;
679
681
  /** GitLab Duo Workflow root namespace selected during catalog discovery. */
680
682
  gitlabDuoWorkflowRootNamespaceId?: string;
681
683
  /** Cursor `max_mode` request flag returned by `GetUsableModels` for premium models that require max mode. */
@@ -22,6 +22,8 @@ export declare const OPENAI_HEADERS: {
22
22
  readonly SUBAGENT: "x-openai-subagent";
23
23
  /** Responses Lite transport marker (codex-rs `add_responses_lite_header`); value is always `"true"`. */
24
24
  readonly RESPONSES_LITE: "x-openai-internal-codex-responses-lite";
25
+ /** DeviceCheck attestation envelope (codex-rs `X_OAI_ATTESTATION_HEADER`); sent on ChatGPT-OAuth requests. */
26
+ readonly ATTESTATION: "x-oai-attestation";
25
27
  };
26
28
  export declare const OPENAI_HEADER_VALUES: {
27
29
  readonly BETA_RESPONSES: "responses=experimental";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/pi-catalog",
4
- "version": "17.1.0",
4
+ "version": "17.1.1",
5
5
  "description": "Model catalog for omp: bundled model database, provider discovery descriptors, model identity, classification, and equivalence",
6
6
  "homepage": "https://omp.sh",
7
7
  "author": "Can Boluk",
@@ -34,12 +34,12 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@bufbuild/protobuf": "^2.12.1",
37
- "@oh-my-pi/pi-utils": "17.1.0",
37
+ "@oh-my-pi/pi-utils": "17.1.1",
38
38
  "arktype": "2.2.3",
39
39
  "zod": "^4"
40
40
  },
41
41
  "devDependencies": {
42
- "@oh-my-pi/pi-ai": "17.1.0",
42
+ "@oh-my-pi/pi-ai": "17.1.1",
43
43
  "@types/bun": "^1.3.14"
44
44
  },
45
45
  "engines": {
package/src/build.ts CHANGED
@@ -18,12 +18,30 @@ import { resolveModelThinking } from "./model-thinking";
18
18
  import type { Api, CompatOf, Model, ModelSpec } from "./types";
19
19
  import { cleanModelName } from "./utils";
20
20
 
21
+ const OPENAI_GA_COMPUTER_MODEL_RE = /^gpt-5\.(?:[4-9]|[1-9]\d)(?:[.-]|$)/i;
22
+
23
+ function supportsOpenAIGAComputerUse(spec: ModelSpec<Api>): boolean {
24
+ if (spec.supportsComputerUse !== undefined) return spec.supportsComputerUse;
25
+ if (
26
+ spec.api !== "openai-responses" &&
27
+ spec.api !== "openai-codex-responses" &&
28
+ spec.api !== "azure-openai-responses"
29
+ ) {
30
+ return false;
31
+ }
32
+ if (spec.api !== "azure-openai-responses" && spec.provider !== "openai" && spec.provider !== "openai-codex") {
33
+ return false;
34
+ }
35
+ return OPENAI_GA_COMPUTER_MODEL_RE.test(spec.requestModelId ?? spec.id);
36
+ }
37
+
21
38
  export function buildModel<TApi extends Api>(spec: ModelSpec<TApi>): Model<TApi> {
22
39
  const compat = buildCompat(spec) as CompatOf<TApi>;
23
40
  return {
24
41
  ...spec,
25
42
  name: cleanModelName(spec.name),
26
43
  thinking: resolveModelThinking(spec, compat),
44
+ supportsComputerUse: supportsOpenAIGAComputerUse(spec),
27
45
  compat,
28
46
  compatConfig: spec.compat,
29
47
  } as Model<TApi>;
package/src/types.ts CHANGED
@@ -814,6 +814,8 @@ export interface Model<TApi extends Api = Api> {
814
814
  * reports that native tool calling is unsupported.
815
815
  */
816
816
  supportsTools?: boolean;
817
+ /** Whether this model accepts the GA OpenAI Responses `{ type: "computer" }` native tool. */
818
+ supportsComputerUse?: boolean;
817
819
  /** GitLab Duo Workflow root namespace selected during catalog discovery. */
818
820
  gitlabDuoWorkflowRootNamespaceId?: string;
819
821
  /** Cursor `max_mode` request flag returned by `GetUsableModels` for premium models that require max mode. */
package/src/wire/codex.ts CHANGED
@@ -25,6 +25,8 @@ export const OPENAI_HEADERS = {
25
25
  SUBAGENT: "x-openai-subagent",
26
26
  /** Responses Lite transport marker (codex-rs `add_responses_lite_header`); value is always `"true"`. */
27
27
  RESPONSES_LITE: "x-openai-internal-codex-responses-lite",
28
+ /** DeviceCheck attestation envelope (codex-rs `X_OAI_ATTESTATION_HEADER`); sent on ChatGPT-OAuth requests. */
29
+ ATTESTATION: "x-oai-attestation",
28
30
  } as const;
29
31
 
30
32
  export const OPENAI_HEADER_VALUES = {