@oh-my-pi/pi-ai 14.9.2 → 14.9.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/CHANGELOG.md CHANGED
@@ -2,6 +2,11 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [14.9.3] - 2026-05-10
6
+
7
+ ### Fixed
8
+ - Anthropic provider now retries generic transient connect failures (`unable to connect`, `fetch failed`, `connection error`, etc.) by falling back to the shared `isRetryableError` allowlist after the provider-specific patterns. Previously these errors bypassed the hand-curated regex in `isProviderRetryableError` and aborted the stream on the first attempt, while the OpenAI SDK and Codex `fetchWithRetry` paths already handled them.
9
+
5
10
  ## [14.9.0] - 2026-05-10
6
11
 
7
12
  ### Added
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/pi-ai",
4
- "version": "14.9.2",
4
+ "version": "14.9.5",
5
5
  "description": "Unified LLM API with automatic model discovery and provider configuration",
6
6
  "homepage": "https://github.com/can1357/oh-my-pi",
7
7
  "author": "Can Boluk",
@@ -46,8 +46,8 @@
46
46
  "@aws-sdk/credential-provider-node": "^3.972.39",
47
47
  "@bufbuild/protobuf": "^2.12.0",
48
48
  "@google/genai": "^1.52.0",
49
- "@oh-my-pi/pi-natives": "14.9.2",
50
- "@oh-my-pi/pi-utils": "14.9.2",
49
+ "@oh-my-pi/pi-natives": "14.9.5",
50
+ "@oh-my-pi/pi-utils": "14.9.5",
51
51
  "@sinclair/typebox": "^0.34.49",
52
52
  "@smithy/node-http-handler": "^4.6.1",
53
53
  "ajv": "^8.20.0",
@@ -319,7 +319,7 @@ function applyGeneratedModelPolicy(model: ApiModel<Api>): void {
319
319
  (model.provider === "minimax-code" || model.provider === "minimax-code-cn")
320
320
  ) {
321
321
  model.compat = {
322
- ...model.compat,
322
+ ...(model.compat ?? {}),
323
323
  supportsStore: false,
324
324
  supportsDeveloperRole: false,
325
325
  supportsReasoningEffort: false,
@@ -327,6 +327,18 @@ function applyGeneratedModelPolicy(model: ApiModel<Api>): void {
327
327
  };
328
328
  delete model.compat.thinkingFormat;
329
329
  }
330
+ if (
331
+ model.api === "openai-completions" &&
332
+ model.provider === "opencode-go" &&
333
+ (model.id === "deepseek-v4-flash" || model.id === "deepseek-v4-pro")
334
+ ) {
335
+ model.compat = {
336
+ ...(model.compat ?? {}),
337
+ supportsToolChoice: false,
338
+ reasoningContentField: "reasoning_content",
339
+ requiresReasoningContentForToolCalls: true,
340
+ };
341
+ }
330
342
  const parsedModel = parseKnownModel(model.id);
331
343
  const applyPatchToolType = inferGeneratedApplyPatchToolType(model, parsedModel);
332
344
  if (applyPatchToolType) {