atom-lite 0.4.1 → 0.6.2

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 (123) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/README.md +41 -108
  3. package/dist/agent/loop.d.ts +15 -0
  4. package/dist/agent/loop.js +277 -57
  5. package/dist/agent/loop.js.map +1 -1
  6. package/dist/agent/model-turn.d.ts +37 -0
  7. package/dist/agent/model-turn.js +53 -0
  8. package/dist/agent/model-turn.js.map +1 -0
  9. package/dist/agent/system-prompt.d.ts +1 -0
  10. package/dist/agent/system-prompt.js +23 -0
  11. package/dist/agent/system-prompt.js.map +1 -0
  12. package/dist/agent/turn-recorder.d.ts +33 -0
  13. package/dist/agent/turn-recorder.js +74 -0
  14. package/dist/agent/turn-recorder.js.map +1 -0
  15. package/dist/agent/types.d.ts +15 -0
  16. package/dist/cli/app.js +570 -68
  17. package/dist/cli/app.js.map +1 -1
  18. package/dist/cli/commands.d.ts +3 -0
  19. package/dist/cli/commands.js +20 -5
  20. package/dist/cli/commands.js.map +1 -1
  21. package/dist/cli/diff-view.d.ts +18 -0
  22. package/dist/cli/diff-view.js +66 -0
  23. package/dist/cli/diff-view.js.map +1 -0
  24. package/dist/cli/main.js +2 -2
  25. package/dist/cli/main.js.map +1 -1
  26. package/dist/cli/mouse.js +4 -1
  27. package/dist/cli/mouse.js.map +1 -1
  28. package/dist/cli/panel.js +8 -8
  29. package/dist/cli/panel.js.map +1 -1
  30. package/dist/cli/status-line.d.ts +2 -0
  31. package/dist/cli/status-line.js +9 -1
  32. package/dist/cli/status-line.js.map +1 -1
  33. package/dist/cli/stream-text.js +1 -0
  34. package/dist/cli/stream-text.js.map +1 -1
  35. package/dist/cli/theme.d.ts +1 -1
  36. package/dist/cli/theme.js +2 -0
  37. package/dist/cli/theme.js.map +1 -1
  38. package/dist/cli/tool-box.d.ts +1 -1
  39. package/dist/cli/tool-box.js +44 -39
  40. package/dist/cli/tool-box.js.map +1 -1
  41. package/dist/cli/transcript.d.ts +15 -1
  42. package/dist/cli/transcript.js +40 -1
  43. package/dist/cli/transcript.js.map +1 -1
  44. package/dist/cli/trust-prompt.d.ts +24 -0
  45. package/dist/cli/trust-prompt.js +89 -0
  46. package/dist/cli/trust-prompt.js.map +1 -0
  47. package/dist/config/defaults.d.ts +6 -5
  48. package/dist/config/defaults.js +8 -3
  49. package/dist/config/defaults.js.map +1 -1
  50. package/dist/config/load.js +33 -3
  51. package/dist/config/load.js.map +1 -1
  52. package/dist/config/paths.d.ts +2 -0
  53. package/dist/config/paths.js +12 -1
  54. package/dist/config/paths.js.map +1 -1
  55. package/dist/config/schema.d.ts +14 -14
  56. package/dist/config/schema.js +6 -5
  57. package/dist/config/schema.js.map +1 -1
  58. package/dist/context/manager.d.ts +17 -3
  59. package/dist/context/manager.js +129 -41
  60. package/dist/context/manager.js.map +1 -1
  61. package/dist/extensions/api.d.ts +51 -1
  62. package/dist/extensions/api.js +124 -6
  63. package/dist/extensions/api.js.map +1 -1
  64. package/dist/extensions/discovery.d.ts +16 -0
  65. package/dist/extensions/discovery.js +191 -108
  66. package/dist/extensions/discovery.js.map +1 -1
  67. package/dist/extensions/loader.d.ts +42 -1
  68. package/dist/extensions/loader.js +272 -32
  69. package/dist/extensions/loader.js.map +1 -1
  70. package/dist/extensions/session-manager.d.ts +44 -0
  71. package/dist/extensions/session-manager.js +137 -0
  72. package/dist/extensions/session-manager.js.map +1 -0
  73. package/dist/extensions/tool-adapter.d.ts +12 -0
  74. package/dist/extensions/tool-adapter.js +157 -0
  75. package/dist/extensions/tool-adapter.js.map +1 -0
  76. package/dist/extensions/trust.d.ts +2 -0
  77. package/dist/extensions/trust.js +32 -17
  78. package/dist/extensions/trust.js.map +1 -1
  79. package/dist/extensions/types.d.ts +45 -3
  80. package/dist/extensions/ui.d.ts +21 -0
  81. package/dist/extensions/ui.js +75 -0
  82. package/dist/extensions/ui.js.map +1 -0
  83. package/dist/index.d.ts +1 -0
  84. package/dist/index.js +1 -0
  85. package/dist/index.js.map +1 -1
  86. package/dist/mcp/stdio-transport.js +3 -20
  87. package/dist/mcp/stdio-transport.js.map +1 -1
  88. package/dist/runtime/modes.d.ts +3 -0
  89. package/dist/runtime/modes.js +8 -0
  90. package/dist/runtime/modes.js.map +1 -0
  91. package/dist/runtime/scheduler.d.ts +4 -3
  92. package/dist/runtime/scheduler.js +7 -105
  93. package/dist/runtime/scheduler.js.map +1 -1
  94. package/dist/runtime/tool-executor.d.ts +18 -0
  95. package/dist/runtime/tool-executor.js +136 -0
  96. package/dist/runtime/tool-executor.js.map +1 -0
  97. package/dist/security/process.d.ts +10 -0
  98. package/dist/security/process.js +36 -0
  99. package/dist/security/process.js.map +1 -1
  100. package/dist/sessions/store.js +2 -3
  101. package/dist/sessions/store.js.map +1 -1
  102. package/dist/skills/registry.js +8 -1
  103. package/dist/skills/registry.js.map +1 -1
  104. package/dist/tools/bash.js +7 -4
  105. package/dist/tools/bash.js.map +1 -1
  106. package/dist/tools/glob.d.ts +2 -0
  107. package/dist/tools/glob.js +97 -0
  108. package/dist/tools/glob.js.map +1 -0
  109. package/dist/tools/grep.d.ts +2 -0
  110. package/dist/tools/grep.js +290 -0
  111. package/dist/tools/grep.js.map +1 -0
  112. package/dist/tools/index.d.ts +2 -0
  113. package/dist/tools/index.js +2 -0
  114. package/dist/tools/index.js.map +1 -1
  115. package/dist/tools/types.d.ts +8 -0
  116. package/dist/types.d.ts +0 -3
  117. package/dist/types.js +1 -4
  118. package/dist/types.js.map +1 -1
  119. package/package.json +5 -2
  120. package/skills/atom-lite-extensions/SKILL.md +240 -0
  121. package/skills/caveman/SKILL.md +89 -0
  122. package/skills/code-review/SKILL.md +46 -0
  123. package/skills/optimization/SKILL.md +51 -0
@@ -4,6 +4,8 @@ export interface StatusLineParts {
4
4
  left: string;
5
5
  tokens: string;
6
6
  effort: string;
7
+ /** Current agent mode, rendered as "mode:<value>" in the top row. */
8
+ mode?: string;
7
9
  /** Animated agent state, rendered as an optional third row. Already styled. */
8
10
  activity?: string;
9
11
  }
@@ -31,7 +31,15 @@ export class StatusLine {
31
31
  render(width) {
32
32
  const tokens = this.theme.tokens;
33
33
  const contentWidth = Math.max(1, width - 2);
34
- const top = formatStatusLine(tokens.status(this.parts.left), tokens.dim(this.parts.effort), contentWidth);
34
+ const modePart = this.parts.mode
35
+ ? (this.parts.mode === "yolo"
36
+ ? tokens.warning(`mode:${this.parts.mode}`)
37
+ : tokens.accent(`mode:${this.parts.mode}`))
38
+ : "";
39
+ const right = [modePart, tokens.dim(this.parts.effort)]
40
+ .filter(Boolean)
41
+ .join(" ");
42
+ const top = formatStatusLine(tokens.status(this.parts.left), right, contentWidth);
35
43
  const bottom = truncateToWidth(tokens.dim(this.parts.tokens), contentWidth);
36
44
  const rows = [
37
45
  " " + top + " ".repeat(Math.max(0, width - visibleWidth(top) - 1)),
@@ -1 +1 @@
1
- {"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../src/cli/status-line.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AAUnD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,KAAa,EACb,KAAa;IAEb,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACb,OAAO,eAAe,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;AAC9C,CAAC;AAED,wEAAwE;AACxE,MAAM,OAAO,UAAU;IACb,KAAK,GAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC9D,KAAK,CAAQ;IAErB,YAAY,QAAe,SAAS;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAsB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,UAAU;QACR,mBAAmB;IACrB,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5C,MAAM,GAAG,GAAG,gBAAgB,CAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAC9B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAC7B,YAAY,CACb,CAAC;QACF,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAC;QAC5E,MAAM,IAAI,GAAG;YACX,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SACzE,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpE,IAAI,CAAC,IAAI,CACP,GAAG;gBACD,QAAQ;gBACR,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"status-line.js","sourceRoot":"","sources":["../../src/cli/status-line.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ export class StreamText {
52
52
  this.transcript.add(this.live);
53
53
  }
54
54
  this.live.setText(this.buffer);
55
+ this.transcript.invalidate();
55
56
  }
56
57
  }
57
58
  /** Stop this message; its rendered text stays in the transcript. */
@@ -1 +1 @@
1
- {"version":3,"file":"stream-text.js","sourceRoot":"","sources":["../../src/cli/stream-text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-text.js","sourceRoot":"","sources":["../../src/cli/stream-text.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * and makes the choice testable without asserting on raw escape sequences.
7
7
  */
8
8
  export type ThemeMode = "dark" | "light" | "ansi";
9
- export type ThemeToken = "text" | "dim" | "accent" | "success" | "warning" | "error" | "border" | "selection" | "status" | "banner" | "heading" | "link" | "code" | "quote" | "diffAdded" | "diffRemoved" | "diffContext" | "approval";
9
+ export type ThemeToken = "text" | "user" | "dim" | "accent" | "success" | "warning" | "error" | "border" | "selection" | "status" | "banner" | "heading" | "link" | "code" | "quote" | "diffAdded" | "diffRemoved" | "diffContext" | "approval";
10
10
  export type ThemeStyle = (text: string) => string;
11
11
  export interface Theme {
12
12
  /** Name recorded in config (never "auto"; auto resolves to dark/light). */
package/dist/cli/theme.js CHANGED
@@ -13,6 +13,7 @@ const identity = (text) => text;
13
13
  function tokens(overrides) {
14
14
  const base = {
15
15
  text: identity,
16
+ user: sgr("34"),
16
17
  dim: sgr("2"),
17
18
  accent: sgr("36"),
18
19
  success: sgr("32"),
@@ -83,6 +84,7 @@ export const ansiTheme = {
83
84
  mode: "ansi",
84
85
  tokens: tokens({
85
86
  text: identity,
87
+ user: identity,
86
88
  dim: identity,
87
89
  accent: identity,
88
90
  success: identity,
@@ -1 +1 @@
1
- {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/cli/theme.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export declare class ToolBox implements Component {
23
23
  status: ToolStatus;
24
24
  private expanded;
25
25
  private outputLines;
26
- private outputIsDiff;
26
+ private diffLines;
27
27
  private liveBuffer;
28
28
  private startedAt;
29
29
  private finishedAt;
@@ -1,4 +1,6 @@
1
- import { cyan, dim, green, panelBottom, panelRow, panelTop, red, yellow, wrapPanelText, } from "./panel.js";
1
+ import { cyan, dim, green, red, yellow, } from "./panel.js";
2
+ import { wrapTextWithAnsi, visibleWidth } from "@earendil-works/pi-tui";
3
+ import { DiffView } from "./diff-view.js";
2
4
  const LIVE_TAIL_LINES = 8;
3
5
  const EXPANDED_LINE_LIMIT = 600;
4
6
  function singleLine(text) {
@@ -28,17 +30,6 @@ function formatDuration(ms) {
28
30
  const seconds = Math.floor((ms % 60_000) / 1000);
29
31
  return `${minutes}m ${String(seconds).padStart(2, "0")}s`;
30
32
  }
31
- function colorizeDiff(line) {
32
- if (line.startsWith("+++") || line.startsWith("---"))
33
- return dim(line);
34
- if (line.startsWith("+"))
35
- return green(line);
36
- if (line.startsWith("-"))
37
- return red(line);
38
- if (line.startsWith("@@"))
39
- return cyan(line);
40
- return line;
41
- }
42
33
  function tail(items, count) {
43
34
  return items.length <= count ? items : items.slice(items.length - count);
44
35
  }
@@ -54,7 +45,7 @@ export class ToolBox {
54
45
  status = "running";
55
46
  expanded = false;
56
47
  outputLines = [];
57
- outputIsDiff = false;
48
+ diffLines;
58
49
  liveBuffer = "";
59
50
  startedAt = Date.now();
60
51
  finishedAt;
@@ -77,8 +68,8 @@ export class ToolBox {
77
68
  this.status = options.isError ? "error" : "done";
78
69
  this.finishedAt = Date.now();
79
70
  this.liveBuffer = "";
80
- this.outputIsDiff = Array.isArray(options.diff);
81
- this.outputLines = options.diff ?? content.split("\n");
71
+ this.diffLines = Array.isArray(options.diff) ? options.diff : undefined;
72
+ this.outputLines = this.diffLines ? [] : content.split("\n");
82
73
  }
83
74
  appendLive(text) {
84
75
  this.liveBuffer += text;
@@ -92,25 +83,48 @@ export class ToolBox {
92
83
  // No cached render state.
93
84
  }
94
85
  render(width) {
95
- const panelWidth = Math.max(8, Math.floor(width));
86
+ const w = Math.max(8, Math.floor(width));
87
+ const TOOL_BG = "\x1b[48;5;236m";
88
+ const TOOL_BG_RESET = "\x1b[49m";
89
+ const fill = (line) => {
90
+ const pad = Math.max(0, w - visibleWidth(line));
91
+ return `${TOOL_BG}${line}${" ".repeat(pad)}${TOOL_BG_RESET}`;
92
+ };
96
93
  const lines = [];
97
94
  const callColor = this.status === "error" ? red : cyan;
98
95
  const title = this.title();
99
- lines.push(panelTop(title, panelWidth, callColor));
96
+ lines.push(fill(` ${callColor(title)}`));
97
+ lines.push(fill(""));
100
98
  const preview = formatToolArgs(this.name, this.args);
101
99
  if (preview) {
102
- for (const line of wrapPanelText(preview, panelWidth)) {
103
- lines.push(panelRow(` ${dim(line)}`, panelWidth, callColor));
100
+ for (const line of wrapTextWithAnsi(preview, w - 2)) {
101
+ lines.push(fill(` ${dim(line)}`));
104
102
  }
103
+ lines.push(fill(""));
105
104
  }
106
105
  if (this.status === "running" && !this.liveBuffer) {
107
- lines.push(panelRow(` ${dim("waiting for output…")}`, panelWidth, callColor));
106
+ lines.push(fill(` ${dim("waiting for output…")}`));
107
+ lines.push(fill(""));
108
+ }
109
+ if (this.diffLines) {
110
+ const view = new DiffView({ lines: this.diffLines, path: typeof this.args?.path === "string"
111
+ ? this.args.path
112
+ : typeof this.args?.file === "string"
113
+ ? this.args.file
114
+ : typeof this.args?.file_path === "string"
115
+ ? this.args.file_path
116
+ : undefined,
117
+ });
118
+ // Render diff lines with bg fill by re-wrapping view output? view already fills.
119
+ lines.push(...view.render(width));
108
120
  }
109
- lines.push(panelBottom(panelWidth, callColor));
110
- const output = this.renderedOutput();
111
- if (output.length > 0) {
112
- lines.push(...this.renderOutput(output, width));
121
+ else {
122
+ const output = this.renderedOutput();
123
+ if (output.length > 0) {
124
+ lines.push(...this.renderOutput(output, width, fill));
125
+ }
113
126
  }
127
+ lines.push(fill(""));
114
128
  return lines;
115
129
  }
116
130
  title() {
@@ -134,14 +148,6 @@ export class ToolBox {
134
148
  }
135
149
  return visible;
136
150
  }
137
- if (this.outputIsDiff) {
138
- const added = this.outputLines.filter((line) => line.startsWith("+") && !line.startsWith("+++")).length;
139
- const removed = this.outputLines.filter((line) => line.startsWith("-") && !line.startsWith("---")).length;
140
- if (!this.expanded) {
141
- return [dim(`+${added} -${removed} · ctrl+o to expand`)];
142
- }
143
- return this.outputLines.map(colorizeDiff);
144
- }
145
151
  if (!this.expanded) {
146
152
  return [dim(`(${this.outputLines.length} lines · ctrl+o to expand)`)];
147
153
  }
@@ -154,23 +160,22 @@ export class ToolBox {
154
160
  }
155
161
  return this.outputLines;
156
162
  }
157
- renderOutput(output, width) {
158
- const indent = width > 10 ? " " : "";
159
- const outputWidth = Math.max(6, Math.floor(width) - indent.length);
163
+ renderOutput(output, width, fill) {
164
+ const w = Math.max(8, Math.floor(width));
160
165
  const color = this.status === "error"
161
166
  ? red
162
167
  : this.status === "running"
163
168
  ? yellow
164
169
  : green;
165
170
  const label = this.status === "running" ? "output · live" : "output";
166
- const lines = [indent + panelTop(label, outputWidth, color)];
171
+ const lines = [];
172
+ lines.push(fill(` ${color(label)}`));
167
173
  for (const raw of output) {
168
174
  const content = raw.length === 0 ? "" : raw;
169
- for (const line of wrapPanelText(content, outputWidth)) {
170
- lines.push(indent + panelRow(` ${line}`, outputWidth, color));
175
+ for (const line of wrapTextWithAnsi(content, w - 2)) {
176
+ lines.push(fill(` ${line}`));
171
177
  }
172
178
  }
173
- lines.push(indent + panelBottom(outputWidth, color));
174
179
  return lines;
175
180
  }
176
181
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-box.js","sourceRoot":"","sources":["../../src/cli/tool-box.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-box.js","sourceRoot":"","sources":["../../src/cli/tool-box.ts"],"names":[],"mappings":"AACA,OAAO,EACL,IAAI,EACJ,GAAG,EACH,KAAK,EACL,GAAG,EACH,MAAM,GAEP,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAe1C,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAC5B,IAAY,EACZ,IAAyC;IAEzC,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IACrB,IAAI,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,OAAO,GAAG,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnC,CAAC;AAED,SAAS,cAAc,CAAC,EAAU;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC;IACzD,IAAI,EAAE,GAAG,MAAM;QAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACjD,OAAO,GAAG,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;AAC5D,CAAC;AAED,SAAS,IAAI,CAAI,KAAU,EAAE,KAAa;IACxC,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,OAAO;IACT,EAAE,CAAS;IACX,IAAI,CAAS;IACb,IAAI,CAAsC;IACnD,MAAM,GAAe,SAAS,CAAC;IACvB,QAAQ,GAAG,KAAK,CAAC;IACjB,WAAW,GAAa,EAAE,CAAC;IAC3B,SAAS,CAAuB;IAChC,UAAU,GAAG,EAAE,CAAC;IAChB,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,UAAU,CAAqB;IAEvC,YAAY,OAAuB;QACjC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,QAAiB;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,OAAe,EAAE,UAA6B,EAAE;QACxD,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,IAAY;QACrB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;QACxB,2EAA2E;QAC3E,0EAA0E;QAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,UAAU;QACR,0BAA0B;IAC5B,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,gBAAgB,CAAC;QACjC,MAAM,aAAa,GAAG,UAAU,CAAC;QACjC,MAAM,IAAI,GAAG,CAAC,IAAY,EAAU,EAAE;YACpC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,EAAE,CAAC;QAC/D,CAAC,CAAC;QAEF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAErB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EACrD,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ;oBACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAChB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,QAAQ;wBACnC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBAChB,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ;4BACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS;4BACrB,CAAC,CAAC,SAAS;aAClB,CAAC,CAAC;YACH,iFAAiF;YACjF,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK;QACX,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,KAAK,IAAI,CAAC,IAAI,YAAY,CAAC;QACpC,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAC5B,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CACjD,CAAC;QACF,OAAO,GAAG,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC;IAC5E,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO;oBACL,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,gBAAgB,CAAC;oBACtD,GAAG,OAAO;iBACX,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,4BAA4B,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,mBAAmB,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC7D,OAAO;gBACL,GAAG,KAAK;gBACR,GAAG,CACD,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,mBAAmB,oBAAoB,CACvE;aACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEO,YAAY,CAAC,MAAgB,EAAE,KAAa,EAAE,IAA8B;QAClF,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,KAAK,OAAO;YACrB,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;gBACzB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,KAAK,CAAC;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;YAC5C,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACpD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -8,13 +8,26 @@ export declare const TRANSCRIPT_PRUNE_COUNT = 500;
8
8
  * Append-only transcript with bounded rendering work. The session store keeps
9
9
  * the full history; this only limits what the TUI keeps as live components.
10
10
  */
11
+ declare class TranscriptContainer extends Container {
12
+ version: number;
13
+ private cachedVersion;
14
+ private cachedWidth;
15
+ private cachedLines;
16
+ bump(): void;
17
+ addChild(component: Component): void;
18
+ removeChild(component: Component): void;
19
+ clear(): void;
20
+ render(width: number): string[];
21
+ }
11
22
  export declare class Transcript {
12
- readonly container: Container;
23
+ readonly container: TranscriptContainer;
13
24
  private hidden;
14
25
  private marker;
15
26
  private theme;
16
27
  constructor(theme?: Theme);
17
28
  setTheme(theme: Theme): void;
29
+ /** Invalidate the rendered-line cache after a child mutates in place. */
30
+ invalidate(): void;
18
31
  /** Clear all history and pruning state, e.g. when resuming a session. */
19
32
  reset(): void;
20
33
  get hiddenCount(): number;
@@ -24,3 +37,4 @@ export declare class Transcript {
24
37
  private markerLabel;
25
38
  private pruneIfNeeded;
26
39
  }
40
+ export {};
@@ -8,8 +8,40 @@ export const TRANSCRIPT_PRUNE_COUNT = 500;
8
8
  * Append-only transcript with bounded rendering work. The session store keeps
9
9
  * the full history; this only limits what the TUI keeps as live components.
10
10
  */
11
+ class TranscriptContainer extends Container {
12
+ version = 0;
13
+ cachedVersion = -1;
14
+ cachedWidth = -1;
15
+ cachedLines = [];
16
+ bump() {
17
+ this.version++;
18
+ this.cachedVersion = -1;
19
+ }
20
+ addChild(component) {
21
+ super.addChild(component);
22
+ this.bump();
23
+ }
24
+ removeChild(component) {
25
+ super.removeChild(component);
26
+ this.bump();
27
+ }
28
+ clear() {
29
+ super.clear();
30
+ this.bump();
31
+ }
32
+ render(width) {
33
+ if (this.cachedVersion === this.version && this.cachedWidth === width) {
34
+ return this.cachedLines;
35
+ }
36
+ const lines = super.render(width);
37
+ this.cachedLines = lines;
38
+ this.cachedWidth = width;
39
+ this.cachedVersion = this.version;
40
+ return lines;
41
+ }
42
+ }
11
43
  export class Transcript {
12
- container = new Container();
44
+ container = new TranscriptContainer();
13
45
  hidden = 0;
14
46
  marker = null;
15
47
  theme;
@@ -21,6 +53,11 @@ export class Transcript {
21
53
  if (this.marker) {
22
54
  this.marker.setText(this.markerLabel());
23
55
  }
56
+ this.container.bump();
57
+ }
58
+ /** Invalidate the rendered-line cache after a child mutates in place. */
59
+ invalidate() {
60
+ this.container.bump();
24
61
  }
25
62
  /** Clear all history and pruning state, e.g. when resuming a session. */
26
63
  reset() {
@@ -34,6 +71,7 @@ export class Transcript {
34
71
  add(child) {
35
72
  this.container.addChild(child);
36
73
  this.pruneIfNeeded();
74
+ this.container.bump();
37
75
  }
38
76
  /** Add a plain transcript line using the theme's text token. */
39
77
  addLine(text) {
@@ -59,6 +97,7 @@ export class Transcript {
59
97
  this.marker = new Text(label);
60
98
  this.container.children.unshift(this.marker);
61
99
  }
100
+ this.container.bump();
62
101
  }
63
102
  }
64
103
  //# sourceMappingURL=transcript.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/cli/transcript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAkB,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAc,MAAM,YAAY,CAAC;AAEnD,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,UAAU;IACZ,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAC7B,MAAM,GAAG,CAAC,CAAC;IACX,MAAM,GAAgB,IAAI,CAAC;IAC3B,KAAK,CAAQ;IAErB,YAAY,QAAe,SAAS;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,QAAQ,CAAC,KAAY;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,KAAgB;QAClB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,gEAAgE;IAChE,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,WAAW;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAC1B,KAAK,IAAI,CAAC,MAAM,sDAAsD,CACvE,CAAC;IACJ,CAAC;IAEO,aAAa;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,IAAI,uBAAuB;YACnE,OAAO;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,sBAAsB,EACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAC3C,CAAC;QACF,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO;QAE3B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/cli/transcript.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { type Component } from "@earendil-works/pi-tui";
2
+ export interface TrustReviewEntry {
3
+ id: string;
4
+ entryPath: string;
5
+ version?: string;
6
+ capabilities: string[];
7
+ }
8
+ export type ProjectTrustDecision = "approve" | "deny";
9
+ /**
10
+ * Modal review for project-local extensions. It defaults to deny and captures
11
+ * input directly so the editor underneath cannot receive the decision keys.
12
+ */
13
+ export declare class ProjectTrustPrompt implements Component {
14
+ private readonly entries;
15
+ private readonly cwd;
16
+ private readonly onDecision;
17
+ private selected;
18
+ private settled;
19
+ constructor(entries: TrustReviewEntry[], cwd: string, onDecision: (decision: ProjectTrustDecision) => void);
20
+ invalidate(): void;
21
+ handleInput(data: string): void;
22
+ render(width: number): string[];
23
+ private finish;
24
+ }
@@ -0,0 +1,89 @@
1
+ import { decodeKittyPrintable, isKeyRelease, matchesKey, wrapTextWithAnsi, } from "@earendil-works/pi-tui";
2
+ import { cyan, dim, panelBottom, panelRow, panelTop, red, yellow, } from "./panel.js";
3
+ /**
4
+ * Modal review for project-local extensions. It defaults to deny and captures
5
+ * input directly so the editor underneath cannot receive the decision keys.
6
+ */
7
+ export class ProjectTrustPrompt {
8
+ entries;
9
+ cwd;
10
+ onDecision;
11
+ selected = 1; // Safe default: deny.
12
+ settled = false;
13
+ constructor(entries, cwd, onDecision) {
14
+ this.entries = entries;
15
+ this.cwd = cwd;
16
+ this.onDecision = onDecision;
17
+ }
18
+ invalidate() {
19
+ // No cached state.
20
+ }
21
+ handleInput(data) {
22
+ if (this.settled || isKeyRelease(data))
23
+ return;
24
+ if (matchesKey(data, "left")) {
25
+ this.selected = 0;
26
+ return;
27
+ }
28
+ if (matchesKey(data, "right")) {
29
+ this.selected = 1;
30
+ return;
31
+ }
32
+ const key = (decodeKittyPrintable(data) ?? (data.length === 1 ? data : undefined))?.toLowerCase();
33
+ if (key === "y")
34
+ return this.finish("approve");
35
+ if (key === "n")
36
+ return this.finish("deny");
37
+ if (matchesKey(data, "enter") || matchesKey(data, "space")) {
38
+ return this.finish(this.selected === 0 ? "approve" : "deny");
39
+ }
40
+ if (matchesKey(data, "escape") || matchesKey(data, "ctrl+c")) {
41
+ return this.finish("deny");
42
+ }
43
+ }
44
+ render(width) {
45
+ const panelWidth = Math.max(8, Math.floor(width));
46
+ const inner = panelWidth - 4;
47
+ const lines = [
48
+ panelTop("project extensions need approval", panelWidth, yellow),
49
+ ];
50
+ for (const line of wrapTextWithAnsi(this.cwd, inner)) {
51
+ lines.push(panelRow(` ${dim(line)}`, panelWidth, yellow));
52
+ }
53
+ for (const entry of this.entries) {
54
+ const label = entry.version
55
+ ? `${entry.id} ${dim(`v${entry.version}`)}`
56
+ : entry.id;
57
+ lines.push(panelRow(` ${cyan(label)}`, panelWidth, yellow));
58
+ for (const line of wrapTextWithAnsi(entry.entryPath, inner)) {
59
+ lines.push(panelRow(` ${dim(line)}`, panelWidth, yellow));
60
+ }
61
+ const capabilities = entry.capabilities.length > 0
62
+ ? entry.capabilities.join(", ")
63
+ : "no declared capabilities";
64
+ for (const line of wrapTextWithAnsi(capabilities, inner)) {
65
+ lines.push(panelRow(` ${dim(line)}`, panelWidth, yellow));
66
+ }
67
+ }
68
+ lines.push(panelRow(` ${dim("only approve projects you trust; extensions run with your permissions")}`, panelWidth, yellow));
69
+ const choices = [
70
+ { label: "[y] Approve", color: cyan, active: this.selected === 0 },
71
+ { label: "[n] Deny", color: red, active: this.selected === 1 },
72
+ ]
73
+ .map((choice) => choice.active
74
+ ? `\x1b[7m${choice.color(choice.label)}\x1b[0m`
75
+ : choice.color(choice.label))
76
+ .join(" ");
77
+ lines.push(panelRow(` ${choices}`, panelWidth, yellow));
78
+ lines.push(panelRow(` ${dim("←/→ select · Enter confirm · Esc deny")}`, panelWidth, yellow));
79
+ lines.push(panelBottom(panelWidth, yellow));
80
+ return lines;
81
+ }
82
+ finish(decision) {
83
+ if (this.settled)
84
+ return;
85
+ this.settled = true;
86
+ this.onDecision(decision);
87
+ }
88
+ }
89
+ //# sourceMappingURL=trust-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trust-prompt.js","sourceRoot":"","sources":["../../src/cli/trust-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,UAAU,EAEV,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,IAAI,EACJ,GAAG,EACH,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,EACH,MAAM,GACP,MAAM,YAAY,CAAC;AAUpB;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAKV;IACA;IACA;IANX,QAAQ,GAAG,CAAC,CAAC,CAAC,sBAAsB;IACpC,OAAO,GAAG,KAAK,CAAC;IAExB,YACmB,OAA2B,EAC3B,GAAW,EACX,UAAoD;QAFpD,YAAO,GAAP,OAAO,CAAoB;QAC3B,QAAG,GAAH,GAAG,CAAQ;QACX,eAAU,GAAV,UAAU,CAA0C;IACpE,CAAC;IAEJ,UAAU;QACR,mBAAmB;IACrB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,IAAI,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO;QAE/C,IAAI,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,CACV,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CACrE,EAAE,WAAW,EAAE,CAAC;QACjB,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,GAAG,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAa;YACtB,QAAQ,CAAC,kCAAkC,EAAE,UAAU,EAAE,MAAM,CAAC;SACjE,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;YACrD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO;gBACzB,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;gBAC3C,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC5D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,MAAM,YAAY,GAChB,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/B,CAAC,CAAC,0BAA0B,CAAC;YACjC,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBACzD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CACR,QAAQ,CACN,IAAI,GAAG,CAAC,uEAAuE,CAAC,EAAE,EAClF,UAAU,EACV,MAAM,CACP,CACF,CAAC;QACF,MAAM,OAAO,GAAG;YACd,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;YAClE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;SAC/D;aACE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACd,MAAM,CAAC,MAAM;YACX,CAAC,CAAC,UAAU,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;YAC/C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAC/B;aACA,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CACR,QAAQ,CACN,IAAI,GAAG,CAAC,uCAAuC,CAAC,EAAE,EAClD,UAAU,EACV,MAAM,CACP,CACF,CAAC;QACF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,QAA8B;QAC3C,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -2,20 +2,20 @@ export declare const DEFAULT_CONFIG: {
2
2
  defaultProvider: string;
3
3
  providers: Record<string, unknown>;
4
4
  runtime: {
5
- bashConcurrency: string;
6
- approvalMode: string;
7
- maxIterations: number;
8
- maxToolCalls: number;
9
- maxExecutionMs: number;
10
5
  maxParallelToolCalls: number;
11
6
  maxToolOutputBytes: number;
12
7
  maxBashTimeMs: number;
8
+ bashConcurrency: string;
9
+ mode: string;
10
+ maxTokensPerSession: number | null;
11
+ maxTokensPerTurn: number | null;
13
12
  };
14
13
  context: {
15
14
  maxInputTokens: number | null;
16
15
  reserveOutputTokens: number;
17
16
  compactAtPercent: number;
18
17
  maxProjectInstructionBytes: number;
18
+ compactEveryNTurns: number;
19
19
  };
20
20
  sessions: {
21
21
  enabled: boolean;
@@ -30,5 +30,6 @@ export declare const DEFAULT_CONFIG: {
30
30
  mcpServers: Record<string, unknown>;
31
31
  extensions: {
32
32
  trustedProjects: string[];
33
+ deniedProjects: string[];
33
34
  };
34
35
  };
@@ -1,4 +1,3 @@
1
- import { DEFAULT_LIMITS } from "../types.js";
2
1
  export const DEFAULT_CONFIG = {
3
2
  defaultProvider: "kilo",
4
3
  providers: {
@@ -10,15 +9,20 @@ export const DEFAULT_CONFIG = {
10
9
  },
11
10
  },
12
11
  runtime: {
13
- ...DEFAULT_LIMITS,
12
+ maxParallelToolCalls: 10,
13
+ maxToolOutputBytes: 30000,
14
+ maxBashTimeMs: 120000,
14
15
  bashConcurrency: "serial",
15
- approvalMode: "ask",
16
+ mode: "plan",
17
+ maxTokensPerSession: null,
18
+ maxTokensPerTurn: null,
16
19
  },
17
20
  context: {
18
21
  maxInputTokens: null,
19
22
  reserveOutputTokens: 4096,
20
23
  compactAtPercent: 85,
21
24
  maxProjectInstructionBytes: 30000,
25
+ compactEveryNTurns: 0,
22
26
  },
23
27
  sessions: { enabled: true, retentionDays: null },
24
28
  ui: {
@@ -30,6 +34,7 @@ export const DEFAULT_CONFIG = {
30
34
  mcpServers: {},
31
35
  extensions: {
32
36
  trustedProjects: [],
37
+ deniedProjects: [],
33
38
  },
34
39
  };
35
40
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,iCAAiC;YAC1C,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,IAAI;SAChB;KACyB;IAC5B,OAAO,EAAE;QACP,GAAG,cAAc;QACjB,eAAe,EAAE,QAAQ;QACzB,YAAY,EAAE,KAAK;KACpB;IACD,OAAO,EAAE;QACP,cAAc,EAAE,IAAqB;QACrC,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,EAAE;QACpB,0BAA0B,EAAE,KAAK;KAClC;IACD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAqB,EAAE;IACjE,EAAE,EAAE;QACF,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,IAAI;KACnB;IACD,UAAU,EAAE,EAA6B;IACzC,UAAU,EAAE;QACV,eAAe,EAAE,EAAc;KAChC;CACF,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE;QACT,IAAI,EAAE;YACJ,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,iCAAiC;YAC1C,KAAK,EAAE,gBAAgB;YACvB,SAAS,EAAE,IAAI;SAChB;KACyB;IAC5B,OAAO,EAAE;QACP,oBAAoB,EAAE,EAAE;QACxB,kBAAkB,EAAE,KAAK;QACzB,aAAa,EAAE,MAAM;QACrB,eAAe,EAAE,QAAQ;QACzB,IAAI,EAAE,MAAM;QACZ,mBAAmB,EAAE,IAAqB;QAC1C,gBAAgB,EAAE,IAAqB;KACxC;IACD,OAAO,EAAE;QACP,cAAc,EAAE,IAAqB;QACrC,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,EAAE;QACpB,0BAA0B,EAAE,KAAK;QACjC,kBAAkB,EAAE,CAAC;KACtB;IACD,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,IAAqB,EAAE;IACjE,EAAE,EAAE;QACF,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,YAAY,EAAE,IAAI;KACnB;IACD,UAAU,EAAE,EAA6B;IACzC,UAAU,EAAE;QACV,eAAe,EAAE,EAAc;QAC/B,cAAc,EAAE,EAAc;KAC/B;CACF,CAAC"}