pi-jar 0.2.8 → 0.2.9

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,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-jar",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "A warm, role-aware Pi terminal workspace with switchable profiles, animated UI, plan and goal workflows, tasks, change review, model roles, background shells and subagents.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -54,8 +54,8 @@
54
54
  "typebox": "*"
55
55
  },
56
56
  "devDependencies": {
57
- "@earendil-works/pi-coding-agent": "^1.1.0",
58
- "@earendil-works/pi-tui": "^1.1.0",
57
+ "@earendil-works/pi-coding-agent": "^1.2.0",
58
+ "@earendil-works/pi-tui": "^1.2.0",
59
59
  "typebox": "^1.3.34",
60
60
  "typescript": "5.9.2"
61
61
  },
package/src/composer.ts CHANGED
@@ -55,7 +55,10 @@ export function sessionDisplayName(name?: string, id?: string): string {
55
55
  return `${first}-${last}`;
56
56
  }
57
57
 
58
+ /** Empty-cell cursor: pi-tui ≤1.1 paints it inline; 1.2+ wraps it in fake-cursor APC markers resolved at render time. */
58
59
  const CURSOR = "\x1b[7m \x1b[0m";
60
+ const FAKE_CURSOR = "\x1b_pi:fc\x07 \x1b_pi:/fc\x07";
61
+ const hasCursor = (row: string) => row.includes(FAKE_CURSOR) || row.includes(CURSOR);
59
62
  const BORDER = /^─+(?:\s*[↑↓]\s*\d+\s*more\s*─*)?$/;
60
63
  /** Index of the editor's bottom border: known row count when available, else the first plain border row. */
61
64
  function bottomBorderIndex(lines: readonly string[], visibleRows?: number): number {
@@ -125,7 +128,7 @@ export function roundedInput(lines: string[], width: number, focused: boolean, t
125
128
  const fit = (text: string) => fittedLines.get(text, (value) => truncateToWidth(value, width));
126
129
  const content = lines.slice(1, bottom).map((line, index) => {
127
130
  let row = line;
128
- if (index === 0 && options.ghost && row.includes(CURSOR)) {
131
+ if (index === 0 && options.ghost && hasCursor(row)) {
129
132
  const base = row.replace(/ +$/, "");
130
133
  const room = inner - visibleWidth(base);
131
134
  // ascii's tab "icon" is already the word.
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-amber",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#F7B955",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-azure",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#75BCFF",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-gray",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#D0D9E5",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-pink",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#FF88C6",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-teal",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#45DDD1",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark-violet",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#BCA0FF",
6
7
  "blue": "#8DB9FF",
@@ -1,6 +1,7 @@
1
1
  {
2
- "$schema": "https://raw.githubusercontent.com/earendil-works/pi/main/packages/coding-agent/src/modes/interactive/theme/theme-schema.json",
2
+ "$schema": "https://pi.dev/schemas/theme.schema.json",
3
3
  "name": "pi-jar-dark",
4
+ "appearance": "dark",
4
5
  "vars": {
5
6
  "accent": "#2DDED0",
6
7
  "blue": "#8DB9FF",