claude-code-infinite 1.0.29 → 1.0.31

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 (95) hide show
  1. package/README.md +65 -7
  2. package/dist/cli-args.d.ts +10 -0
  3. package/dist/cli-args.d.ts.map +1 -1
  4. package/dist/cli-args.js +30 -0
  5. package/dist/cli-args.js.map +1 -1
  6. package/dist/cli-lifecycle.d.ts +45 -1
  7. package/dist/cli-lifecycle.d.ts.map +1 -1
  8. package/dist/cli-lifecycle.js +59 -0
  9. package/dist/cli-lifecycle.js.map +1 -1
  10. package/dist/cli-main.js +61 -16
  11. package/dist/cli-main.js.map +1 -1
  12. package/dist/count-tokens.d.ts +15 -0
  13. package/dist/count-tokens.d.ts.map +1 -1
  14. package/dist/count-tokens.js +23 -1
  15. package/dist/count-tokens.js.map +1 -1
  16. package/dist/diagnostics-schema.d.ts.map +1 -1
  17. package/dist/diagnostics-schema.js +5 -0
  18. package/dist/diagnostics-schema.js.map +1 -1
  19. package/dist/diagnostics.d.ts.map +1 -1
  20. package/dist/diagnostics.js +18 -1
  21. package/dist/diagnostics.js.map +1 -1
  22. package/dist/final-index.d.ts +7 -1
  23. package/dist/final-index.d.ts.map +1 -1
  24. package/dist/final-index.js +10 -3
  25. package/dist/final-index.js.map +1 -1
  26. package/dist/hooks.d.ts +24 -1
  27. package/dist/hooks.d.ts.map +1 -1
  28. package/dist/hooks.js +24 -2
  29. package/dist/hooks.js.map +1 -1
  30. package/dist/image-refs.d.ts +51 -0
  31. package/dist/image-refs.d.ts.map +1 -0
  32. package/dist/image-refs.js +169 -0
  33. package/dist/image-refs.js.map +1 -0
  34. package/dist/image-tokens.d.ts +37 -0
  35. package/dist/image-tokens.d.ts.map +1 -0
  36. package/dist/image-tokens.js +158 -0
  37. package/dist/image-tokens.js.map +1 -0
  38. package/dist/memtree-body.d.ts +52 -0
  39. package/dist/memtree-body.d.ts.map +1 -0
  40. package/dist/memtree-body.js +99 -0
  41. package/dist/memtree-body.js.map +1 -0
  42. package/dist/memtree-mcp.d.ts.map +1 -1
  43. package/dist/memtree-mcp.js +4 -0
  44. package/dist/memtree-mcp.js.map +1 -1
  45. package/dist/memtree.d.ts +86 -3
  46. package/dist/memtree.d.ts.map +1 -1
  47. package/dist/memtree.js +283 -53
  48. package/dist/memtree.js.map +1 -1
  49. package/dist/model-context.d.ts +80 -0
  50. package/dist/model-context.d.ts.map +1 -0
  51. package/dist/model-context.js +192 -0
  52. package/dist/model-context.js.map +1 -0
  53. package/dist/paused-session.d.ts.map +1 -1
  54. package/dist/paused-session.js +11 -8
  55. package/dist/paused-session.js.map +1 -1
  56. package/dist/payment-gate.d.ts +2 -0
  57. package/dist/payment-gate.d.ts.map +1 -1
  58. package/dist/payment-gate.js +1 -1
  59. package/dist/payment-gate.js.map +1 -1
  60. package/dist/prefix-store.d.ts +2 -0
  61. package/dist/prefix-store.d.ts.map +1 -1
  62. package/dist/prefix-store.js +4 -0
  63. package/dist/prefix-store.js.map +1 -1
  64. package/dist/prepared-compression.d.ts +78 -0
  65. package/dist/prepared-compression.d.ts.map +1 -0
  66. package/dist/prepared-compression.js +127 -0
  67. package/dist/prepared-compression.js.map +1 -0
  68. package/dist/proxy.d.ts +370 -14
  69. package/dist/proxy.d.ts.map +1 -1
  70. package/dist/proxy.js +797 -94
  71. package/dist/proxy.js.map +1 -1
  72. package/dist/reqlog.d.ts +55 -0
  73. package/dist/reqlog.d.ts.map +1 -1
  74. package/dist/reqlog.js.map +1 -1
  75. package/dist/request-sizing.d.ts +21 -2
  76. package/dist/request-sizing.d.ts.map +1 -1
  77. package/dist/request-sizing.js +57 -11
  78. package/dist/request-sizing.js.map +1 -1
  79. package/dist/route-identity.d.ts +27 -0
  80. package/dist/route-identity.d.ts.map +1 -1
  81. package/dist/route-identity.js +88 -8
  82. package/dist/route-identity.js.map +1 -1
  83. package/dist/token-estimate.d.ts +3 -20
  84. package/dist/token-estimate.d.ts.map +1 -1
  85. package/dist/token-estimate.js +9 -50
  86. package/dist/token-estimate.js.map +1 -1
  87. package/dist/tool-output-store.d.ts +12 -0
  88. package/dist/tool-output-store.d.ts.map +1 -0
  89. package/dist/tool-output-store.js +146 -0
  90. package/dist/tool-output-store.js.map +1 -0
  91. package/dist/tool-result-truncation.d.ts +32 -0
  92. package/dist/tool-result-truncation.d.ts.map +1 -0
  93. package/dist/tool-result-truncation.js +135 -0
  94. package/dist/tool-result-truncation.js.map +1 -0
  95. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
package/dist/hooks.js CHANGED
@@ -153,6 +153,13 @@ export function terminalSupportsHyperlinks(env = process.env, stream = process.s
153
153
  // Apple Terminal and unknown terminals retain a plain, detectable URL.
154
154
  return false;
155
155
  }
156
+ /**
157
+ * The proxy path of the PreCompact hook. Unlike the other hooks' path it
158
+ * carries no token: Claude Code prints this URL with a blocked or finished
159
+ * /compact. The proxy accepts only PreCompact on it, which can at most block
160
+ * one /compact.
161
+ */
162
+ export const PRECOMPACT_HOOK_PATH = "/_ccc/hooks/precompact";
156
163
  /**
157
164
  * Single-session delivery queue. Claude Code serializes main-thread turns, so
158
165
  * one replaceable pending notice is sufficient. A new user request clears any
@@ -574,6 +581,9 @@ export function parseNoticeHookInput(value) {
574
581
  if (input.hook_event_name === "SessionStart") {
575
582
  if (input.source !== undefined && typeof input.source !== "string")
576
583
  return null;
584
+ if (input.transcript_path !== undefined && typeof input.transcript_path !== "string") {
585
+ return null;
586
+ }
577
587
  return input;
578
588
  }
579
589
  if (input.hook_event_name === "UserPromptSubmit") {
@@ -581,6 +591,11 @@ export function parseNoticeHookInput(value) {
581
591
  return null;
582
592
  return input;
583
593
  }
594
+ if (input.hook_event_name === "PreCompact") {
595
+ if (typeof input.trigger !== "string")
596
+ return null;
597
+ return input;
598
+ }
584
599
  if (input.hook_event_name === "SubagentStart" ||
585
600
  input.hook_event_name === "SubagentStop") {
586
601
  if (typeof input.agent_id !== "string" || input.agent_id.length === 0) {
@@ -621,6 +636,9 @@ export function createSessionNoticePlugin(hookUrl, opts = {}) {
621
636
  fs.writeFileSync(path.join(commandsDir, `${name}.md`), source, { mode: 0o600 });
622
637
  }
623
638
  const hook = { type: "http", url: hookUrl, timeout: 5 };
639
+ // Claude Code shows a PreCompact hook's URL to the user and records it in the
640
+ // transcript, so it gets a path without the token (it takes PreCompact only).
641
+ const compactHook = { type: "http", url: `${url.origin}${PRECOMPACT_HOOK_PATH}`, timeout: 5 };
624
642
  const hooks = {
625
643
  Stop: [{ hooks: [hook] }],
626
644
  UserPromptSubmit: [{ hooks: [hook] }],
@@ -630,6 +648,9 @@ export function createSessionNoticePlugin(hookUrl, opts = {}) {
630
648
  if (opts.messageDisplay !== false) {
631
649
  hooks.MessageDisplay = [{ hooks: [hook] }];
632
650
  }
651
+ if (opts.interceptCompact !== false) {
652
+ hooks.PreCompact = [{ matcher: "manual", hooks: [compactHook] }];
653
+ }
633
654
  if (opts.startupMessage) {
634
655
  hooks.SessionStart = [
635
656
  ...(hooks.SessionStart ?? []),
@@ -644,8 +665,9 @@ export function createSessionNoticePlugin(hookUrl, opts = {}) {
644
665
  {
645
666
  // Every session start that could already have a page. A fresh or
646
667
  // cleared session has none yet, so in practice this answers resumes;
647
- // compaction continues the same session and needs no line.
648
- matcher: "startup|resume|clear|fork",
668
+ // a compaction needs no line, but it tells the proxy that the
669
+ // transcript lost its MemTree notices (model-context.ts).
670
+ matcher: "startup|resume|clear|compact|fork",
649
671
  hooks: [
650
672
  {
651
673
  type: "command",
package/dist/hooks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { Message } from "./turns.js";
2
+ export declare const IMAGE_REF_PREFIX = "memtree-image:sha256:";
3
+ /** Declared in x-client-features: this client reads STORED_IMAGES_FIELD. */
4
+ export declare const IMAGE_REFS_FEATURE = "image-refs";
5
+ /** Answer field: shas of the request's images the server stores. */
6
+ export declare const STORED_IMAGES_FIELD = "memtree_image_sha256s";
7
+ /** 409 detail field: references the server could not serve. */
8
+ export declare const MISSING_IMAGES_FIELD = "missing_image_sha256s";
9
+ /** The server's answer to references it cannot serve; the call is sent again with bytes. */
10
+ export declare const MISSING_IMAGES_STATUS = 409;
11
+ /** A message list as sent, and the shas it references (empty: nothing changed). */
12
+ export interface Referenced<T> {
13
+ value: T;
14
+ refs: string[];
15
+ }
16
+ export declare class ImageRefs {
17
+ private known;
18
+ private shaOf;
19
+ private shaChars;
20
+ private disabled;
21
+ /** Whether calls may carry references at all (the server listed stored images). */
22
+ get active(): boolean;
23
+ /** Learn the stored images an answer lists; a server that lists none changes nothing. */
24
+ noteAnswer(json: unknown): void;
25
+ /** The server could not serve these (or, without a list, any): send bytes for them. */
26
+ forget(shas: readonly string[]): void;
27
+ /** The server refused references outright (an older or misconfigured server). */
28
+ disable(): void;
29
+ /** `messages` with each stored image as a reference; copy on write. */
30
+ referenceMessages(messages: Message[]): Referenced<Message[]>;
31
+ /** One message with each stored image as a reference; the same object if none is. */
32
+ referenceMessage(message: Message): Referenced<Message>;
33
+ private referenceBlocks;
34
+ private referenceBlock;
35
+ /** The image's sha when the server stores it and its base64 re-encodes identically. */
36
+ private storedSha;
37
+ private rememberSha;
38
+ }
39
+ /** The shas a refusal names (409 detail), or undefined when it names none. */
40
+ export declare function missingImageShas(bodyText: string): string[] | undefined;
41
+ /**
42
+ * A 400 about references: "never" when this key may not send any (stop for the
43
+ * process), "this" when only this request's were refused (too many: send its bytes).
44
+ */
45
+ export declare function refusesImageRefs(status: number, bodyText: string): "never" | "this" | false;
46
+ /**
47
+ * The server re-encodes the bytes it stores, so only base64 that decodes and re-encodes
48
+ * to the same text may be referenced (padding included, no whitespace).
49
+ */
50
+ export declare function isCanonicalBase64(data: string): boolean;
51
+ //# sourceMappingURL=image-refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-refs.d.ts","sourceRoot":"","sources":["../src/image-refs.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,eAAe,CAAC;AAC/C,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAC3D,+DAA+D;AAC/D,eAAO,MAAM,oBAAoB,0BAA0B,CAAC;AAC5D,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAQzC,mFAAmF;AACnF,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,mFAAmF;IACnF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,yFAAyF;IACzF,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAe/B,uFAAuF;IACvF,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI;IAIrC,iFAAiF;IACjF,OAAO,IAAI,IAAI;IAKf,uEAAuE;IACvE,iBAAiB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;IAW7D,qFAAqF;IACrF,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IAOvD,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,cAAc;IAatB,uFAAuF;IACvF,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,WAAW;CAWpB;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAQvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAG3F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAKvD"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Image references on MemTree calls: images MemTree already stores are not uploaded again.
3
+ *
4
+ * Every index and compress call sends the whole conversation, so a screenshot-heavy
5
+ * session re-sent every image as base64 on every call (2026-10: 8.7, 12.5 and 18.5 MB
6
+ * bodies for 194k-384k tokens of context), heading for the 32 MiB HTTP/1 limit. A
7
+ * server that resolves references lists, on each answer, the request's images it
8
+ * stores (`memtree_image_sha256s`); later calls send those images as their block with
9
+ * `source.data` replaced by IMAGE_REF_PREFIX + the sha256 of the image bytes, and the
10
+ * server puts the bytes back before reading the request, so hashing, billing and what
11
+ * it returns are unchanged. Only the MemTree upload changes: what ccc forwards to
12
+ * Anthropic never carries a reference. Servers that never list stored images (older
13
+ * ones, or with the image store off) only ever get bytes.
14
+ */
15
+ import { createHash } from "node:crypto";
16
+ export const IMAGE_REF_PREFIX = "memtree-image:sha256:";
17
+ /** Declared in x-client-features: this client reads STORED_IMAGES_FIELD. */
18
+ export const IMAGE_REFS_FEATURE = "image-refs";
19
+ /** Answer field: shas of the request's images the server stores. */
20
+ export const STORED_IMAGES_FIELD = "memtree_image_sha256s";
21
+ /** 409 detail field: references the server could not serve. */
22
+ export const MISSING_IMAGES_FIELD = "missing_image_sha256s";
23
+ /** The server's answer to references it cannot serve; the call is sent again with bytes. */
24
+ export const MISSING_IMAGES_STATUS = 409;
25
+ /** Stored shas remembered (a 1M-token window holds ~600 images). */
26
+ const KNOWN_MAX = 4096;
27
+ /** Base64 strings whose sha is remembered, by total length (memory bound). */
28
+ const SHA_CACHE_MAX_CHARS = 64 * 1024 * 1024;
29
+ const SHA_HEX_RE = /^[0-9a-f]{64}$/;
30
+ const BASE64_RE = /^[A-Za-z0-9+/]*={0,2}$/;
31
+ export class ImageRefs {
32
+ known = new Map();
33
+ shaOf = new Map();
34
+ shaChars = 0;
35
+ disabled = false;
36
+ /** Whether calls may carry references at all (the server listed stored images). */
37
+ get active() {
38
+ return !this.disabled && this.known.size > 0;
39
+ }
40
+ /** Learn the stored images an answer lists; a server that lists none changes nothing. */
41
+ noteAnswer(json) {
42
+ const listed = json?.[STORED_IMAGES_FIELD];
43
+ if (!Array.isArray(listed))
44
+ return;
45
+ for (const sha of listed) {
46
+ if (typeof sha !== "string" || !SHA_HEX_RE.test(sha))
47
+ continue;
48
+ this.known.delete(sha);
49
+ this.known.set(sha, true);
50
+ }
51
+ while (this.known.size > KNOWN_MAX) {
52
+ const first = this.known.keys().next().value;
53
+ if (first === undefined)
54
+ break;
55
+ this.known.delete(first);
56
+ }
57
+ }
58
+ /** The server could not serve these (or, without a list, any): send bytes for them. */
59
+ forget(shas) {
60
+ for (const sha of shas)
61
+ this.known.delete(sha);
62
+ }
63
+ /** The server refused references outright (an older or misconfigured server). */
64
+ disable() {
65
+ this.disabled = true;
66
+ this.known.clear();
67
+ }
68
+ /** `messages` with each stored image as a reference; copy on write. */
69
+ referenceMessages(messages) {
70
+ if (!this.active)
71
+ return { value: messages, refs: [] };
72
+ const refs = [];
73
+ const value = messages.map((message) => {
74
+ const result = this.referenceMessage(message);
75
+ refs.push(...result.refs);
76
+ return result.value;
77
+ });
78
+ return refs.length ? { value, refs } : { value: messages, refs };
79
+ }
80
+ /** One message with each stored image as a reference; the same object if none is. */
81
+ referenceMessage(message) {
82
+ if (!this.active || !Array.isArray(message?.content))
83
+ return { value: message, refs: [] };
84
+ const refs = [];
85
+ const content = this.referenceBlocks(message.content, refs);
86
+ return { value: content === message.content ? message : { ...message, content }, refs };
87
+ }
88
+ referenceBlocks(blocks, refs) {
89
+ let changed = false;
90
+ const out = blocks.map((block) => {
91
+ const next = this.referenceBlock(block, refs);
92
+ if (next !== block)
93
+ changed = true;
94
+ return next;
95
+ });
96
+ return changed ? out : blocks;
97
+ }
98
+ referenceBlock(block, refs) {
99
+ if (block?.type === "tool_result" && Array.isArray(block.content)) {
100
+ const content = this.referenceBlocks(block.content, refs);
101
+ return content === block.content ? block : { ...block, content };
102
+ }
103
+ const source = block?.type === "image" ? block.source : undefined;
104
+ if (source?.type !== "base64" || typeof source.data !== "string")
105
+ return block;
106
+ const sha = this.storedSha(source.data);
107
+ if (sha === undefined)
108
+ return block;
109
+ refs.push(sha);
110
+ return { ...block, source: { ...source, data: IMAGE_REF_PREFIX + sha } };
111
+ }
112
+ /** The image's sha when the server stores it and its base64 re-encodes identically. */
113
+ storedSha(data) {
114
+ let sha = this.shaOf.get(data);
115
+ if (sha === undefined) {
116
+ if (!isCanonicalBase64(data))
117
+ return undefined;
118
+ sha = createHash("sha256").update(Buffer.from(data, "base64")).digest("hex");
119
+ this.rememberSha(data, sha);
120
+ }
121
+ return this.known.has(sha) ? sha : undefined;
122
+ }
123
+ rememberSha(data, sha) {
124
+ if (data.length > SHA_CACHE_MAX_CHARS)
125
+ return;
126
+ this.shaOf.set(data, sha);
127
+ this.shaChars += data.length;
128
+ while (this.shaChars > SHA_CACHE_MAX_CHARS) {
129
+ const first = this.shaOf.keys().next().value;
130
+ if (first === undefined)
131
+ break;
132
+ this.shaOf.delete(first);
133
+ this.shaChars -= first.length;
134
+ }
135
+ }
136
+ }
137
+ /** The shas a refusal names (409 detail), or undefined when it names none. */
138
+ export function missingImageShas(bodyText) {
139
+ try {
140
+ const listed = JSON.parse(bodyText)?.detail?.[MISSING_IMAGES_FIELD];
141
+ if (!Array.isArray(listed))
142
+ return undefined;
143
+ return listed.filter((sha) => typeof sha === "string");
144
+ }
145
+ catch {
146
+ return undefined;
147
+ }
148
+ }
149
+ /**
150
+ * A 400 about references: "never" when this key may not send any (stop for the
151
+ * process), "this" when only this request's were refused (too many: send its bytes).
152
+ */
153
+ export function refusesImageRefs(status, bodyText) {
154
+ if (status !== 400 || !/image reference/i.test(bodyText))
155
+ return false;
156
+ return /own MemTree key/i.test(bodyText) ? "never" : "this";
157
+ }
158
+ /**
159
+ * The server re-encodes the bytes it stores, so only base64 that decodes and re-encodes
160
+ * to the same text may be referenced (padding included, no whitespace).
161
+ */
162
+ export function isCanonicalBase64(data) {
163
+ if (data.length === 0 || data.length % 4 !== 0 || !BASE64_RE.test(data))
164
+ return false;
165
+ // Only the last quantum can hide non-zero padding bits ("QR==" decodes like "QQ==").
166
+ const tail = data.slice(-4);
167
+ return Buffer.from(tail, "base64").toString("base64") === tail;
168
+ }
169
+ //# sourceMappingURL=image-refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-refs.js","sourceRoot":"","sources":["../src/image-refs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * What an inline image costs, from its header alone (polychat
3
+ * image_tokens.py mirrors the same rule): Anthropic counts
4
+ * ceil(w / 28) * ceil(h / 28) visual tokens after scaling the image down,
5
+ * aspect kept, to its model tier's limits (Claude 4.7+ and unknown models:
6
+ * long edge 2576 px and 4,784 tokens; older Claude: 1568 px and 1,568).
7
+ * A 574x551 screenshot is 420 tokens, not the ~74k its base64 would be as text.
8
+ */
9
+ declare const HIGH_RES: {
10
+ maxEdge: number;
11
+ maxTokens: number;
12
+ };
13
+ export interface ImageTotals {
14
+ /** Base64 characters of the inline images (their JSON bytes). */
15
+ imageBytes: number;
16
+ /** Their visual tokens by the rule above (the tier cap when a header is unreadable). */
17
+ imageTokens: number;
18
+ }
19
+ /**
20
+ * Inline images among a request body's message (and tool result) content
21
+ * blocks; `model` picks the tier. Image-shaped JSON anywhere else (tool
22
+ * inputs, schemas, system) is ordinary text.
23
+ */
24
+ export declare function bodyImages(body: Buffer, model: string | undefined): ImageTotals;
25
+ /** Remember `totals` for another copy of the same bytes. */
26
+ export declare function rememberImages(body: Buffer, model: string | undefined, totals: ImageTotals): void;
27
+ /** Visual tokens of a w x h image in `tier` (polychat visual_tokens). */
28
+ export declare function visualTokens(width: number, height: number, tier?: {
29
+ maxEdge: number;
30
+ maxTokens: number;
31
+ }): number;
32
+ /** Claude before 4.7 is standard; 4.7+, other and unknown models are high-res. */
33
+ export declare function imageTier(model: string | undefined): typeof HIGH_RES;
34
+ /** Width and height from a PNG, GIF, WebP or JPEG header; undefined when unreadable. */
35
+ export declare function imageDimensions(base64: string): [number, number] | undefined;
36
+ export {};
37
+ //# sourceMappingURL=image-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-tokens.d.ts","sourceRoot":"","sources":["../src/image-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,QAAA,MAAM,QAAQ;;;CAAsC,CAAC;AAOrD,MAAM,WAAW,WAAW;IAC1B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;CACrB;AAOD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,CAM/E;AAED,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAEjG;AAsBD,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI;;;CAAW,GAAG,MAAM,CAYnF;AAED,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,QAAQ,CAMpE;AAED,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQ5E"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * What an inline image costs, from its header alone (polychat
3
+ * image_tokens.py mirrors the same rule): Anthropic counts
4
+ * ceil(w / 28) * ceil(h / 28) visual tokens after scaling the image down,
5
+ * aspect kept, to its model tier's limits (Claude 4.7+ and unknown models:
6
+ * long edge 2576 px and 4,784 tokens; older Claude: 1568 px and 1,568).
7
+ * A 574x551 screenshot is 420 tokens, not the ~74k its base64 would be as text.
8
+ */
9
+ const PATCH_PX = 28;
10
+ const HIGH_RES = { maxEdge: 2576, maxTokens: 4_784 };
11
+ const STANDARD = { maxEdge: 1568, maxTokens: 1_568 };
12
+ /** Base64 characters decoded to find a header (48 KB of bytes). */
13
+ const HEADER_BASE64_CHARS = 65_536;
14
+ const CLAUDE_VERSION_RE = /claude-(?:opus|sonnet|haiku|fable|mythos|instant)?-?(\d{1,2})(?:[-.](\d{1,2}))?(?![0-9])/i;
15
+ const NO_IMAGES = Object.freeze({ imageBytes: 0, imageTokens: 0 });
16
+ /** Totals already worked out for a body and model: a body is parsed once,
17
+ * however often it is sized (a weak key: dropped with the body). */
18
+ const totalsByBody = new WeakMap();
19
+ /**
20
+ * Inline images among a request body's message (and tool result) content
21
+ * blocks; `model` picks the tier. Image-shaped JSON anywhere else (tool
22
+ * inputs, schemas, system) is ordinary text.
23
+ */
24
+ export function bodyImages(body, model) {
25
+ const known = totalsByBody.get(body);
26
+ if (known && known.model === model)
27
+ return known.totals;
28
+ const totals = parseImages(body, model);
29
+ totalsByBody.set(body, { model, totals });
30
+ return totals;
31
+ }
32
+ /** Remember `totals` for another copy of the same bytes. */
33
+ export function rememberImages(body, model, totals) {
34
+ totalsByBody.set(body, { model, totals });
35
+ }
36
+ function parseImages(body, model) {
37
+ // Most bodies carry no image: skip the parse.
38
+ if (!body.includes('"image"'))
39
+ return NO_IMAGES;
40
+ let parsed;
41
+ try {
42
+ parsed = JSON.parse(body.toString("utf-8"));
43
+ }
44
+ catch {
45
+ return NO_IMAGES;
46
+ }
47
+ const totals = { imageBytes: 0, imageTokens: 0 };
48
+ const tier = imageTier(model);
49
+ const messages = parsed?.messages;
50
+ if (!Array.isArray(messages))
51
+ return totals;
52
+ for (const message of messages) {
53
+ const content = message?.content;
54
+ if (Array.isArray(content))
55
+ addImages(content, tier, totals);
56
+ }
57
+ return Object.freeze(totals);
58
+ }
59
+ /** Visual tokens of a w x h image in `tier` (polychat visual_tokens). */
60
+ export function visualTokens(width, height, tier = HIGH_RES) {
61
+ if (!(width > 0) || !(height > 0))
62
+ return tier.maxTokens;
63
+ const longest = Math.max(width, height);
64
+ let longEdge = Math.max(1, Math.floor(longest * Math.min(1, tier.maxEdge / longest)));
65
+ while (longEdge > 1) {
66
+ const scale = longEdge / longest;
67
+ const tokens = Math.ceil(Math.max(1, Math.floor(width * scale)) / PATCH_PX) *
68
+ Math.ceil(Math.max(1, Math.floor(height * scale)) / PATCH_PX);
69
+ if (tokens <= tier.maxTokens)
70
+ return tokens;
71
+ longEdge -= Math.max(1, Math.floor(longEdge / 200));
72
+ }
73
+ return 1;
74
+ }
75
+ /** Claude before 4.7 is standard; 4.7+, other and unknown models are high-res. */
76
+ export function imageTier(model) {
77
+ const match = model ? CLAUDE_VERSION_RE.exec(model) : null;
78
+ if (!match)
79
+ return HIGH_RES;
80
+ const major = Number(match[1]);
81
+ const minor = match[2] ? Number(match[2]) : 0;
82
+ return major > 4 || (major === 4 && minor >= 7) ? HIGH_RES : STANDARD;
83
+ }
84
+ /** Width and height from a PNG, GIF, WebP or JPEG header; undefined when unreadable. */
85
+ export function imageDimensions(base64) {
86
+ let bytes;
87
+ try {
88
+ bytes = Buffer.from(base64.slice(0, HEADER_BASE64_CHARS), "base64");
89
+ }
90
+ catch {
91
+ return undefined;
92
+ }
93
+ return pngSize(bytes) ?? gifSize(bytes) ?? webpSize(bytes) ?? jpegSize(bytes);
94
+ }
95
+ function addImages(blocks, tier, totals) {
96
+ for (const item of blocks) {
97
+ if (!item || typeof item !== "object")
98
+ continue;
99
+ const block = item;
100
+ const source = block.source;
101
+ if (block.type === "image" && source && typeof source === "object") {
102
+ const data = source.type === "base64" && typeof source.data === "string" ? source.data : "";
103
+ totals.imageBytes += data.length;
104
+ const size = data ? imageDimensions(data) : undefined;
105
+ totals.imageTokens += size ? visualTokens(size[0], size[1], tier) : tier.maxTokens;
106
+ }
107
+ else if (block.type === "tool_result" && Array.isArray(block.content)) {
108
+ addImages(block.content, tier, totals);
109
+ }
110
+ }
111
+ }
112
+ function pngSize(b) {
113
+ if (b.length < 24 || b.readUInt32BE(0) !== 0x89504e47 || b.toString("ascii", 12, 16) !== "IHDR") {
114
+ return undefined;
115
+ }
116
+ return [b.readUInt32BE(16), b.readUInt32BE(20)];
117
+ }
118
+ function gifSize(b) {
119
+ if (b.length < 10 || b.toString("ascii", 0, 3) !== "GIF")
120
+ return undefined;
121
+ return [b.readUInt16LE(6), b.readUInt16LE(8)];
122
+ }
123
+ function webpSize(b) {
124
+ if (b.length < 30 || b.toString("ascii", 0, 4) !== "RIFF" || b.toString("ascii", 8, 12) !== "WEBP") {
125
+ return undefined;
126
+ }
127
+ const chunk = b.toString("ascii", 12, 16);
128
+ if (chunk === "VP8X")
129
+ return [1 + b.readUIntLE(24, 3), 1 + b.readUIntLE(27, 3)];
130
+ if (chunk === "VP8L") {
131
+ const bits = b.readUInt32LE(21);
132
+ return [1 + (bits & 0x3fff), 1 + ((bits >> 14) & 0x3fff)];
133
+ }
134
+ if (chunk === "VP8 ")
135
+ return [b.readUInt16LE(26) & 0x3fff, b.readUInt16LE(28) & 0x3fff];
136
+ return undefined;
137
+ }
138
+ const JPEG_FRAME_MARKERS = new Set([0xc0, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6, 0xc7, 0xc9, 0xca, 0xcb,
139
+ 0xcd, 0xce, 0xcf]);
140
+ function jpegSize(b) {
141
+ if (b.length < 4 || b[0] !== 0xff || b[1] !== 0xd8)
142
+ return undefined;
143
+ let i = 2;
144
+ for (let steps = 0; steps < 2_048 && i + 9 < b.length; steps++) {
145
+ if (b[i] !== 0xff)
146
+ return undefined;
147
+ const marker = b[i + 1];
148
+ if (marker === 0xff) {
149
+ i++;
150
+ continue;
151
+ }
152
+ if (JPEG_FRAME_MARKERS.has(marker))
153
+ return [b.readUInt16BE(i + 7), b.readUInt16BE(i + 5)];
154
+ i += 2 + b.readUInt16BE(i + 2);
155
+ }
156
+ return undefined;
157
+ }
158
+ //# sourceMappingURL=image-tokens.js.map