@averyyy/pi-coding-agent 0.84.4-piclient.1 → 0.85.1-piclient.1

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 (325) hide show
  1. package/CHANGELOG.md +76 -1
  2. package/README.md +1 -1
  3. package/dist/bun/cli.d.ts +3 -1
  4. package/dist/bun/cli.d.ts.map +1 -1
  5. package/dist/bun/cli.js +3 -9
  6. package/dist/bun/cli.js.map +1 -1
  7. package/dist/bun/runtime-setup.d.ts +2 -0
  8. package/dist/bun/runtime-setup.d.ts.map +1 -0
  9. package/dist/bun/runtime-setup.js +9 -0
  10. package/dist/bun/runtime-setup.js.map +1 -0
  11. package/dist/bun/sandbox-env-setup.d.ts +2 -0
  12. package/dist/bun/sandbox-env-setup.d.ts.map +1 -0
  13. package/dist/bun/sandbox-env-setup.js +4 -0
  14. package/dist/bun/sandbox-env-setup.js.map +1 -0
  15. package/dist/bundle/chunks/anthropic-messages-VWZZOSJQ.js +6 -0
  16. package/dist/bundle/chunks/{azure-openai-responses-B2RCCN5N.js → azure-openai-responses-B467Y57F.js} +1 -1
  17. package/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  18. package/dist/bundle/chunks/{chunk-LRBSW3NQ.js → chunk-6WPJTKUF.js} +2 -2
  19. package/dist/bundle/chunks/chunk-7ZC4UXSL.js +2 -0
  20. package/dist/bundle/chunks/chunk-CLNPYIDP.js +42 -0
  21. package/dist/bundle/chunks/{chunk-MNAIPA3J.js → chunk-IDDQWTHI.js} +1 -1
  22. package/dist/bundle/chunks/{chunk-2KVJKXS2.js → chunk-U6ZMQKGD.js} +1 -1
  23. package/dist/bundle/chunks/chunk-USJZMAIR.js +2 -0
  24. package/dist/bundle/chunks/chunk-ZNXRLOMG.js +1641 -0
  25. package/dist/bundle/chunks/github-copilot.js +1 -1
  26. package/dist/bundle/chunks/{google-generative-ai-YMUPJBKR.js → google-generative-ai-Q2K7FBDI.js} +1 -1
  27. package/dist/bundle/chunks/{google-vertex-MPWMV4OF.js → google-vertex-7UJBF4S7.js} +1 -1
  28. package/dist/bundle/chunks/image-resize-worker.js +1 -1
  29. package/dist/bundle/chunks/{mistral-conversations-Q3AWZJAZ.js → mistral-conversations-4M6BZBX6.js} +1 -1
  30. package/dist/bundle/chunks/node-KG362ECQ.js +16 -0
  31. package/dist/bundle/chunks/node-TWVVAGPO.js +2 -0
  32. package/dist/bundle/chunks/openai-codex-responses-MERYAUSE.js +10 -0
  33. package/dist/bundle/chunks/{openai-completions-ERMU2SS7.js → openai-completions-EKZT2IH2.js} +3 -3
  34. package/dist/bundle/chunks/openai-responses-YZ6M7S4X.js +2 -0
  35. package/dist/bundle/chunks/{pi-messages-TPFH44NP.js → pi-messages-PML4SPVJ.js} +1 -1
  36. package/dist/bundle/cli.js +1 -1
  37. package/dist/bundle/index.js +1 -1
  38. package/dist/bundle/rpc-entry.js +1 -1
  39. package/dist/cli/config-selector.d.ts.map +1 -1
  40. package/dist/cli/config-selector.js +2 -1
  41. package/dist/cli/config-selector.js.map +1 -1
  42. package/dist/cli/setup.d.ts +2 -0
  43. package/dist/cli/setup.d.ts.map +1 -0
  44. package/dist/cli/setup.js +12 -0
  45. package/dist/cli/setup.js.map +1 -0
  46. package/dist/cli.d.ts.map +1 -1
  47. package/dist/cli.js +2 -15
  48. package/dist/cli.js.map +1 -1
  49. package/dist/config.d.ts +1 -0
  50. package/dist/config.d.ts.map +1 -1
  51. package/dist/config.js +1 -0
  52. package/dist/config.js.map +1 -1
  53. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  54. package/dist/core/agent-session-runtime.js +15 -7
  55. package/dist/core/agent-session-runtime.js.map +1 -1
  56. package/dist/core/agent-session.d.ts +5 -6
  57. package/dist/core/agent-session.d.ts.map +1 -1
  58. package/dist/core/agent-session.js +36 -8
  59. package/dist/core/agent-session.js.map +1 -1
  60. package/dist/core/compaction/branch-summarization.d.ts +1 -1
  61. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  62. package/dist/core/compaction/branch-summarization.js +1 -1
  63. package/dist/core/compaction/branch-summarization.js.map +1 -1
  64. package/dist/core/extensions/loader.d.ts.map +1 -1
  65. package/dist/core/extensions/loader.js +1 -2
  66. package/dist/core/extensions/loader.js.map +1 -1
  67. package/dist/core/extensions/types.d.ts +8 -2
  68. package/dist/core/extensions/types.d.ts.map +1 -1
  69. package/dist/core/extensions/types.js.map +1 -1
  70. package/dist/core/http-dispatcher.d.ts.map +1 -1
  71. package/dist/core/http-dispatcher.js +2 -0
  72. package/dist/core/http-dispatcher.js.map +1 -1
  73. package/dist/core/keybindings.d.ts +5 -0
  74. package/dist/core/keybindings.d.ts.map +1 -1
  75. package/dist/core/keybindings.js +4 -0
  76. package/dist/core/keybindings.js.map +1 -1
  77. package/dist/core/messages.d.ts +1 -1
  78. package/dist/core/messages.d.ts.map +1 -1
  79. package/dist/core/messages.js.map +1 -1
  80. package/dist/core/model-config.d.ts +15 -0
  81. package/dist/core/model-config.d.ts.map +1 -1
  82. package/dist/core/model-config.js +3 -0
  83. package/dist/core/model-config.js.map +1 -1
  84. package/dist/core/model-runtime.d.ts +1 -0
  85. package/dist/core/model-runtime.d.ts.map +1 -1
  86. package/dist/core/model-runtime.js +5 -2
  87. package/dist/core/model-runtime.js.map +1 -1
  88. package/dist/core/pi-server-client.d.ts.map +1 -1
  89. package/dist/core/pi-server-client.js +26 -9
  90. package/dist/core/pi-server-client.js.map +1 -1
  91. package/dist/core/provider-composer.d.ts.map +1 -1
  92. package/dist/core/provider-composer.js +8 -2
  93. package/dist/core/provider-composer.js.map +1 -1
  94. package/dist/core/session-manager.d.ts +3 -2
  95. package/dist/core/session-manager.d.ts.map +1 -1
  96. package/dist/core/session-manager.js +40 -13
  97. package/dist/core/session-manager.js.map +1 -1
  98. package/dist/core/settings-manager.d.ts.map +1 -1
  99. package/dist/core/settings-manager.js.map +1 -1
  100. package/dist/core/skills.d.ts +1 -1
  101. package/dist/core/skills.d.ts.map +1 -1
  102. package/dist/core/skills.js +4 -2
  103. package/dist/core/skills.js.map +1 -1
  104. package/dist/core/system-prompt.d.ts.map +1 -1
  105. package/dist/core/system-prompt.js +8 -9
  106. package/dist/core/system-prompt.js.map +1 -1
  107. package/dist/core/tools/bash.d.ts.map +1 -1
  108. package/dist/core/tools/bash.js +6 -6
  109. package/dist/core/tools/bash.js.map +1 -1
  110. package/dist/core/tools/edit.d.ts +1 -12
  111. package/dist/core/tools/edit.d.ts.map +1 -1
  112. package/dist/core/tools/edit.js +5 -163
  113. package/dist/core/tools/edit.js.map +1 -1
  114. package/dist/core/tools/find.d.ts.map +1 -1
  115. package/dist/core/tools/find.js +4 -55
  116. package/dist/core/tools/find.js.map +1 -1
  117. package/dist/core/tools/grep.d.ts.map +1 -1
  118. package/dist/core/tools/grep.js +4 -60
  119. package/dist/core/tools/grep.js.map +1 -1
  120. package/dist/core/tools/ls.d.ts.map +1 -1
  121. package/dist/core/tools/ls.js +4 -49
  122. package/dist/core/tools/ls.js.map +1 -1
  123. package/dist/core/tools/read.d.ts.map +1 -1
  124. package/dist/core/tools/read.js +4 -120
  125. package/dist/core/tools/read.js.map +1 -1
  126. package/dist/core/tools/renderers/bash.d.ts +12 -0
  127. package/dist/core/tools/renderers/bash.d.ts.map +1 -0
  128. package/dist/core/tools/renderers/bash.js +130 -0
  129. package/dist/core/tools/renderers/bash.js.map +1 -0
  130. package/dist/core/tools/renderers/edit.d.ts +23 -0
  131. package/dist/core/tools/renderers/edit.d.ts.map +1 -0
  132. package/dist/core/tools/renderers/edit.js +167 -0
  133. package/dist/core/tools/renderers/edit.js.map +1 -0
  134. package/dist/core/tools/renderers/find.d.ts +10 -0
  135. package/dist/core/tools/renderers/find.d.ts.map +1 -0
  136. package/dist/core/tools/renderers/find.js +64 -0
  137. package/dist/core/tools/renderers/find.js.map +1 -0
  138. package/dist/core/tools/renderers/grep.d.ts +10 -0
  139. package/dist/core/tools/renderers/grep.d.ts.map +1 -0
  140. package/dist/core/tools/renderers/grep.js +69 -0
  141. package/dist/core/tools/renderers/grep.js.map +1 -0
  142. package/dist/core/tools/renderers/index.d.ts +28 -0
  143. package/dist/core/tools/renderers/index.d.ts.map +1 -0
  144. package/dist/core/tools/renderers/index.js +47 -0
  145. package/dist/core/tools/renderers/index.js.map +1 -0
  146. package/dist/core/tools/renderers/ls.d.ts +10 -0
  147. package/dist/core/tools/renderers/ls.d.ts.map +1 -0
  148. package/dist/core/tools/renderers/ls.js +58 -0
  149. package/dist/core/tools/renderers/ls.js.map +1 -0
  150. package/dist/core/tools/renderers/read.d.ts +11 -0
  151. package/dist/core/tools/renderers/read.d.ts.map +1 -0
  152. package/dist/core/tools/renderers/read.js +129 -0
  153. package/dist/core/tools/renderers/read.js.map +1 -0
  154. package/dist/core/tools/renderers/write.d.ts +10 -0
  155. package/dist/core/tools/renderers/write.d.ts.map +1 -0
  156. package/dist/core/tools/renderers/write.js +153 -0
  157. package/dist/core/tools/renderers/write.js.map +1 -0
  158. package/dist/core/tools/write.d.ts.map +1 -1
  159. package/dist/core/tools/write.js +5 -146
  160. package/dist/core/tools/write.js.map +1 -1
  161. package/dist/index.d.ts +1 -1
  162. package/dist/index.d.ts.map +1 -1
  163. package/dist/index.js.map +1 -1
  164. package/dist/main.d.ts.map +1 -1
  165. package/dist/main.js +4 -1
  166. package/dist/main.js.map +1 -1
  167. package/dist/modes/interactive/chat-viewport.d.ts +20 -0
  168. package/dist/modes/interactive/chat-viewport.d.ts.map +1 -0
  169. package/dist/modes/interactive/chat-viewport.js +28 -0
  170. package/dist/modes/interactive/chat-viewport.js.map +1 -0
  171. package/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  172. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  173. package/dist/modes/interactive/components/assistant-message.js +18 -10
  174. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  175. package/dist/modes/interactive/components/custom-editor.d.ts +10 -1
  176. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  177. package/dist/modes/interactive/components/custom-editor.js +39 -1
  178. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  179. package/dist/modes/interactive/components/index.d.ts +1 -1
  180. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  181. package/dist/modes/interactive/components/index.js.map +1 -1
  182. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  183. package/dist/modes/interactive/components/model-selector.js +10 -19
  184. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  185. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  186. package/dist/modes/interactive/components/scoped-models-selector.js +21 -23
  187. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  188. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  189. package/dist/modes/interactive/components/settings-selector.js +14 -10
  190. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  191. package/dist/modes/interactive/components/status-indicator.d.ts +3 -1
  192. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  193. package/dist/modes/interactive/components/status-indicator.js +10 -3
  194. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  195. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  196. package/dist/modes/interactive/components/thinking-selector.js +6 -6
  197. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  198. package/dist/modes/interactive/components/tool-execution.d.ts +21 -4
  199. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  200. package/dist/modes/interactive/components/tool-execution.js +35 -33
  201. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  202. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  203. package/dist/modes/interactive/components/trust-selector.js +2 -2
  204. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  205. package/dist/modes/interactive/interactive-mode.d.ts +9 -15
  206. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  207. package/dist/modes/interactive/interactive-mode.js +112 -84
  208. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  209. package/dist/modes/interactive/session-share.d.ts.map +1 -1
  210. package/dist/modes/interactive/session-share.js +8 -12
  211. package/dist/modes/interactive/session-share.js.map +1 -1
  212. package/dist/modes/interactive/theme/dark.json +2 -1
  213. package/dist/modes/interactive/theme/light.json +2 -1
  214. package/dist/modes/interactive/theme/theme-controller.d.ts +1 -0
  215. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  216. package/dist/modes/interactive/theme/theme-controller.js +5 -0
  217. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  218. package/dist/modes/interactive/theme/theme-json.d.ts +84 -0
  219. package/dist/modes/interactive/theme/theme-json.d.ts.map +1 -0
  220. package/dist/modes/interactive/theme/theme-json.js +130 -0
  221. package/dist/modes/interactive/theme/theme-json.js.map +1 -0
  222. package/dist/modes/interactive/theme/theme-schema.json +6 -2
  223. package/dist/modes/interactive/theme/theme.d.ts +14 -5
  224. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  225. package/dist/modes/interactive/theme/theme.js +18 -119
  226. package/dist/modes/interactive/theme/theme.js.map +1 -1
  227. package/dist/modes/interactive/tui-renderer.d.ts +21 -0
  228. package/dist/modes/interactive/tui-renderer.d.ts.map +1 -0
  229. package/dist/modes/interactive/tui-renderer.js +66 -0
  230. package/dist/modes/interactive/tui-renderer.js.map +1 -0
  231. package/dist/utils/exif-orientation.d.ts.map +1 -1
  232. package/dist/utils/exif-orientation.js +2 -3
  233. package/dist/utils/exif-orientation.js.map +1 -1
  234. package/dist/utils/tools-manager.d.ts +1 -0
  235. package/dist/utils/tools-manager.d.ts.map +1 -1
  236. package/dist/utils/tools-manager.js +41 -19
  237. package/dist/utils/tools-manager.js.map +1 -1
  238. package/docs/containerization.md +45 -0
  239. package/docs/development.md +19 -0
  240. package/docs/environment-variables.md +2 -0
  241. package/docs/extensions.md +5 -2
  242. package/docs/keybindings.md +5 -2
  243. package/docs/models.md +4 -1
  244. package/docs/rpc.md +1 -1
  245. package/docs/sdk.md +5 -0
  246. package/docs/settings.md +5 -5
  247. package/docs/skills.md +1 -1
  248. package/docs/terminal-setup.md +15 -0
  249. package/docs/themes.md +8 -6
  250. package/docs/tui.md +20 -1
  251. package/examples/README.md +3 -0
  252. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  253. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  254. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  255. package/examples/extensions/dynamic-resources/dynamic.json +2 -0
  256. package/examples/extensions/gondolin/package-lock.json +2 -2
  257. package/examples/extensions/gondolin/package.json +1 -1
  258. package/examples/extensions/sandbox/package-lock.json +2 -2
  259. package/examples/extensions/sandbox/package.json +1 -1
  260. package/examples/extensions/with-deps/package-lock.json +2 -2
  261. package/examples/extensions/with-deps/package.json +1 -1
  262. package/examples/plugins/pi-example-plugin/README.md +38 -0
  263. package/examples/plugins/pi-example-plugin/package.json +10 -0
  264. package/examples/plugins/pi-example-plugin/src/contract.ts +13 -0
  265. package/examples/plugins/pi-example-plugin/src/session.ts +23 -0
  266. package/examples/plugins/pi-example-plugin/src/tui.ts +31 -0
  267. package/package.json +15 -8
  268. package/dist/bun/register-bedrock.d.ts +0 -2
  269. package/dist/bun/register-bedrock.d.ts.map +0 -1
  270. package/dist/bun/register-bedrock.js +0 -4
  271. package/dist/bun/register-bedrock.js.map +0 -1
  272. package/dist/bundle/chunks/anthropic-messages-JWX2WP65.js +0 -45
  273. package/dist/bundle/chunks/chunk-AP7VCR6I.js +0 -1633
  274. package/dist/bundle/chunks/chunk-JUUC5AZY.js +0 -2
  275. package/dist/bundle/chunks/openai-codex-responses-MJHX7NXI.js +0 -8
  276. package/dist/bundle/chunks/openai-responses-CP4VKB27.js +0 -2
  277. package/dist/bundle/client.js +0 -2
  278. package/dist/cli/experimental/auth.d.ts +0 -16
  279. package/dist/cli/experimental/auth.d.ts.map +0 -1
  280. package/dist/cli/experimental/auth.js +0 -13
  281. package/dist/cli/experimental/auth.js.map +0 -1
  282. package/dist/cli/experimental/cli.d.ts +0 -6
  283. package/dist/cli/experimental/cli.d.ts.map +0 -1
  284. package/dist/cli/experimental/cli.js +0 -5
  285. package/dist/cli/experimental/cli.js.map +0 -1
  286. package/dist/cli/experimental/command-options.d.ts +0 -17
  287. package/dist/cli/experimental/command-options.d.ts.map +0 -1
  288. package/dist/cli/experimental/command-options.js +0 -35
  289. package/dist/cli/experimental/command-options.js.map +0 -1
  290. package/dist/cli/experimental/command.d.ts +0 -63
  291. package/dist/cli/experimental/command.d.ts.map +0 -1
  292. package/dist/cli/experimental/command.js +0 -130
  293. package/dist/cli/experimental/command.js.map +0 -1
  294. package/dist/cli/experimental/commands/client.d.ts +0 -13
  295. package/dist/cli/experimental/commands/client.d.ts.map +0 -1
  296. package/dist/cli/experimental/commands/client.js +0 -25
  297. package/dist/cli/experimental/commands/client.js.map +0 -1
  298. package/dist/cli/experimental/commands/pi.d.ts +0 -15
  299. package/dist/cli/experimental/commands/pi.d.ts.map +0 -1
  300. package/dist/cli/experimental/commands/pi.js +0 -28
  301. package/dist/cli/experimental/commands/pi.js.map +0 -1
  302. package/dist/cli/experimental/commands/server.d.ts +0 -13
  303. package/dist/cli/experimental/commands/server.d.ts.map +0 -1
  304. package/dist/cli/experimental/commands/server.js +0 -25
  305. package/dist/cli/experimental/commands/server.js.map +0 -1
  306. package/dist/cli/experimental/transport-address.d.ts +0 -10
  307. package/dist/cli/experimental/transport-address.d.ts.map +0 -1
  308. package/dist/cli/experimental/transport-address.js +0 -38
  309. package/dist/cli/experimental/transport-address.js.map +0 -1
  310. package/dist/client/index.d.ts +0 -3
  311. package/dist/client/index.d.ts.map +0 -1
  312. package/dist/client/index.js +0 -3
  313. package/dist/client/index.js.map +0 -1
  314. package/dist/client/remote-session.d.ts +0 -53
  315. package/dist/client/remote-session.d.ts.map +0 -1
  316. package/dist/client/remote-session.js +0 -340
  317. package/dist/client/remote-session.js.map +0 -1
  318. package/dist/client/transcript.d.ts +0 -12
  319. package/dist/client/transcript.d.ts.map +0 -1
  320. package/dist/client/transcript.js +0 -98
  321. package/dist/client/transcript.js.map +0 -1
  322. package/dist/server/create-harness.d.ts +0 -26
  323. package/dist/server/create-harness.d.ts.map +0 -1
  324. package/dist/server/create-harness.js +0 -106
  325. package/dist/server/create-harness.js.map +0 -1
@@ -102,6 +102,16 @@ function getPiServerFailurePhase(message) {
102
102
  }
103
103
  return undefined;
104
104
  }
105
+ function getPiServerFailureRetryable(message) {
106
+ for (const diagnostic of message.diagnostics ?? []) {
107
+ if (diagnostic.type !== "pi_server_failure")
108
+ continue;
109
+ const retryable = diagnostic.details?.retryable;
110
+ if (typeof retryable === "boolean")
111
+ return retryable;
112
+ }
113
+ return undefined;
114
+ }
105
115
  function toolTextContent(content) {
106
116
  return content
107
117
  .filter((part) => part.type === "text")
@@ -488,7 +498,7 @@ export class AgentSession {
488
498
  return this._idleWaitPromise;
489
499
  }
490
500
  _resolveIdleWaitIfIdle() {
491
- if (this._isAgentRunActive || !this._resolveIdleWait) {
501
+ if (!this.isIdle || !this._resolveIdleWait) {
492
502
  return;
493
503
  }
494
504
  const resolve = this._resolveIdleWait;
@@ -824,9 +834,9 @@ export class AgentSession {
824
834
  get isStreaming() {
825
835
  return this._isAgentRunActive;
826
836
  }
827
- /** Whether the session has no active agent run, retry, auto-compaction, or queued continuation. */
837
+ /** Whether the session has no active agent run, compaction, branch summary, retry, or queued continuation. */
828
838
  get isIdle() {
829
- return !this._isAgentRunActive;
839
+ return !this._isAgentRunActive && !this.isCompacting;
830
840
  }
831
841
  /** Current effective system prompt (includes any per-turn extension modifications) */
832
842
  get systemPrompt() {
@@ -1518,6 +1528,8 @@ export class AgentSession {
1518
1528
  */
1519
1529
  async abort() {
1520
1530
  this.abortRetry();
1531
+ this.abortCompaction();
1532
+ this.abortBranchSummary();
1521
1533
  this.agent.abort();
1522
1534
  await this.waitForIdle();
1523
1535
  }
@@ -1774,6 +1786,10 @@ export class AgentSession {
1774
1786
  }
1775
1787
  return compactionResult;
1776
1788
  }
1789
+ _clearManualCompactionState() {
1790
+ this._compactionAbortController = undefined;
1791
+ this._resolveIdleWaitIfIdle();
1792
+ }
1777
1793
  /**
1778
1794
  * Manually compact the session context.
1779
1795
  * Aborts current agent operation first.
@@ -1897,7 +1913,7 @@ export class AgentSession {
1897
1913
  details,
1898
1914
  };
1899
1915
  // compaction_end listeners may submit queued prompts, so expose idle state before notifying them.
1900
- this._compactionAbortController = undefined;
1916
+ this._clearManualCompactionState();
1901
1917
  this._emit({
1902
1918
  type: "compaction_end",
1903
1919
  reason: "manual",
@@ -1911,18 +1927,20 @@ export class AgentSession {
1911
1927
  const message = error instanceof Error ? error.message : String(error);
1912
1928
  const aborted = message === "Compaction cancelled" || (error instanceof Error && error.name === "AbortError");
1913
1929
  this._compactionAbortController = undefined;
1930
+ const errorMessage = aborted ? undefined : `Compaction failed: ${message}`;
1931
+ this._clearManualCompactionState();
1914
1932
  this._emit({
1915
1933
  type: "compaction_end",
1916
1934
  reason: "manual",
1917
1935
  result: undefined,
1918
1936
  aborted,
1919
1937
  willRetry: false,
1920
- errorMessage: aborted ? undefined : `Compaction failed: ${message}`,
1938
+ errorMessage,
1921
1939
  });
1922
1940
  throw error;
1923
1941
  }
1924
1942
  finally {
1925
- this._compactionAbortController = undefined;
1943
+ this._clearManualCompactionState();
1926
1944
  }
1927
1945
  }
1928
1946
  /**
@@ -2229,6 +2247,7 @@ export class AgentSession {
2229
2247
  }
2230
2248
  finally {
2231
2249
  this._autoCompactionAbortController = undefined;
2250
+ this._resolveIdleWaitIfIdle();
2232
2251
  }
2233
2252
  }
2234
2253
  /**
@@ -2637,6 +2656,9 @@ export class AgentSession {
2637
2656
  * Check if an error is retryable. Provider error text is retryable by default,
2638
2657
  * except usage/quota/balance limits and session or context failures.
2639
2658
  * Context overflow errors are NOT retryable (handled by compaction instead).
2659
+ * Pi-server diagnostics may mark recovery/history failures as non-retryable;
2660
+ * transient session_init/tree_sync outages stay retryable so the next attempt
2661
+ * re-runs the whole stream path.
2640
2662
  */
2641
2663
  _isRetryableError(message) {
2642
2664
  // Context overflow is handled by compaction, not retry.
@@ -2644,9 +2666,14 @@ export class AgentSession {
2644
2666
  return false;
2645
2667
  if (this._isPostAssistantPiServerSyncFailure(message))
2646
2668
  return false;
2647
- const piServerPhase = getPiServerFailurePhase(message);
2648
- if (piServerPhase && piServerPhase !== "provider_stream")
2669
+ const piServerRetryable = getPiServerFailureRetryable(message);
2670
+ if (piServerRetryable === false)
2649
2671
  return false;
2672
+ if (piServerRetryable !== true) {
2673
+ const piServerPhase = getPiServerFailurePhase(message);
2674
+ if (piServerPhase && piServerPhase !== "provider_stream")
2675
+ return false;
2676
+ }
2650
2677
  return isRetryableAssistantError(message);
2651
2678
  }
2652
2679
  /**
@@ -3042,6 +3069,7 @@ export class AgentSession {
3042
3069
  }
3043
3070
  finally {
3044
3071
  this._branchSummaryAbortController = undefined;
3072
+ this._resolveIdleWaitIfIdle();
3045
3073
  }
3046
3074
  }
3047
3075
  /**