@oh-my-pi/snapcompact 15.13.2 → 15.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@oh-my-pi/snapcompact",
4
- "version": "15.13.2",
4
+ "version": "15.13.3",
5
5
  "description": "Bitmap-frame context compression for vision-capable LLMs",
6
6
  "homepage": "https://omp.sh",
7
7
  "author": "Can Boluk",
@@ -31,9 +31,9 @@
31
31
  "fmt": "biome format --write ."
32
32
  },
33
33
  "dependencies": {
34
- "@oh-my-pi/pi-ai": "15.13.2",
35
- "@oh-my-pi/pi-natives": "15.13.2",
36
- "@oh-my-pi/pi-utils": "15.13.2"
34
+ "@oh-my-pi/pi-ai": "15.13.3",
35
+ "@oh-my-pi/pi-natives": "15.13.3",
36
+ "@oh-my-pi/pi-utils": "15.13.3"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@types/bun": "^1.3.14"
@@ -1,6 +1,6 @@
1
1
  Prior conversation history has been archived verbatim onto {{frameCount}} snapcompact frame{{#if multipleFrames}}s{{/if}} — the bitmap image{{#if multipleFrames}}s{{/if}} attached below{{#if multipleFrames}}, ordered oldest to newest{{/if}}.
2
2
 
3
- Reading a frame: monospace {{fontCell}} pixel font on a white background, {{#if docColumns}}typeset as two word-wrapped newspaper columns of {{cols}} characters by {{rows}} lines each — read the left column top to bottom, then the right column{{else}}{{cols}} characters per row, {{rows}} text rows per frame; read left to right, top to bottom. Text flows continuously with no word wrap, so words may break across row ends{{/if}}. Horizontal whitespace runs were collapsed to single spaces; line breaks print as a solid black cell (one character wide) — treat each as a newline. {{#if sentenceInk}}Ink color cycles through six colors, advancing at sentence boundaries — a color change marks a new sentence.{{else}}Glyphs are plain black ink.{{/if}}{{#if stopwordDimmed}} Common function words (the, of, and, …) are printed in dim gray; content words carry the full ink.{{/if}}{{#if dimmedToolResults}} Tool output is printed in dim gray ink — gray text is archived tool output, not conversation.{{/if}}{{#if lineRepeated}} Every text line is printed twice in a row — first on the white background, then repeated on a pale yellow band. The copies are identical: read each line once and use the duplicate only to double-check hard glyphs.{{/if}} Roles are tagged inline as [User]:, [Assistant]:, [Assistant thinking]:, [Assistant tool calls]:, and [Tool result]:.
3
+ Reading a frame: monospace {{fontCell}} pixel font on a white background, {{#if docColumns}}typeset as two word-wrapped newspaper columns of {{cols}} characters by {{rows}} lines each — read the left column top to bottom, then the right column{{else}}{{cols}} characters per row, {{rows}} text rows per frame; read left to right, top to bottom. Text flows continuously with no word wrap, so words may break across row ends{{/if}}. Horizontal whitespace runs were collapsed to single spaces; line breaks print as a solid black cell (one character wide) — treat each as a newline. {{#if sentenceInk}}Ink color cycles through six colors, advancing at sentence boundaries — a color change marks a new sentence.{{else}}Glyphs are plain black ink.{{/if}}{{#if stopwordDimmed}} Common function words (the, of, and, …) are printed in dim gray; content words carry the full ink.{{/if}}{{#if dimmedToolResults}} Tool output is printed in dim gray ink — gray text is archived tool output, not conversation.{{/if}}{{#if lineRepeated}} Every text line is printed twice in a row — first on the white background, then repeated on a pale yellow band. The copies are identical: read each line once and use the duplicate only to double-check hard glyphs.{{/if}} Roles are tagged inline as [User]:, [Assistant]:, [Think]:, [Tool Call]:, and [Tool Result]:.
4
4
  {{#if mixedShapes}}
5
5
 
6
6
  Older frames may use a different font, grid, or ink coloring than described above; the reading order is always the same (left to right, top to bottom, oldest frame first).
@@ -726,13 +726,13 @@ export function serializeConversation(messages: Message[], options?: SerializeOp
726
726
  }
727
727
 
728
728
  if (thinkingParts.length > 0) {
729
- parts.push(`[Assistant thinking]: ${thinkingParts.join("\n")}`);
729
+ parts.push(`[Think]: ${thinkingParts.join("\n")}`);
730
730
  }
731
731
  if (textParts.length > 0) {
732
732
  parts.push(`[Assistant]: ${textParts.join("\n")}`);
733
733
  }
734
734
  if (toolCalls.length > 0) {
735
- parts.push(`[Assistant tool calls]: ${toolCalls.join("; ")}`);
735
+ parts.push(`[Tool Call]: ${toolCalls.join("; ")}`);
736
736
  }
737
737
  } else if (msg.role === "toolResult") {
738
738
  if (uselessCallIds.has(msg.toolCallId)) continue;
@@ -743,7 +743,7 @@ export function serializeConversation(messages: Message[], options?: SerializeOp
743
743
  if (content) {
744
744
  // Args above are JSON-escaped, so only raw result text can carry toggles.
745
745
  const body = truncateForSummary(stripDimMarkers(content), toolResultMaxChars, headRatio);
746
- parts.push(dimToolResults ? `[Tool result]: ${DIM_ON}${body}${DIM_OFF}` : `[Tool result]: ${body}`);
746
+ parts.push(dimToolResults ? `[Tool Result]: ${DIM_ON}${body}${DIM_OFF}` : `[Tool Result]: ${body}`);
747
747
  }
748
748
  }
749
749
  }