@tormentalabs/claude-code-wire-compat 0.5.0 → 0.7.0-rc.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.
Files changed (91) hide show
  1. package/CHANGELOG.md +226 -0
  2. package/README.md +19 -7
  3. package/dist/betas.d.ts +65 -7
  4. package/dist/betas.d.ts.map +1 -1
  5. package/dist/betas.js +143 -2
  6. package/dist/betas.js.map +1 -1
  7. package/dist/build-request.d.ts +12 -6
  8. package/dist/build-request.d.ts.map +1 -1
  9. package/dist/build-request.js +93 -50
  10. package/dist/build-request.js.map +1 -1
  11. package/dist/contracts.d.ts +7 -2
  12. package/dist/contracts.d.ts.map +1 -1
  13. package/dist/contracts.js.map +1 -1
  14. package/dist/fingerprint.d.ts.map +1 -1
  15. package/dist/fingerprint.js +5 -0
  16. package/dist/fingerprint.js.map +1 -1
  17. package/dist/headers.d.ts.map +1 -1
  18. package/dist/headers.js +5 -2
  19. package/dist/headers.js.map +1 -1
  20. package/dist/index.d.ts +2 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/limits.d.ts +3 -0
  25. package/dist/limits.d.ts.map +1 -0
  26. package/dist/limits.js +4 -0
  27. package/dist/limits.js.map +1 -0
  28. package/dist/model-capabilities.d.ts +3 -3
  29. package/dist/model-capabilities.d.ts.map +1 -1
  30. package/dist/model-capabilities.js +55 -19
  31. package/dist/model-capabilities.js.map +1 -1
  32. package/dist/model-identity.d.ts +9 -1
  33. package/dist/model-identity.d.ts.map +1 -1
  34. package/dist/model-identity.js +19 -1
  35. package/dist/model-identity.js.map +1 -1
  36. package/dist/model-queries.d.ts +17 -5
  37. package/dist/model-queries.d.ts.map +1 -1
  38. package/dist/model-queries.js +33 -6
  39. package/dist/model-queries.js.map +1 -1
  40. package/dist/models.js +1 -1
  41. package/dist/models.js.map +1 -1
  42. package/dist/profiles/beta-registry-2.1.280.d.ts +211 -0
  43. package/dist/profiles/beta-registry-2.1.280.d.ts.map +1 -0
  44. package/dist/profiles/beta-registry-2.1.280.js +292 -0
  45. package/dist/profiles/beta-registry-2.1.280.js.map +1 -0
  46. package/dist/profiles/claude-code-2.1.280.d.ts +3 -0
  47. package/dist/profiles/claude-code-2.1.280.d.ts.map +1 -0
  48. package/dist/profiles/claude-code-2.1.280.js +359 -0
  49. package/dist/profiles/claude-code-2.1.280.js.map +1 -0
  50. package/dist/redaction.d.ts.map +1 -1
  51. package/dist/redaction.js +48 -2
  52. package/dist/redaction.js.map +1 -1
  53. package/dist/request-body.d.ts +4 -2
  54. package/dist/request-body.d.ts.map +1 -1
  55. package/dist/request-body.js +77 -48
  56. package/dist/request-body.js.map +1 -1
  57. package/dist/system-prompt.d.ts.map +1 -1
  58. package/dist/system-prompt.js +23 -22
  59. package/dist/system-prompt.js.map +1 -1
  60. package/dist/thinking.d.ts +53 -2
  61. package/dist/thinking.d.ts.map +1 -1
  62. package/dist/thinking.js +124 -26
  63. package/dist/thinking.js.map +1 -1
  64. package/dist/unicode.d.ts +41 -0
  65. package/dist/unicode.d.ts.map +1 -1
  66. package/dist/unicode.js +37 -0
  67. package/dist/unicode.js.map +1 -1
  68. package/dist/violation.d.ts +23 -0
  69. package/dist/violation.d.ts.map +1 -0
  70. package/dist/violation.js +210 -0
  71. package/dist/violation.js.map +1 -0
  72. package/package.json +6 -2
  73. package/src/betas.ts +208 -9
  74. package/src/build-request.ts +120 -56
  75. package/src/contracts.ts +7 -2
  76. package/src/fingerprint.ts +5 -0
  77. package/src/headers.ts +4 -2
  78. package/src/index.ts +2 -0
  79. package/src/limits.ts +4 -0
  80. package/src/model-capabilities.ts +55 -19
  81. package/src/model-identity.ts +14 -1
  82. package/src/model-queries.ts +38 -6
  83. package/src/models.ts +1 -1
  84. package/src/profiles/beta-registry-2.1.280.ts +309 -0
  85. package/src/profiles/claude-code-2.1.280.ts +364 -0
  86. package/src/redaction.ts +65 -2
  87. package/src/request-body.ts +107 -49
  88. package/src/system-prompt.ts +32 -24
  89. package/src/thinking.ts +148 -26
  90. package/src/unicode.ts +71 -0
  91. package/src/violation.ts +226 -0
@@ -15,12 +15,22 @@ export declare function isOpus46Model(model: string): boolean;
15
15
  export declare function isOpus47Model(model: string): boolean;
16
16
  /** Whether `model` normalizes to `claude-opus-4-8`. */
17
17
  export declare function isOpus48Model(model: string): boolean;
18
+ /** Whether `model` normalizes to `claude-opus-5`. */
19
+ export declare function isOpus5Model(model: string): boolean;
20
+ /** Whether `model` normalizes to `claude-opus-5-5`. */
21
+ export declare function isOpus55Model(model: string): boolean;
18
22
  /** Whether `model` normalizes to `claude-sonnet-4-6`. */
19
23
  export declare function isSonnet46Model(model: string): boolean;
24
+ /** Whether `model` normalizes to `claude-sonnet-5`. */
25
+ export declare function isSonnet5Model(model: string): boolean;
20
26
  /** Whether `model` normalizes to `claude-fable-5`. */
21
27
  export declare function isFable5Model(model: string): boolean;
28
+ /** Whether `model` normalizes to `claude-fable-5-1`. */
29
+ export declare function isFable51Model(model: string): boolean;
22
30
  /** Whether `model` normalizes to `claude-mythos-5`. */
23
31
  export declare function isMythos5Model(model: string): boolean;
32
+ /** Whether `model` normalizes to `claude-mythos-5-1`. */
33
+ export declare function isMythos51Model(model: string): boolean;
24
34
  /**
25
35
  * Whether `model` belongs to the haiku family.
26
36
  *
@@ -67,11 +77,13 @@ export declare function supportsWebSearch(model: string): boolean;
67
77
  * Whether `model` uses adaptive thinking (`{type: "adaptive"}`) instead of a
68
78
  * manual `budget_tokens`.
69
79
  *
70
- * The union of the named family predicates, not a catalogue read: this gates
71
- * the shape of the emitted `thinking` block, and an uncatalogued id must not
72
- * inherit adaptive thinking from the permissive capability fallback. Ask
73
- * `modelCapability(model, "adaptive_thinking", profile)` for the catalogue's
74
- * answer.
80
+ * The union of the named per-model predicates, not a catalogue read: this
81
+ * gates the shape of the emitted `thinking` block, and an uncatalogued id must
82
+ * not inherit adaptive thinking from the permissive capability fallback. The
83
+ * union covers every id any pinned profile's catalogue marks
84
+ * `adaptive_thinking` (the 2.1.280 catalogue is the widest). Ask
85
+ * `modelCapability(model, "adaptive_thinking", profile)` for a specific
86
+ * profile's answer.
75
87
  */
76
88
  export declare function isAdaptiveThinkingModel(model: string): boolean;
77
89
  //# sourceMappingURL=model-queries.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-queries.d.ts","sourceRoot":"","sources":["../src/model-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AA4EhE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAAuD,GAC/D,OAAO,CAcT;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,yBAAuD,GAC/D,OAAO,CAkBT;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS9D"}
1
+ {"version":3,"file":"model-queries.d.ts","sourceRoot":"","sources":["../src/model-queries.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AA4EhE;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,yBAAuD,GAC/D,OAAO,CAcT;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wDAAwD;AACxD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,yBAAuD,GAC/D,OAAO,CAkBT;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED,oDAAoD;AACpD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAc9D"}
@@ -101,18 +101,38 @@ export function isOpus47Model(model) {
101
101
  export function isOpus48Model(model) {
102
102
  return normalizedOrNull(model) === "claude-opus-4-8";
103
103
  }
104
+ /** Whether `model` normalizes to `claude-opus-5`. */
105
+ export function isOpus5Model(model) {
106
+ return normalizedOrNull(model) === "claude-opus-5";
107
+ }
108
+ /** Whether `model` normalizes to `claude-opus-5-5`. */
109
+ export function isOpus55Model(model) {
110
+ return normalizedOrNull(model) === "claude-opus-5-5";
111
+ }
104
112
  /** Whether `model` normalizes to `claude-sonnet-4-6`. */
105
113
  export function isSonnet46Model(model) {
106
114
  return normalizedOrNull(model) === "claude-sonnet-4-6";
107
115
  }
116
+ /** Whether `model` normalizes to `claude-sonnet-5`. */
117
+ export function isSonnet5Model(model) {
118
+ return normalizedOrNull(model) === "claude-sonnet-5";
119
+ }
108
120
  /** Whether `model` normalizes to `claude-fable-5`. */
109
121
  export function isFable5Model(model) {
110
122
  return normalizedOrNull(model) === "claude-fable-5";
111
123
  }
124
+ /** Whether `model` normalizes to `claude-fable-5-1`. */
125
+ export function isFable51Model(model) {
126
+ return normalizedOrNull(model) === "claude-fable-5-1";
127
+ }
112
128
  /** Whether `model` normalizes to `claude-mythos-5`. */
113
129
  export function isMythos5Model(model) {
114
130
  return normalizedOrNull(model) === "claude-mythos-5";
115
131
  }
132
+ /** Whether `model` normalizes to `claude-mythos-5-1`. */
133
+ export function isMythos51Model(model) {
134
+ return normalizedOrNull(model) === "claude-mythos-5-1";
135
+ }
116
136
  /**
117
137
  * Whether `model` belongs to the haiku family.
118
138
  *
@@ -188,18 +208,25 @@ export function supportsWebSearch(model) {
188
208
  * Whether `model` uses adaptive thinking (`{type: "adaptive"}`) instead of a
189
209
  * manual `budget_tokens`.
190
210
  *
191
- * The union of the named family predicates, not a catalogue read: this gates
192
- * the shape of the emitted `thinking` block, and an uncatalogued id must not
193
- * inherit adaptive thinking from the permissive capability fallback. Ask
194
- * `modelCapability(model, "adaptive_thinking", profile)` for the catalogue's
195
- * answer.
211
+ * The union of the named per-model predicates, not a catalogue read: this
212
+ * gates the shape of the emitted `thinking` block, and an uncatalogued id must
213
+ * not inherit adaptive thinking from the permissive capability fallback. The
214
+ * union covers every id any pinned profile's catalogue marks
215
+ * `adaptive_thinking` (the 2.1.280 catalogue is the widest). Ask
216
+ * `modelCapability(model, "adaptive_thinking", profile)` for a specific
217
+ * profile's answer.
196
218
  */
197
219
  export function isAdaptiveThinkingModel(model) {
198
220
  return (isOpus46Model(model) ||
199
221
  isOpus47Model(model) ||
200
222
  isOpus48Model(model) ||
223
+ isOpus5Model(model) ||
224
+ isOpus55Model(model) ||
201
225
  isSonnet46Model(model) ||
226
+ isSonnet5Model(model) ||
202
227
  isFable5Model(model) ||
203
- isMythos5Model(model));
228
+ isFable51Model(model) ||
229
+ isMythos5Model(model) ||
230
+ isMythos51Model(model));
204
231
  }
205
232
  //# sourceMappingURL=model-queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-queries.js","sourceRoot":"","sources":["../src/model-queries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-queries.js","sourceRoot":"","sources":["../src/model-queries.ts"],"names":[],"mappings":"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"}
package/dist/models.js CHANGED
@@ -16,7 +16,7 @@ export function resolveModel(model, profile = CLAUDE_CODE_2_1_195_PROFILE) {
16
16
  id,
17
17
  wireId,
18
18
  // The catalogue supplies the family here, and -- since T1.1.2 -- also
19
- // supplies the six catalogue-backed capabilities. Both now honour THIS
19
+ // supplies the catalogue-backed capabilities. Both now honour THIS
20
20
  // profile: `deriveCapabilities` takes the active profile, so a request
21
21
  // built against a non-pinned profile derives from that profile's
22
22
  // catalogue rather than from 2.1.195's. Ids with no catalogue entry fall
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAShF,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,UAAqC,2BAA2B;IAEhE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,mBAAmB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACtD,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,MAAM;QACN,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,iEAAiE;QACjE,yEAAyE;QACzE,iEAAiE;QACjE,4DAA4D;QAC5D,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC;QAC1C,YAAY,EAAE,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAO5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAShF,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,UAAqC,2BAA2B;IAEhE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,mBAAmB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACtD,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,EAAE;QACF,MAAM;QACN,sEAAsE;QACtE,mEAAmE;QACnE,uEAAuE;QACvE,iEAAiE;QACjE,yEAAyE;QACzE,iEAAiE;QACjE,4DAA4D;QAC5D,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,aAAa,CAAC,EAAE,CAAC;QAC1C,YAAY,EAAE,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Genuine-client beta registry as of 2.1.280, upstream factory chain at byte
3
+ * offset 6277485 and ordered array `oy` immediately after it.
4
+ *
5
+ * KEY ORDER IS LOAD-BEARING, and for 2.1.280 it is load-bearing in a way it was
6
+ * not before: upstream's array is NOT append-only. `thinking_resumption` is
7
+ * inserted at position 17, and `per_turn_timing`, `mid_conv_tool_change` and
8
+ * `inline_tools` are inserted at 29-31, ahead of four entries that already
9
+ * existed. A diff that assumes new identifiers only ever land at the end will
10
+ * mis-align fifteen entries: 2.1.233 positions 17-27 shift by one and 28-31
11
+ * shift by four. See
12
+ * `docs/protocol/versions/claude-code-2.1.280-analysis.md` section 4.2.
13
+ *
14
+ * The upstream array carries 42 slots with two explicit `null`s (indices 34 and
15
+ * 37, `kAt` at byte 6279405 and `hZt` at byte 6279537) which `.filter(e => e
16
+ * !== null)` removes, leaving the forty entries below. Both slots are null IN
17
+ * THIS BUILD, which is all the bytes establish: upstream treats registry
18
+ * members as nullable per build -- `Dg` carries `...BR ? [BR] : []` and `hRr`
19
+ * guards on `kAt === null` -- so a compile-time feature gate fits the evidence
20
+ * as well as a removal does, and this file claims neither. `kAt` still has two
21
+ * consumers at byte 14167580: `hRr`, short-circuited by that null check, and
22
+ * `yRr`, which reads `kAt.name` with no null guard and so is either unreachable
23
+ * or a throw path. Neither says WHICH beta the slot held; see the note above
24
+ * `AUTO_MODE_CLASSIFIER`. Neither null slot is transcribed here; a null is not
25
+ * an entry.
26
+ *
27
+ * Two further registry members are deliberately absent:
28
+ * `mid_conv_cache_promotion_latch` and `mid_conv_cache_promotion_ok_latch`
29
+ * (`x-cc-internal-mid-conv-cache-promotion` and its `-ok` sibling). Upstream
30
+ * declares them through the same factory but excludes them from the ordered
31
+ * array, and their "header" values are internal `x-cc-*` names, not beta
32
+ * identifiers. Transcribing them would corrupt the registry.
33
+ *
34
+ * Every one of the nine entries new since 2.1.233 was confirmed against its own
35
+ * `N(alias, header)` declaration in the carved dump rather than against the
36
+ * analysis document alone, so no new header rests on a single reading:
37
+ * `rrt` 6278299, `w$` 6278910, `j_` 6278959, `W_` 6279023, and `qk`, `Aoe`,
38
+ * `cD`, `V1`, `lD` in the window at 6279405.
39
+ *
40
+ * `oauth_auth` is the one entry whose header is NOT a string literal upstream:
41
+ * the declaration reads `swe=N("oauth_auth",Ru)`. `Ru` is an imported binding,
42
+ * re-exported as `OAUTH_BETA_HEADER` at byte 25341943, and the only beta-shaped
43
+ * `oauth-*` literal in the bundle is `"oauth-2025-04-20"` at byte 4418398.
44
+ * Resolved by that binding, not by name similarity.
45
+ */
46
+ export declare const BETA_REGISTRY_2_1_280: {
47
+ CLAUDE_CODE: {
48
+ featureKey: string;
49
+ header: string;
50
+ };
51
+ OAUTH_AUTH: {
52
+ featureKey: string;
53
+ header: string;
54
+ };
55
+ INTERLEAVED_THINKING: {
56
+ featureKey: string;
57
+ header: string;
58
+ };
59
+ LONG_CONTEXT: {
60
+ featureKey: string;
61
+ header: string;
62
+ };
63
+ CONTEXT_MANAGEMENT: {
64
+ featureKey: string;
65
+ header: string;
66
+ };
67
+ STRUCTURED_OUTPUTS: {
68
+ featureKey: string;
69
+ header: string;
70
+ };
71
+ WEB_SEARCH: {
72
+ featureKey: string;
73
+ header: string;
74
+ };
75
+ ADVANCED_TOOL_USE: {
76
+ featureKey: string;
77
+ header: string;
78
+ };
79
+ TOOL_SEARCH: {
80
+ featureKey: string;
81
+ header: string;
82
+ };
83
+ EFFORT: {
84
+ featureKey: string;
85
+ header: string;
86
+ };
87
+ TASK_BUDGETS: {
88
+ featureKey: string;
89
+ header: string;
90
+ };
91
+ PROMPT_CACHING_SCOPE: {
92
+ featureKey: string;
93
+ header: string;
94
+ };
95
+ PROMPT_CACHING_EVICT: {
96
+ featureKey: string;
97
+ header: string;
98
+ };
99
+ EXTENDED_CACHE_TTL: {
100
+ featureKey: string;
101
+ header: string;
102
+ };
103
+ SPEED: {
104
+ featureKey: string;
105
+ header: string;
106
+ };
107
+ REDACT_THINKING: {
108
+ featureKey: string;
109
+ header: string;
110
+ };
111
+ THINKING_RESUMPTION: {
112
+ featureKey: string;
113
+ header: string;
114
+ };
115
+ THINKING_TOKEN_COUNT: {
116
+ featureKey: string;
117
+ header: string;
118
+ };
119
+ AFK_MODE: {
120
+ featureKey: string;
121
+ header: string;
122
+ };
123
+ ADVISOR_TOOL: {
124
+ featureKey: string;
125
+ header: string;
126
+ };
127
+ CACHE_DIAGNOSIS: {
128
+ featureKey: string;
129
+ header: string;
130
+ };
131
+ CONTEXT_HINT: {
132
+ featureKey: string;
133
+ header: string;
134
+ };
135
+ MCP_SERVERS: {
136
+ featureKey: string;
137
+ header: string;
138
+ };
139
+ FILES_API: {
140
+ featureKey: string;
141
+ header: string;
142
+ };
143
+ ENVIRONMENTS: {
144
+ featureKey: string;
145
+ header: string;
146
+ };
147
+ CCR_BYOC: {
148
+ featureKey: string;
149
+ header: string;
150
+ };
151
+ MID_CONVERSATION_SYSTEM: {
152
+ featureKey: string;
153
+ header: string;
154
+ };
155
+ PER_MESSAGE_EFFORT: {
156
+ featureKey: string;
157
+ header: string;
158
+ };
159
+ PER_TURN_TIMING: {
160
+ featureKey: string;
161
+ header: string;
162
+ };
163
+ MID_CONV_TOOL_CHANGE: {
164
+ featureKey: string;
165
+ header: string;
166
+ };
167
+ INLINE_TOOLS: {
168
+ featureKey: string;
169
+ header: string;
170
+ };
171
+ SERVER_SIDE_FALLBACK: {
172
+ featureKey: string;
173
+ header: string;
174
+ };
175
+ SERVER_SIDE_FALLBACK_CATEGORY: {
176
+ featureKey: string;
177
+ header: string;
178
+ };
179
+ FALLBACK_CREDIT: {
180
+ featureKey: string;
181
+ header: string;
182
+ };
183
+ AUTO_MODE_CLASSIFIER: {
184
+ featureKey: string;
185
+ header: string;
186
+ };
187
+ DANGEROUS_TOOL_USE: {
188
+ featureKey: string;
189
+ header: string;
190
+ };
191
+ THINKING_DISPLAY_UPDATES: {
192
+ featureKey: string;
193
+ header: string;
194
+ };
195
+ MESSAGE_THREADS: {
196
+ featureKey: string;
197
+ header: string;
198
+ };
199
+ MID_CONVERSATION_SYSTEM_CLEAR_AT: {
200
+ featureKey: string;
201
+ header: string;
202
+ };
203
+ THINKING_BINDING_CONTROLS: {
204
+ featureKey: string;
205
+ header: string;
206
+ };
207
+ };
208
+ export declare const THIRD_PARTY_ALLOWED_BETAS_2_1_280: ReadonlySet<string>;
209
+ export declare const BEDROCK_UNSUPPORTED_BETAS_2_1_280: ReadonlySet<string>;
210
+ export declare const COUNT_TOKENS_BETAS_2_1_280: ReadonlySet<string>;
211
+ //# sourceMappingURL=beta-registry-2.1.280.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"beta-registry-2.1.280.d.ts","sourceRoot":"","sources":["../../src/profiles/beta-registry-2.1.280.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoKY,CAAC;AAmB/C,eAAO,MAAM,iCAAiC,EAAE,WAAW,CAAC,MAAM,CAkB/D,CAAC;AAiBJ,eAAO,MAAM,iCAAiC,EAAE,WAAW,CAAC,MAAM,CAO/D,CAAC;AAQJ,eAAO,MAAM,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAO1D,CAAC"}
@@ -0,0 +1,292 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ /*
3
+ * `deepFreeze` is duplicated from `src/beta-registry.ts` rather than imported,
4
+ * for the same reason the 2.1.233 registry duplicates it: a shared helper
5
+ * module would make every registry import-coupled for four lines of code, and
6
+ * keeping 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.280, upstream factory chain at byte
19
+ * offset 6277485 and ordered array `oy` immediately after it.
20
+ *
21
+ * KEY ORDER IS LOAD-BEARING, and for 2.1.280 it is load-bearing in a way it was
22
+ * not before: upstream's array is NOT append-only. `thinking_resumption` is
23
+ * inserted at position 17, and `per_turn_timing`, `mid_conv_tool_change` and
24
+ * `inline_tools` are inserted at 29-31, ahead of four entries that already
25
+ * existed. A diff that assumes new identifiers only ever land at the end will
26
+ * mis-align fifteen entries: 2.1.233 positions 17-27 shift by one and 28-31
27
+ * shift by four. See
28
+ * `docs/protocol/versions/claude-code-2.1.280-analysis.md` section 4.2.
29
+ *
30
+ * The upstream array carries 42 slots with two explicit `null`s (indices 34 and
31
+ * 37, `kAt` at byte 6279405 and `hZt` at byte 6279537) which `.filter(e => e
32
+ * !== null)` removes, leaving the forty entries below. Both slots are null IN
33
+ * THIS BUILD, which is all the bytes establish: upstream treats registry
34
+ * members as nullable per build -- `Dg` carries `...BR ? [BR] : []` and `hRr`
35
+ * guards on `kAt === null` -- so a compile-time feature gate fits the evidence
36
+ * as well as a removal does, and this file claims neither. `kAt` still has two
37
+ * consumers at byte 14167580: `hRr`, short-circuited by that null check, and
38
+ * `yRr`, which reads `kAt.name` with no null guard and so is either unreachable
39
+ * or a throw path. Neither says WHICH beta the slot held; see the note above
40
+ * `AUTO_MODE_CLASSIFIER`. Neither null slot is transcribed here; a null is not
41
+ * an entry.
42
+ *
43
+ * Two further registry members are deliberately absent:
44
+ * `mid_conv_cache_promotion_latch` and `mid_conv_cache_promotion_ok_latch`
45
+ * (`x-cc-internal-mid-conv-cache-promotion` and its `-ok` sibling). Upstream
46
+ * declares them through the same factory but excludes them from the ordered
47
+ * array, and their "header" values are internal `x-cc-*` names, not beta
48
+ * identifiers. Transcribing them would corrupt the registry.
49
+ *
50
+ * Every one of the nine entries new since 2.1.233 was confirmed against its own
51
+ * `N(alias, header)` declaration in the carved dump rather than against the
52
+ * analysis document alone, so no new header rests on a single reading:
53
+ * `rrt` 6278299, `w$` 6278910, `j_` 6278959, `W_` 6279023, and `qk`, `Aoe`,
54
+ * `cD`, `V1`, `lD` in the window at 6279405.
55
+ *
56
+ * `oauth_auth` is the one entry whose header is NOT a string literal upstream:
57
+ * the declaration reads `swe=N("oauth_auth",Ru)`. `Ru` is an imported binding,
58
+ * re-exported as `OAUTH_BETA_HEADER` at byte 25341943, and the only beta-shaped
59
+ * `oauth-*` literal in the bundle is `"oauth-2025-04-20"` at byte 4418398.
60
+ * Resolved by that binding, not by name similarity.
61
+ */
62
+ export const BETA_REGISTRY_2_1_280 = deepFreeze({
63
+ CLAUDE_CODE: { featureKey: "claude_code", header: "claude-code-20250219" },
64
+ OAUTH_AUTH: { featureKey: "oauth_auth", header: "oauth-2025-04-20" },
65
+ INTERLEAVED_THINKING: {
66
+ featureKey: "interleaved_thinking",
67
+ header: "interleaved-thinking-2025-05-14",
68
+ },
69
+ LONG_CONTEXT: { featureKey: "long_context", header: "context-1m-2025-08-07" },
70
+ CONTEXT_MANAGEMENT: {
71
+ featureKey: "context_management",
72
+ header: "context-management-2025-06-27",
73
+ },
74
+ STRUCTURED_OUTPUTS: {
75
+ featureKey: "structured_outputs",
76
+ header: "structured-outputs-2025-12-15",
77
+ },
78
+ WEB_SEARCH: { featureKey: "web_search", header: "web-search-2025-03-05" },
79
+ ADVANCED_TOOL_USE: {
80
+ featureKey: "tool_search",
81
+ header: "advanced-tool-use-2025-11-20",
82
+ },
83
+ TOOL_SEARCH: {
84
+ featureKey: "tool_search",
85
+ header: "tool-search-tool-2025-10-19",
86
+ },
87
+ EFFORT: { featureKey: "effort", header: "effort-2025-11-24" },
88
+ TASK_BUDGETS: {
89
+ featureKey: "task_budgets",
90
+ header: "task-budgets-2026-03-13",
91
+ },
92
+ PROMPT_CACHING_SCOPE: {
93
+ featureKey: "prompt_caching_scope",
94
+ header: "prompt-caching-scope-2026-01-05",
95
+ },
96
+ PROMPT_CACHING_EVICT: {
97
+ featureKey: "prompt_caching_evict",
98
+ header: "prompt-caching-evict-2026-05-12",
99
+ },
100
+ EXTENDED_CACHE_TTL: {
101
+ featureKey: "extended_cache_ttl",
102
+ header: "extended-cache-ttl-2025-04-11",
103
+ },
104
+ SPEED: { featureKey: "speed", header: "fast-mode-2026-02-01" },
105
+ REDACT_THINKING: {
106
+ featureKey: "redact_thinking",
107
+ header: "redact-thinking-2026-02-12",
108
+ },
109
+ // New at 2.1.280, and inserted HERE rather than appended. Every entry below
110
+ // this point sat one slot lower in 2.1.233.
111
+ THINKING_RESUMPTION: {
112
+ featureKey: "thinking_resumption",
113
+ header: "thinking-resumption-2026-07-17",
114
+ },
115
+ THINKING_TOKEN_COUNT: {
116
+ featureKey: "thinking_token_count",
117
+ header: "thinking-token-count-2026-05-13",
118
+ },
119
+ AFK_MODE: { featureKey: "afk_mode", header: "afk-mode-2026-01-31" },
120
+ ADVISOR_TOOL: {
121
+ featureKey: "advisor_tool",
122
+ header: "advisor-tool-2026-03-01",
123
+ },
124
+ CACHE_DIAGNOSIS: {
125
+ featureKey: "cache_diagnosis",
126
+ header: "cache-diagnosis-2026-04-07",
127
+ },
128
+ CONTEXT_HINT: {
129
+ featureKey: "context_hint",
130
+ header: "context-hint-2026-04-09",
131
+ },
132
+ MCP_SERVERS: { featureKey: "mcp_servers", header: "mcp-servers-2025-12-04" },
133
+ FILES_API: { featureKey: "files_api", header: "files-api-2025-04-14" },
134
+ ENVIRONMENTS: {
135
+ featureKey: "environments",
136
+ header: "environments-2025-11-01",
137
+ },
138
+ CCR_BYOC: { featureKey: "ccr_byoc", header: "ccr-byoc-2025-07-29" },
139
+ MID_CONVERSATION_SYSTEM: {
140
+ featureKey: "mid_conversation_system",
141
+ header: "mid-conversation-system-2026-04-07",
142
+ },
143
+ PER_MESSAGE_EFFORT: {
144
+ featureKey: "per_message_effort",
145
+ header: "per-turn-control-2026-07-01",
146
+ },
147
+ // New at 2.1.280. Also inserted rather than appended: the four entries below
148
+ // `INLINE_TOOLS` all predate this release.
149
+ PER_TURN_TIMING: {
150
+ featureKey: "per_turn_timing",
151
+ header: "timing-2026-09-09",
152
+ },
153
+ MID_CONV_TOOL_CHANGE: {
154
+ featureKey: "mid_conv_tool_change",
155
+ header: "mid-conversation-tool-changes-2026-07-01",
156
+ },
157
+ INLINE_TOOLS: {
158
+ featureKey: "inline_tools",
159
+ header: "inline-tools-2026-09-15",
160
+ },
161
+ SERVER_SIDE_FALLBACK: {
162
+ featureKey: "server_side_fallback",
163
+ header: "server-side-fallback-2026-06-01",
164
+ },
165
+ SERVER_SIDE_FALLBACK_CATEGORY: {
166
+ featureKey: "server_side_fallback_category",
167
+ header: "server-side-fallback-2026-07-01",
168
+ },
169
+ FALLBACK_CREDIT: {
170
+ featureKey: "fallback_credit",
171
+ header: "fallback-credit-2026-06-01",
172
+ },
173
+ /*
174
+ * NARRATION_SUMMARIES IS DELIBERATELY ABSENT, exactly as in the 2.1.233
175
+ * registry, and re-adding it would reintroduce a header the genuine client no
176
+ * longer sends. Do not "fix" it.
177
+ *
178
+ * This position -- between `FALLBACK_CREDIT` and `AUTO_MODE_CLASSIFIER` -- is
179
+ * where the 2.1.233 registry records the removal, and it is also where array
180
+ * index 34 (`kAt`, null) falls. That correspondence is suggestive and NOT
181
+ * EVIDENCED: the `summarize-connector-text-2026-03-13` header string appears
182
+ * nowhere in the 2.1.280 bundle, so nothing ties it to `kAt` rather than to
183
+ * `hZt`, and `kAt`'s surviving consumer at byte 14167580 reports rejections
184
+ * under an "Auto mode classifier" label, which points the other way. The
185
+ * analysis document asserts only that two slots are null and this file
186
+ * asserts no more. See section 4.2 of
187
+ * `docs/protocol/versions/claude-code-2.1.280-analysis.md`.
188
+ */
189
+ AUTO_MODE_CLASSIFIER: {
190
+ featureKey: "auto_mode_classifier",
191
+ header: "auto-mode-classifier-2026-07-16",
192
+ },
193
+ // New at 2.1.280.
194
+ DANGEROUS_TOOL_USE: {
195
+ featureKey: "dangerous_tool_use",
196
+ header: "dangerous-tool-use-2026-09-03",
197
+ },
198
+ /*
199
+ * The SECOND null slot (`hZt`, upstream index 37) belongs here. As with the
200
+ * first, what it once held -- if anything -- is unknown: no header string in
201
+ * any analysed release is tied to it by evidence. It is recorded rather than
202
+ * silently closed up, because a future build may reuse the slot.
203
+ */
204
+ // New at 2.1.280.
205
+ THINKING_DISPLAY_UPDATES: {
206
+ featureKey: "thinking_display_updates",
207
+ header: "thinking-display-updates-2026-08-18",
208
+ },
209
+ MESSAGE_THREADS: {
210
+ featureKey: "message_threads",
211
+ header: "message-threads-2026-08-12",
212
+ },
213
+ MID_CONVERSATION_SYSTEM_CLEAR_AT: {
214
+ featureKey: "mid_conversation_system_clear_at",
215
+ header: "mid-conversation-system-clear-at-2026-08-21",
216
+ },
217
+ /*
218
+ * LAST in the array, though upstream DECLARES it alongside
219
+ * `thinking_display_updates` and `message_threads`. Declaration order and
220
+ * array order differ here and the array is what this transcription follows.
221
+ */
222
+ THINKING_BINDING_CONTROLS: {
223
+ featureKey: "thinking_binding_controls",
224
+ header: "thinking-binding-controls-2026-08-01",
225
+ },
226
+ });
227
+ /*
228
+ * Third-party filtering as of 2.1.280, upstream `Dg` at byte 7029997, consumed
229
+ * by `DDn(e) { if (iwe()) return e; return e.filter(n => Dg.has(n)) }` in the
230
+ * same run -- that is, the set is applied only when the request is NOT
231
+ * first-party, which is how it was identified: by call site, not by resemblance
232
+ * to the 2.1.233 set.
233
+ *
234
+ * Upstream writes one member as a conditional spread, `...BR ? [BR] : []`. That
235
+ * is why the extractor reported this set `unresolved` ("a member is neither a
236
+ * string literal nor a single property read"). `BR` is unconditionally defined
237
+ * at byte 6278332 in this build, so the spread always contributes and the set
238
+ * has fourteen members.
239
+ *
240
+ * Delta against the 2.1.233 set: `dangerous_tool_use`, `thinking_token_count`
241
+ * and `thinking_binding_controls` were ADDED; nothing was removed. Order below
242
+ * follows upstream's literal.
243
+ */
244
+ export const THIRD_PARTY_ALLOWED_BETAS_2_1_280 = Object.freeze(new Set([
245
+ BETA_REGISTRY_2_1_280.CLAUDE_CODE.header,
246
+ BETA_REGISTRY_2_1_280.INTERLEAVED_THINKING.header,
247
+ BETA_REGISTRY_2_1_280.LONG_CONTEXT.header,
248
+ BETA_REGISTRY_2_1_280.CONTEXT_MANAGEMENT.header,
249
+ BETA_REGISTRY_2_1_280.STRUCTURED_OUTPUTS.header,
250
+ BETA_REGISTRY_2_1_280.WEB_SEARCH.header,
251
+ BETA_REGISTRY_2_1_280.EFFORT.header,
252
+ BETA_REGISTRY_2_1_280.TOOL_SEARCH.header,
253
+ BETA_REGISTRY_2_1_280.AFK_MODE.header,
254
+ BETA_REGISTRY_2_1_280.DANGEROUS_TOOL_USE.header,
255
+ BETA_REGISTRY_2_1_280.FALLBACK_CREDIT.header,
256
+ BETA_REGISTRY_2_1_280.MID_CONVERSATION_SYSTEM.header,
257
+ BETA_REGISTRY_2_1_280.THINKING_TOKEN_COUNT.header,
258
+ BETA_REGISTRY_2_1_280.THINKING_BINDING_CONTROLS.header,
259
+ ]));
260
+ /*
261
+ * Provider filtering as of 2.1.280, upstream `qbr` at byte 6280270.
262
+ *
263
+ * Identified by behaviour rather than by shape: `Y5` at byte 7029210 reads
264
+ * `if (sc(e) === "bedrock") return n.filter(r => !qbr.has(r))`, and the
265
+ * complementary `lco` at the same site keeps exactly this set as bedrock
266
+ * extra-body parameters. Byte-identical to the 2.1.233 set.
267
+ *
268
+ * A DIFFERENT `qbr` exists at byte 13922760 in another module -- a set of grep
269
+ * flags. Minified names are module-scoped; this entry is the one the beta
270
+ * pipeline consumes.
271
+ *
272
+ * Static reference data with no call site in `src/`, exactly like its 2.1.233
273
+ * counterpart. See `test/governance/provider-scope.test.ts`.
274
+ */
275
+ export const BEDROCK_UNSUPPORTED_BETAS_2_1_280 = Object.freeze(new Set([
276
+ BETA_REGISTRY_2_1_280.INTERLEAVED_THINKING.header,
277
+ BETA_REGISTRY_2_1_280.LONG_CONTEXT.header,
278
+ BETA_REGISTRY_2_1_280.TOOL_SEARCH.header,
279
+ ]));
280
+ /*
281
+ * Count-tokens selection as of 2.1.280, upstream `iNn` at byte 6280282,
282
+ * consumed as `betas: y.filter(he => iNn.has(he))` inside
283
+ * `beta.messages.countTokens` at bytes 12304007, 12304164 and 12305087.
284
+ * Byte-identical to the 2.1.233 set.
285
+ */
286
+ export const COUNT_TOKENS_BETAS_2_1_280 = Object.freeze(new Set([
287
+ BETA_REGISTRY_2_1_280.CLAUDE_CODE.header,
288
+ BETA_REGISTRY_2_1_280.INTERLEAVED_THINKING.header,
289
+ BETA_REGISTRY_2_1_280.CONTEXT_MANAGEMENT.header,
290
+ BETA_REGISTRY_2_1_280.OAUTH_AUTH.header,
291
+ ]));
292
+ //# sourceMappingURL=beta-registry-2.1.280.js.map