pig-claude-bridge 0.5.0 → 0.6.0

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/README.md CHANGED
@@ -30,9 +30,9 @@ Use `/model` to select any Claude model in the catalog, e.g. `claude-bridge/clau
30
30
 
31
31
  Behind the scenes, PiG's tools are bridged to Claude Code but everything works like normal in PiG. Bash commands get Claude Code's 120-second default timeout since PiG's bash has none. Skills are forwarded to Claude Code's system prompt, and steering mid-turn reaches Claude at the next tool boundary.
32
32
 
33
- The model list is a static table generated from the Anthropic catalog of `@earendil-works/pi-ai` 1.2.0 (`scripts/dev/gen-catalog.mjs`) and registered when the extension loads; it does not follow later catalog updates. Dated snapshot ids are not shown. See [docs/compatibility.md](docs/compatibility.md) (D5).
33
+ The model list is a static table generated from the Anthropic catalog of `@earendil-works/pi-ai` 1.5.0 (`scripts/dev/gen-catalog.mjs`) and registered when the extension loads; it does not follow later catalog updates. Models Claude Code ships before pi-ai does (currently Fable 5.2) are listed by hand in `internal/models/pending.go` until a regenerated catalog carries them. Dated snapshot ids are not shown. See [docs/compatibility.md](docs/compatibility.md) (D5).
34
34
 
35
- **1M context:** Fable 5/5.1, Opus 5.5/5/4.8/4.7, and Sonnet 5.5/5 get 1M context. Opus 4.6 gets 1M on Max, Ultra, Team (Standard and Premium seats) and Enterprise plans or with Extra Usage, and Sonnet 4.6 only with Extra Usage ([Claude Code docs](https://code.claude.com/docs/en/model-config#extended-context)): the extension detects the plan by itself (see `provider.plan` in [Configuration](#configuration)); set `provider.longContextExtraUsage` for Extra Usage.
35
+ **1M context:** Fable 5/5.1/5.2, Opus 5.5/5/4.8/4.7, and Sonnet 5.5/5 get 1M context. Opus 4.6 gets 1M on Max, Ultra, Team (Standard and Premium seats) and Enterprise plans or with Extra Usage, and Sonnet 4.6 only with Extra Usage ([Claude Code docs](https://code.claude.com/docs/en/model-config#extended-context)): the extension detects the plan by itself (see `provider.plan` in [Configuration](#configuration)); set `provider.longContextExtraUsage` for Extra Usage.
36
36
 
37
37
  **Fast mode:** `/claude-fast` turns Claude Code's fast mode on or off for the rest of the session (`/claude-fast on`, `/claude-fast off`, or no argument to toggle); set `provider.fastMode` to `true` to start every session with it on. It takes effect from the next turn, on models that have fast mode (Opus 5.5, for example); other models ignore it. On subscription plans fast mode is billed to usage credits, not to the plan's limits, and on Team and Enterprise an Owner has to enable it for the organization first ([Claude Code docs](https://code.claude.com/docs/en/fast-mode)). While it is on, the footer shows `fast` (see [Footer status](#footer-status)).
38
38
 
package/UPSTREAM.md CHANGED
@@ -12,7 +12,7 @@ This extension is a Go port of [pi-claude-bridge](https://github.com/elidickinso
12
12
  | Claude Code | 2.1.310 (`ccproto.MinVersion`) |
13
13
  | PiG SDK | `github.com/MichaelKinsy/PiG/extensions/sdk` v0.7.0 (PiG 0.7.0); the [signatures](docs/reference/pig-sdk-signatures-v0.5.3.md) recorded at v0.5.3 still match every symbol the bridge uses |
14
14
  | `@modelcontextprotocol/sdk` | 1.29.0, only as the reference for the JSON-RPC responses the in-process MCP server must produce |
15
- | `@earendil-works/pi-ai` | 1.2.0, source of the generated model catalog |
15
+ | `@earendil-works/pi-ai` | 1.5.0, source of the generated model catalog |
16
16
  | `golang.org/x/text` | v0.43.0, for NFC normalisation of project paths |
17
17
 
18
18
  ## File map
@@ -68,8 +68,9 @@ Paths are relative to `extensions/pig-claude-bridge/`. TypeScript paths are `src
68
68
  | `internal/convert/transcript.go` | `transcript.ts` | |
69
69
  | `internal/mcptools/schema.go` | `mcp-server.ts` (root-schema flattening) | |
70
70
  | `internal/mcptools/server.go` | `mcp-server.ts`; `@modelcontextprotocol/sdk` 1.29.0 for response shapes | |
71
- | `internal/models/catalog_gen.go` | new (Go-only), generated by `scripts/dev/gen-catalog.mjs` from `@earendil-works/pi-ai` 1.2.0 | static catalog (D5); do not edit |
71
+ | `internal/models/catalog_gen.go` | new (Go-only), generated by `scripts/dev/gen-catalog.mjs` from `@earendil-works/pi-ai` 1.5.0 | static catalog (D5); do not edit |
72
72
  | `internal/models/models.go` | `models.ts` | |
73
+ | `internal/models/pending.go` | new (Go-only) | models Claude Code ships before pi-ai's catalog does (Fable 5.2); an entry leaves when a regenerated catalog carries it |
73
74
  | `internal/promptcapture/capture.go` | `prompt-capture.ts` | |
74
75
 
75
76
  ## Bump procedure
@@ -14,7 +14,7 @@ What this port is pinned to, and every place where it differs from the TypeScrip
14
14
  | cc-session-io | 0.4.1 (MIT), the subset the bridge imports (`addToolResultBlocks` as `AddToolResultBlocks`; the 0.4.1 timestamp stamping is approximated by the port's monotonic clock) |
15
15
  | Pi compatibility surface | pi 1.4.0 (the Pi that PiG 0.5.3 tracks) |
16
16
  | `@modelcontextprotocol/sdk` | 1.31.0 (the TypeScript declares `^1.29.0`), only as the reference for the JSON-RPC responses the in-process MCP server produces |
17
- | Model catalog | `@earendil-works/pi-ai` 1.2.0, generated into `internal/models/catalog_gen.go` |
17
+ | Model catalog | `@earendil-works/pi-ai` 1.5.0, generated into `internal/models/catalog_gen.go` |
18
18
 
19
19
  ## Principal differences (D1 to D7)
20
20
 
@@ -26,7 +26,7 @@ What this port is pinned to, and every place where it differs from the TypeScrip
26
26
 
27
27
  **D4. Subagent mark sponsorship is not ported.** TypeScript: `sponsorMarkRebuildForSession` lets a subagent hand a rebuild mark to the module instance that serves the session, because several module instances share one process. Port: PiG subagents are separate processes, so there is nothing to sponsor; the function has no counterpart. The matching test, `unit-session-cwd` "shares the store across module instances", has no Go counterpart either.
28
28
 
29
- **D5. The model list is a static catalog registered in the factory.** TypeScript: the list comes from pi-ai's Anthropic catalog at run time and follows package updates. Port: `scripts/dev/gen-catalog.mjs` generates `internal/models/catalog_gen.go` from `@earendil-works/pi-ai` 1.2.0 and the provider is registered when the extension loads, with nothing registered at `session_start`. Reason: spike S1 showed that registration from `session_start` is too late for `defaultProvider`/`defaultModel` resolution at startup, so the catalog must be known in the factory. A new Claude model needs a regenerated catalog (see [../UPSTREAM.md](../UPSTREAM.md)).
29
+ **D5. The model list is a static catalog registered in the factory.** TypeScript: the list comes from pi-ai's Anthropic catalog at run time and follows package updates. Port: `scripts/dev/gen-catalog.mjs` generates `internal/models/catalog_gen.go` from `@earendil-works/pi-ai` 1.5.0 and the provider is registered when the extension loads, with nothing registered at `session_start`. Reason: spike S1 showed that registration from `session_start` is too late for `defaultProvider`/`defaultModel` resolution at startup, so the catalog must be known in the factory. A new Claude model needs a regenerated catalog (see [../UPSTREAM.md](../UPSTREAM.md)).
30
30
 
31
31
  **D6. AskClaude renders as lines.** TypeScript: `askclaude-ui.ts` builds pi-tui components (colour, "(to expand)" affordance). Port: PiG's `ToolDefinition.RenderCall`/`RenderResult` return lines, so the action summary is plain lines without colour, with "… (to expand)" as text, and truncation counts runes.
32
32
 
@@ -1,4 +1,4 @@
1
- // Code generated by scripts/dev/gen-catalog.mjs from @earendil-works/pi-ai 1.2.0; DO NOT EDIT.
1
+ // Code generated by scripts/dev/gen-catalog.mjs from @earendil-works/pi-ai 1.5.0; DO NOT EDIT.
2
2
 
3
3
  package models
4
4
 
@@ -8,20 +8,20 @@ import (
8
8
  )
9
9
 
10
10
  // CatalogSource names the pi-ai release the embedded catalog was generated from.
11
- const CatalogSource = "@earendil-works/pi-ai@1.2.0"
11
+ const CatalogSource = "@earendil-works/pi-ai@1.5.0"
12
12
 
13
13
  const catalogJSON = `[
14
14
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"allowedFallbackModels":[{"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"model":"claude-opus-4-8","provider":"anthropic"},{"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"model":"claude-opus-5","provider":"anthropic"}],"forceAdaptiveThinking":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true},"contextWindow":1000000,"cost":{"cacheRead":1,"cacheWrite":12.5,"input":10,"output":50},"id":"claude-fable-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Fable 5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","off":null,"xhigh":"xhigh"},"type":"chat"},
15
15
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true},"contextWindow":1000000,"cost":{"cacheRead":0.25,"cacheWrite":12.5,"input":10,"output":50},"id":"claude-fable-5-1","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Fable 5.1","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","off":null,"xhigh":"xhigh"},"type":"chat"},
16
16
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.1,"cacheWrite":1.25,"input":1,"output":5},"id":"claude-haiku-4-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Haiku 4.5 (latest)","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
17
17
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.1,"cacheWrite":1.25,"input":1,"output":5},"id":"claude-haiku-4-5-20251001","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Haiku 4.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
18
- {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.01,"cacheWrite":0.125,"input":0.1,"output":0.5,"tiers":[{"cacheRead":0.05,"cacheWrite":0.625,"input":0.5,"inputTokensAbove":100000,"output":2.5}]},"id":"claude-haiku-5-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Haiku 5.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"high":"high","low":"low","max":"max","medium":"medium","minimal":null,"off":null,"xhigh":"xhigh"},"type":"chat"},
18
+ {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.01,"cacheWrite":0.125,"input":0.1,"output":0.5,"tiers":[{"cacheRead":0.05,"cacheWrite":0.625,"input":0.5,"inputTokensAbove":100000,"output":2.5}]},"id":"claude-haiku-5-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Haiku 5.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"high":"high","low":"low","max":"max","medium":"medium","minimal":null,"xhigh":"xhigh"},"type":"chat"},
19
19
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-4-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Opus 4.5 (latest)","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
20
20
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-4-5-20251101","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Opus 4.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
21
21
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true},"contextWindow":1000000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-4-6","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 4.6","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max"},"type":"chat"},
22
22
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-4-7","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 4.7","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","xhigh":"xhigh"},"type":"chat"},
23
23
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-4-8","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 4.8","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","xhigh":"xhigh"},"type":"chat"},
24
- {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","off":null,"xhigh":"xhigh"},"type":"chat"},
24
+ {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.5,"cacheWrite":6.25,"input":5,"output":25},"id":"claude-opus-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","xhigh":"xhigh"},"type":"chat"},
25
25
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true,"supportsTemperature":false},"contextWindow":1000000,"cost":{"cacheRead":0.2,"cacheWrite":5,"input":4,"output":20},"id":"claude-opus-5-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Opus 5.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"high":"high","low":"low","max":"max","medium":"medium","minimal":null,"off":null,"xhigh":"xhigh"},"type":"chat"},
26
26
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.3,"cacheWrite":3.75,"input":3,"output":15},"id":"claude-sonnet-4-5","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Sonnet 4.5 (latest)","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
27
27
  {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"supportsStrictTools":true},"contextWindow":200000,"cost":{"cacheRead":0.3,"cacheWrite":3.75,"input":3,"output":15},"id":"claude-sonnet-4-5-20250929","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":100,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":64000,"name":"Claude Sonnet 4.5","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"type":"chat"},
@@ -42,6 +42,7 @@ func Catalog() []map[string]any {
42
42
  if err := json.Unmarshal([]byte(catalogJSON), &catalogEntries); err != nil {
43
43
  panic("models: embedded catalog is invalid: " + err.Error())
44
44
  }
45
+ catalogEntries = append(catalogEntries, pendingEntries()...)
45
46
  })
46
47
  return catalogEntries
47
48
  }
@@ -44,8 +44,10 @@ var familyOrder = []string{"fable", "opus", "sonnet", "haiku"}
44
44
  // exception unrelated to long context: fable-5 is not included with a Pro
45
45
  // account without Extra Usage.
46
46
  var measuredOneM = map[string]bool{
47
- "claude-fable-5": true,
48
- "claude-fable-5-1": true,
47
+ "claude-fable-5": true,
48
+ "claude-fable-5-1": true,
49
+ "claude-fable-5-2": true, // native_1m in Claude Code 2.1.321's catalog
50
+
49
51
  "claude-opus-5-5": true,
50
52
  "claude-opus-5": true,
51
53
  "claude-opus-4-8": true,
@@ -0,0 +1,21 @@
1
+ package models
2
+
3
+ import "encoding/json"
4
+
5
+ // pendingJSON holds models Claude Code ships before pi-ai's catalog does, in
6
+ // pi-ai's entry shape. Drop an entry once a regenerated catalog carries its id;
7
+ // TestPendingEntriesLeaveWithTheCatalog fails until that happens.
8
+ //
9
+ // claude-fable-5-2: Claude Code 2.1.321's catalog (1M native context, 128K
10
+ // output, pricing tier_8_40_cache_read_0_20), capabilities copied from 5.1.
11
+ const pendingJSON = `[
12
+ {"api":"anthropic-messages","baseUrl":"https://api.anthropic.com","compat":{"forceAdaptiveThinking":true,"supportsMidConvoEffort":true,"supportsMidConvoSystemMessages":true,"supportsMidConvoToolChanges":true,"supportsStrictTools":true},"contextWindow":1000000,"cost":{"cacheRead":0.2,"cacheWrite":10,"input":8,"output":40},"id":"claude-fable-5-2","input":["text","image"],"inputLimits":{"images":{"maxPerRequest":600,"resize":{"jpegQuality":80,"maxBytes":4718592,"maxHeight":2000,"maxWidth":2000}},"maxRequestBytes":33554432},"maxTokens":128000,"name":"Claude Fable 5.2","promptCache":{"long":3600,"short":300},"provider":"anthropic","reasoning":true,"thinkingLevelMap":{"max":"max","off":null,"xhigh":"xhigh"},"type":"chat"}
13
+ ]`
14
+
15
+ func pendingEntries() []map[string]any {
16
+ var entries []map[string]any
17
+ if err := json.Unmarshal([]byte(pendingJSON), &entries); err != nil {
18
+ panic("models: pending catalog is invalid: " + err.Error())
19
+ }
20
+ return entries
21
+ }
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"pig-claude-bridge","version":"0.5.0","description":"Claude Code in PiG: Claude models as a provider and an AskClaude tool. A native Go port of pi-claude-bridge.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/balcsida/pig-claude-bridge.git"},"files":["extensions","!**/*_test.go","!**/testdata","docs/compatibility.md","UPSTREAM.md","THIRD_PARTY_NOTICES.md","SECURITY.md"],"keywords":["pig-package"],"pi":{"extensions":["extensions/pig-claude-bridge"]}}
1
+ {"name":"pig-claude-bridge","version":"0.6.0","description":"Claude Code in PiG: Claude models as a provider and an AskClaude tool. A native Go port of pi-claude-bridge.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/balcsida/pig-claude-bridge.git"},"files":["extensions","!**/*_test.go","!**/testdata","docs/compatibility.md","UPSTREAM.md","THIRD_PARTY_NOTICES.md","SECURITY.md"],"keywords":["pig-package"],"pi":{"extensions":["extensions/pig-claude-bridge"]}}