everybuddy 0.1.5 → 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.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ import { runCCStatusLineCommand } from "./cli/cc-statusline.js";
3
+ runCCStatusLineCommand().catch(() => {
4
+ process.exitCode = 1;
5
+ });
6
+ //# sourceMappingURL=cc-statusline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-statusline.js","sourceRoot":"","sources":["../src/cc-statusline.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,sBAAsB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE;IAClC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -1,3 +1,6 @@
1
1
  export declare const NO_COMPANION_MESSAGE: string;
2
- export declare function runCardCommand(): Promise<void>;
2
+ export interface CardCommandOptions {
3
+ color?: boolean | undefined;
4
+ }
5
+ export declare function runCardCommand(options?: CardCommandOptions): Promise<void>;
3
6
  export declare function getCardOutput(storageDir?: string): Promise<string>;
package/dist/cli/card.js CHANGED
@@ -3,7 +3,10 @@ import { resolveBuddyConfig } from "../storage/config.js";
3
3
  import { renderCompanionCard } from "../render/card.js";
4
4
  import { uiText } from "../i18n/ui.js";
5
5
  export const NO_COMPANION_MESSAGE = uiText("zh").noCompanionFound;
6
- export async function runCardCommand() {
6
+ export async function runCardCommand(options = {}) {
7
+ if (options.color) {
8
+ Object.defineProperty(process.stdout, "isTTY", { value: true });
9
+ }
7
10
  const output = await getCardOutput();
8
11
  process.stdout.write(`${output}\n`);
9
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/cli/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAmB;IACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,OAAO,mBAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/cli/card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAEvC,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC;AAMlE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA8B,EAAE;IACnE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAmB;IACrD,MAAM,QAAQ,GAAG,CAAC,MAAM,kBAAkB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,OAAO,mBAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { CCSessionJSON } from "../runtime/cc-types.js";
2
+ import type { BuddyLanguage, CompanionRecord } from "../types/companion.js";
3
+ export declare function runCCStatusLineCommand(): Promise<void>;
4
+ export declare function renderCompanionStatusLine(companion: CompanionRecord, session: CCSessionJSON | null, language: BuddyLanguage): string;
5
+ export declare function renderEmptyStatusLine(session: CCSessionJSON | null): string;
6
+ export declare function composeSideBySide(spriteLines: string[], rightLines: string[], centerRight?: boolean): string;
7
+ export declare function buildInfoBar(session: CCSessionJSON | null, language: BuddyLanguage): string;
8
+ export declare function parseSessionJSON(raw: string): CCSessionJSON | null;
@@ -0,0 +1,142 @@
1
+ import { execFileSync } from "node:child_process";
2
+ import { composeFrame } from "../render/compose.js";
3
+ import { colorize, dim } from "../render/color.js";
4
+ import { padDisplayWidth } from "../render/layout.js";
5
+ import { SPECIES, EYES } from "../render/sprites.js";
6
+ import { localizeSpeciesName } from "../i18n/ui.js";
7
+ import { readCompanionRecord } from "../storage/companion.js";
8
+ import { resolveBuddyConfig } from "../storage/config.js";
9
+ const SPRITE_PAD_WIDTH = 14;
10
+ const SIDE_GAP = " ";
11
+ const LEFT_MARGIN = " ";
12
+ export async function runCCStatusLineCommand() {
13
+ // Claude Code pipes stdout — force isTTY so ANSI colors render.
14
+ Object.defineProperty(process.stdout, "isTTY", { value: true });
15
+ const [session, companion, config] = await Promise.all([
16
+ readStdinJSON(),
17
+ readCompanionRecord().catch(() => null),
18
+ resolveBuddyConfig().catch(() => ({ language: "zh" })),
19
+ ]);
20
+ const language = config.language;
21
+ const output = companion
22
+ ? renderCompanionStatusLine(companion, session, language)
23
+ : renderEmptyStatusLine(session);
24
+ process.stdout.write(output);
25
+ }
26
+ // ── Rendering ────────────────────────────────────────────────────────────────
27
+ export function renderCompanionStatusLine(companion, session, language) {
28
+ const species = SPECIES[companion.bones.species];
29
+ const eye = EYES[companion.bones.eye];
30
+ if (!species || !eye) {
31
+ return renderEmptyStatusLine(session);
32
+ }
33
+ const frameIndex = Math.floor(Date.now() / 600) % species.frames.length;
34
+ const frame = species.frames[frameIndex];
35
+ if (!frame) {
36
+ return renderEmptyStatusLine(session);
37
+ }
38
+ const spriteLines = composeFrame(frame, eye.char, companion.bones.hat, companion.bones.color);
39
+ const speciesName = localizeSpeciesName(species.id, species.name, language);
40
+ const nameLabel = colorize(companion.soul.name, companion.bones.color.primary);
41
+ const rightLines = [
42
+ `${nameLabel} · ${speciesName}`,
43
+ buildInfoBar(session, language),
44
+ ];
45
+ return composeSideBySide(spriteLines, rightLines, true);
46
+ }
47
+ export function renderEmptyStatusLine(session) {
48
+ const rightLines = [
49
+ dim("No companion — run `buddy` to hatch"),
50
+ buildInfoBar(session, "en"),
51
+ ];
52
+ return rightLines.join("\n");
53
+ }
54
+ export function composeSideBySide(spriteLines, rightLines, centerRight = false) {
55
+ const height = Math.max(spriteLines.length, rightLines.length);
56
+ const lines = [];
57
+ const rightOffset = centerRight
58
+ ? Math.max(0, Math.floor((spriteLines.length - rightLines.length) / 2))
59
+ : 0;
60
+ for (let i = 0; i < height; i++) {
61
+ const sprite = padDisplayWidth(spriteLines[i] ?? "", SPRITE_PAD_WIDTH);
62
+ const right = rightLines[i - rightOffset] ?? "";
63
+ lines.push(`${LEFT_MARGIN}${sprite}${SIDE_GAP}${right}`);
64
+ }
65
+ return lines.join("\n");
66
+ }
67
+ export function buildInfoBar(session, language) {
68
+ if (!session) {
69
+ return "";
70
+ }
71
+ const parts = [];
72
+ const rawModelName = session.model?.display_name ?? "Claude";
73
+ const modelName = rawModelName.split(/\s/)[0] ?? rawModelName;
74
+ parts.push(`[${modelName}]`);
75
+ const pct = Math.floor(session.context_window?.used_percentage ?? 0);
76
+ parts.push(`${pct}%`);
77
+ const cwd = session.workspace?.current_dir ?? session.cwd;
78
+ if (cwd) {
79
+ const branch = detectGitBranch(cwd);
80
+ if (branch) {
81
+ parts.push(branch);
82
+ }
83
+ }
84
+ const cost = session.cost?.total_cost_usd ?? 0;
85
+ if (cost > 0) {
86
+ parts.push(`$${cost.toFixed(2)}`);
87
+ }
88
+ return dim(parts.join(" | "));
89
+ }
90
+ // ── Helpers ──────────────────────────────────────────────────────────────────
91
+ function detectGitBranch(cwd) {
92
+ try {
93
+ const result = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
94
+ cwd,
95
+ timeout: 500,
96
+ stdio: ["ignore", "pipe", "ignore"],
97
+ });
98
+ const branch = result.toString("utf8").trim();
99
+ return branch.length > 0 ? branch : null;
100
+ }
101
+ catch {
102
+ return null;
103
+ }
104
+ }
105
+ export function parseSessionJSON(raw) {
106
+ if (!raw.trim()) {
107
+ return null;
108
+ }
109
+ try {
110
+ return JSON.parse(raw);
111
+ }
112
+ catch {
113
+ return null;
114
+ }
115
+ }
116
+ function readStdinJSON() {
117
+ return new Promise((resolve) => {
118
+ if (process.stdin.isTTY) {
119
+ resolve(null);
120
+ return;
121
+ }
122
+ let data = "";
123
+ const timeout = setTimeout(() => {
124
+ process.stdin.removeAllListeners();
125
+ resolve(parseSessionJSON(data));
126
+ }, 1_000);
127
+ process.stdin.setEncoding("utf8");
128
+ process.stdin.on("data", (chunk) => {
129
+ data += chunk;
130
+ });
131
+ process.stdin.on("end", () => {
132
+ clearTimeout(timeout);
133
+ resolve(parseSessionJSON(data));
134
+ });
135
+ process.stdin.on("error", () => {
136
+ clearTimeout(timeout);
137
+ resolve(null);
138
+ });
139
+ process.stdin.resume();
140
+ });
141
+ }
142
+ //# sourceMappingURL=cc-statusline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-statusline.js","sourceRoot":"","sources":["../../src/cli/cc-statusline.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
3
  import { runAttachCommand } from "./cli/attach.js";
4
+ import { runCCStatusLineCommand } from "./cli/cc-statusline.js";
4
5
  import { runCardCommand } from "./cli/card.js";
5
6
  import { runDetachCommand } from "./cli/detach.js";
6
7
  import { runEventCommand } from "./cli/event.js";
@@ -17,14 +18,16 @@ program
17
18
  program
18
19
  .command("card")
19
20
  .description("Render the persisted buddy card.")
20
- .action(async () => {
21
- await runCardCommand();
21
+ .option("--color", "Force ANSI color output even when stdout is not a TTY")
22
+ .action(async (options) => {
23
+ await runCardCommand(options);
22
24
  });
23
25
  program
24
26
  .command("pet")
25
27
  .description("Show the current companion card.")
26
- .action(async () => {
27
- await runCardCommand();
28
+ .option("--color", "Force ANSI color output even when stdout is not a TTY")
29
+ .action(async (options) => {
30
+ await runCardCommand(options);
28
31
  });
29
32
  program
30
33
  .command("hatch")
@@ -85,6 +88,12 @@ program
85
88
  .action(async (type, options) => {
86
89
  await runEventCommand(type, options);
87
90
  });
91
+ program
92
+ .command("cc-statusline")
93
+ .description("Claude Code statusLine renderer — reads session JSON from stdin, outputs ASCII companion.")
94
+ .action(async () => {
95
+ await runCCStatusLineCommand();
96
+ });
88
97
  program
89
98
  .command("sidecar")
90
99
  .description("Internal sidecar runtime for tmux follow mode.")
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8EAA8E,CAAC;KAC3F,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,uDAAuD,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,SAAS,EAAE,uDAAuD,CAAC;KAC1E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,8FAA8F,CAAC;KAC3G,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IAChB,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yEAAyE,CAAC;KACtF,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,kBAAkB,CAAC;KAC3B,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IACvB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,qBAAqB,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0DAA0D,CAAC;KACvE,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,SAAS,EAAE,uBAAuB,CAAC;KAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,WAAW,CAAC,OAAO,EAAE,2EAA2E,CAAC;KACjG,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;KAC3C,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC;KAC1C,MAAM,CAAC,oBAAoB,EAAE,2BAA2B,CAAC;KACzD,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,2FAA2F,CAAC;KACxG,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,sBAAsB,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;KAC5C,MAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,IAAI;IACjB,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,mBAAmB,EAAE,CAAC;QAC5B,OAAO;IACT,CAAC;IAED,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;AAC7B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;IACrC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { RenderMode } from "../runtime/types.js";
2
+ import type { BuddyLanguage, CompanionRecord } from "../types/companion.js";
3
+ export declare const FADE_WINDOW_MS = 3000;
4
+ export declare const BUBBLE_MAX_WIDTH = 24;
5
+ export declare const BUBBLE_MAX_LINES = 5;
6
+ export declare const IDLE_SUMMARY_WIDTH = 24;
7
+ export declare const IDLE_SUMMARY_MAX_LINES = 3;
8
+ export declare const FULL_MODE_MIN_WIDTH = 26;
9
+ export declare const IDLE_SEQUENCE: number[];
10
+ export declare function charDisplayWidth(char: string): number;
11
+ export declare function visibleLength(value: string): number;
12
+ export declare function padDisplayWidth(value: string, width: number): string;
13
+ export declare function splitWrapTokens(text: string): string[];
14
+ export declare function splitTokenByDisplayWidth(token: string, width: number): [string, string];
15
+ export declare function truncateDisplayWidth(value: string, width: number): string;
16
+ export declare function wrapText(text: string, width: number, maxLines: number): string[];
17
+ export declare function centerLine(text: string, width: number): string;
18
+ export declare function centerBlock(lines: string[], width: number): string[];
19
+ export declare function styleBubbleBorder(text: string, color: string, fading: boolean): string;
20
+ export declare function styleBubbleText(text: string, fading: boolean): string;
21
+ export declare function renderSpeechBubble(text: string, fading: boolean, color: string, contentWidth: number, maxLines: number): string[];
22
+ export declare function resolveSpriteFrameState(frameTick: number, animated: boolean, frameCount: number, pulsing?: boolean): {
23
+ frameIndex: number;
24
+ blink: boolean;
25
+ };
26
+ export declare function resolveReactionBubble(state: Pick<{
27
+ reactionText: string | undefined;
28
+ reactionExpiresAt: number | undefined;
29
+ }, "reactionText" | "reactionExpiresAt">, now: number): {
30
+ text: string | undefined;
31
+ fading: boolean;
32
+ };
33
+ export declare function resolveRenderMode(columns: number): RenderMode;
34
+ export declare function inferCompanionLanguage(companion: CompanionRecord): BuddyLanguage;
35
+ export declare function buildIdleSoulSummary(companion: CompanionRecord, language?: BuddyLanguage): string;
@@ -0,0 +1,205 @@
1
+ import { getDumpStat, getPeakStat } from "../bones/stats.js";
2
+ import { getLocalizedSoulCopy } from "../i18n/companion.js";
3
+ import { localizeStatName, localizeVoiceLabel } from "../i18n/ui.js";
4
+ import { colorize, dim } from "./color.js";
5
+ // ── Constants ────────────────────────────────────────────────────────────────
6
+ export const FADE_WINDOW_MS = 3_000;
7
+ export const BUBBLE_MAX_WIDTH = 24;
8
+ export const BUBBLE_MAX_LINES = 5;
9
+ export const IDLE_SUMMARY_WIDTH = 24;
10
+ export const IDLE_SUMMARY_MAX_LINES = 3;
11
+ export const FULL_MODE_MIN_WIDTH = 26;
12
+ export const IDLE_SEQUENCE = [0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0];
13
+ // ── Display width ────────────────────────────────────────────────────────────
14
+ export function charDisplayWidth(char) {
15
+ if (/[\u0300-\u036f]/u.test(char)) {
16
+ return 0;
17
+ }
18
+ if (/[\u1100-\u115f\u2329\u232a\u2e80-\u303e\u3040-\u30ff\u3100-\u312f\u3130-\u318f\u3190-\ua4cf\uac00-\ud7a3\uf900-\ufaff\ufe10-\ufe19\ufe30-\ufe6f\uff00-\uff60\uffe0-\uffe6]/u.test(char)) {
19
+ return 2;
20
+ }
21
+ return 1;
22
+ }
23
+ export function visibleLength(value) {
24
+ const stripped = value.replace(/\u001B\[[0-9;]*m/g, "");
25
+ return Array.from(stripped).reduce((sum, char) => sum + charDisplayWidth(char), 0);
26
+ }
27
+ export function padDisplayWidth(value, width) {
28
+ const padding = Math.max(0, width - visibleLength(value));
29
+ return `${value}${" ".repeat(padding)}`;
30
+ }
31
+ // ── Text wrapping ────────────────────────────────────────────────────────────
32
+ export function splitWrapTokens(text) {
33
+ const trimmed = text.trim();
34
+ if (!trimmed) {
35
+ return [""];
36
+ }
37
+ if (/\s/.test(trimmed)) {
38
+ return trimmed.split(/\s+/);
39
+ }
40
+ return Array.from(trimmed);
41
+ }
42
+ export function splitTokenByDisplayWidth(token, width) {
43
+ let head = "";
44
+ let used = 0;
45
+ const chars = Array.from(token);
46
+ for (const char of chars) {
47
+ const next = charDisplayWidth(char);
48
+ if (used + next > width && head.length > 0) {
49
+ break;
50
+ }
51
+ head += char;
52
+ used += next;
53
+ if (used >= width) {
54
+ break;
55
+ }
56
+ }
57
+ return [head, token.slice(head.length)];
58
+ }
59
+ export function truncateDisplayWidth(value, width) {
60
+ const ellipsis = "…";
61
+ const target = Math.max(0, width - visibleLength(ellipsis));
62
+ let output = "";
63
+ let used = 0;
64
+ for (const char of Array.from(value)) {
65
+ const next = charDisplayWidth(char);
66
+ if (used + next > target) {
67
+ break;
68
+ }
69
+ output += char;
70
+ used += next;
71
+ }
72
+ return `${output}${ellipsis}`;
73
+ }
74
+ export function wrapText(text, width, maxLines) {
75
+ if (text.trim().length === 0) {
76
+ return [""];
77
+ }
78
+ const words = splitWrapTokens(text);
79
+ const joiner = /\s/.test(text.trim()) ? " " : "";
80
+ const lines = [];
81
+ let current = "";
82
+ for (const word of words) {
83
+ const candidate = current.length === 0 ? word : `${current}${joiner}${word}`;
84
+ if (visibleLength(candidate) <= width) {
85
+ current = candidate;
86
+ continue;
87
+ }
88
+ if (current.length === 0 && visibleLength(word) > width) {
89
+ const [head, tail] = splitTokenByDisplayWidth(word, width);
90
+ lines.push(head);
91
+ current = tail;
92
+ if (lines.length >= maxLines - 1) {
93
+ break;
94
+ }
95
+ continue;
96
+ }
97
+ if (current.length > 0) {
98
+ lines.push(current);
99
+ }
100
+ current = word;
101
+ if (lines.length >= maxLines - 1) {
102
+ break;
103
+ }
104
+ }
105
+ if (current.length > 0 && lines.length < maxLines) {
106
+ lines.push(current);
107
+ }
108
+ if (lines.length === 0) {
109
+ lines.push(splitTokenByDisplayWidth(text, width)[0]);
110
+ }
111
+ return lines.slice(0, maxLines).map((line, index, allLines) => {
112
+ if (index === allLines.length - 1 && visibleLength(line) > width) {
113
+ return truncateDisplayWidth(line, width);
114
+ }
115
+ if (index === maxLines - 1 && visibleLength(words.join(joiner)) > visibleLength(lines.join(joiner))) {
116
+ return truncateDisplayWidth(line, width);
117
+ }
118
+ return line;
119
+ });
120
+ }
121
+ // ── Layout centering ─────────────────────────────────────────────────────────
122
+ export function centerLine(text, width) {
123
+ const visible = visibleLength(text);
124
+ const left = Math.max(0, Math.floor((width - visible) / 2));
125
+ return `${" ".repeat(left)}${text}`;
126
+ }
127
+ export function centerBlock(lines, width) {
128
+ const blockWidth = Math.max(0, ...lines.map((line) => visibleLength(line)));
129
+ const left = Math.max(0, Math.floor((width - blockWidth) / 2));
130
+ return lines.map((line) => `${" ".repeat(left)}${line}`);
131
+ }
132
+ // ── Speech bubble ────────────────────────────────────────────────────────────
133
+ export function styleBubbleBorder(text, color, fading) {
134
+ const colored = colorize(text, color);
135
+ return fading ? dim(colored) : colored;
136
+ }
137
+ export function styleBubbleText(text, fading) {
138
+ return fading ? dim(text) : text;
139
+ }
140
+ export function renderSpeechBubble(text, fading, color, contentWidth, maxLines) {
141
+ const wrapped = wrapText(text, contentWidth, maxLines);
142
+ const innerWidth = Math.max(...wrapped.map((line) => visibleLength(line)), 8);
143
+ const borderTop = styleBubbleBorder(`╭${"─".repeat(innerWidth + 2)}╮`, color, fading);
144
+ const borderBottom = styleBubbleBorder(`╰${"─".repeat(innerWidth + 2)}╯`, color, fading);
145
+ const tailPadding = " ".repeat(Math.max(0, Math.floor((innerWidth + 4) / 2)));
146
+ return [
147
+ borderTop,
148
+ ...wrapped.map((line) => {
149
+ const textLine = `${styleBubbleBorder("│", color, fading)} ${styleBubbleText(padDisplayWidth(line, innerWidth), fading)} ${styleBubbleBorder("│", color, fading)}`;
150
+ return textLine;
151
+ }),
152
+ borderBottom,
153
+ `${tailPadding}${styleBubbleBorder("╲", color, fading)}`,
154
+ ];
155
+ }
156
+ // ── Sprite / reaction state ──────────────────────────────────────────────────
157
+ export function resolveSpriteFrameState(frameTick, animated, frameCount, pulsing = false) {
158
+ if (frameCount <= 1) {
159
+ return { frameIndex: 0, blink: false };
160
+ }
161
+ if (animated || pulsing) {
162
+ return { frameIndex: frameTick % frameCount, blink: false };
163
+ }
164
+ const sequenceStep = IDLE_SEQUENCE[frameTick % IDLE_SEQUENCE.length] ?? 0;
165
+ if (sequenceStep === -1) {
166
+ return { frameIndex: 0, blink: true };
167
+ }
168
+ return { frameIndex: sequenceStep % frameCount, blink: false };
169
+ }
170
+ export function resolveReactionBubble(state, now) {
171
+ if (!state.reactionText) {
172
+ return { text: undefined, fading: false };
173
+ }
174
+ if (state.reactionExpiresAt === undefined) {
175
+ return { text: state.reactionText, fading: false };
176
+ }
177
+ if (now >= state.reactionExpiresAt) {
178
+ return { text: undefined, fading: false };
179
+ }
180
+ return {
181
+ text: state.reactionText,
182
+ fading: now >= state.reactionExpiresAt - FADE_WINDOW_MS,
183
+ };
184
+ }
185
+ export function resolveRenderMode(columns) {
186
+ return columns >= FULL_MODE_MIN_WIDTH ? "full" : "narrow";
187
+ }
188
+ // ── Locale helpers ───────────────────────────────────────────────────────────
189
+ export function inferCompanionLanguage(companion) {
190
+ return /[\u3400-\u9fff]/u.test(companion.soul.personality) ? "zh" : "en";
191
+ }
192
+ export function buildIdleSoulSummary(companion, language = inferCompanionLanguage(companion)) {
193
+ const tagline = getLocalizedSoulCopy(companion, language).tagline?.trim();
194
+ if (tagline) {
195
+ return tagline;
196
+ }
197
+ const profile = companion.soul.observerProfile;
198
+ const [peakStat] = getPeakStat(companion.bones.stats);
199
+ const [dumpStat] = getDumpStat(companion.bones.stats);
200
+ if (language === "zh") {
201
+ return `${localizeVoiceLabel(profile.voice, language)} · ${localizeStatName(peakStat, language)}强,${localizeStatName(dumpStat, language)}低`;
202
+ }
203
+ return `${localizeVoiceLabel(profile.voice, language)} · high ${localizeStatName(peakStat, language).toLowerCase()} · low ${localizeStatName(dumpStat, language).toLowerCase()}`;
204
+ }
205
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/render/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface CCSessionJSON {
2
+ session_id: string;
3
+ cwd: string;
4
+ model: {
5
+ id: string;
6
+ display_name: string;
7
+ };
8
+ workspace: {
9
+ current_dir: string;
10
+ project_dir: string;
11
+ };
12
+ cost: {
13
+ total_cost_usd: number;
14
+ };
15
+ context_window: {
16
+ used_percentage: number;
17
+ };
18
+ rate_limits?: {
19
+ five_hour?: {
20
+ used_percentage: number;
21
+ };
22
+ };
23
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cc-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-types.js","sourceRoot":"","sources":["../../src/runtime/cc-types.ts"],"names":[],"mappings":""}
@@ -1,18 +1,6 @@
1
- import type { RenderMode, SidecarState } from "./types.js";
2
- import type { BuddyLanguage, CompanionRecord } from "../types/companion.js";
3
1
  export interface SidecarCommandOptions {
4
2
  windowId: string;
5
3
  targetPane?: string | undefined;
6
4
  }
7
5
  export declare function runSidecarCommand(options: SidecarCommandOptions): Promise<void>;
8
6
  export declare function resolveTargetPane(paneIds: string[], sidecarPaneId: string, currentTargetPaneId?: string): string | undefined;
9
- export declare function resolveRenderMode(columns: number): RenderMode;
10
- export declare function resolveReactionBubble(state: Pick<SidecarState, "reactionText" | "reactionExpiresAt">, now: number): {
11
- text: string | undefined;
12
- fading: boolean;
13
- };
14
- export declare function resolveSpriteFrameState(frameTick: number, animated: boolean, frameCount: number, pulsing?: boolean): {
15
- frameIndex: number;
16
- blink: boolean;
17
- };
18
- export declare function buildIdleSoulSummary(companion: CompanionRecord, language?: BuddyLanguage): string;
@@ -1,30 +1,23 @@
1
1
  import net from "node:net";
2
2
  import path from "node:path";
3
3
  import { getDumpStat, getPeakStat } from "../bones/stats.js";
4
- import { getLocalizedSoulCopy } from "../i18n/companion.js";
5
- import { localizeRarityName, localizeSpeciesName, localizeStatName, localizeVoiceLabel, uiText, } from "../i18n/ui.js";
4
+ import { localizeRarityName, localizeSpeciesName, localizeStatName, uiText, } from "../i18n/ui.js";
6
5
  import { readCompanionRecord } from "../storage/companion.js";
7
6
  import { resolveBuddyConfig } from "../storage/config.js";
8
7
  import { composeFrame } from "../render/compose.js";
9
8
  import { bold, colorize, dim, italic } from "../render/color.js";
9
+ import { BUBBLE_MAX_LINES, BUBBLE_MAX_WIDTH, IDLE_SUMMARY_MAX_LINES, IDLE_SUMMARY_WIDTH, buildIdleSoulSummary, centerBlock, centerLine, renderSpeechBubble, resolveReactionBubble, resolveRenderMode, resolveSpriteFrameState, wrapText, } from "../render/layout.js";
10
10
  import { EYES, SPECIES, renderCompactFace } from "../render/sprites.js";
11
11
  import { buildCommandTracker, buildCommandWindowEntry, buildMemoryEntry, createCompanionObserver, rememberCommandWindowEntry, rememberMemoryEntry, } from "./observer.js";
12
12
  import { ensureSocketDirectory, removeSocketIfExists, socketPathForWindow } from "./socket.js";
13
13
  import { SIDECAR_OPTION, TARGET_OPTION, TmuxClient } from "./tmux.js";
14
14
  const FRAME_TICK_MS = 500;
15
15
  const HEALTH_TICK_MS = 1000;
16
- const FULL_MODE_MIN_WIDTH = 26;
17
16
  const DEFAULT_PANE_WIDTH = 30;
18
17
  const DEFAULT_PANE_HEIGHT = 24;
19
18
  const BUBBLE_SHOW_MS = 10_000;
20
- const FADE_WINDOW_MS = 3_000;
21
- const BUBBLE_MAX_WIDTH = 24;
22
- const BUBBLE_MAX_LINES = 5;
23
- const IDLE_SUMMARY_WIDTH = 24;
24
- const IDLE_SUMMARY_MAX_LINES = 3;
25
19
  const NARROW_REACTION_MAX_LINES = 2;
26
20
  const PULSE_TICKS = 4;
27
- const IDLE_SEQUENCE = [0, 0, 0, 0, 1, 0, 0, 0, -1, 0, 0, 2, 0, 0, 0];
28
21
  const PET_BURST_FRAMES = [
29
22
  [" ♥ ♥ "],
30
23
  [" ♥ ♥ ♥ "],
@@ -151,9 +144,6 @@ export function resolveTargetPane(paneIds, sidecarPaneId, currentTargetPaneId) {
151
144
  }
152
145
  return workPaneIds[0];
153
146
  }
154
- export function resolveRenderMode(columns) {
155
- return columns >= FULL_MODE_MIN_WIDTH ? "full" : "narrow";
156
- }
157
147
  async function handleShellEvent(state, payload, observer, rerender, eventVersion, isCurrent) {
158
148
  try {
159
149
  const event = JSON.parse(payload);
@@ -369,22 +359,6 @@ function renderCompanionDock(state, sprite, burst, paneWidth, primaryColor, acce
369
359
  centerLine(dim(colorize(localizedRarity, accentColor)), paneWidth),
370
360
  ]);
371
361
  }
372
- function renderSpeechBubble(text, fading, color, contentWidth, maxLines) {
373
- const wrapped = wrapText(text, contentWidth, maxLines);
374
- const innerWidth = Math.max(...wrapped.map((line) => visibleLength(line)), 8);
375
- const borderTop = styleBubbleBorder(`╭${"─".repeat(innerWidth + 2)}╮`, color, fading);
376
- const borderBottom = styleBubbleBorder(`╰${"─".repeat(innerWidth + 2)}╯`, color, fading);
377
- const tailPadding = " ".repeat(Math.max(0, Math.floor((innerWidth + 4) / 2)));
378
- return [
379
- borderTop,
380
- ...wrapped.map((line) => {
381
- const textLine = `${styleBubbleBorder("│", color, fading)} ${styleBubbleText(padDisplayWidth(line, innerWidth), fading)} ${styleBubbleBorder("│", color, fading)}`;
382
- return textLine;
383
- }),
384
- borderBottom,
385
- `${tailPadding}${styleBubbleBorder("╲", color, fading)}`,
386
- ];
387
- }
388
362
  function resolveBubbleContentWidth(paneWidth) {
389
363
  return Math.max(16, Math.min(BUBBLE_MAX_WIDTH, paneWidth - 6));
390
364
  }
@@ -395,13 +369,6 @@ function resolveBubbleMaxLines(paneHeight, dockLineCount) {
395
369
  function resolveIdleSummaryWidth(paneWidth) {
396
370
  return Math.max(16, Math.min(IDLE_SUMMARY_WIDTH, paneWidth - 6));
397
371
  }
398
- function styleBubbleBorder(text, color, fading) {
399
- const colored = colorize(text, color);
400
- return fading ? dim(colored) : colored;
401
- }
402
- function styleBubbleText(text, fading) {
403
- return fading ? dim(text) : text;
404
- }
405
372
  function styleCompanionName(name, state, color) {
406
373
  const styledName = italic(name);
407
374
  if (state.directAddressActive || isPulseActive(state)) {
@@ -432,81 +399,6 @@ function statusHintText(status, exitCode, language) {
432
399
  }
433
400
  return undefined;
434
401
  }
435
- export function resolveReactionBubble(state, now) {
436
- if (!state.reactionText) {
437
- return { text: undefined, fading: false };
438
- }
439
- if (state.reactionExpiresAt === undefined) {
440
- return { text: state.reactionText, fading: false };
441
- }
442
- if (now >= state.reactionExpiresAt) {
443
- return { text: undefined, fading: false };
444
- }
445
- return {
446
- text: state.reactionText,
447
- fading: now >= state.reactionExpiresAt - FADE_WINDOW_MS,
448
- };
449
- }
450
- export function resolveSpriteFrameState(frameTick, animated, frameCount, pulsing = false) {
451
- if (frameCount <= 1) {
452
- return { frameIndex: 0, blink: false };
453
- }
454
- if (animated || pulsing) {
455
- return { frameIndex: frameTick % frameCount, blink: false };
456
- }
457
- const sequenceStep = IDLE_SEQUENCE[frameTick % IDLE_SEQUENCE.length] ?? 0;
458
- if (sequenceStep === -1) {
459
- return { frameIndex: 0, blink: true };
460
- }
461
- return { frameIndex: sequenceStep % frameCount, blink: false };
462
- }
463
- function wrapText(text, width, maxLines) {
464
- if (text.trim().length === 0) {
465
- return [""];
466
- }
467
- const words = splitWrapTokens(text);
468
- const joiner = /\s/.test(text.trim()) ? " " : "";
469
- const lines = [];
470
- let current = "";
471
- for (const word of words) {
472
- const candidate = current.length === 0 ? word : `${current}${joiner}${word}`;
473
- if (visibleLength(candidate) <= width) {
474
- current = candidate;
475
- continue;
476
- }
477
- if (current.length === 0 && visibleLength(word) > width) {
478
- const [head, tail] = splitTokenByDisplayWidth(word, width);
479
- lines.push(head);
480
- current = tail;
481
- if (lines.length >= maxLines - 1) {
482
- break;
483
- }
484
- continue;
485
- }
486
- if (current.length > 0) {
487
- lines.push(current);
488
- }
489
- current = word;
490
- if (lines.length >= maxLines - 1) {
491
- break;
492
- }
493
- }
494
- if (current.length > 0 && lines.length < maxLines) {
495
- lines.push(current);
496
- }
497
- if (lines.length === 0) {
498
- lines.push(splitTokenByDisplayWidth(text, width)[0]);
499
- }
500
- return lines.slice(0, maxLines).map((line, index, allLines) => {
501
- if (index === allLines.length - 1 && visibleLength(line) > width) {
502
- return truncateDisplayWidth(line, width);
503
- }
504
- if (index === maxLines - 1 && visibleLength(words.join(joiner)) > visibleLength(lines.join(joiner))) {
505
- return truncateDisplayWidth(line, width);
506
- }
507
- return line;
508
- });
509
- }
510
402
  function expireReactionIfNeeded(state, now) {
511
403
  if (state.reactionExpiresAt === undefined || now < state.reactionExpiresAt) {
512
404
  return;
@@ -539,15 +431,6 @@ function buildRenderBuffer(lines, lineCount) {
539
431
  }
540
432
  return output.join("");
541
433
  }
542
- function centerLine(text, width) {
543
- const visible = visibleLength(text);
544
- const left = Math.max(0, Math.floor((width - visible) / 2));
545
- return `${" ".repeat(left)}${text}`;
546
- }
547
- function visibleLength(value) {
548
- const stripped = value.replace(/\u001B\[[0-9;]*m/g, "");
549
- return Array.from(stripped).reduce((sum, char) => sum + charDisplayWidth(char), 0);
550
- }
551
434
  function currentPaneWidth() {
552
435
  return process.stdout.columns ?? DEFAULT_PANE_WIDTH;
553
436
  }
@@ -581,82 +464,6 @@ function renderPetBurst(state, color) {
581
464
  const frame = PET_BURST_FRAMES[state.frameTick % PET_BURST_FRAMES.length] ?? [" ♥ ♥ "];
582
465
  return frame.map((line) => colorize(line, color));
583
466
  }
584
- function centerBlock(lines, width) {
585
- const blockWidth = Math.max(0, ...lines.map((line) => visibleLength(line)));
586
- const left = Math.max(0, Math.floor((width - blockWidth) / 2));
587
- return lines.map((line) => `${" ".repeat(left)}${line}`);
588
- }
589
- function splitWrapTokens(text) {
590
- const trimmed = text.trim();
591
- if (!trimmed) {
592
- return [""];
593
- }
594
- if (/\s/.test(trimmed)) {
595
- return trimmed.split(/\s+/);
596
- }
597
- return Array.from(trimmed);
598
- }
599
- export function buildIdleSoulSummary(companion, language = inferCompanionLanguage(companion)) {
600
- const tagline = getLocalizedSoulCopy(companion, language).tagline?.trim();
601
- if (tagline) {
602
- return tagline;
603
- }
604
- const profile = companion.soul.observerProfile;
605
- const [peakStat] = getPeakStat(companion.bones.stats);
606
- const [dumpStat] = getDumpStat(companion.bones.stats);
607
- if (language === "zh") {
608
- return `${localizeVoiceLabel(profile.voice, language)} · ${localizeStatName(peakStat, language)}强,${localizeStatName(dumpStat, language)}低`;
609
- }
610
- return `${localizeVoiceLabel(profile.voice, language)} · high ${localizeStatName(peakStat, language).toLowerCase()} · low ${localizeStatName(dumpStat, language).toLowerCase()}`;
611
- }
612
- function inferCompanionLanguage(companion) {
613
- return /[\u3400-\u9fff]/u.test(companion.soul.personality) ? "zh" : "en";
614
- }
615
- function splitTokenByDisplayWidth(token, width) {
616
- let head = "";
617
- let used = 0;
618
- const chars = Array.from(token);
619
- for (const char of chars) {
620
- const next = charDisplayWidth(char);
621
- if (used + next > width && head.length > 0) {
622
- break;
623
- }
624
- head += char;
625
- used += next;
626
- if (used >= width) {
627
- break;
628
- }
629
- }
630
- return [head, token.slice(head.length)];
631
- }
632
- function truncateDisplayWidth(value, width) {
633
- const ellipsis = "…";
634
- const target = Math.max(0, width - visibleLength(ellipsis));
635
- let output = "";
636
- let used = 0;
637
- for (const char of Array.from(value)) {
638
- const next = charDisplayWidth(char);
639
- if (used + next > target) {
640
- break;
641
- }
642
- output += char;
643
- used += next;
644
- }
645
- return `${output}${ellipsis}`;
646
- }
647
- function padDisplayWidth(value, width) {
648
- const padding = Math.max(0, width - visibleLength(value));
649
- return `${value}${" ".repeat(padding)}`;
650
- }
651
- function charDisplayWidth(char) {
652
- if (/[\u0300-\u036f]/u.test(char)) {
653
- return 0;
654
- }
655
- if (/[\u1100-\u115f\u2329\u232a\u2e80-\u303e\u3040-\u30ff\u3100-\u312f\u3130-\u318f\u3190-\ua4cf\uac00-\ud7a3\uf900-\ufaff\ufe10-\ufe19\ufe30-\ufe6f\uff00-\uff60\uffe0-\uffe6]/u.test(char)) {
656
- return 2;
657
- }
658
- return 1;
659
- }
660
467
  function hideCursor() {
661
468
  if (process.stdout.isTTY) {
662
469
  process.stdout.write("\u001B[?25l");
@@ -1 +1 @@
1
- {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/runtime/sidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sidecar.js","sourceRoot":"","sources":["../../src/runtime/sidecar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "everybuddy",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "description": "Gacha-hatched terminal companions that live in your tmux. Draw a pet, AI writes its soul, it watches your shell and reacts.",
5
5
  "type": "module",
6
6
  "bin": {
7
- "buddy": "dist/index.js"
7
+ "buddy": "dist/index.js",
8
+ "buddy-cc-statusline": "dist/cc-statusline.js"
8
9
  },
9
10
  "files": [
10
11
  "dist",