@prestyj/cli 4.2.46 → 4.2.56

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 (103) hide show
  1. package/dist/cli.js +126 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/core/compaction/compactor.d.ts +8 -4
  4. package/dist/core/compaction/compactor.d.ts.map +1 -1
  5. package/dist/core/compaction/compactor.js +181 -25
  6. package/dist/core/compaction/compactor.js.map +1 -1
  7. package/dist/core/compaction/compactor.test.js +6 -4
  8. package/dist/core/compaction/compactor.test.js.map +1 -1
  9. package/dist/core/slash-commands.d.ts.map +1 -1
  10. package/dist/core/slash-commands.js +54 -0
  11. package/dist/core/slash-commands.js.map +1 -1
  12. package/dist/core/telegram.d.ts +19 -0
  13. package/dist/core/telegram.d.ts.map +1 -1
  14. package/dist/core/telegram.js +22 -0
  15. package/dist/core/telegram.js.map +1 -1
  16. package/dist/core/voice-transcriber.d.ts +33 -0
  17. package/dist/core/voice-transcriber.d.ts.map +1 -0
  18. package/dist/core/voice-transcriber.js +113 -0
  19. package/dist/core/voice-transcriber.js.map +1 -0
  20. package/dist/core/voice-transcriber.test.d.ts +2 -0
  21. package/dist/core/voice-transcriber.test.d.ts.map +1 -0
  22. package/dist/core/voice-transcriber.test.js +88 -0
  23. package/dist/core/voice-transcriber.test.js.map +1 -0
  24. package/dist/modes/serve-mode.d.ts.map +1 -1
  25. package/dist/modes/serve-mode.js +37 -0
  26. package/dist/modes/serve-mode.js.map +1 -1
  27. package/dist/tools/edit-diff.test.d.ts +2 -0
  28. package/dist/tools/edit-diff.test.d.ts.map +1 -0
  29. package/dist/tools/edit-diff.test.js +67 -0
  30. package/dist/tools/edit-diff.test.js.map +1 -0
  31. package/dist/tools/edit.test.d.ts +2 -0
  32. package/dist/tools/edit.test.d.ts.map +1 -0
  33. package/dist/tools/edit.test.js +93 -0
  34. package/dist/tools/edit.test.js.map +1 -0
  35. package/dist/tools/path-utils.test.d.ts +2 -0
  36. package/dist/tools/path-utils.test.d.ts.map +1 -0
  37. package/dist/tools/path-utils.test.js +49 -0
  38. package/dist/tools/path-utils.test.js.map +1 -0
  39. package/dist/tools/plan-mode.test.js.map +1 -1
  40. package/dist/tools/read.test.d.ts +2 -0
  41. package/dist/tools/read.test.d.ts.map +1 -0
  42. package/dist/tools/read.test.js +81 -0
  43. package/dist/tools/read.test.js.map +1 -0
  44. package/dist/tools/truncate-utils.test.d.ts +2 -0
  45. package/dist/tools/truncate-utils.test.d.ts.map +1 -0
  46. package/dist/tools/truncate-utils.test.js +93 -0
  47. package/dist/tools/truncate-utils.test.js.map +1 -0
  48. package/dist/tools/write.test.js +65 -52
  49. package/dist/tools/write.test.js.map +1 -1
  50. package/dist/ui/App.d.ts +7 -1
  51. package/dist/ui/App.d.ts.map +1 -1
  52. package/dist/ui/App.js +48 -12
  53. package/dist/ui/App.js.map +1 -1
  54. package/dist/ui/activity-phrases.d.ts +10 -0
  55. package/dist/ui/activity-phrases.d.ts.map +1 -0
  56. package/dist/ui/activity-phrases.js +227 -0
  57. package/dist/ui/activity-phrases.js.map +1 -0
  58. package/dist/ui/components/ActivityIndicator.d.ts.map +1 -1
  59. package/dist/ui/components/ActivityIndicator.js +1 -225
  60. package/dist/ui/components/ActivityIndicator.js.map +1 -1
  61. package/dist/ui/components/Banner.d.ts.map +1 -1
  62. package/dist/ui/components/Banner.js +10 -1
  63. package/dist/ui/components/Banner.js.map +1 -1
  64. package/dist/ui/components/Footer.d.ts.map +1 -1
  65. package/dist/ui/components/Footer.js +27 -17
  66. package/dist/ui/components/Footer.js.map +1 -1
  67. package/dist/ui/components/InputArea.d.ts.map +1 -1
  68. package/dist/ui/components/InputArea.js +583 -59
  69. package/dist/ui/components/InputArea.js.map +1 -1
  70. package/dist/ui/components/Markdown.d.ts +5 -1
  71. package/dist/ui/components/Markdown.d.ts.map +1 -1
  72. package/dist/ui/components/Markdown.js +14 -6
  73. package/dist/ui/components/Markdown.js.map +1 -1
  74. package/dist/ui/components/PlanApproval.d.ts.map +1 -1
  75. package/dist/ui/components/PlanApproval.js +17 -1
  76. package/dist/ui/components/PlanApproval.js.map +1 -1
  77. package/dist/ui/components/PlanBanner.d.ts.map +1 -1
  78. package/dist/ui/components/PlanBanner.js +18 -1
  79. package/dist/ui/components/PlanBanner.js.map +1 -1
  80. package/dist/ui/components/PlanOverlay.d.ts.map +1 -1
  81. package/dist/ui/components/PlanOverlay.js +43 -12
  82. package/dist/ui/components/PlanOverlay.js.map +1 -1
  83. package/dist/ui/components/SkillsOverlay.d.ts.map +1 -1
  84. package/dist/ui/components/SkillsOverlay.js +5 -1
  85. package/dist/ui/components/SkillsOverlay.js.map +1 -1
  86. package/dist/ui/components/TaskOverlay.d.ts.map +1 -1
  87. package/dist/ui/components/TaskOverlay.js +5 -1
  88. package/dist/ui/components/TaskOverlay.js.map +1 -1
  89. package/dist/ui/components/ToolExecution.js +1 -1
  90. package/dist/ui/components/ToolExecution.js.map +1 -1
  91. package/dist/ui/hooks/useTerminalSize.d.ts +7 -7
  92. package/dist/ui/hooks/useTerminalSize.d.ts.map +1 -1
  93. package/dist/ui/hooks/useTerminalSize.js +25 -12
  94. package/dist/ui/hooks/useTerminalSize.js.map +1 -1
  95. package/dist/ui/hooks/useTerminalTitle.d.ts +8 -1
  96. package/dist/ui/hooks/useTerminalTitle.d.ts.map +1 -1
  97. package/dist/ui/hooks/useTerminalTitle.js +19 -22
  98. package/dist/ui/hooks/useTerminalTitle.js.map +1 -1
  99. package/dist/ui/plan-overlay.test.d.ts +2 -0
  100. package/dist/ui/plan-overlay.test.d.ts.map +1 -0
  101. package/dist/ui/plan-overlay.test.js +327 -0
  102. package/dist/ui/plan-overlay.test.js.map +1 -0
  103. package/package.json +6 -4
package/dist/cli.js CHANGED
@@ -54,12 +54,133 @@ import chalk from "chalk";
54
54
  import { checkAndAutoUpdate } from "./core/auto-update.js";
55
55
  const _require = createRequire(import.meta.url);
56
56
  const CLI_VERSION = _require("../package.json").version;
57
+ // ── Logo + gradient (mirrors Banner.tsx) ────────────────────────────
58
+ const LOGO_LINES = [
59
+ " \u2588\u2580\u2580\u2580 \u2580\u2580\u2580\u2588",
60
+ " \u2588\u2580\u2580 \u2584\u2580 ",
61
+ " \u2588\u2584\u2584\u2584 \u2588\u2584\u2584\u2584",
62
+ ];
63
+ const GRADIENT = [
64
+ "#60a5fa",
65
+ "#6da1f9",
66
+ "#7a9df7",
67
+ "#8799f5",
68
+ "#9495f3",
69
+ "#a18ff1",
70
+ "#a78bfa",
71
+ "#a18ff1",
72
+ "#9495f3",
73
+ "#8799f5",
74
+ "#7a9df7",
75
+ "#6da1f9",
76
+ ];
77
+ function gradientLine(text) {
78
+ let result = "";
79
+ let colorIdx = 0;
80
+ for (const ch of text) {
81
+ if (ch === " ") {
82
+ result += ch;
83
+ }
84
+ else {
85
+ result += chalk.hex(GRADIENT[colorIdx % GRADIENT.length])(ch);
86
+ colorIdx++;
87
+ }
88
+ }
89
+ return result;
90
+ }
91
+ function printHelp() {
92
+ // Clear screen for a clean look, consistent with the TUI startup
93
+ process.stdout.write("\x1b[2J\x1b[3J\x1b[H");
94
+ const dim = chalk.dim;
95
+ const primary = chalk.hex("#60a5fa");
96
+ const accent = chalk.hex("#a78bfa");
97
+ const bold = chalk.bold;
98
+ const gap = " ";
99
+ // Banner — matches the Ink Banner component layout
100
+ console.log();
101
+ console.log(gradientLine(LOGO_LINES[0]) +
102
+ gap +
103
+ primary.bold("EZ Coder") +
104
+ dim(` v${CLI_VERSION}`) +
105
+ dim(" · By ") +
106
+ bold("Nolan Grout"));
107
+ console.log(gradientLine(LOGO_LINES[1]) + gap + dim("AI coding agent"));
108
+ console.log(gradientLine(LOGO_LINES[2]));
109
+ console.log();
110
+ // Usage
111
+ console.log(primary("Usage:") + " ezcoder " + dim("[options]") + " " + dim("[prompt]"));
112
+ console.log();
113
+ // Commands
114
+ console.log(primary("Commands:"));
115
+ const cmds = [
116
+ ["login", "Log in to an AI provider (Anthropic, OpenAI)"],
117
+ ["logout", "Log out and clear stored credentials"],
118
+ ["sessions", "Browse and resume previous sessions"],
119
+ ["continue", "Resume the most recent session"],
120
+ ["serve", "Start the HTTP/WebSocket API server"],
121
+ ["telegram", "Configure Telegram bot integration"],
122
+ ];
123
+ for (const [name, desc] of cmds) {
124
+ console.log(` ${accent(name.padEnd(20))} ${dim(desc)}`);
125
+ }
126
+ console.log();
127
+ // Options
128
+ console.log(primary("Options:"));
129
+ const opts = [
130
+ ["-h, --help", "Show this help message"],
131
+ ["-v, --version", "Show version number"],
132
+ ["--provider <name>", "AI provider (anthropic, openai)"],
133
+ ["--model <name>", "Model to use (e.g. claude-sonnet-4-6, gpt-4.1)"],
134
+ ["--max-turns <n>", "Maximum agent turns per prompt"],
135
+ ["--system-prompt <text>", "Override the system prompt"],
136
+ ["--json", "JSON output mode (for sub-agents)"],
137
+ ["--rpc", "JSON-RPC mode (for IDE integrations)"],
138
+ ];
139
+ for (const [flag, desc] of opts) {
140
+ console.log(` ${accent(flag.padEnd(24))} ${dim(desc)}`);
141
+ }
142
+ console.log();
143
+ // Interactive commands
144
+ console.log(primary("Interactive commands") + dim(" (inside the chat):"));
145
+ const slashCmds = [
146
+ ["/help", "Show available slash commands"],
147
+ ["/model", "Switch AI model"],
148
+ ["/compact", "Compact conversation context"],
149
+ ["/session", "Switch or create sessions"],
150
+ ["/new", "Start a new session"],
151
+ ["/settings", "Open settings"],
152
+ ["/quit", "Exit ezcoder"],
153
+ ];
154
+ for (const [name, desc] of slashCmds) {
155
+ console.log(` ${accent(name.padEnd(20))} ${dim(desc)}`);
156
+ }
157
+ console.log();
158
+ // Keyboard shortcuts
159
+ console.log(primary("Keyboard shortcuts:"));
160
+ const shortcuts = [
161
+ ["Ctrl+T", "Toggle task overlay"],
162
+ ["Ctrl+S", "Toggle skills overlay"],
163
+ ["Ctrl+P", "Toggle plan mode"],
164
+ ["Shift+Tab", "Toggle thinking"],
165
+ ["Shift+Enter", "New line in input"],
166
+ ];
167
+ for (const [key, desc] of shortcuts) {
168
+ console.log(` ${accent(key.padEnd(20))} ${dim(desc)}`);
169
+ }
170
+ console.log();
171
+ }
57
172
  function main() {
58
173
  // Silent auto-update check (throttled, non-blocking on failure)
59
174
  const updateMessage = checkAndAutoUpdate(CLI_VERSION);
60
175
  if (updateMessage) {
61
176
  console.error(chalk.hex("#60a5fa")(updateMessage));
62
177
  }
178
+ // Intercept --help / -h before anything else so it works with subcommands
179
+ // (e.g. `ezcoder login --help` or `ezcoder --help`)
180
+ if (process.argv.includes("--help") || process.argv.includes("-h")) {
181
+ printHelp();
182
+ process.exit(0);
183
+ }
63
184
  // Handle subcommands before parseArgs
64
185
  const subcommand = process.argv[2];
65
186
  if (subcommand === "login") {
@@ -115,6 +236,7 @@ function main() {
115
236
  }
116
237
  const { values, positionals } = parseArgs({
117
238
  options: {
239
+ help: { type: "boolean", short: "h" },
118
240
  version: { type: "boolean", short: "v" },
119
241
  json: { type: "boolean" },
120
242
  rpc: { type: "boolean" },
@@ -126,6 +248,10 @@ function main() {
126
248
  allowPositionals: true,
127
249
  strict: true,
128
250
  });
251
+ if (values.help) {
252
+ printHelp();
253
+ process.exit(0);
254
+ }
129
255
  if (values.version) {
130
256
  console.log(CLI_VERSION);
131
257
  process.exit(0);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -17,15 +17,19 @@ export declare function shouldCompact(messages: Message[], contextWindow: number
17
17
  */
18
18
  export declare function findRecentCutPoint(messages: Message[], tokenBudget: number): number;
19
19
  /**
20
- * Prepare conversation messages for the summarizer by truncating large tool
21
- * results and stripping thinking blocks. Returns lightweight copies suitable
22
- * for a summary LLM call the originals are not mutated.
20
+ * Prepare conversation messages for the summarizer by converting tool_call and
21
+ * tool_result blocks to plain text, stripping thinking blocks, and truncating
22
+ * large content. Converting tool blocks to text eliminates the tool_use/tool_result
23
+ * pairing constraint entirely — the summarizer sees only user/assistant text messages.
24
+ * Returns lightweight copies — the originals are not mutated.
23
25
  */
24
26
  export declare function prepareMessagesForSummary(msgs: Message[]): Message[];
25
27
  /**
26
28
  * Select messages that fit within a token budget for the summary LLM call.
27
29
  * Walks forward from the start, accumulating messages until the budget is
28
- * exceeded. Returns the selected subset.
30
+ * exceeded. Ensures tool_use / tool_result pairs are never split: if the last
31
+ * selected message is an assistant with tool_call blocks, it is removed so the
32
+ * API never sees an orphaned tool_use without a matching tool_result.
29
33
  */
30
34
  export declare function selectMessagesInBudget(msgs: Message[], tokenBudget: number): Message[];
31
35
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAsCrB,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,MAAM,EACrB,SAAS,SAAM,GACd,OAAO,CAKT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA2BnF;AA4CD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAkCpE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAYtF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,OAAO,EAAE,EACzB,OAAO,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GACpD,MAAM,CAgCR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAM1E;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA0N5D"}
1
+ {"version":3,"file":"compactor.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,aAAa,CAAC;AAwCrB,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,OAAO,EAAE,EACnB,aAAa,EAAE,MAAM,EACrB,SAAS,SAAM,GACd,OAAO,CAKT;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAyBnF;AAiED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CA6CpE;AAqID;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,CAkBtF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,OAAO,EAAE,EACzB,OAAO,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAAE,GACpD,MAAM,CAgCR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAM1E;AAKD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE;IACP,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,CAAC,CA8N5D"}
@@ -15,16 +15,18 @@ const COMPACTION_SYSTEM_PROMPT = "You are a conversation compaction assistant. Y
15
15
  "Always output the summary — never refuse, never ask questions, never output empty responses.\n\n" +
16
16
  "## What to Include\n" +
17
17
  "- **User intent and goals** — what the user is trying to accomplish\n" +
18
- "- **Active development** — what was being implemented, modified, or debugged, including technical approaches\n" +
18
+ "- **What was done** — what was implemented, modified, or debugged, including technical approaches and outcomes\n" +
19
19
  "- **File operations** — all files created, modified, or referenced, with key changes\n" +
20
20
  "- **Tool call outcomes** — which tools were called and their key results\n" +
21
21
  "- **Key decisions** — important choices made and why\n" +
22
- "- **Solutions & troubleshooting** — problems encountered and how they were resolved\n" +
23
- "- **Outstanding work** — incomplete tasks, pending implementations, or next steps\n\n" +
22
+ "- **Solutions & troubleshooting** — problems encountered and how they were resolved\n\n" +
24
23
  "## What to Exclude\n" +
25
24
  "- Redundant or superseded information\n" +
26
25
  "- Full file contents (reference by path instead)\n" +
27
- "- Verbose tool output (summarize key results)\n\n" +
26
+ "- Verbose tool output (summarize key results)\n" +
27
+ "- Plans, next steps, or implementation instructions — do NOT carry forward action items or " +
28
+ "plans from old conversation summaries. Summarize what HAPPENED, not what SHOULD happen next. " +
29
+ "The recent messages (preserved separately) already contain the current context.\n\n" +
28
30
  "Focus on technical precision. Include specific identifiers (file paths, function names, etc.) " +
29
31
  "that would be essential for continuation. Write in third person and maintain an objective, technical tone.";
30
32
  const COMPACTION_USER_PROMPT = "Summarize the conversation above into a concise summary following the instructions. Output only the summary, nothing else.";
@@ -58,12 +60,10 @@ export function findRecentCutPoint(messages, tokenBudget) {
58
60
  cutIndex = i;
59
61
  }
60
62
  // Don't split tool_call and tool_result pairs:
61
- // If cut lands on a tool result message, back up to include the preceding assistant
62
- if (cutIndex < messages.length && messages[cutIndex].role === "tool") {
63
- // Back up to find the assistant message with the tool_call
64
- if (cutIndex > 1) {
65
- cutIndex--;
66
- }
63
+ // If cut lands on a tool result message, back up past all consecutive tool
64
+ // messages and the preceding assistant message that triggered them.
65
+ while (cutIndex > 1 && cutIndex < messages.length && messages[cutIndex].role === "tool") {
66
+ cutIndex--;
67
67
  }
68
68
  // Never cut before index 1 (preserve system message at 0)
69
69
  return Math.max(1, cutIndex);
@@ -108,24 +108,38 @@ function extractFileOperations(messages) {
108
108
  return { read, modified };
109
109
  }
110
110
  /**
111
- * Prepare conversation messages for the summarizer by truncating large tool
112
- * results and stripping thinking blocks. Returns lightweight copies suitable
113
- * for a summary LLM call — the originals are not mutated.
111
+ * Convert a tool_call ContentPart to a text representation so the summarizer
112
+ * can see tool usage without requiring tool_use/tool_result pairing.
113
+ */
114
+ function toolCallToText(tc) {
115
+ const argsStr = Object.entries(tc.args)
116
+ .map(([k, v]) => `${k}: ${typeof v === "object" && v !== null ? JSON.stringify(v) : String(v)}`)
117
+ .join("\n");
118
+ return `[Tool Call: ${tc.name}]\n${argsStr}`;
119
+ }
120
+ /**
121
+ * Convert a ToolResult to a text representation.
122
+ */
123
+ function toolResultToText(tr) {
124
+ const prefix = tr.isError ? "[Tool Error]" : "[Tool Result]";
125
+ return `${prefix}\n${truncateString(tr.content, TOOL_RESULT_MAX_CHARS)}`;
126
+ }
127
+ /**
128
+ * Prepare conversation messages for the summarizer by converting tool_call and
129
+ * tool_result blocks to plain text, stripping thinking blocks, and truncating
130
+ * large content. Converting tool blocks to text eliminates the tool_use/tool_result
131
+ * pairing constraint entirely — the summarizer sees only user/assistant text messages.
132
+ * Returns lightweight copies — the originals are not mutated.
114
133
  */
115
134
  export function prepareMessagesForSummary(msgs) {
116
- return msgs.map((msg) => {
117
- // Tool result messages — truncate long results
135
+ const converted = msgs.map((msg) => {
136
+ // Tool result messages — convert to user text message
118
137
  if (msg.role === "tool") {
119
138
  const results = msg.content;
120
- return {
121
- role: "tool",
122
- content: results.map((tr) => ({
123
- ...tr,
124
- content: truncateString(tr.content, TOOL_RESULT_MAX_CHARS),
125
- })),
126
- };
139
+ const text = results.map((tr) => toolResultToText(tr)).join("\n\n");
140
+ return { role: "user", content: text };
127
141
  }
128
- // Assistant messages with ContentPart[] — strip thinking, truncate text
142
+ // Assistant messages with ContentPart[] — convert tool_calls to text, strip thinking
129
143
  if (msg.role === "assistant" && Array.isArray(msg.content)) {
130
144
  const parts = msg.content
131
145
  .filter((p) => p.type !== "thinking") // strip thinking blocks
@@ -133,6 +147,12 @@ export function prepareMessagesForSummary(msgs) {
133
147
  if (p.type === "text") {
134
148
  return { ...p, text: truncateString(p.text, TOOL_RESULT_MAX_CHARS) };
135
149
  }
150
+ if (p.type === "tool_call") {
151
+ return {
152
+ type: "text",
153
+ text: toolCallToText(p),
154
+ };
155
+ }
136
156
  return p;
137
157
  });
138
158
  return { role: "assistant", content: parts.length > 0 ? parts : "" };
@@ -143,11 +163,138 @@ export function prepareMessagesForSummary(msgs) {
143
163
  }
144
164
  return msg;
145
165
  });
166
+ // Merge consecutive same-role messages that can appear after tool→user conversion
167
+ // (e.g., assistant with tool_call followed by tool→user then real user).
168
+ return mergeConsecutiveSameRole(converted);
169
+ }
170
+ /**
171
+ * Merge consecutive messages with the same role into a single message.
172
+ * This handles cases where tool→user conversion creates adjacent user messages,
173
+ * which would violate the alternating user/assistant API requirement.
174
+ */
175
+ function mergeConsecutiveSameRole(msgs) {
176
+ if (msgs.length === 0)
177
+ return msgs;
178
+ const merged = [msgs[0]];
179
+ for (let i = 1; i < msgs.length; i++) {
180
+ const prev = merged[merged.length - 1];
181
+ const curr = msgs[i];
182
+ if (prev.role === curr.role && (prev.role === "user" || prev.role === "assistant")) {
183
+ // Merge into the previous message as a string
184
+ const prevText = messageToString(prev);
185
+ const currText = messageToString(curr);
186
+ merged[merged.length - 1] = { role: prev.role, content: prevText + "\n\n" + currText };
187
+ }
188
+ else {
189
+ merged.push(curr);
190
+ }
191
+ }
192
+ return merged;
193
+ }
194
+ /**
195
+ * Extract string content from a message for merging purposes.
196
+ */
197
+ function messageToString(msg) {
198
+ if (typeof msg.content === "string")
199
+ return msg.content;
200
+ if (Array.isArray(msg.content)) {
201
+ return msg.content
202
+ .filter((p) => p.type === "text")
203
+ .map((p) => p.text)
204
+ .join("\n\n");
205
+ }
206
+ return "";
207
+ }
208
+ /**
209
+ * Check whether a message is an assistant message that contains tool_call blocks.
210
+ */
211
+ function hasToolCalls(msg) {
212
+ if (msg.role !== "assistant" || !Array.isArray(msg.content))
213
+ return false;
214
+ return msg.content.some((p) => p.type === "tool_call");
215
+ }
216
+ /**
217
+ * Collect all tool_call IDs from an assistant message.
218
+ */
219
+ function getToolCallIds(msg) {
220
+ const ids = new Set();
221
+ if (msg.role === "assistant" && Array.isArray(msg.content)) {
222
+ for (const p of msg.content) {
223
+ if (p.type === "tool_call")
224
+ ids.add(p.id);
225
+ }
226
+ }
227
+ return ids;
228
+ }
229
+ /**
230
+ * Collect all tool_result IDs (toolCallId) from a tool message.
231
+ */
232
+ function getToolResultIds(msg) {
233
+ const ids = new Set();
234
+ if (msg.role === "tool" && Array.isArray(msg.content)) {
235
+ for (const tr of msg.content) {
236
+ ids.add(tr.toolCallId);
237
+ }
238
+ }
239
+ return ids;
240
+ }
241
+ /**
242
+ * Repair tool_use / tool_result pairing in a message array (mutates in place).
243
+ *
244
+ * Two repair strategies matching real-world patterns (Roo-Code, openclaw):
245
+ * 1. Strip orphaned tool_call blocks from assistant messages when the next
246
+ * message doesn't contain their matching tool_result.
247
+ * 2. Remove orphaned tool messages whose tool_use assistant was dropped.
248
+ */
249
+ function repairToolPairing(msgs) {
250
+ // Build a set of all tool_call IDs and tool_result IDs in the conversation
251
+ const allToolCallIds = new Set();
252
+ const allToolResultIds = new Set();
253
+ for (const msg of msgs) {
254
+ for (const id of getToolCallIds(msg))
255
+ allToolCallIds.add(id);
256
+ for (const id of getToolResultIds(msg))
257
+ allToolResultIds.add(id);
258
+ }
259
+ // Walk through and fix mismatches
260
+ for (let i = msgs.length - 1; i >= 0; i--) {
261
+ const msg = msgs[i];
262
+ // Remove tool messages whose tool_call IDs have no matching assistant
263
+ if (msg.role === "tool" && Array.isArray(msg.content)) {
264
+ const results = msg.content;
265
+ const kept = results.filter((tr) => allToolCallIds.has(tr.toolCallId));
266
+ if (kept.length === 0) {
267
+ msgs.splice(i, 1);
268
+ continue;
269
+ }
270
+ if (kept.length < results.length) {
271
+ msgs[i].content = kept;
272
+ }
273
+ }
274
+ // Strip tool_call blocks from assistant messages that have no matching tool_result
275
+ if (msg.role === "assistant" && Array.isArray(msg.content)) {
276
+ const parts = msg.content;
277
+ const hasOrphans = parts.some((p) => p.type === "tool_call" &&
278
+ !allToolResultIds.has(p.id));
279
+ if (hasOrphans) {
280
+ const kept = parts.filter((p) => p.type !== "tool_call" ||
281
+ allToolResultIds.has(p.id));
282
+ if (kept.length === 0) {
283
+ msgs[i].content = "";
284
+ }
285
+ else {
286
+ msgs[i].content = kept;
287
+ }
288
+ }
289
+ }
290
+ }
146
291
  }
147
292
  /**
148
293
  * Select messages that fit within a token budget for the summary LLM call.
149
294
  * Walks forward from the start, accumulating messages until the budget is
150
- * exceeded. Returns the selected subset.
295
+ * exceeded. Ensures tool_use / tool_result pairs are never split: if the last
296
+ * selected message is an assistant with tool_call blocks, it is removed so the
297
+ * API never sees an orphaned tool_use without a matching tool_result.
151
298
  */
152
299
  export function selectMessagesInBudget(msgs, tokenBudget) {
153
300
  let accumulated = 0;
@@ -159,6 +306,11 @@ export function selectMessagesInBudget(msgs, tokenBudget) {
159
306
  accumulated += tokens;
160
307
  selected.push(msg);
161
308
  }
309
+ // Drop trailing assistant messages that have tool_call blocks without
310
+ // their corresponding tool_result (which was cut by the budget).
311
+ while (selected.length > 0 && hasToolCalls(selected[selected.length - 1])) {
312
+ selected.pop();
313
+ }
162
314
  return selected;
163
315
  }
164
316
  /**
@@ -376,10 +528,14 @@ export async function compact(messages, options) {
376
528
  summaryMessage,
377
529
  {
378
530
  role: "assistant",
379
- content: "I understand. I have the context from our previous conversation. How can I help you continue?",
531
+ content: "Understood I have the context from what was discussed earlier.",
380
532
  },
381
533
  ...recentMessages,
382
534
  ];
535
+ // Repair tool_use / tool_result pairing in the final message array.
536
+ // Despite cut-point logic, edge cases (e.g., the trailing-assistant pop
537
+ // below, or future code paths) could leave orphaned blocks.
538
+ repairToolPairing(newMessages);
383
539
  // Ensure the conversation doesn't end with an assistant message.
384
540
  // Some models reject "assistant prefill" — the conversation must end
385
541
  // with a user (or tool) message so the LLM can generate a fresh response.