@tormentalabs/claude-code-wire-compat 0.1.0-rc.17 → 0.2.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.
Files changed (80) hide show
  1. package/CHANGELOG.md +101 -2
  2. package/README.md +67 -2
  3. package/dist/betas.d.ts +37 -0
  4. package/dist/betas.d.ts.map +1 -1
  5. package/dist/betas.js +55 -23
  6. package/dist/betas.js.map +1 -1
  7. package/dist/build-request.d.ts +11 -0
  8. package/dist/build-request.d.ts.map +1 -1
  9. package/dist/build-request.js +133 -11
  10. package/dist/build-request.js.map +1 -1
  11. package/dist/contracts.d.ts +53 -0
  12. package/dist/contracts.d.ts.map +1 -1
  13. package/dist/contracts.js.map +1 -1
  14. package/dist/fingerprint.d.ts +29 -2
  15. package/dist/fingerprint.d.ts.map +1 -1
  16. package/dist/fingerprint.js +60 -7
  17. package/dist/fingerprint.js.map +1 -1
  18. package/dist/headers.d.ts.map +1 -1
  19. package/dist/headers.js +12 -4
  20. package/dist/headers.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/model-capabilities.d.ts +31 -3
  26. package/dist/model-capabilities.d.ts.map +1 -1
  27. package/dist/model-capabilities.js +145 -12
  28. package/dist/model-capabilities.js.map +1 -1
  29. package/dist/models.d.ts.map +1 -1
  30. package/dist/models.js +8 -4
  31. package/dist/models.js.map +1 -1
  32. package/dist/profile-behaviors.d.ts +61 -0
  33. package/dist/profile-behaviors.d.ts.map +1 -0
  34. package/dist/profile-behaviors.js +53 -0
  35. package/dist/profile-behaviors.js.map +1 -0
  36. package/dist/profiles/beta-registry-2.1.233.d.ts +140 -0
  37. package/dist/profiles/beta-registry-2.1.233.d.ts.map +1 -0
  38. package/dist/profiles/beta-registry-2.1.233.js +183 -0
  39. package/dist/profiles/beta-registry-2.1.233.js.map +1 -0
  40. package/dist/profiles/claude-code-2.1.195.d.ts.map +1 -1
  41. package/dist/profiles/claude-code-2.1.195.js +14 -0
  42. package/dist/profiles/claude-code-2.1.195.js.map +1 -1
  43. package/dist/profiles/claude-code-2.1.233.d.ts +3 -0
  44. package/dist/profiles/claude-code-2.1.233.d.ts.map +1 -0
  45. package/dist/profiles/claude-code-2.1.233.js +235 -0
  46. package/dist/profiles/claude-code-2.1.233.js.map +1 -0
  47. package/dist/redaction.d.ts.map +1 -1
  48. package/dist/redaction.js +14 -1
  49. package/dist/redaction.js.map +1 -1
  50. package/dist/request-body.d.ts.map +1 -1
  51. package/dist/request-body.js +12 -10
  52. package/dist/request-body.js.map +1 -1
  53. package/dist/thinking.d.ts +33 -7
  54. package/dist/thinking.d.ts.map +1 -1
  55. package/dist/thinking.js +105 -36
  56. package/dist/thinking.js.map +1 -1
  57. package/package.json +10 -2
  58. package/src/anti-verbosity.ts +219 -0
  59. package/src/beta-registry.ts +140 -0
  60. package/src/betas.ts +302 -0
  61. package/src/build-request.ts +1799 -0
  62. package/src/contracts.ts +1286 -0
  63. package/src/count-tokens.ts +84 -0
  64. package/src/fingerprint.ts +155 -0
  65. package/src/headers.ts +448 -0
  66. package/src/index.ts +63 -0
  67. package/src/metadata.ts +331 -0
  68. package/src/model-capabilities.ts +453 -0
  69. package/src/model-identity.ts +45 -0
  70. package/src/models.ts +50 -0
  71. package/src/profile-behaviors.ts +114 -0
  72. package/src/profiles/beta-registry-2.1.233.ts +200 -0
  73. package/src/profiles/claude-code-2.1.195.ts +168 -0
  74. package/src/profiles/claude-code-2.1.233.ts +240 -0
  75. package/src/redaction.ts +536 -0
  76. package/src/request-body.ts +1931 -0
  77. package/src/sha256.ts +114 -0
  78. package/src/system-prompt.ts +222 -0
  79. package/src/thinking.ts +346 -0
  80. package/src/unicode.ts +24 -0
@@ -0,0 +1,183 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ /*
3
+ * `deepFreeze` is duplicated from `src/beta-registry.ts` rather than imported.
4
+ * A shared helper module would make the two registries import-coupled for four
5
+ * lines of code, and the 2.1.195 registry already carries its own copy; keeping
6
+ * each registry a leaf keeps a version bump from rippling.
7
+ */
8
+ function deepFreeze(value) {
9
+ if (value !== null && typeof value === "object") {
10
+ for (const key of Reflect.ownKeys(value)) {
11
+ deepFreeze(Reflect.get(value, key));
12
+ }
13
+ Object.freeze(value);
14
+ }
15
+ return value;
16
+ }
17
+ /**
18
+ * Genuine-client beta registry as of 2.1.233, upstream `Fb_` (byte offset
19
+ * 287505865).
20
+ *
21
+ * KEY ORDER IS LOAD-BEARING. Upstream neither sorts this object nor keeps a
22
+ * canonical list elsewhere, and `src/betas.ts` emits headers in the order its
23
+ * push sites fire, not in registry order -- but the registry order is the
24
+ * transcription of record and the only thing that makes a diff against a future
25
+ * build meaningful. Do not reorder for tidiness, alphabetisation, or grouping.
26
+ */
27
+ export const BETA_REGISTRY_2_1_233 = deepFreeze({
28
+ CLAUDE_CODE: { featureKey: "claude_code", header: "claude-code-20250219" },
29
+ OAUTH_AUTH: { featureKey: "oauth_auth", header: "oauth-2025-04-20" },
30
+ INTERLEAVED_THINKING: {
31
+ featureKey: "interleaved_thinking",
32
+ header: "interleaved-thinking-2025-05-14",
33
+ },
34
+ LONG_CONTEXT: { featureKey: "long_context", header: "context-1m-2025-08-07" },
35
+ CONTEXT_MANAGEMENT: {
36
+ featureKey: "context_management",
37
+ header: "context-management-2025-06-27",
38
+ },
39
+ STRUCTURED_OUTPUTS: {
40
+ featureKey: "structured_outputs",
41
+ header: "structured-outputs-2025-12-15",
42
+ },
43
+ WEB_SEARCH: { featureKey: "web_search", header: "web-search-2025-03-05" },
44
+ ADVANCED_TOOL_USE: {
45
+ featureKey: "tool_search",
46
+ header: "advanced-tool-use-2025-11-20",
47
+ },
48
+ TOOL_SEARCH: {
49
+ featureKey: "tool_search",
50
+ header: "tool-search-tool-2025-10-19",
51
+ },
52
+ EFFORT: { featureKey: "effort", header: "effort-2025-11-24" },
53
+ TASK_BUDGETS: {
54
+ featureKey: "task_budgets",
55
+ header: "task-budgets-2026-03-13",
56
+ },
57
+ PROMPT_CACHING_SCOPE: {
58
+ featureKey: "prompt_caching_scope",
59
+ header: "prompt-caching-scope-2026-01-05",
60
+ },
61
+ PROMPT_CACHING_EVICT: {
62
+ featureKey: "prompt_caching_evict",
63
+ header: "prompt-caching-evict-2026-05-12",
64
+ },
65
+ EXTENDED_CACHE_TTL: {
66
+ featureKey: "extended_cache_ttl",
67
+ header: "extended-cache-ttl-2025-04-11",
68
+ },
69
+ SPEED: { featureKey: "speed", header: "fast-mode-2026-02-01" },
70
+ REDACT_THINKING: {
71
+ featureKey: "redact_thinking",
72
+ header: "redact-thinking-2026-02-12",
73
+ },
74
+ THINKING_TOKEN_COUNT: {
75
+ featureKey: "thinking_token_count",
76
+ header: "thinking-token-count-2026-05-13",
77
+ },
78
+ AFK_MODE: { featureKey: "afk_mode", header: "afk-mode-2026-01-31" },
79
+ ADVISOR_TOOL: {
80
+ featureKey: "advisor_tool",
81
+ header: "advisor-tool-2026-03-01",
82
+ },
83
+ CACHE_DIAGNOSIS: {
84
+ featureKey: "cache_diagnosis",
85
+ header: "cache-diagnosis-2026-04-07",
86
+ },
87
+ CONTEXT_HINT: {
88
+ featureKey: "context_hint",
89
+ header: "context-hint-2026-04-09",
90
+ },
91
+ MCP_SERVERS: {
92
+ featureKey: "mcp_servers",
93
+ header: "mcp-servers-2025-12-04",
94
+ },
95
+ FILES_API: { featureKey: "files_api", header: "files-api-2025-04-14" },
96
+ ENVIRONMENTS: {
97
+ featureKey: "environments",
98
+ header: "environments-2025-11-01",
99
+ },
100
+ CCR_BYOC: { featureKey: "ccr_byoc", header: "ccr-byoc-2025-07-29" },
101
+ MID_CONVERSATION_SYSTEM: {
102
+ featureKey: "mid_conversation_system",
103
+ header: "mid-conversation-system-2026-04-07",
104
+ },
105
+ PER_MESSAGE_EFFORT: {
106
+ featureKey: "per_message_effort",
107
+ header: "per-turn-control-2026-07-01",
108
+ },
109
+ SERVER_SIDE_FALLBACK: {
110
+ featureKey: "server_side_fallback",
111
+ header: "server-side-fallback-2026-06-01",
112
+ },
113
+ SERVER_SIDE_FALLBACK_CATEGORY: {
114
+ featureKey: "server_side_fallback_category",
115
+ header: "server-side-fallback-2026-07-01",
116
+ },
117
+ FALLBACK_CREDIT: {
118
+ featureKey: "fallback_credit",
119
+ header: "fallback-credit-2026-06-01",
120
+ },
121
+ /*
122
+ * NARRATION_SUMMARIES BELONGS HERE AND IS DELIBERATELY ABSENT.
123
+ *
124
+ * 2.1.195 carried `NARRATION_SUMMARIES` (`narration_summaries` /
125
+ * `summarize-connector-text-2026-03-13`, upstream `RPt`) at exactly this
126
+ * position, between `FALLBACK_CREDIT` and `AUTO_MODE_CLASSIFIER`. Upstream
127
+ * removed it in 2.1.222+: the frozen array in the 2.1.233 build has a null
128
+ * slot here and the header string appears nowhere in the binary.
129
+ *
130
+ * This is a REMOVAL, not a transcription gap. Re-adding the entry would
131
+ * reintroduce a header the genuine client no longer sends and would break the
132
+ * wire-compatibility claim on the first request. `src/betas.ts` treats the
133
+ * narration push site as conditional on the entry's presence precisely so
134
+ * this absence needs no special-casing anywhere else. Do not "fix" it.
135
+ */
136
+ AUTO_MODE_CLASSIFIER: {
137
+ featureKey: "auto_mode_classifier",
138
+ header: "auto-mode-classifier-2026-07-16",
139
+ },
140
+ });
141
+ /*
142
+ * Third-party filtering as of 2.1.233, upstream `X5p` (consumed by `J4u`).
143
+ *
144
+ * Delta against the 2.1.195 set (`Pvi`): `mid-conversation-system-2026-04-07`
145
+ * was ADDED; nothing was removed. Eleven headers, extracted from the 2.1.233
146
+ * build rather than assumed to have carried over.
147
+ */
148
+ export const THIRD_PARTY_ALLOWED_BETAS_2_1_233 = Object.freeze(new Set([
149
+ BETA_REGISTRY_2_1_233.CLAUDE_CODE.header,
150
+ BETA_REGISTRY_2_1_233.INTERLEAVED_THINKING.header,
151
+ BETA_REGISTRY_2_1_233.LONG_CONTEXT.header,
152
+ BETA_REGISTRY_2_1_233.CONTEXT_MANAGEMENT.header,
153
+ BETA_REGISTRY_2_1_233.STRUCTURED_OUTPUTS.header,
154
+ BETA_REGISTRY_2_1_233.WEB_SEARCH.header,
155
+ BETA_REGISTRY_2_1_233.EFFORT.header,
156
+ BETA_REGISTRY_2_1_233.TOOL_SEARCH.header,
157
+ BETA_REGISTRY_2_1_233.AFK_MODE.header,
158
+ BETA_REGISTRY_2_1_233.FALLBACK_CREDIT.header,
159
+ BETA_REGISTRY_2_1_233.MID_CONVERSATION_SYSTEM.header,
160
+ ]));
161
+ /*
162
+ * Provider filtering as of 2.1.233, upstream `pts` (consumed by `y1s`).
163
+ * Extracted, not assumed: the set is byte-identical to the 2.1.195 one (`S2r`).
164
+ *
165
+ * Static reference data with no call site in `src/`, exactly like its 2.1.195
166
+ * counterpart. See `test/governance/provider-scope.test.ts`.
167
+ */
168
+ export const BEDROCK_UNSUPPORTED_BETAS_2_1_233 = Object.freeze(new Set([
169
+ BETA_REGISTRY_2_1_233.INTERLEAVED_THINKING.header,
170
+ BETA_REGISTRY_2_1_233.LONG_CONTEXT.header,
171
+ BETA_REGISTRY_2_1_233.TOOL_SEARCH.header,
172
+ ]));
173
+ /*
174
+ * Count-tokens selection as of 2.1.233, upstream `fts` (consumed by `_1s`).
175
+ * Extracted, not assumed: identical to the 2.1.195 set (`E2r`).
176
+ */
177
+ export const COUNT_TOKENS_BETAS_2_1_233 = Object.freeze(new Set([
178
+ BETA_REGISTRY_2_1_233.CLAUDE_CODE.header,
179
+ BETA_REGISTRY_2_1_233.INTERLEAVED_THINKING.header,
180
+ BETA_REGISTRY_2_1_233.CONTEXT_MANAGEMENT.header,
181
+ BETA_REGISTRY_2_1_233.OAUTH_AUTH.header,
182
+ ]));
183
+ //# sourceMappingURL=beta-registry-2.1.233.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beta-registry-2.1.233.js","sourceRoot":"","sources":["../../src/profiles/beta-registry-2.1.233.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-2.1.195.d.ts","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.195.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAajE,eAAO,MAAM,2BAA2B,EAAE,yBA0ItC,CAAC"}
1
+ {"version":3,"file":"claude-code-2.1.195.d.ts","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.195.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAajE,eAAO,MAAM,2BAA2B,EAAE,yBAwJtC,CAAC"}
@@ -45,32 +45,39 @@ export const CLAUDE_CODE_2_1_195_PROFILE = deepFreeze({
45
45
  "claude-3-5-haiku": {
46
46
  family: "haiku",
47
47
  capabilities: [],
48
+ maxOutputTokens: { default: 8192, upper: 8192 },
48
49
  },
49
50
  "claude-haiku-4-5": {
50
51
  family: "haiku",
51
52
  capabilities: ["context_management"],
53
+ maxOutputTokens: { default: 32000, upper: 64000 },
52
54
  },
53
55
  "claude-3-5-sonnet": {
54
56
  family: "sonnet",
55
57
  capabilities: [],
58
+ maxOutputTokens: { default: 8192, upper: 8192 },
56
59
  },
57
60
  "claude-3-7-sonnet": {
58
61
  family: "sonnet",
59
62
  capabilities: [],
63
+ maxOutputTokens: { default: 32000, upper: 64000 },
60
64
  },
61
65
  "claude-sonnet-4-0": {
62
66
  family: "sonnet",
63
67
  context: { window: 200000, supports1mBeta: true },
64
68
  capabilities: ["context_management"],
69
+ maxOutputTokens: { default: 32000, upper: 64000 },
65
70
  },
66
71
  "claude-sonnet-4-5": {
67
72
  family: "sonnet",
68
73
  context: { window: 200000, supports1mBeta: true },
69
74
  capabilities: ["context_management"],
75
+ maxOutputTokens: { default: 32000, upper: 64000 },
70
76
  },
71
77
  "claude-sonnet-4-6": {
72
78
  family: "sonnet",
73
79
  context: { window: 200000, supports1mBeta: true },
80
+ maxOutputTokens: { default: 32000, upper: 128000 },
74
81
  capabilities: [
75
82
  "effort",
76
83
  "max_effort",
@@ -81,18 +88,22 @@ export const CLAUDE_CODE_2_1_195_PROFILE = deepFreeze({
81
88
  "claude-opus-4-0": {
82
89
  family: "opus",
83
90
  capabilities: ["context_management"],
91
+ maxOutputTokens: { default: 32000, upper: 32000 },
84
92
  },
85
93
  "claude-opus-4-1": {
86
94
  family: "opus",
87
95
  capabilities: ["context_management"],
96
+ maxOutputTokens: { default: 32000, upper: 32000 },
88
97
  },
89
98
  "claude-opus-4-5": {
90
99
  family: "opus",
91
100
  capabilities: ["context_management"],
101
+ maxOutputTokens: { default: 32000, upper: 64000 },
92
102
  },
93
103
  "claude-opus-4-6": {
94
104
  family: "opus",
95
105
  context: { window: 200000, supports1mBeta: true },
106
+ maxOutputTokens: { default: 64000, upper: 128000 },
96
107
  capabilities: [
97
108
  "effort",
98
109
  "max_effort",
@@ -104,6 +115,7 @@ export const CLAUDE_CODE_2_1_195_PROFILE = deepFreeze({
104
115
  "claude-opus-4-7": {
105
116
  family: "opus",
106
117
  context: { window: 1e6, native1m: true, supports1mBeta: true },
118
+ maxOutputTokens: { default: 64000, upper: 128000 },
107
119
  capabilities: [
108
120
  "effort",
109
121
  "max_effort",
@@ -117,6 +129,7 @@ export const CLAUDE_CODE_2_1_195_PROFILE = deepFreeze({
117
129
  "claude-opus-4-8": {
118
130
  family: "opus",
119
131
  context: { window: 1e6, native1m: true, supports1mBeta: true },
132
+ maxOutputTokens: { default: 64000, upper: 128000 },
120
133
  capabilities: [
121
134
  "effort",
122
135
  "max_effort",
@@ -132,6 +145,7 @@ export const CLAUDE_CODE_2_1_195_PROFILE = deepFreeze({
132
145
  "claude-fable-5": {
133
146
  family: "fable",
134
147
  context: { window: 1e6, native1m: true, supports1mBeta: true },
148
+ maxOutputTokens: { default: 64000, upper: 128000 },
135
149
  capabilities: [
136
150
  "effort",
137
151
  "max_effort",
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code-2.1.195.js","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.195.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-code-2.1.195.js","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.195.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ClaudeCodeProtocolProfile } from "../contracts.js";
2
+ export declare const CLAUDE_CODE_2_1_233_PROFILE: ClaudeCodeProtocolProfile;
3
+ //# sourceMappingURL=claude-code-2.1.233.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-2.1.233.d.ts","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.233.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AA+BjE,eAAO,MAAM,2BAA2B,EAAE,yBA8MtC,CAAC"}
@@ -0,0 +1,235 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ import { COUNT_TOKENS_ENDPOINT } from "../count-tokens.js";
3
+ /*
4
+ * Protocol profile for genuine client 2.1.233.
5
+ *
6
+ * Provenance: extracted from the official 2.1.233 win32-x64 binary. The
7
+ * catalogue and every scalar below are transcribed from
8
+ * `docs/protocol/versions/claude-code-2.1.233-analysis.md`, which records the
9
+ * byte offsets they came from.
10
+ *
11
+ * `effort_cost_index` -- the only static-catalogue field added between 2.1.222
12
+ * and 2.1.233 -- is deliberately omitted; the decision is recorded in
13
+ * `docs/source-trace.md`.
14
+ *
15
+ * Context modelling follows 2.1.195 exactly wherever the upstream flags are
16
+ * the same. `supports_1m_suffix` is not modelled, so an entry declaring a
17
+ * 200000 window with nothing but that flag carries no `context` object here,
18
+ * as in the 2.1.195 profile.
19
+ */
20
+ function deepFreeze(value) {
21
+ if (value !== null && typeof value === "object") {
22
+ for (const key of Reflect.ownKeys(value)) {
23
+ deepFreeze(Reflect.get(value, key));
24
+ }
25
+ Object.freeze(value);
26
+ }
27
+ return value;
28
+ }
29
+ export const CLAUDE_CODE_2_1_233_PROFILE = deepFreeze({
30
+ id: "claude-code-2.1.233-sdk-0.112.1",
31
+ cliVersion: "2.1.233",
32
+ sdkVersion: "0.112.1",
33
+ endpoint: "https://api.anthropic.com/v1/messages?beta=true",
34
+ countTokensEndpoint: COUNT_TOKENS_ENDPOINT,
35
+ entrypoint: "cli",
36
+ userAgent: "claude-cli/2.1.233 (external, cli)",
37
+ buildTime: "2026-08-14T17:21:48Z",
38
+ gitSha: "f8d57569aaf350fe25dc4dfa10cad59db8ea4d45",
39
+ attributionHeaderEnabled: true,
40
+ provider: "anthropic",
41
+ anthropicVersion: "2023-06-01",
42
+ contextHintEnabled: false,
43
+ betaPolicy: {
44
+ oauthAuthenticated: true,
45
+ experimentalBetasEnabled: true,
46
+ oneMillionContextEnabled: true,
47
+ interleavedThinkingEnabled: true,
48
+ interactive: true,
49
+ thinkingSummariesShown: false,
50
+ thinkingTokenCountEnabled: true,
51
+ // Inert for this profile: 2.1.233 removed `narration_summaries` from the
52
+ // beta registry, so there is no entry for this flag to gate.
53
+ narrationSummariesEnabled: false,
54
+ structuredOutputsEnabled: false,
55
+ afkModeEnabled: false,
56
+ cacheDiagnosisEnabled: false,
57
+ },
58
+ /**
59
+ * Verbatim genuine-client catalogue, 17 entries in the catalogue's own
60
+ * order. `defaultEffort` is policy exposed as catalogue data; this package
61
+ * must never apply it to a request.
62
+ */
63
+ supportedModels: {
64
+ "claude-3-5-haiku": {
65
+ family: "haiku",
66
+ capabilities: [],
67
+ maxOutputTokens: { default: 8192, upper: 8192 },
68
+ },
69
+ "claude-haiku-4-5": {
70
+ family: "haiku",
71
+ capabilities: ["context_management"],
72
+ maxOutputTokens: { default: 32000, upper: 64000 },
73
+ },
74
+ "claude-3-5-sonnet": {
75
+ family: "sonnet",
76
+ capabilities: [],
77
+ maxOutputTokens: { default: 8192, upper: 8192 },
78
+ },
79
+ "claude-3-7-sonnet": {
80
+ family: "sonnet",
81
+ capabilities: [],
82
+ maxOutputTokens: { default: 32000, upper: 64000 },
83
+ },
84
+ "claude-sonnet-4-0": {
85
+ family: "sonnet",
86
+ context: { window: 200000, supports1mBeta: true },
87
+ capabilities: ["context_management"],
88
+ maxOutputTokens: { default: 32000, upper: 64000 },
89
+ },
90
+ "claude-sonnet-4-5": {
91
+ family: "sonnet",
92
+ context: { window: 200000, supports1mBeta: true },
93
+ capabilities: ["context_management"],
94
+ maxOutputTokens: { default: 32000, upper: 64000 },
95
+ },
96
+ "claude-sonnet-4-6": {
97
+ family: "sonnet",
98
+ context: { window: 200000, supports1mBeta: true },
99
+ maxOutputTokens: { default: 32000, upper: 128000 },
100
+ capabilities: [
101
+ "effort",
102
+ "max_effort",
103
+ "adaptive_thinking",
104
+ "context_management",
105
+ ],
106
+ },
107
+ // New at 2.1.233. The entry also declares `native_1m_3p` for
108
+ // bedrock/vertex/foundry; this package is anthropic-only, so that flag
109
+ // is not modelled.
110
+ "claude-sonnet-5": {
111
+ family: "sonnet",
112
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
113
+ maxOutputTokens: { default: 64000, upper: 128000 },
114
+ capabilities: [
115
+ "effort",
116
+ "max_effort",
117
+ "xhigh_effort",
118
+ "adaptive_thinking",
119
+ "mid_conv_system",
120
+ "context_management",
121
+ ],
122
+ defaultEffort: "high",
123
+ },
124
+ "claude-opus-4-0": {
125
+ family: "opus",
126
+ capabilities: ["context_management"],
127
+ maxOutputTokens: { default: 32000, upper: 32000 },
128
+ },
129
+ "claude-opus-4-1": {
130
+ family: "opus",
131
+ capabilities: ["context_management"],
132
+ maxOutputTokens: { default: 32000, upper: 32000 },
133
+ },
134
+ // No `effort`, and no exception restoring it. The C1 exception in
135
+ // `model-capabilities.ts` belongs to 2.1.195, whose derivation ran off
136
+ // predicates; 2.1.233 derives from this catalogue, so the omission is
137
+ // the genuine answer here.
138
+ "claude-opus-4-5": {
139
+ family: "opus",
140
+ capabilities: ["context_management"],
141
+ maxOutputTokens: { default: 32000, upper: 64000 },
142
+ },
143
+ // Delta D3 vs 2.1.195: `fast_mode` is gone from this entry.
144
+ "claude-opus-4-6": {
145
+ family: "opus",
146
+ context: { window: 200000, supports1mBeta: true },
147
+ maxOutputTokens: { default: 64000, upper: 128000 },
148
+ capabilities: [
149
+ "effort",
150
+ "max_effort",
151
+ "adaptive_thinking",
152
+ "context_management",
153
+ ],
154
+ },
155
+ // Delta D3 vs 2.1.195: `fast_mode` is gone from this entry too.
156
+ "claude-opus-4-7": {
157
+ family: "opus",
158
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
159
+ maxOutputTokens: { default: 64000, upper: 128000 },
160
+ capabilities: [
161
+ "effort",
162
+ "max_effort",
163
+ "xhigh_effort",
164
+ "adaptive_thinking",
165
+ "context_management",
166
+ ],
167
+ defaultEffort: "xhigh",
168
+ },
169
+ "claude-opus-4-8": {
170
+ family: "opus",
171
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
172
+ maxOutputTokens: { default: 64000, upper: 128000 },
173
+ capabilities: [
174
+ "effort",
175
+ "max_effort",
176
+ "xhigh_effort",
177
+ "adaptive_thinking",
178
+ "mid_conv_system",
179
+ "context_management",
180
+ "fast_mode",
181
+ "lean_prompt",
182
+ ],
183
+ defaultEffort: "high",
184
+ },
185
+ // New at 2.1.233.
186
+ "claude-opus-5": {
187
+ family: "opus",
188
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
189
+ maxOutputTokens: { default: 64000, upper: 128000 },
190
+ capabilities: [
191
+ "effort",
192
+ "max_effort",
193
+ "xhigh_effort",
194
+ "adaptive_thinking",
195
+ "mid_conv_system",
196
+ "context_management",
197
+ "fast_mode",
198
+ "lean_prompt",
199
+ "refusal_fallback",
200
+ "opus_5_prompt_bundle",
201
+ ],
202
+ defaultEffort: "high",
203
+ },
204
+ "claude-fable-5": {
205
+ family: "fable",
206
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
207
+ maxOutputTokens: { default: 64000, upper: 128000 },
208
+ capabilities: [
209
+ "effort",
210
+ "max_effort",
211
+ "xhigh_effort",
212
+ "adaptive_thinking",
213
+ "rejects_disabled_thinking",
214
+ "mid_conv_system",
215
+ "context_management",
216
+ "lean_prompt",
217
+ "fable_5_mitigations",
218
+ "refusal_fallback",
219
+ ],
220
+ defaultEffort: "high",
221
+ },
222
+ // New at 2.1.233, and the notable one: under 2.1.195 `claude-mythos-5`
223
+ // had no catalogue entry at all (product decision D-1) and was
224
+ // recognised only by name in individual predicates. Here it is
225
+ // catalogued with an empty capability array, which is a denial rather
226
+ // than the maximally permissive predicate fallback.
227
+ "claude-mythos-5": {
228
+ family: "mythos",
229
+ context: { window: 1e6, native1m: true, supports1mBeta: true },
230
+ capabilities: [],
231
+ maxOutputTokens: { default: 64000, upper: 128000 },
232
+ },
233
+ },
234
+ });
235
+ //# sourceMappingURL=claude-code-2.1.233.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code-2.1.233.js","sourceRoot":"","sources":["../../src/profiles/claude-code-2.1.233.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAIxB,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,iBAAiB,GAAG,QAAQ,GAAG,iBAAiB,CACjD,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,kCAAkC,CAAC,EAAE,IAAI,CAAC;CACpD;AA+RD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAiDrD;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,cAAc,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC,OAAO,CAAC,uBAAuB,CAAC,CAmHlC"}
1
+ {"version":3,"file":"redaction.d.ts","sourceRoot":"","sources":["../src/redaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,UAAU,EACV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AAIxB,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,sBAAsB,EACtB,iBAAiB,GAAG,QAAQ,GAAG,iBAAiB,CACjD,CAAC;AAEF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,yBAAyB,CAAC;IAC5C,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,yBAAyB,CAAC;IACtD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,SAAS,UAAU,EAAE,CAAC;IAC/C,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD;;;;;;;;OAQG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,kCAAkC,CAAC,EAAE,IAAI,CAAC;CACpD;AA8SD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GACb,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAiDrD;AAED,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,0BAA0B,EACjC,cAAc,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,GACtC,OAAO,CAAC,uBAAuB,CAAC,CAmHlC"}
package/dist/redaction.js CHANGED
@@ -4,6 +4,17 @@ import { classifySurrogateAt } from "./unicode.js";
4
4
  const MAX_INPUT_DEPTH = 100;
5
5
  const MAX_INPUT_SIZE = 1_000_000;
6
6
  const ENDPOINT = "https://api.anthropic.com/v1/messages?beta=true";
7
+ /**
8
+ * The profile ids evidence may claim, spelled out here for the same reason
9
+ * `ENDPOINT` is: this module validates UNTRUSTED evidence records, so it
10
+ * compares them against literals of its own rather than importing the
11
+ * profiles it is checking. Membership stays exact -- an id outside this set
12
+ * is rejected, as a free-form id always was.
13
+ */
14
+ const PINNED_PROFILE_IDS = new Set([
15
+ "claude-code-2.1.195-sdk-0.94.0",
16
+ "claude-code-2.1.233-sdk-0.112.1",
17
+ ]);
7
18
  const FORBIDDEN_KEYS = new Set(["__proto__", "prototype", "constructor"]);
8
19
  const SAFE_ERROR_CODES = new Set([
9
20
  "INVALID_INPUT",
@@ -196,7 +207,9 @@ function assertEvidenceSources(value) {
196
207
  const modelFamily = readOwnValue(value, "modelFamily");
197
208
  const logicalHeaders = readOwnValue(value, "logicalHeaders");
198
209
  const betaFeatures = readOwnValue(value, "betaFeatures");
199
- if (profileId !== "claude-code-2.1.195-sdk-0.94.0" || endpoint !== ENDPOINT) {
210
+ if (typeof profileId !== "string" ||
211
+ !PINNED_PROFILE_IDS.has(profileId) ||
212
+ endpoint !== ENDPOINT) {
200
213
  throw wireError("INVALID_INPUT");
201
214
  }
202
215
  if (effectiveProfile !== undefined) {