@getpaseo/server 0.1.59 → 0.1.60

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 (273) hide show
  1. package/dist/scripts/dev-runner.js +26 -7
  2. package/dist/scripts/dev-runner.js.map +1 -1
  3. package/dist/server/client/daemon-client-runtime-metrics.d.ts +39 -0
  4. package/dist/server/client/daemon-client-runtime-metrics.d.ts.map +1 -0
  5. package/dist/server/client/daemon-client-runtime-metrics.js +173 -0
  6. package/dist/server/client/daemon-client-runtime-metrics.js.map +1 -0
  7. package/dist/server/client/daemon-client.d.ts +58 -9
  8. package/dist/server/client/daemon-client.d.ts.map +1 -1
  9. package/dist/server/client/daemon-client.js +151 -10
  10. package/dist/server/client/daemon-client.js.map +1 -1
  11. package/dist/server/server/agent/agent-manager.d.ts +55 -48
  12. package/dist/server/server/agent/agent-manager.d.ts.map +1 -1
  13. package/dist/server/server/agent/agent-manager.js +541 -331
  14. package/dist/server/server/agent/agent-manager.js.map +1 -1
  15. package/dist/server/server/agent/agent-metadata-generator.d.ts +3 -2
  16. package/dist/server/server/agent/agent-metadata-generator.d.ts.map +1 -1
  17. package/dist/server/server/agent/agent-metadata-generator.js +31 -16
  18. package/dist/server/server/agent/agent-metadata-generator.js.map +1 -1
  19. package/dist/server/server/agent/agent-projections.d.ts +2 -1
  20. package/dist/server/server/agent/agent-projections.d.ts.map +1 -1
  21. package/dist/server/server/agent/agent-projections.js +29 -1
  22. package/dist/server/server/agent/agent-projections.js.map +1 -1
  23. package/dist/server/server/agent/agent-sdk-types.d.ts +9 -5
  24. package/dist/server/server/agent/agent-sdk-types.d.ts.map +1 -1
  25. package/dist/server/server/agent/agent-sdk-types.js.map +1 -1
  26. package/dist/server/server/agent/agent-storage.d.ts +76 -69
  27. package/dist/server/server/agent/agent-storage.d.ts.map +1 -1
  28. package/dist/server/server/agent/agent-storage.js +13 -6
  29. package/dist/server/server/agent/agent-storage.js.map +1 -1
  30. package/dist/server/server/agent/agent-stream-coalescer.d.ts +41 -0
  31. package/dist/server/server/agent/agent-stream-coalescer.d.ts.map +1 -0
  32. package/dist/server/server/agent/agent-stream-coalescer.js +166 -0
  33. package/dist/server/server/agent/agent-stream-coalescer.js.map +1 -0
  34. package/dist/server/server/agent/agent-timeline-store-types.d.ts +54 -0
  35. package/dist/server/server/agent/agent-timeline-store-types.d.ts.map +1 -0
  36. package/dist/server/server/agent/agent-timeline-store-types.js +2 -0
  37. package/dist/server/server/agent/agent-timeline-store-types.js.map +1 -0
  38. package/dist/server/server/agent/agent-timeline-store.d.ts +32 -0
  39. package/dist/server/server/agent/agent-timeline-store.d.ts.map +1 -0
  40. package/dist/server/server/agent/agent-timeline-store.js +245 -0
  41. package/dist/server/server/agent/agent-timeline-store.js.map +1 -0
  42. package/dist/server/server/agent/mcp-server.d.ts +12 -1
  43. package/dist/server/server/agent/mcp-server.d.ts.map +1 -1
  44. package/dist/server/server/agent/mcp-server.js +276 -65
  45. package/dist/server/server/agent/mcp-server.js.map +1 -1
  46. package/dist/server/server/agent/mcp-shared.d.ts +196 -152
  47. package/dist/server/server/agent/mcp-shared.d.ts.map +1 -1
  48. package/dist/server/server/agent/mcp-shared.js +40 -42
  49. package/dist/server/server/agent/mcp-shared.js.map +1 -1
  50. package/dist/server/server/agent/model-resolver.d.ts.map +1 -1
  51. package/dist/server/server/agent/model-resolver.js +3 -1
  52. package/dist/server/server/agent/model-resolver.js.map +1 -1
  53. package/dist/server/server/agent/prompt-attachments.d.ts +6 -0
  54. package/dist/server/server/agent/prompt-attachments.d.ts.map +1 -0
  55. package/dist/server/server/agent/prompt-attachments.js +31 -0
  56. package/dist/server/server/agent/prompt-attachments.js.map +1 -0
  57. package/dist/server/server/agent/provider-launch-config.d.ts +12 -10
  58. package/dist/server/server/agent/provider-launch-config.d.ts.map +1 -1
  59. package/dist/server/server/agent/provider-launch-config.js +34 -0
  60. package/dist/server/server/agent/provider-launch-config.js.map +1 -1
  61. package/dist/server/server/agent/provider-manifest.d.ts +1 -0
  62. package/dist/server/server/agent/provider-manifest.d.ts.map +1 -1
  63. package/dist/server/server/agent/provider-manifest.js +22 -1
  64. package/dist/server/server/agent/provider-manifest.js.map +1 -1
  65. package/dist/server/server/agent/provider-registry.d.ts +5 -2
  66. package/dist/server/server/agent/provider-registry.d.ts.map +1 -1
  67. package/dist/server/server/agent/provider-registry.js +20 -9
  68. package/dist/server/server/agent/provider-registry.js.map +1 -1
  69. package/dist/server/server/agent/provider-snapshot-manager.d.ts +17 -5
  70. package/dist/server/server/agent/provider-snapshot-manager.d.ts.map +1 -1
  71. package/dist/server/server/agent/provider-snapshot-manager.js +150 -61
  72. package/dist/server/server/agent/provider-snapshot-manager.js.map +1 -1
  73. package/dist/server/server/agent/providers/acp-agent.d.ts +8 -4
  74. package/dist/server/server/agent/providers/acp-agent.d.ts.map +1 -1
  75. package/dist/server/server/agent/providers/acp-agent.js +73 -8
  76. package/dist/server/server/agent/providers/acp-agent.js.map +1 -1
  77. package/dist/server/server/agent/providers/claude/task-notification-tool-call.d.ts +2 -2
  78. package/dist/server/server/agent/providers/claude-agent.d.ts +1 -1
  79. package/dist/server/server/agent/providers/claude-agent.d.ts.map +1 -1
  80. package/dist/server/server/agent/providers/claude-agent.js +8 -7
  81. package/dist/server/server/agent/providers/claude-agent.js.map +1 -1
  82. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts +37 -4
  83. package/dist/server/server/agent/providers/codex-app-server-agent.d.ts.map +1 -1
  84. package/dist/server/server/agent/providers/codex-app-server-agent.js +61 -31
  85. package/dist/server/server/agent/providers/codex-app-server-agent.js.map +1 -1
  86. package/dist/server/server/agent/providers/copilot-acp-agent.d.ts.map +1 -1
  87. package/dist/server/server/agent/providers/copilot-acp-agent.js +3 -2
  88. package/dist/server/server/agent/providers/copilot-acp-agent.js.map +1 -1
  89. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts +64 -0
  90. package/dist/server/server/agent/providers/mock-load-test-agent.d.ts.map +1 -0
  91. package/dist/server/server/agent/providers/mock-load-test-agent.js +585 -0
  92. package/dist/server/server/agent/providers/mock-load-test-agent.js.map +1 -0
  93. package/dist/server/server/agent/providers/opencode-agent.d.ts +19 -4
  94. package/dist/server/server/agent/providers/opencode-agent.d.ts.map +1 -1
  95. package/dist/server/server/agent/providers/opencode-agent.js +227 -118
  96. package/dist/server/server/agent/providers/opencode-agent.js.map +1 -1
  97. package/dist/server/server/agent/providers/pi-direct-agent.d.ts +69 -0
  98. package/dist/server/server/agent/providers/pi-direct-agent.d.ts.map +1 -0
  99. package/dist/server/server/agent/providers/pi-direct-agent.js +1177 -0
  100. package/dist/server/server/agent/providers/pi-direct-agent.js.map +1 -0
  101. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts +7 -4
  102. package/dist/server/server/agent/providers/tool-call-detail-primitives.d.ts.map +1 -1
  103. package/dist/server/server/agent-attention-policy.d.ts +13 -13
  104. package/dist/server/server/agent-attention-policy.d.ts.map +1 -1
  105. package/dist/server/server/agent-attention-policy.js +20 -36
  106. package/dist/server/server/agent-attention-policy.js.map +1 -1
  107. package/dist/server/server/bootstrap.d.ts +6 -0
  108. package/dist/server/server/bootstrap.d.ts.map +1 -1
  109. package/dist/server/server/bootstrap.js +113 -11
  110. package/dist/server/server/bootstrap.js.map +1 -1
  111. package/dist/server/server/chat/chat-rpc-schemas.d.ts +44 -44
  112. package/dist/server/server/chat/chat-types.d.ts +6 -6
  113. package/dist/server/server/checkout-diff-manager.d.ts +0 -1
  114. package/dist/server/server/checkout-diff-manager.d.ts.map +1 -1
  115. package/dist/server/server/checkout-diff-manager.js +6 -4
  116. package/dist/server/server/checkout-diff-manager.js.map +1 -1
  117. package/dist/server/server/config.d.ts.map +1 -1
  118. package/dist/server/server/config.js +1 -0
  119. package/dist/server/server/config.js.map +1 -1
  120. package/dist/server/server/file-explorer/service.d.ts.map +1 -1
  121. package/dist/server/server/file-explorer/service.js +2 -1
  122. package/dist/server/server/file-explorer/service.js.map +1 -1
  123. package/dist/server/server/loop/rpc-schemas.d.ts +392 -392
  124. package/dist/server/server/loop-service.d.ts +52 -52
  125. package/dist/server/server/paseo-worktree-archive-service.d.ts +41 -0
  126. package/dist/server/server/paseo-worktree-archive-service.d.ts.map +1 -0
  127. package/dist/server/server/paseo-worktree-archive-service.js +137 -0
  128. package/dist/server/server/paseo-worktree-archive-service.js.map +1 -0
  129. package/dist/server/server/paseo-worktree-service.d.ts +24 -0
  130. package/dist/server/server/paseo-worktree-service.d.ts.map +1 -0
  131. package/dist/server/server/paseo-worktree-service.js +94 -0
  132. package/dist/server/server/paseo-worktree-service.js.map +1 -0
  133. package/dist/server/server/path-utils.d.ts +1 -0
  134. package/dist/server/server/path-utils.d.ts.map +1 -1
  135. package/dist/server/server/path-utils.js +9 -0
  136. package/dist/server/server/path-utils.js.map +1 -1
  137. package/dist/server/server/persisted-config.d.ts +73 -73
  138. package/dist/server/server/persistence-hooks.d.ts.map +1 -1
  139. package/dist/server/server/persistence-hooks.js +3 -0
  140. package/dist/server/server/persistence-hooks.js.map +1 -1
  141. package/dist/server/server/resolve-worktree-creation-intent.d.ts +30 -0
  142. package/dist/server/server/resolve-worktree-creation-intent.d.ts.map +1 -0
  143. package/dist/server/server/resolve-worktree-creation-intent.js +163 -0
  144. package/dist/server/server/resolve-worktree-creation-intent.js.map +1 -0
  145. package/dist/server/server/schedule/rpc-schemas.d.ts +192 -192
  146. package/dist/server/server/schedule/service.d.ts +1 -1
  147. package/dist/server/server/schedule/service.d.ts.map +1 -1
  148. package/dist/server/server/schedule/types.d.ts +44 -44
  149. package/dist/server/server/script-health-monitor.d.ts +39 -0
  150. package/dist/server/server/script-health-monitor.d.ts.map +1 -0
  151. package/dist/server/server/script-health-monitor.js +158 -0
  152. package/dist/server/server/script-health-monitor.js.map +1 -0
  153. package/dist/server/server/script-proxy.d.ts +40 -0
  154. package/dist/server/server/script-proxy.d.ts.map +1 -0
  155. package/dist/server/server/script-proxy.js +245 -0
  156. package/dist/server/server/script-proxy.js.map +1 -0
  157. package/dist/server/server/script-route-branch-handler.d.ts +10 -0
  158. package/dist/server/server/script-route-branch-handler.d.ts.map +1 -0
  159. package/dist/server/server/script-route-branch-handler.js +45 -0
  160. package/dist/server/server/script-route-branch-handler.js.map +1 -0
  161. package/dist/server/server/script-status-projection.d.ts +29 -0
  162. package/dist/server/server/script-status-projection.d.ts.map +1 -0
  163. package/dist/server/server/script-status-projection.js +133 -0
  164. package/dist/server/server/script-status-projection.js.map +1 -0
  165. package/dist/server/server/session.d.ts +77 -13
  166. package/dist/server/server/session.d.ts.map +1 -1
  167. package/dist/server/server/session.js +1290 -548
  168. package/dist/server/server/session.js.map +1 -1
  169. package/dist/server/server/websocket-server.d.ts +27 -3
  170. package/dist/server/server/websocket-server.d.ts.map +1 -1
  171. package/dist/server/server/websocket-server.js +112 -29
  172. package/dist/server/server/websocket-server.js.map +1 -1
  173. package/dist/server/server/workspace-archive-service.d.ts +8 -0
  174. package/dist/server/server/workspace-archive-service.d.ts.map +1 -0
  175. package/dist/server/server/workspace-archive-service.js +17 -0
  176. package/dist/server/server/workspace-archive-service.js.map +1 -0
  177. package/dist/server/server/workspace-git-metadata.d.ts +24 -0
  178. package/dist/server/server/workspace-git-metadata.d.ts.map +1 -0
  179. package/dist/server/server/workspace-git-metadata.js +78 -0
  180. package/dist/server/server/workspace-git-metadata.js.map +1 -0
  181. package/dist/server/server/workspace-git-service.d.ts +104 -5
  182. package/dist/server/server/workspace-git-service.d.ts.map +1 -1
  183. package/dist/server/server/workspace-git-service.js +442 -56
  184. package/dist/server/server/workspace-git-service.js.map +1 -1
  185. package/dist/server/server/workspace-reconciliation-service.d.ts +54 -0
  186. package/dist/server/server/workspace-reconciliation-service.d.ts.map +1 -0
  187. package/dist/server/server/workspace-reconciliation-service.js +176 -0
  188. package/dist/server/server/workspace-reconciliation-service.js.map +1 -0
  189. package/dist/server/server/workspace-registry-bootstrap.d.ts.map +1 -1
  190. package/dist/server/server/workspace-registry-bootstrap.js +4 -3
  191. package/dist/server/server/workspace-registry-bootstrap.js.map +1 -1
  192. package/dist/server/server/workspace-registry.d.ts +8 -8
  193. package/dist/server/server/workspace-registry.test-helpers.d.ts +37 -0
  194. package/dist/server/server/workspace-registry.test-helpers.d.ts.map +1 -0
  195. package/dist/server/server/workspace-registry.test-helpers.js +121 -0
  196. package/dist/server/server/workspace-registry.test-helpers.js.map +1 -0
  197. package/dist/server/server/workspace-script-runtime-store.d.ts +28 -0
  198. package/dist/server/server/workspace-script-runtime-store.d.ts.map +1 -0
  199. package/dist/server/server/workspace-script-runtime-store.js +78 -0
  200. package/dist/server/server/workspace-script-runtime-store.js.map +1 -0
  201. package/dist/server/server/workspace-service-env.d.ts +17 -0
  202. package/dist/server/server/workspace-service-env.d.ts.map +1 -0
  203. package/dist/server/server/workspace-service-env.js +80 -0
  204. package/dist/server/server/workspace-service-env.js.map +1 -0
  205. package/dist/server/server/workspace-service-port-registry.d.ts +19 -0
  206. package/dist/server/server/workspace-service-port-registry.d.ts.map +1 -0
  207. package/dist/server/server/workspace-service-port-registry.js +59 -0
  208. package/dist/server/server/workspace-service-port-registry.js.map +1 -0
  209. package/dist/server/server/worktree-bootstrap.d.ts +55 -10
  210. package/dist/server/server/worktree-bootstrap.d.ts.map +1 -1
  211. package/dist/server/server/worktree-bootstrap.js +290 -112
  212. package/dist/server/server/worktree-bootstrap.js.map +1 -1
  213. package/dist/server/server/worktree-core.d.ts +25 -0
  214. package/dist/server/server/worktree-core.d.ts.map +1 -0
  215. package/dist/server/server/worktree-core.js +75 -0
  216. package/dist/server/server/worktree-core.js.map +1 -0
  217. package/dist/server/server/worktree-errors.d.ts +12 -0
  218. package/dist/server/server/worktree-errors.d.ts.map +1 -0
  219. package/dist/server/server/worktree-errors.js +31 -0
  220. package/dist/server/server/worktree-errors.js.map +1 -0
  221. package/dist/server/server/worktree-session.d.ts +56 -70
  222. package/dist/server/server/worktree-session.d.ts.map +1 -1
  223. package/dist/server/server/worktree-session.js +176 -251
  224. package/dist/server/server/worktree-session.js.map +1 -1
  225. package/dist/server/services/github-service.d.ts +225 -0
  226. package/dist/server/services/github-service.d.ts.map +1 -0
  227. package/dist/server/services/github-service.js +1381 -0
  228. package/dist/server/services/github-service.js.map +1 -0
  229. package/dist/server/shared/messages.d.ts +29408 -12268
  230. package/dist/server/shared/messages.d.ts.map +1 -1
  231. package/dist/server/shared/messages.js +391 -65
  232. package/dist/server/shared/messages.js.map +1 -1
  233. package/dist/server/terminal/shell-integration/zsh/.zshenv +17 -0
  234. package/dist/server/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  235. package/dist/server/terminal/terminal-manager.d.ts +9 -0
  236. package/dist/server/terminal/terminal-manager.d.ts.map +1 -1
  237. package/dist/server/terminal/terminal-manager.js +27 -0
  238. package/dist/server/terminal/terminal-manager.js.map +1 -1
  239. package/dist/server/terminal/terminal-output-coalescer.d.ts +30 -0
  240. package/dist/server/terminal/terminal-output-coalescer.d.ts.map +1 -0
  241. package/dist/server/terminal/terminal-output-coalescer.js +55 -0
  242. package/dist/server/terminal/terminal-output-coalescer.js.map +1 -0
  243. package/dist/server/terminal/terminal.d.ts +32 -1
  244. package/dist/server/terminal/terminal.d.ts.map +1 -1
  245. package/dist/server/terminal/terminal.js +397 -17
  246. package/dist/server/terminal/terminal.js.map +1 -1
  247. package/dist/server/utils/checkout-git.d.ts +63 -10
  248. package/dist/server/utils/checkout-git.d.ts.map +1 -1
  249. package/dist/server/utils/checkout-git.js +321 -229
  250. package/dist/server/utils/checkout-git.js.map +1 -1
  251. package/dist/server/utils/promise-timeout.d.ts +9 -0
  252. package/dist/server/utils/promise-timeout.d.ts.map +1 -0
  253. package/dist/server/utils/promise-timeout.js +25 -0
  254. package/dist/server/utils/promise-timeout.js.map +1 -0
  255. package/dist/server/utils/script-hostname.d.ts +8 -0
  256. package/dist/server/utils/script-hostname.d.ts.map +1 -0
  257. package/dist/server/utils/script-hostname.js +14 -0
  258. package/dist/server/utils/script-hostname.js.map +1 -0
  259. package/dist/server/utils/string-command-shell.d.ts +10 -0
  260. package/dist/server/utils/string-command-shell.d.ts.map +1 -0
  261. package/dist/server/utils/string-command-shell.js +21 -0
  262. package/dist/server/utils/string-command-shell.js.map +1 -0
  263. package/dist/server/utils/worktree.d.ts +54 -7
  264. package/dist/server/utils/worktree.d.ts.map +1 -1
  265. package/dist/server/utils/worktree.js +434 -129
  266. package/dist/server/utils/worktree.js.map +1 -1
  267. package/dist/src/terminal/shell-integration/zsh/.zshenv +17 -0
  268. package/dist/src/terminal/shell-integration/zsh/paseo-integration.zsh +32 -0
  269. package/package.json +11 -14
  270. package/dist/server/server/agent/providers/pi-acp-agent.d.ts +0 -28
  271. package/dist/server/server/agent/providers/pi-acp-agent.d.ts.map +0 -1
  272. package/dist/server/server/agent/providers/pi-acp-agent.js +0 -302
  273. package/dist/server/server/agent/providers/pi-acp-agent.js.map +0 -1
@@ -2,12 +2,32 @@ import * as pty from "node-pty";
2
2
  import xterm from "@xterm/headless";
3
3
  import { randomUUID } from "crypto";
4
4
  import { chmodSync, existsSync, statSync } from "node:fs";
5
- import { dirname, join } from "node:path";
5
+ import { basename, dirname, join } from "node:path";
6
6
  import { createRequire } from "node:module";
7
+ import { fileURLToPath } from "node:url";
7
8
  import stripAnsi from "strip-ansi";
8
9
  const { Terminal } = xterm;
9
10
  const require = createRequire(import.meta.url);
10
11
  let nodePtySpawnHelperChecked = false;
12
+ const TERMINAL_TITLE_DEBOUNCE_MS = 150;
13
+ const TERMINAL_EXIT_OUTPUT_LINE_LIMIT = 12;
14
+ const TERMINAL_EXIT_OUTPUT_CHAR_LIMIT = 16000;
15
+ function parseCommandFinishedOsc(data) {
16
+ // OSC 633 is terminal control traffic, but a foreground command can still
17
+ // print arbitrary control bytes. Keep this boundary to the exact VS Code
18
+ // command-finished shape emitted by our shell integration.
19
+ const parts = data.split(";");
20
+ if (parts[0] !== "D") {
21
+ return null;
22
+ }
23
+ if (parts.length === 1) {
24
+ return { exitCode: null };
25
+ }
26
+ if (parts.length !== 2 || !/^-?\d+$/.test(parts[1])) {
27
+ return null;
28
+ }
29
+ return { exitCode: Number(parts[1]) };
30
+ }
11
31
  function resolveNodePtyPackageRoot() {
12
32
  try {
13
33
  const packageJsonPath = require.resolve("node-pty/package.json");
@@ -69,6 +89,25 @@ export function resolveDefaultTerminalShell(options = {}) {
69
89
  }
70
90
  return env.SHELL || "/bin/sh";
71
91
  }
92
+ export function resolveZshShellIntegrationDir() {
93
+ return fileURLToPath(new URL("./shell-integration/zsh", import.meta.url));
94
+ }
95
+ export function buildTerminalEnvironment(input) {
96
+ const baseEnv = {
97
+ ...process.env,
98
+ ...input.env,
99
+ TERM: "xterm-256color",
100
+ };
101
+ if (basename(input.shell) !== "zsh") {
102
+ return baseEnv;
103
+ }
104
+ const originalZdotdir = baseEnv.ZDOTDIR ?? "";
105
+ return {
106
+ ...baseEnv,
107
+ PASEO_ZSH_ZDOTDIR: originalZdotdir,
108
+ ZDOTDIR: resolveZshShellIntegrationDir(),
109
+ };
110
+ }
72
111
  function extractCell(terminal, row, col) {
73
112
  const buffer = terminal.buffer.active;
74
113
  const line = buffer.getLine(row);
@@ -179,6 +218,131 @@ function extractCursorState(terminal) {
179
218
  ...(typeof cursorBlink === "boolean" ? { blink: cursorBlink } : {}),
180
219
  };
181
220
  }
221
+ function normalizeProcessToken(token) {
222
+ if (token.length === 0) {
223
+ return token;
224
+ }
225
+ const quote = token.startsWith('"') && token.endsWith('"')
226
+ ? '"'
227
+ : token.startsWith("'") && token.endsWith("'")
228
+ ? "'"
229
+ : "";
230
+ const rawToken = quote ? token.slice(1, -1) : token;
231
+ if (rawToken.length === 0) {
232
+ return token;
233
+ }
234
+ const assignmentMatch = rawToken.match(/^([A-Za-z_][A-Za-z0-9_]*=)(.+)$/);
235
+ const prefix = assignmentMatch ? assignmentMatch[1] : "";
236
+ const value = assignmentMatch ? assignmentMatch[2] : rawToken;
237
+ if (!value.includes("/")) {
238
+ return token;
239
+ }
240
+ const normalized = `${prefix}${basename(value)}`;
241
+ return quote ? `${quote}${normalized}${quote}` : normalized;
242
+ }
243
+ export function normalizeProcessTitle(processTitle) {
244
+ const trimmed = processTitle.trim().replace(/\s+/g, " ");
245
+ if (trimmed.length === 0) {
246
+ return undefined;
247
+ }
248
+ const normalized = trimmed
249
+ .split(" ")
250
+ .map((token) => normalizeProcessToken(token))
251
+ .join(" ")
252
+ .trim();
253
+ return normalized.length > 0 ? normalized : undefined;
254
+ }
255
+ const PROCESS_INTERPRETERS = new Set([
256
+ "bash",
257
+ "bun",
258
+ "deno",
259
+ "node",
260
+ "nodejs",
261
+ "python",
262
+ "python3",
263
+ "ruby",
264
+ "sh",
265
+ "tsx",
266
+ "zsh",
267
+ ]);
268
+ const PACKAGE_MANAGER_SCRIPT_NAMES = new Map([
269
+ ["bun.js", "bun"],
270
+ ["npm-cli.js", "npm"],
271
+ ["npx-cli.js", "npx"],
272
+ ["pnpm.cjs", "pnpm"],
273
+ ["pnpm.js", "pnpm"],
274
+ ["yarn.cjs", "yarn"],
275
+ ["yarn.js", "yarn"],
276
+ ]);
277
+ export function humanizeProcessTitle(processTitle) {
278
+ const normalized = normalizeProcessTitle(processTitle);
279
+ if (!normalized) {
280
+ return undefined;
281
+ }
282
+ const tokens = normalized.split(" ").filter(Boolean);
283
+ if (tokens.length === 0) {
284
+ return undefined;
285
+ }
286
+ while (tokens[0] === "env") {
287
+ tokens.shift();
288
+ while (tokens[0] && /^[A-Za-z_][A-Za-z0-9_]*=/.test(tokens[0])) {
289
+ tokens.shift();
290
+ }
291
+ }
292
+ if (tokens.length === 0) {
293
+ return normalized;
294
+ }
295
+ const first = tokens[0];
296
+ const second = tokens[1];
297
+ if (PROCESS_INTERPRETERS.has(first) && second) {
298
+ const packageManager = PACKAGE_MANAGER_SCRIPT_NAMES.get(second);
299
+ if (packageManager) {
300
+ return [packageManager, ...tokens.slice(2)].join(" ").trim() || packageManager;
301
+ }
302
+ if (!second.startsWith("-")) {
303
+ return [second, ...tokens.slice(2)].join(" ").trim();
304
+ }
305
+ }
306
+ return normalized;
307
+ }
308
+ function extractLastOutputLines(terminal, limit) {
309
+ const buffer = terminal.buffer.active;
310
+ const mergedLines = [];
311
+ for (let row = 0; row < buffer.length; row++) {
312
+ const line = buffer.getLine(row);
313
+ if (!line) {
314
+ continue;
315
+ }
316
+ const text = line.translateToString(true);
317
+ const isWrapped = line.isWrapped === true;
318
+ if (isWrapped && mergedLines.length > 0) {
319
+ mergedLines[mergedLines.length - 1] += text;
320
+ continue;
321
+ }
322
+ mergedLines.push(text);
323
+ }
324
+ while (mergedLines.length > 0 && mergedLines[0]?.trim().length === 0) {
325
+ mergedLines.shift();
326
+ }
327
+ while (mergedLines.length > 0 && mergedLines[mergedLines.length - 1]?.trim().length === 0) {
328
+ mergedLines.pop();
329
+ }
330
+ return mergedLines.slice(-limit);
331
+ }
332
+ function stripAnsiSequences(input) {
333
+ return input.replace(/\x1b(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~]|\].*?(?:\x07|\x1b\\))/g, "");
334
+ }
335
+ function extractLastOutputLinesFromText(text, limit) {
336
+ const normalized = stripAnsiSequences(text).replace(/\r\n/g, "\n").replace(/\r/g, "\n");
337
+ const lines = normalized.split("\n").map((line) => line.trimEnd());
338
+ while (lines[0]?.trim().length === 0) {
339
+ lines.shift();
340
+ }
341
+ while (lines[lines.length - 1]?.trim().length === 0) {
342
+ lines.pop();
343
+ }
344
+ return lines.slice(-limit);
345
+ }
182
346
  function cellsToPlainText(cells, options) {
183
347
  const text = cells
184
348
  .map((cell) => cell.char)
@@ -221,14 +385,25 @@ export function captureTerminalLines(terminal, options = {}) {
221
385
  };
222
386
  }
223
387
  export async function createTerminal(options) {
224
- const { cwd, shell, env = {}, rows = 24, cols = 80, name = "Terminal" } = options;
388
+ const { cwd, shell, env = {}, rows = 24, cols = 80, name = "Terminal", title: presetTitle, command, args = [], } = options;
225
389
  const resolvedShell = shell ?? resolveDefaultTerminalShell();
226
- const id = randomUUID();
390
+ const id = options.id ?? randomUUID();
227
391
  const listeners = new Set();
228
392
  const exitListeners = new Set();
393
+ const commandFinishedListeners = new Set();
394
+ const titleChangeListeners = new Set();
229
395
  let killed = false;
230
396
  let disposed = false;
231
397
  let exitEmitted = false;
398
+ let processExited = false;
399
+ const processExitWaiters = new Set();
400
+ let exitInfo = null;
401
+ let recentOutputText = "";
402
+ let title;
403
+ let pendingTitle;
404
+ let titleDebounceTimer = null;
405
+ let pendingInput = "";
406
+ let inputFlushImmediate = null;
232
407
  // Create xterm.js headless terminal
233
408
  const terminal = new Terminal({
234
409
  rows,
@@ -238,17 +413,44 @@ export async function createTerminal(options) {
238
413
  });
239
414
  ensureNodePtySpawnHelperExecutableForCurrentPlatform();
240
415
  // Create PTY
241
- const ptyProcess = pty.spawn(resolvedShell, [], {
416
+ const spawnCommand = command ?? resolvedShell;
417
+ const spawnArgs = command ? args : [];
418
+ const ptyProcess = pty.spawn(spawnCommand, spawnArgs, {
242
419
  name: "xterm-256color",
243
420
  cols,
244
421
  rows,
245
422
  cwd,
246
- env: {
247
- ...process.env,
248
- ...env,
249
- TERM: "xterm-256color",
250
- },
423
+ env: buildTerminalEnvironment({ shell: spawnCommand, env }),
251
424
  });
425
+ function emitTitleChange(nextTitle) {
426
+ if (title === nextTitle) {
427
+ return;
428
+ }
429
+ title = nextTitle;
430
+ for (const listener of Array.from(titleChangeListeners)) {
431
+ try {
432
+ listener(title);
433
+ }
434
+ catch {
435
+ // no-op
436
+ }
437
+ }
438
+ for (const listener of Array.from(listeners)) {
439
+ try {
440
+ listener({ type: "titleChange", title });
441
+ }
442
+ catch {
443
+ // no-op
444
+ }
445
+ }
446
+ }
447
+ const lockedTitle = presetTitle?.trim() || undefined;
448
+ const processTitle = command ? [command, ...args].join(" ") : null;
449
+ let initialTitle = lockedTitle;
450
+ if (!initialTitle && processTitle) {
451
+ initialTitle = humanizeProcessTitle(processTitle) ?? normalizeProcessTitle(processTitle);
452
+ }
453
+ emitTitleChange(initialTitle);
252
454
  // Respond to DA1 queries (CSI c or CSI 0 c) — apps like nvim query terminal capabilities
253
455
  terminal.parser.registerCsiHandler({ final: "c" }, (params) => {
254
456
  if (params.length === 0 || (params.length === 1 && params[0] === 0)) {
@@ -257,14 +459,56 @@ export async function createTerminal(options) {
257
459
  }
258
460
  return false;
259
461
  });
260
- function emitExit() {
462
+ let disposeTitleChangeSubscription = null;
463
+ if (!lockedTitle) {
464
+ disposeTitleChangeSubscription = terminal.onTitleChange((nextTitle) => {
465
+ if (disposed || killed) {
466
+ return;
467
+ }
468
+ pendingTitle = nextTitle.trim().length > 0 ? nextTitle : undefined;
469
+ if (titleDebounceTimer) {
470
+ clearTimeout(titleDebounceTimer);
471
+ }
472
+ titleDebounceTimer = setTimeout(() => {
473
+ titleDebounceTimer = null;
474
+ emitTitleChange(pendingTitle);
475
+ }, TERMINAL_TITLE_DEBOUNCE_MS);
476
+ });
477
+ }
478
+ const disposeCommandLifecycleSubscription = terminal.parser.registerOscHandler(633, (data) => {
479
+ const commandFinished = parseCommandFinishedOsc(data);
480
+ if (!commandFinished) {
481
+ return true;
482
+ }
483
+ for (const listener of Array.from(commandFinishedListeners)) {
484
+ try {
485
+ listener(commandFinished);
486
+ }
487
+ catch {
488
+ // no-op
489
+ }
490
+ }
491
+ return true;
492
+ });
493
+ function buildExitInfo(input) {
494
+ const lastOutputLines = extractLastOutputLines(terminal, TERMINAL_EXIT_OUTPUT_LINE_LIMIT);
495
+ return {
496
+ exitCode: input?.exitCode ?? null,
497
+ signal: input?.signal && input.signal > 0 ? input.signal : null,
498
+ lastOutputLines: lastOutputLines.length > 0
499
+ ? lastOutputLines
500
+ : extractLastOutputLinesFromText(recentOutputText, TERMINAL_EXIT_OUTPUT_LINE_LIMIT),
501
+ };
502
+ }
503
+ function emitExit(info) {
261
504
  if (exitEmitted) {
262
505
  return;
263
506
  }
264
507
  exitEmitted = true;
508
+ exitInfo = info;
265
509
  for (const listener of Array.from(exitListeners)) {
266
510
  try {
267
- listener();
511
+ listener(info);
268
512
  }
269
513
  catch {
270
514
  // no-op
@@ -277,14 +521,31 @@ export async function createTerminal(options) {
277
521
  return;
278
522
  }
279
523
  disposed = true;
524
+ pendingInput = "";
525
+ if (inputFlushImmediate) {
526
+ clearImmediate(inputFlushImmediate);
527
+ inputFlushImmediate = null;
528
+ }
529
+ if (titleDebounceTimer) {
530
+ clearTimeout(titleDebounceTimer);
531
+ titleDebounceTimer = null;
532
+ }
533
+ disposeTitleChangeSubscription?.dispose();
534
+ disposeCommandLifecycleSubscription.dispose();
280
535
  terminal.dispose();
281
536
  listeners.clear();
282
537
  exitListeners.clear();
538
+ commandFinishedListeners.clear();
539
+ titleChangeListeners.clear();
283
540
  }
284
541
  // Pipe PTY output to terminal emulator
285
542
  ptyProcess.onData((data) => {
286
543
  if (killed)
287
544
  return;
545
+ recentOutputText = `${recentOutputText}${data}`;
546
+ if (recentOutputText.length > TERMINAL_EXIT_OUTPUT_CHAR_LIMIT) {
547
+ recentOutputText = recentOutputText.slice(-TERMINAL_EXIT_OUTPUT_CHAR_LIMIT);
548
+ }
288
549
  terminal.write(data, () => {
289
550
  if (disposed || killed) {
290
551
  return;
@@ -294,9 +555,22 @@ export async function createTerminal(options) {
294
555
  }
295
556
  });
296
557
  });
297
- ptyProcess.onExit(() => {
558
+ ptyProcess.onExit((event) => {
298
559
  killed = true;
299
- emitExit();
560
+ processExited = true;
561
+ for (const waiter of Array.from(processExitWaiters)) {
562
+ try {
563
+ waiter();
564
+ }
565
+ catch {
566
+ // no-op
567
+ }
568
+ }
569
+ processExitWaiters.clear();
570
+ emitExit(buildExitInfo({
571
+ exitCode: event.exitCode,
572
+ signal: event.signal,
573
+ }));
300
574
  disposeResources();
301
575
  });
302
576
  function getState() {
@@ -306,6 +580,7 @@ export async function createTerminal(options) {
306
580
  grid: extractGrid(terminal),
307
581
  scrollback: extractScrollback(terminal),
308
582
  cursor: extractCursorState(terminal),
583
+ ...(title ? { title } : {}),
309
584
  };
310
585
  }
311
586
  function getSize() {
@@ -314,14 +589,41 @@ export async function createTerminal(options) {
314
589
  cols: terminal.cols,
315
590
  };
316
591
  }
592
+ function writeInputToPty(data) {
593
+ ptyProcess.write(data);
594
+ }
595
+ function flushPendingInput() {
596
+ if (inputFlushImmediate) {
597
+ clearImmediate(inputFlushImmediate);
598
+ inputFlushImmediate = null;
599
+ }
600
+ const data = pendingInput;
601
+ pendingInput = "";
602
+ if (!data || killed || disposed) {
603
+ return;
604
+ }
605
+ writeInputToPty(data);
606
+ }
607
+ function scheduleInputFlush() {
608
+ if (inputFlushImmediate) {
609
+ return;
610
+ }
611
+ inputFlushImmediate = setImmediate(() => {
612
+ inputFlushImmediate = null;
613
+ flushPendingInput();
614
+ });
615
+ }
317
616
  function send(msg) {
318
617
  if (killed)
319
618
  return;
320
619
  switch (msg.type) {
321
- case "input":
322
- ptyProcess.write(msg.data);
620
+ case "input": {
621
+ pendingInput += msg.data;
622
+ scheduleInputFlush();
323
623
  break;
624
+ }
324
625
  case "resize":
626
+ flushPendingInput();
325
627
  terminal.resize(msg.cols, msg.rows);
326
628
  ptyProcess.resize(msg.cols, msg.rows);
327
629
  break;
@@ -346,7 +648,7 @@ export async function createTerminal(options) {
346
648
  if (killed) {
347
649
  queueMicrotask(() => {
348
650
  try {
349
- listener();
651
+ listener(exitInfo ?? buildExitInfo());
350
652
  }
351
653
  catch {
352
654
  // no-op
@@ -359,14 +661,87 @@ export async function createTerminal(options) {
359
661
  exitListeners.delete(listener);
360
662
  };
361
663
  }
664
+ function onCommandFinished(listener) {
665
+ commandFinishedListeners.add(listener);
666
+ return () => {
667
+ commandFinishedListeners.delete(listener);
668
+ };
669
+ }
670
+ function onTitleChange(listener) {
671
+ titleChangeListeners.add(listener);
672
+ if (title !== undefined) {
673
+ queueMicrotask(() => {
674
+ if (disposed || !titleChangeListeners.has(listener)) {
675
+ return;
676
+ }
677
+ try {
678
+ listener(title);
679
+ }
680
+ catch {
681
+ // no-op
682
+ }
683
+ });
684
+ }
685
+ return () => {
686
+ titleChangeListeners.delete(listener);
687
+ };
688
+ }
689
+ function getTitle() {
690
+ return title;
691
+ }
692
+ function getExitInfo() {
693
+ return exitInfo;
694
+ }
362
695
  function kill() {
363
696
  if (!killed) {
364
697
  killed = true;
365
698
  ptyProcess.kill();
366
- emitExit();
699
+ emitExit(buildExitInfo());
367
700
  }
368
701
  disposeResources();
369
702
  }
703
+ function waitForProcessExit(timeoutMs) {
704
+ if (processExited) {
705
+ return Promise.resolve(true);
706
+ }
707
+ return new Promise((resolve) => {
708
+ const waiter = () => {
709
+ clearTimeout(timer);
710
+ resolve(true);
711
+ };
712
+ const timer = setTimeout(() => {
713
+ processExitWaiters.delete(waiter);
714
+ resolve(false);
715
+ }, timeoutMs);
716
+ processExitWaiters.add(waiter);
717
+ });
718
+ }
719
+ async function killAndWait(options) {
720
+ const gracefulTimeoutMs = options?.gracefulTimeoutMs ?? 2000;
721
+ const forceTimeoutMs = options?.forceTimeoutMs ?? 1000;
722
+ if (processExited) {
723
+ kill();
724
+ return;
725
+ }
726
+ try {
727
+ ptyProcess.kill();
728
+ }
729
+ catch {
730
+ // process may already be gone
731
+ }
732
+ const exitedGracefully = await waitForProcessExit(gracefulTimeoutMs);
733
+ if (!exitedGracefully) {
734
+ try {
735
+ ptyProcess.kill("SIGKILL");
736
+ }
737
+ catch {
738
+ // process may already be gone
739
+ }
740
+ await waitForProcessExit(forceTimeoutMs);
741
+ }
742
+ // Finalize bookkeeping (idempotent if ptyProcess.onExit already fired).
743
+ kill();
744
+ }
370
745
  // Small delay to let shell initialize
371
746
  await new Promise((resolve) => setTimeout(resolve, 50));
372
747
  return {
@@ -376,9 +751,14 @@ export async function createTerminal(options) {
376
751
  send,
377
752
  subscribe,
378
753
  onExit,
754
+ onCommandFinished,
755
+ onTitleChange,
379
756
  getSize,
380
757
  getState,
758
+ getTitle,
759
+ getExitInfo,
381
760
  kill,
761
+ killAndWait,
382
762
  };
383
763
  }
384
764
  //# sourceMappingURL=terminal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/terminal/terminal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/terminal/terminal.ts"],"names":[],"mappings":"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"}