@code-yeongyu/senpi 2026.7.30 → 2026.7.31-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 (529) hide show
  1. package/CHANGELOG.md +182 -0
  2. package/README.md +3 -0
  3. package/dist/core/agent-session.d.ts +55 -12
  4. package/dist/core/agent-session.d.ts.map +1 -1
  5. package/dist/core/agent-session.js +141 -21
  6. package/dist/core/agent-session.js.map +1 -1
  7. package/dist/core/compaction/compaction.d.ts +1 -0
  8. package/dist/core/compaction/compaction.d.ts.map +1 -1
  9. package/dist/core/compaction/compaction.js +1 -0
  10. package/dist/core/compaction/compaction.js.map +1 -1
  11. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  12. package/dist/core/dynamic-prompt/build.js +4 -0
  13. package/dist/core/dynamic-prompt/build.js.map +1 -1
  14. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts +2 -2
  15. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts.map +1 -1
  16. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js +25 -25
  17. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js.map +1 -1
  18. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts.map +1 -1
  19. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js.map +1 -1
  20. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts +1 -1
  21. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts.map +1 -1
  22. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js +2 -2
  23. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js.map +1 -1
  24. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts +9 -9
  25. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts.map +1 -1
  26. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js +2 -2
  27. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js.map +1 -1
  28. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts +1 -1
  29. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts.map +1 -1
  30. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js +3 -3
  31. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js.map +1 -1
  32. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts +21 -0
  33. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts.map +1 -0
  34. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js +30 -0
  35. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js.map +1 -0
  36. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.d.ts +8 -4
  37. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.d.ts.map +1 -0
  38. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.js +34 -25
  39. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.js.map +1 -0
  40. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts.map +1 -1
  41. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js.map +1 -1
  42. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts.map +1 -1
  43. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js.map +1 -1
  44. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts +1 -1
  45. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts.map +1 -1
  46. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js +1 -1
  47. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js.map +1 -1
  48. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts.map +1 -1
  49. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js.map +1 -1
  50. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts.map +1 -1
  51. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js +1 -1
  52. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js.map +1 -1
  53. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts +14 -0
  54. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts.map +1 -0
  55. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/guidance.js +37 -1
  56. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.js.map +1 -0
  57. package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts +4 -0
  58. package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts.map +1 -0
  59. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/index.js +12 -10
  60. package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -0
  61. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts +3 -3
  62. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts.map +1 -1
  63. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.js +2 -2
  64. package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -0
  65. package/dist/core/extensions/builtin/claude-sdk-oauth/options.d.ts +18 -0
  66. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.d.ts.map +1 -1
  67. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.js +70 -10
  68. package/dist/core/extensions/builtin/claude-sdk-oauth/options.js.map +1 -0
  69. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts.map +1 -1
  70. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.js +32 -19
  71. package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.js.map +1 -0
  72. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.d.ts +1 -0
  73. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.d.ts.map +1 -1
  74. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js.map +1 -1
  75. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts +30 -0
  76. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts.map +1 -0
  77. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js +197 -0
  78. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js.map +1 -0
  79. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts +18 -0
  80. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts.map +1 -0
  81. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js +33 -0
  82. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js.map +1 -0
  83. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts +3 -0
  84. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts.map +1 -0
  85. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js +134 -0
  86. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js.map +1 -0
  87. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts +85 -0
  88. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts.map +1 -0
  89. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js +270 -0
  90. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js.map +1 -0
  91. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts +17 -0
  92. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts.map +1 -0
  93. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js +217 -0
  94. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js.map +1 -0
  95. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts +49 -0
  96. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts.map +1 -0
  97. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js +204 -0
  98. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -0
  99. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts +28 -0
  100. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts.map +1 -0
  101. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js +107 -0
  102. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -0
  103. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts +2 -0
  104. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts.map +1 -0
  105. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js +10 -0
  106. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js.map +1 -0
  107. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts.map +1 -1
  108. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js.map +1 -1
  109. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream.d.ts +1 -1
  110. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.d.ts.map +1 -0
  111. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream.js +72 -53
  112. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js.map +1 -0
  113. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts +3 -0
  114. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts.map +1 -0
  115. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js +25 -0
  116. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js.map +1 -0
  117. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts +1 -1
  118. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts.map +1 -1
  119. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js +2 -2
  120. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js.map +1 -1
  121. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.d.ts.map +1 -1
  122. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.js.map +1 -1
  123. package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts +18 -0
  124. package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts.map +1 -0
  125. package/dist/core/extensions/builtin/compaction/deterministic-fallback.js +69 -0
  126. package/dist/core/extensions/builtin/compaction/deterministic-fallback.js.map +1 -0
  127. package/dist/core/extensions/builtin/compaction/idle.d.ts +16 -0
  128. package/dist/core/extensions/builtin/compaction/idle.d.ts.map +1 -0
  129. package/dist/core/extensions/builtin/compaction/idle.js +21 -0
  130. package/dist/core/extensions/builtin/compaction/idle.js.map +1 -0
  131. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  132. package/dist/core/extensions/builtin/compaction/index.js +45 -2
  133. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  134. package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
  135. package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
  136. package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
  137. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts +3 -0
  138. package/dist/core/extensions/builtin/compaction/openai-remote.d.ts.map +1 -1
  139. package/dist/core/extensions/builtin/compaction/openai-remote.js +15 -4
  140. package/dist/core/extensions/builtin/compaction/openai-remote.js.map +1 -1
  141. package/dist/core/extensions/builtin/compaction/speculative.d.ts +4 -1
  142. package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
  143. package/dist/core/extensions/builtin/compaction/speculative.js +39 -20
  144. package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
  145. package/dist/core/extensions/builtin/compaction/task-intent.d.ts +2 -6
  146. package/dist/core/extensions/builtin/compaction/task-intent.d.ts.map +1 -1
  147. package/dist/core/extensions/builtin/compaction/task-intent.js +10 -9
  148. package/dist/core/extensions/builtin/compaction/task-intent.js.map +1 -1
  149. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts +6 -0
  150. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts.map +1 -0
  151. package/dist/core/extensions/builtin/goal/continuation-recovery.js +20 -0
  152. package/dist/core/extensions/builtin/goal/continuation-recovery.js.map +1 -0
  153. package/dist/core/extensions/builtin/goal/continuation.d.ts +4 -4
  154. package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
  155. package/dist/core/extensions/builtin/goal/continuation.js +14 -8
  156. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  157. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts +19 -0
  158. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts.map +1 -0
  159. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +48 -0
  160. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -0
  161. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  162. package/dist/core/extensions/builtin/goal/index.js +21 -16
  163. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  164. package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts.map +1 -1
  165. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js +12 -10
  166. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -1
  167. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +5 -1
  168. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  169. package/dist/core/extensions/builtin/goal/monitor-continuation.js +109 -63
  170. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  171. package/dist/core/extensions/builtin/goal/persistence.d.ts +1 -0
  172. package/dist/core/extensions/builtin/goal/persistence.d.ts.map +1 -1
  173. package/dist/core/extensions/builtin/goal/persistence.js +49 -7
  174. package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
  175. package/dist/core/extensions/builtin/goal/ui.d.ts +1 -0
  176. package/dist/core/extensions/builtin/goal/ui.d.ts.map +1 -1
  177. package/dist/core/extensions/builtin/goal/ui.js +11 -2
  178. package/dist/core/extensions/builtin/goal/ui.js.map +1 -1
  179. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts +1 -1
  180. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts.map +1 -1
  181. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js +67 -66
  182. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js.map +1 -1
  183. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.d.ts +4 -0
  184. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.d.ts.map +1 -0
  185. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.js +35 -0
  186. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.js.map +1 -0
  187. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
  188. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js +0 -5
  189. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
  190. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts +2 -0
  191. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts.map +1 -1
  192. package/dist/core/extensions/builtin/gpt-apply-patch/types.js.map +1 -1
  193. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  194. package/dist/core/extensions/builtin/index.js +5 -2
  195. package/dist/core/extensions/builtin/index.js.map +1 -1
  196. package/dist/core/extensions/builtin/loop-guard/detectors.d.ts +31 -0
  197. package/dist/core/extensions/builtin/loop-guard/detectors.d.ts.map +1 -0
  198. package/dist/core/extensions/builtin/loop-guard/detectors.js +111 -0
  199. package/dist/core/extensions/builtin/loop-guard/detectors.js.map +1 -0
  200. package/dist/core/extensions/builtin/loop-guard/index.d.ts +3 -0
  201. package/dist/core/extensions/builtin/loop-guard/index.d.ts.map +1 -0
  202. package/dist/core/extensions/builtin/loop-guard/index.js +31 -0
  203. package/dist/core/extensions/builtin/loop-guard/index.js.map +1 -0
  204. package/dist/core/extensions/builtin/loop-guard/notice.d.ts +5 -0
  205. package/dist/core/extensions/builtin/loop-guard/notice.d.ts.map +1 -0
  206. package/dist/core/extensions/builtin/loop-guard/notice.js +42 -0
  207. package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -0
  208. package/dist/core/extensions/builtin/loop-guard/policy.d.ts +30 -0
  209. package/dist/core/extensions/builtin/loop-guard/policy.d.ts.map +1 -0
  210. package/dist/core/extensions/builtin/loop-guard/policy.js +30 -0
  211. package/dist/core/extensions/builtin/loop-guard/policy.js.map +1 -0
  212. package/dist/core/extensions/builtin/loop-guard/renderer.d.ts +4 -0
  213. package/dist/core/extensions/builtin/loop-guard/renderer.d.ts.map +1 -0
  214. package/dist/core/extensions/builtin/loop-guard/renderer.js +50 -0
  215. package/dist/core/extensions/builtin/loop-guard/renderer.js.map +1 -0
  216. package/dist/core/extensions/builtin/loop-guard/similarity.d.ts +13 -0
  217. package/dist/core/extensions/builtin/loop-guard/similarity.d.ts.map +1 -0
  218. package/dist/core/extensions/builtin/loop-guard/similarity.js +51 -0
  219. package/dist/core/extensions/builtin/loop-guard/similarity.js.map +1 -0
  220. package/dist/core/extensions/builtin/loop-guard/tracker.d.ts +13 -0
  221. package/dist/core/extensions/builtin/loop-guard/tracker.d.ts.map +1 -0
  222. package/dist/core/extensions/builtin/loop-guard/tracker.js +39 -0
  223. package/dist/core/extensions/builtin/loop-guard/tracker.js.map +1 -0
  224. package/dist/core/extensions/builtin/monitor-state-event.d.ts +10 -0
  225. package/dist/core/extensions/builtin/monitor-state-event.d.ts.map +1 -1
  226. package/dist/core/extensions/builtin/monitor-state-event.js.map +1 -1
  227. package/dist/core/extensions/builtin/prompt-preset/index.d.ts.map +1 -1
  228. package/dist/core/extensions/builtin/prompt-preset/index.js +8 -4
  229. package/dist/core/extensions/builtin/prompt-preset/index.js.map +1 -1
  230. package/dist/core/extensions/builtin/rules/index.js +4 -3
  231. package/dist/core/extensions/builtin/rules/index.js.map +1 -1
  232. package/dist/core/extensions/builtin/rules/rules/constants.d.ts +11 -0
  233. package/dist/core/extensions/builtin/rules/rules/constants.d.ts.map +1 -1
  234. package/dist/core/extensions/builtin/rules/rules/constants.js +11 -0
  235. package/dist/core/extensions/builtin/rules/rules/constants.js.map +1 -1
  236. package/dist/core/extensions/builtin/rules/rules/formatter.d.ts.map +1 -1
  237. package/dist/core/extensions/builtin/rules/rules/formatter.js +15 -1
  238. package/dist/core/extensions/builtin/rules/rules/formatter.js.map +1 -1
  239. package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
  240. package/dist/core/extensions/builtin/service-tier.js +23 -21
  241. package/dist/core/extensions/builtin/service-tier.js.map +1 -1
  242. package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
  243. package/dist/core/extensions/builtin/terminal/extension.js +21 -7
  244. package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
  245. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +2 -0
  246. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
  247. package/dist/core/extensions/builtin/terminal/monitor-registry.js +2 -0
  248. package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
  249. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts +37 -0
  250. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts.map +1 -0
  251. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js +61 -0
  252. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js.map +1 -0
  253. package/dist/core/extensions/builtin/terminal/monitor-status.d.ts +9 -1
  254. package/dist/core/extensions/builtin/terminal/monitor-status.d.ts.map +1 -1
  255. package/dist/core/extensions/builtin/terminal/monitor-status.js +35 -2
  256. package/dist/core/extensions/builtin/terminal/monitor-status.js.map +1 -1
  257. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts +1 -1
  258. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts.map +1 -1
  259. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js +88 -29
  260. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js.map +1 -1
  261. package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts +4 -0
  262. package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts.map +1 -0
  263. package/dist/core/extensions/builtin/ttsr/builtin-rules.js +20 -0
  264. package/dist/core/extensions/builtin/ttsr/builtin-rules.js.map +1 -0
  265. package/dist/core/extensions/builtin/ttsr/commands.js +9 -1
  266. package/dist/core/extensions/builtin/ttsr/commands.js.map +1 -1
  267. package/dist/core/extensions/builtin/ttsr/index.d.ts.map +1 -1
  268. package/dist/core/extensions/builtin/ttsr/index.js +4 -3
  269. package/dist/core/extensions/builtin/ttsr/index.js.map +1 -1
  270. package/dist/core/extensions/builtin/ttsr/manager.js +1 -1
  271. package/dist/core/extensions/builtin/ttsr/manager.js.map +1 -1
  272. package/dist/core/extensions/builtin/websearch/websearch/renderers.d.ts.map +1 -1
  273. package/dist/core/extensions/builtin/websearch/websearch/renderers.js +1 -1
  274. package/dist/core/extensions/builtin/websearch/websearch/renderers.js.map +1 -1
  275. package/dist/core/extensions/builtin/websearch/websearch/search.d.ts.map +1 -1
  276. package/dist/core/extensions/builtin/websearch/websearch/search.js +1 -3
  277. package/dist/core/extensions/builtin/websearch/websearch/search.js.map +1 -1
  278. package/dist/core/extensions/index.d.ts +1 -1
  279. package/dist/core/extensions/index.d.ts.map +1 -1
  280. package/dist/core/extensions/index.js.map +1 -1
  281. package/dist/core/extensions/loader.d.ts.map +1 -1
  282. package/dist/core/extensions/loader.js +5 -0
  283. package/dist/core/extensions/loader.js.map +1 -1
  284. package/dist/core/extensions/runner.d.ts +1 -1
  285. package/dist/core/extensions/runner.d.ts.map +1 -1
  286. package/dist/core/extensions/runner.js +3 -1
  287. package/dist/core/extensions/runner.js.map +1 -1
  288. package/dist/core/extensions/types.d.ts +22 -1
  289. package/dist/core/extensions/types.d.ts.map +1 -1
  290. package/dist/core/extensions/types.js.map +1 -1
  291. package/dist/core/high-reasoning-warning.d.ts +10 -0
  292. package/dist/core/high-reasoning-warning.d.ts.map +1 -0
  293. package/dist/core/high-reasoning-warning.js +28 -0
  294. package/dist/core/high-reasoning-warning.js.map +1 -0
  295. package/dist/core/model-runtime.d.ts.map +1 -1
  296. package/dist/core/model-runtime.js +3 -11
  297. package/dist/core/model-runtime.js.map +1 -1
  298. package/dist/core/settings-manager.d.ts +2 -0
  299. package/dist/core/settings-manager.d.ts.map +1 -1
  300. package/dist/core/settings-manager.js +1 -0
  301. package/dist/core/settings-manager.js.map +1 -1
  302. package/dist/core/thinking-levels.d.ts.map +1 -1
  303. package/dist/core/thinking-levels.js +23 -3
  304. package/dist/core/thinking-levels.js.map +1 -1
  305. package/dist/index.d.ts +1 -1
  306. package/dist/index.d.ts.map +1 -1
  307. package/dist/index.js.map +1 -1
  308. package/dist/modes/app-server/server/account.d.ts +1 -1
  309. package/dist/modes/app-server/server/account.js +1 -1
  310. package/dist/modes/app-server/server/account.js.map +1 -1
  311. package/dist/modes/app-server/server/server-core.js +1 -1
  312. package/dist/modes/app-server/server/server-core.js.map +1 -1
  313. package/dist/modes/interactive/compaction-queue-transfer.d.ts +2 -0
  314. package/dist/modes/interactive/compaction-queue-transfer.d.ts.map +1 -1
  315. package/dist/modes/interactive/compaction-queue-transfer.js.map +1 -1
  316. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  317. package/dist/modes/interactive/components/footer.js +9 -5
  318. package/dist/modes/interactive/components/footer.js.map +1 -1
  319. package/dist/modes/interactive/interactive-mode.d.ts +8 -1
  320. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  321. package/dist/modes/interactive/interactive-mode.js +96 -24
  322. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  323. package/dist/modes/interactive/risky-main-model-warning.d.ts +5 -0
  324. package/dist/modes/interactive/risky-main-model-warning.d.ts.map +1 -0
  325. package/dist/modes/interactive/risky-main-model-warning.js +8 -0
  326. package/dist/modes/interactive/risky-main-model-warning.js.map +1 -0
  327. package/dist/modes/interactive/tips/catalog/subagent-tips.d.ts.map +1 -1
  328. package/dist/modes/interactive/tips/catalog/subagent-tips.js +30 -0
  329. package/dist/modes/interactive/tips/catalog/subagent-tips.js.map +1 -1
  330. package/dist/modes/rpc/connection-handler.js +3 -3
  331. package/dist/modes/rpc/connection-handler.js.map +1 -1
  332. package/dist/modes/rpc/rpc-types.d.ts +6 -0
  333. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  334. package/dist/modes/rpc/rpc-types.js.map +1 -1
  335. package/dist/utils/version-check.d.ts.map +1 -1
  336. package/dist/utils/version-check.js +22 -2
  337. package/dist/utils/version-check.js.map +1 -1
  338. package/docs/docs.json +4 -0
  339. package/docs/extensions.md +10 -0
  340. package/docs/providers.md +21 -5
  341. package/docs/quickstart.md +3 -0
  342. package/docs/release-guide.md +636 -0
  343. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +39 -0
  344. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  345. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status-ticker.ts +79 -0
  346. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status.ts +36 -3
  347. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +26 -12
  348. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +9 -0
  349. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  350. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +3 -2
  351. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  352. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.d.ts +4 -0
  353. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.d.ts.map +1 -0
  354. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.js +106 -0
  355. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.js.map +1 -0
  356. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.d.ts +1 -0
  357. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.d.ts.map +1 -1
  358. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js +1 -0
  359. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js.map +1 -1
  360. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  361. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  362. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +10 -15
  363. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  364. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +2 -2
  365. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
  366. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +2 -2
  367. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  368. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +2 -2
  369. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  370. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +2 -2
  371. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  372. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -1
  373. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  374. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -1
  375. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  376. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +1 -0
  377. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
  378. package/node_modules/@earendil-works/pi-ai/dist/models.js +69 -19
  379. package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
  380. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  381. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
  382. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
  383. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  384. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
  385. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  386. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  387. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  388. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  389. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts +2 -1
  390. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
  391. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +13 -0
  392. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
  393. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js +2 -2
  394. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js.map +1 -1
  395. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts +3 -0
  396. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts.map +1 -0
  397. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js +29 -0
  398. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js.map +1 -0
  399. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts +3 -0
  400. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts.map +1 -0
  401. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js +82 -0
  402. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js.map +1 -0
  403. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +5 -0
  404. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  405. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  406. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts +3 -0
  407. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts.map +1 -0
  408. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js +36 -0
  409. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js.map +1 -0
  410. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  411. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  412. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  413. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.d.ts.map +1 -1
  414. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js +1 -12
  415. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js.map +1 -1
  416. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts +7 -0
  417. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts.map +1 -1
  418. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js +9 -3
  419. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js.map +1 -1
  420. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  421. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js +5 -3
  422. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js.map +1 -1
  423. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.d.ts.map +1 -1
  424. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js +1 -12
  425. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js.map +1 -1
  426. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.d.ts +5 -0
  427. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.d.ts.map +1 -0
  428. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.js +17 -0
  429. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.js.map +1 -0
  430. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts +9 -1
  431. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts.map +1 -1
  432. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js +10 -4
  433. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js.map +1 -1
  434. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts +21 -0
  435. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts.map +1 -1
  436. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js +239 -41
  437. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js.map +1 -1
  438. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.d.ts.map +1 -1
  439. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.js +25 -6
  440. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.js.map +1 -1
  441. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.d.ts +32 -0
  442. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.d.ts.map +1 -0
  443. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.js +64 -0
  444. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.js.map +1 -0
  445. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts +5 -0
  446. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts.map +1 -1
  447. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js +10 -1
  448. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js.map +1 -1
  449. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts.map +1 -1
  450. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +2 -13
  451. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -1
  452. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts +7 -0
  453. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts.map +1 -1
  454. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js +9 -3
  455. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js.map +1 -1
  456. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.d.ts.map +1 -1
  457. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +5 -3
  458. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -1
  459. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts.map +1 -1
  460. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +2 -13
  461. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -1
  462. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.d.ts +5 -0
  463. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.d.ts.map +1 -0
  464. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js +13 -0
  465. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js.map +1 -0
  466. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts +9 -1
  467. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts.map +1 -1
  468. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +10 -4
  469. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -1
  470. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts +21 -0
  471. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts.map +1 -1
  472. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js +239 -41
  473. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js.map +1 -1
  474. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts.map +1 -1
  475. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +25 -6
  476. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -1
  477. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.d.ts +32 -0
  478. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.d.ts.map +1 -0
  479. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js +57 -0
  480. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js.map +1 -0
  481. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts +5 -0
  482. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts.map +1 -1
  483. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +9 -0
  484. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -1
  485. package/node_modules/@modelcontextprotocol/sdk/package.json +4 -3
  486. package/node_modules/brace-expansion/README.md +12 -0
  487. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
  488. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  489. package/node_modules/brace-expansion/dist/commonjs/index.js +138 -86
  490. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  491. package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
  492. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  493. package/node_modules/brace-expansion/dist/esm/index.js +137 -85
  494. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  495. package/node_modules/brace-expansion/package.json +2 -2
  496. package/package.json +7 -7
  497. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.d.ts.map +0 -1
  498. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.js.map +0 -1
  499. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts +0 -6
  500. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts.map +0 -1
  501. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.js.map +0 -1
  502. package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts +0 -4
  503. package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts.map +0 -1
  504. package/dist/core/extensions/builtin/claude-agent-sdk/index.js.map +0 -1
  505. package/dist/core/extensions/builtin/claude-agent-sdk/oauth-login.js.map +0 -1
  506. package/dist/core/extensions/builtin/claude-agent-sdk/options.d.ts +0 -16
  507. package/dist/core/extensions/builtin/claude-agent-sdk/options.js.map +0 -1
  508. package/dist/core/extensions/builtin/claude-agent-sdk/prompt-bridge.js.map +0 -1
  509. package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts +0 -15
  510. package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts.map +0 -1
  511. package/dist/core/extensions/builtin/claude-agent-sdk/settings.js +0 -41
  512. package/dist/core/extensions/builtin/claude-agent-sdk/settings.js.map +0 -1
  513. package/dist/core/extensions/builtin/claude-agent-sdk/stream.d.ts.map +0 -1
  514. package/dist/core/extensions/builtin/claude-agent-sdk/stream.js.map +0 -1
  515. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts +0 -0
  516. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js +0 -0
  517. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts +0 -0
  518. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js +0 -0
  519. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts +0 -0
  520. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js +0 -0
  521. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts +0 -0
  522. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js +0 -0
  523. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts +0 -0
  524. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts +0 -0
  525. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js +0 -0
  526. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts +0 -0
  527. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js +0 -0
  528. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.d.ts +0 -0
  529. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.js +0 -0
@@ -34,6 +34,7 @@ import { createToolHtmlRenderer } from "./export-html/tool-renderer.js";
34
34
  import { ExecuteToolError, ExtensionRunner, wrapRegisteredTools, } from "./extensions/index.js";
35
35
  import { emitSessionShutdownEvent } from "./extensions/runner.js";
36
36
  import { RUNTIME_EXTENSION_PATH } from "./extensions/types.js";
37
+ import { shouldWarnHighReasoning } from "./high-reasoning-warning.js";
37
38
  import { filterContextExcludedMessages } from "./messages.js";
38
39
  import { ModelRegistry } from "./model-registry.js";
39
40
  import { getModelNarrowingPatterns, resolveModelScope } from "./model-resolver.js";
@@ -194,10 +195,14 @@ export class AgentSession {
194
195
  this._isAgentRunActive = false;
195
196
  this._toolExecutionDepth = 0;
196
197
  this._promptStartPending = false;
198
+ this._nextInputId = 0;
197
199
  /** Tracks pending steering messages for UI display. Removed when delivered. */
198
200
  this._steeringMessages = [];
199
201
  /** Tracks pending follow-up messages for UI display. Removed when delivered. */
200
202
  this._followUpMessages = [];
203
+ /** Recovery-only order across both native queue modes and TUI compaction ownership. */
204
+ this._queuedInputOrder = [];
205
+ this._nextQueuedInputOrder = 0;
201
206
  /** Messages queued to be included with the next user prompt as context ("asides"). */
202
207
  this._pendingNextTurnMessages = [];
203
208
  // Queues held while the first post-compaction response is classified. Agent
@@ -233,7 +238,7 @@ export class AgentSession {
233
238
  this._userAbortPromise = undefined;
234
239
  this._agentAbortSource = undefined;
235
240
  this._suppressQueuedContinuationAfterUserAbort = false;
236
- /** Set when clearQueue() drains non-empty queues, so abort() can detect the gap even after queues are cleared. */
241
+ /** Set when clearQueue({ abortWillFollow: true }) drains queues immediately before abort(). */
237
242
  this._hadClearedQueuedMessages = false;
238
243
  this._extensionEventSignal = undefined;
239
244
  // Bash execution state
@@ -251,6 +256,8 @@ export class AgentSession {
251
256
  // Base system prompt (without extension appends) - used to apply fresh appends each turn
252
257
  this._baseSystemPrompt = "";
253
258
  this._currentServiceTier = undefined;
259
+ this._sessionFastMode = false;
260
+ this._lastHighReasoningWarningKey = undefined;
254
261
  // Track last assistant message for auto-compaction check
255
262
  this._lastAssistantMessage = undefined;
256
263
  /** Internal handler for agent events - shared by subscribe and reconnect */
@@ -405,9 +412,14 @@ export class AgentSession {
405
412
  return this._getRequiredRequestAuth(model);
406
413
  }
407
414
  try {
408
- const result = await this._modelRuntime.getAuth(model);
415
+ const apiKey = await this.agent.getApiKey?.(model.provider);
416
+ const result = await this._modelRuntime.getAuth(model, { apiKey });
409
417
  return result
410
- ? { apiKey: result.auth.apiKey, headers: withoutDeletedHeaders(result.auth.headers), env: result.env }
418
+ ? {
419
+ apiKey: apiKey ?? result.auth.apiKey,
420
+ headers: withoutDeletedHeaders(result.auth.headers),
421
+ env: result.env,
422
+ }
411
423
  : {};
412
424
  }
413
425
  catch {
@@ -726,7 +738,9 @@ export class AgentSession {
726
738
  this.agent.steer(message);
727
739
  const userMessage = queuedMessages.find((message) => message.role === "user");
728
740
  if (userMessage?.role === "user") {
729
- this._steeringMessages.push(this._extractUserMessageText(userMessage.content));
741
+ const text = this._extractUserMessageText(userMessage.content);
742
+ this._steeringMessages.push(text);
743
+ this._recordQueuedInput(text, "steer");
730
744
  this._emitQueueUpdate();
731
745
  }
732
746
  return;
@@ -934,6 +948,7 @@ export class AgentSession {
934
948
  const steeringIndex = this._steeringMessages.indexOf(messageText);
935
949
  if (steeringIndex !== -1) {
936
950
  this._steeringMessages.splice(steeringIndex, 1);
951
+ this._removeQueuedInput(messageText, "steer");
937
952
  this._emitQueueUpdate();
938
953
  }
939
954
  else {
@@ -941,6 +956,7 @@ export class AgentSession {
941
956
  const followUpIndex = this._followUpMessages.indexOf(messageText);
942
957
  if (followUpIndex !== -1) {
943
958
  this._followUpMessages.splice(followUpIndex, 1);
959
+ this._removeQueuedInput(messageText, "followUp");
944
960
  this._emitQueueUpdate();
945
961
  }
946
962
  }
@@ -1335,6 +1351,22 @@ export class AgentSession {
1335
1351
  get serviceTier() {
1336
1352
  return this._currentServiceTier;
1337
1353
  }
1354
+ /**
1355
+ * True when the active model is served at the priority ("fast") tier: either the model
1356
+ * itself is configured for it (an `openai` `-fast` catalog variant, a scoped
1357
+ * `provider/id:priority`) or an extension turned fast mode on for this session.
1358
+ *
1359
+ * Display-only: it never feeds request composition, so an extension toggling fast mode
1360
+ * for one provider cannot leak `service_tier` into another provider's payload.
1361
+ * `serviceTier` stays the single request-side source.
1362
+ */
1363
+ isFastModeActive() {
1364
+ return this._sessionFastMode || this._currentServiceTier === "priority";
1365
+ }
1366
+ /** Session-scoped fast-mode indicator; never persisted, reset on session start. */
1367
+ setSessionFastMode(enabled) {
1368
+ this._sessionFastMode = enabled;
1369
+ }
1338
1370
  /**
1339
1371
  * Explicit scoped/favorite tiers win; otherwise fall back to the model's
1340
1372
  * configured serviceTier from models.json/extension compatibility config.
@@ -1676,6 +1708,12 @@ export class AgentSession {
1676
1708
  let messages;
1677
1709
  let titlePrompt;
1678
1710
  let consumedNextTurnMessages;
1711
+ let inputId;
1712
+ const emitInputDisposition = async (disposition) => {
1713
+ if (inputId === undefined)
1714
+ return;
1715
+ await this._extensionRunner.emit({ type: "input_disposition", inputId, disposition });
1716
+ };
1679
1717
  try {
1680
1718
  // Handle extension commands first (execute immediately, even during streaming)
1681
1719
  // Extension commands manage their own LLM interaction via pi.sendMessage()
@@ -1693,9 +1731,11 @@ export class AgentSession {
1693
1731
  let currentText = text;
1694
1732
  let currentImages = options?.images;
1695
1733
  if (this._extensionRunner.hasHandlers("input")) {
1696
- const inputResult = await this._extensionRunner.emitInput(currentText, currentImages, options?.source ?? "interactive", this.isStreaming ? options?.streamingBehavior : undefined);
1734
+ inputId = `${this.sessionManager.getSessionId()}:${++this._nextInputId}`;
1735
+ const inputResult = await this._extensionRunner.emitInput(currentText, currentImages, options?.source ?? "interactive", this.isStreaming ? options?.streamingBehavior : undefined, inputId);
1697
1736
  throwIfCancelled();
1698
1737
  if (inputResult.action === "handled") {
1738
+ await emitInputDisposition("handled");
1699
1739
  promptDisposition?.("handled");
1700
1740
  preflightResult?.(true);
1701
1741
  return;
@@ -1726,6 +1766,7 @@ export class AgentSession {
1726
1766
  else {
1727
1767
  await this._queueSteer(expandedText, currentImages);
1728
1768
  }
1769
+ await emitInputDisposition("queued");
1729
1770
  promptDisposition?.("queued");
1730
1771
  preflightResult?.(true);
1731
1772
  return;
@@ -1743,6 +1784,7 @@ export class AgentSession {
1743
1784
  else {
1744
1785
  await this._queueSteer(expandedText, currentImages);
1745
1786
  }
1787
+ await emitInputDisposition("queued");
1746
1788
  promptDisposition?.("queued");
1747
1789
  preflightResult?.(true);
1748
1790
  return;
@@ -1766,6 +1808,7 @@ export class AgentSession {
1766
1808
  else {
1767
1809
  await this._queueSteer(expandedText, currentImages);
1768
1810
  }
1811
+ await emitInputDisposition("queued");
1769
1812
  promptDisposition?.("queued");
1770
1813
  preflightResult?.(true);
1771
1814
  return;
@@ -1786,6 +1829,7 @@ export class AgentSession {
1786
1829
  else {
1787
1830
  await this._queueSteer(expandedText, currentImages);
1788
1831
  }
1832
+ await emitInputDisposition("queued");
1789
1833
  promptDisposition?.("queued");
1790
1834
  preflightResult?.(true);
1791
1835
  return;
@@ -1859,8 +1903,11 @@ export class AgentSession {
1859
1903
  // next-turn, and before_agent_start additions are also provider-visible,
1860
1904
  // so make one final admission decision against the complete request.
1861
1905
  await this._enforceFinalProviderAdmission(messages);
1906
+ throwIfCancelled();
1907
+ await emitInputDisposition("started");
1862
1908
  }
1863
1909
  catch (error) {
1910
+ await emitInputDisposition("rejected");
1864
1911
  if (consumedNextTurnMessages && consumedNextTurnMessages.length > 0) {
1865
1912
  this._pendingNextTurnMessages = [...consumedNextTurnMessages, ...this._pendingNextTurnMessages];
1866
1913
  }
@@ -1874,7 +1921,6 @@ export class AgentSession {
1874
1921
  if (!messages) {
1875
1922
  return;
1876
1923
  }
1877
- throwIfCancelled();
1878
1924
  promptDisposition?.("started");
1879
1925
  preflightResult?.(true);
1880
1926
  if (options?.thinkingLevel !== undefined) {
@@ -1994,7 +2040,7 @@ export class AgentSession {
1994
2040
  * @param images Optional image attachments to include with the message
1995
2041
  * @throws Error if text is an extension command
1996
2042
  */
1997
- async steer(text, images) {
2043
+ async steer(text, images, recovery) {
1998
2044
  // Check for extension commands (cannot be queued)
1999
2045
  if (text.startsWith("/")) {
2000
2046
  this._throwIfExtensionCommand(text);
@@ -2002,7 +2048,7 @@ export class AgentSession {
2002
2048
  // Expand skill commands and prompt templates
2003
2049
  let expandedText = this._expandSkillCommand(text);
2004
2050
  expandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);
2005
- await this._queueSteer(expandedText, images);
2051
+ await this._queueSteer(expandedText, images, recovery?.enqueueOrder);
2006
2052
  }
2007
2053
  /**
2008
2054
  * Queue a follow-up message to be processed after the agent finishes.
@@ -2011,7 +2057,7 @@ export class AgentSession {
2011
2057
  * @param images Optional image attachments to include with the message
2012
2058
  * @throws Error if text is an extension command
2013
2059
  */
2014
- async followUp(text, images) {
2060
+ async followUp(text, images, recovery) {
2015
2061
  // Check for extension commands (cannot be queued)
2016
2062
  if (text.startsWith("/")) {
2017
2063
  this._throwIfExtensionCommand(text);
@@ -2019,7 +2065,7 @@ export class AgentSession {
2019
2065
  // Expand skill commands and prompt templates
2020
2066
  let expandedText = this._expandSkillCommand(text);
2021
2067
  expandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);
2022
- await this._queueFollowUp(expandedText, images);
2068
+ await this._queueFollowUp(expandedText, images, recovery?.enqueueOrder);
2023
2069
  }
2024
2070
  _startSessionTitleGeneration(firstPrompt) {
2025
2071
  if (!this._autoTitleSessions || this.sessionManager.getSessionName() || shouldSkipSessionTitle(firstPrompt)) {
@@ -2093,8 +2139,9 @@ export class AgentSession {
2093
2139
  /**
2094
2140
  * Internal: Queue a steering message (already expanded, no extension command check).
2095
2141
  */
2096
- async _queueSteer(text, images) {
2142
+ async _queueSteer(text, images, enqueueOrder) {
2097
2143
  this._steeringMessages.push(text);
2144
+ this._recordQueuedInput(text, "steer", enqueueOrder);
2098
2145
  this._sessionLogger.debug("queue_enqueue", { mode: "steer", count: this._steeringMessages.length });
2099
2146
  this._emitQueueUpdate();
2100
2147
  const content = [{ type: "text", text }];
@@ -2111,8 +2158,9 @@ export class AgentSession {
2111
2158
  /**
2112
2159
  * Internal: Queue a follow-up message (already expanded, no extension command check).
2113
2160
  */
2114
- async _queueFollowUp(text, images) {
2161
+ async _queueFollowUp(text, images, enqueueOrder) {
2115
2162
  this._followUpMessages.push(text);
2163
+ this._recordQueuedInput(text, "followUp", enqueueOrder);
2116
2164
  this._sessionLogger.debug("queue_enqueue", { mode: "followUp", count: this._followUpMessages.length });
2117
2165
  this._emitQueueUpdate();
2118
2166
  const content = [{ type: "text", text }];
@@ -2304,26 +2352,46 @@ export class AgentSession {
2304
2352
  finishSessionWork?.();
2305
2353
  }
2306
2354
  }
2355
+ /** Reserve a global order for input temporarily owned outside the native queues. */
2356
+ reserveQueuedInputOrder() {
2357
+ this._nextQueuedInputOrder += 1;
2358
+ return this._nextQueuedInputOrder;
2359
+ }
2360
+ _recordQueuedInput(text, mode, enqueueOrder) {
2361
+ const order = enqueueOrder ?? this.reserveQueuedInputOrder();
2362
+ this._nextQueuedInputOrder = Math.max(this._nextQueuedInputOrder, order);
2363
+ this._queuedInputOrder.push({ text, mode, enqueueOrder: order });
2364
+ }
2365
+ _removeQueuedInput(text, mode) {
2366
+ const index = this._queuedInputOrder.findIndex((message) => message.mode === mode && message.text === text);
2367
+ if (index !== -1)
2368
+ this._queuedInputOrder.splice(index, 1);
2369
+ }
2307
2370
  /**
2308
- * Clear all queued messages and return them.
2309
- * Useful for restoring to editor when user aborts.
2310
- * @returns Object with steering and followUp arrays
2371
+ * Clear all queued messages and return them. The non-enumerable `ordered`
2372
+ * view preserves legacy object equality and native queue semantics.
2373
+ * @param options.abortWillFollow Mark a non-empty drain so an immediately following abort can emit session_abort.
2311
2374
  */
2312
- clearQueue() {
2375
+ clearQueue(options = { abortWillFollow: false }) {
2313
2376
  const steering = [...this._steeringMessages];
2314
2377
  const followUp = [...this._followUpMessages];
2315
- if (steering.length > 0 || followUp.length > 0)
2378
+ const ordered = [...this._queuedInputOrder].sort((a, b) => a.enqueueOrder - b.enqueueOrder);
2379
+ if (options.abortWillFollow && (steering.length > 0 || followUp.length > 0)) {
2316
2380
  this._hadClearedQueuedMessages = true;
2381
+ }
2317
2382
  // Clear every queue synchronously. Deferred post-compaction messages are
2318
2383
  // already represented in visible bookkeeping, so they must not be returned
2319
2384
  // a second time or later resurrected into Agent's native queues.
2320
2385
  this._steeringMessages = [];
2321
2386
  this._followUpMessages = [];
2387
+ this._queuedInputOrder = [];
2322
2388
  this._postCompactionDeferredSteeringMessages = [];
2323
2389
  this._postCompactionDeferredFollowUpMessages = [];
2324
2390
  this.agent.clearAllQueues();
2325
2391
  this._emitQueueUpdate();
2326
- return { steering, followUp };
2392
+ const cleared = { steering, followUp };
2393
+ Object.defineProperty(cleared, "ordered", { value: ordered, enumerable: false });
2394
+ return cleared;
2327
2395
  }
2328
2396
  /** Number of pending messages (includes both steering and follow-up) */
2329
2397
  get pendingMessageCount() {
@@ -2486,6 +2554,7 @@ export class AgentSession {
2486
2554
  else {
2487
2555
  this.setSessionThinkingLevel(thinkingLevel);
2488
2556
  }
2557
+ this._emitHighReasoningWarningIfNeeded();
2489
2558
  if (!opts.emitModelSelect)
2490
2559
  return undefined;
2491
2560
  return await this._emitModelSelect(model, previousModel, opts.modelSelectSource);
@@ -2585,8 +2654,28 @@ export class AgentSession {
2585
2654
  level: effectiveLevel,
2586
2655
  previousLevel,
2587
2656
  });
2657
+ this._emitHighReasoningWarningIfNeeded();
2588
2658
  }
2589
2659
  }
2660
+ _emitHighReasoningWarningIfNeeded() {
2661
+ const model = this.model;
2662
+ const level = this.thinkingLevel;
2663
+ if (!model || !shouldWarnHighReasoning(model, level)) {
2664
+ this._lastHighReasoningWarningKey = undefined;
2665
+ return;
2666
+ }
2667
+ const key = `${model.provider}/${model.id}:${level}`;
2668
+ if (this._lastHighReasoningWarningKey === key) {
2669
+ return;
2670
+ }
2671
+ this._lastHighReasoningWarningKey = key;
2672
+ this._emit({
2673
+ type: "high_reasoning_warning",
2674
+ modelId: model.id,
2675
+ provider: model.provider,
2676
+ thinkingLevel: level,
2677
+ });
2678
+ }
2590
2679
  /**
2591
2680
  * Cycle to next thinking level.
2592
2681
  * @returns New level, or undefined if model doesn't support thinking
@@ -3259,6 +3348,8 @@ export class AgentSession {
3259
3348
  if (compacted)
3260
3349
  return true;
3261
3350
  }
3351
+ if (this._isCompactionOnCooldown())
3352
+ return false;
3262
3353
  throw new RequiredCompactionError();
3263
3354
  }
3264
3355
  /**
@@ -3297,6 +3388,8 @@ export class AgentSession {
3297
3388
  throw new RequiredCompactionError();
3298
3389
  }
3299
3390
  const compacted = await this._runPrePromptCompaction(lastAssistantMessage, false, "pre_prompt");
3391
+ if (!compacted && !isOversized() && this._isCompactionOnCooldown())
3392
+ return;
3300
3393
  if (!compacted || isOversized()) {
3301
3394
  throw new RequiredCompactionError();
3302
3395
  }
@@ -3442,6 +3535,10 @@ export class AgentSession {
3442
3535
  }
3443
3536
  return false;
3444
3537
  }
3538
+ _isCompactionOnCooldown() {
3539
+ const state = this._compactionLifecycle.state;
3540
+ return state.status === "failed" && state.rejectionCause === "circuit-breaker";
3541
+ }
3445
3542
  async _runPrePromptCompaction(lastAssistantMessage, skipAbortedCheck, reason = "pre_prompt", willRetry = false, allowSummaryOnly = false) {
3446
3543
  const controller = new AbortController();
3447
3544
  this._claimCompactionController(controller, "compaction");
@@ -3477,7 +3574,7 @@ export class AgentSession {
3477
3574
  reason,
3478
3575
  result: undefined,
3479
3576
  aborted,
3480
- willRetry,
3577
+ willRetry: false,
3481
3578
  errorMessage: aborted ? undefined : `Pre-prompt compaction failed: ${errorMessage}`,
3482
3579
  });
3483
3580
  return false;
@@ -3502,8 +3599,11 @@ export class AgentSession {
3502
3599
  if (!shouldCompact(contextTokens, model.contextWindow, settings))
3503
3600
  return;
3504
3601
  const compacted = await this._runPrePromptCompaction(this._findLastAssistantMessage(), true, "pre_prompt");
3505
- if (!compacted)
3602
+ if (!compacted) {
3603
+ if (this._isCompactionOnCooldown())
3604
+ return;
3506
3605
  throw new RequiredCompactionError();
3606
+ }
3507
3607
  this._scheduledContinuationRecompacted = true;
3508
3608
  }
3509
3609
  async _continueAgentAfterCurrentRun(options = {}) {
@@ -3881,6 +3981,7 @@ export class AgentSession {
3881
3981
  return true;
3882
3982
  },
3883
3983
  setSessionThinkingLevel: (level) => this.setSessionThinkingLevel(level),
3984
+ setSessionFastMode: (enabled) => this.setSessionFastMode(enabled),
3884
3985
  }, {
3885
3986
  getModel: () => this.model,
3886
3987
  getServiceTier: () => this.serviceTier,
@@ -4370,6 +4471,15 @@ export class AgentSession {
4370
4471
  // Refusals are only retried through a new chain candidate. They never use
4371
4472
  // same-model retries or the transient over-budget fallback escape hatch.
4372
4473
  if (this._retryAttempt + 1 > settings.maxRetries) {
4474
+ if (this._retryAttempt > 0) {
4475
+ this._emit({
4476
+ type: "auto_retry_end",
4477
+ success: false,
4478
+ attempt: this._retryAttempt,
4479
+ finalError: message.errorMessage,
4480
+ });
4481
+ }
4482
+ this._retryAttempt = 0;
4373
4483
  this._resolveRetry();
4374
4484
  return "not-handled";
4375
4485
  }
@@ -4379,6 +4489,15 @@ export class AgentSession {
4379
4489
  if (exhaustedChainKey) {
4380
4490
  this._emit({ type: "retry_fallback_exhausted", chainKey: exhaustedChainKey, lastError: errorMessage });
4381
4491
  }
4492
+ if (this._retryAttempt > 0) {
4493
+ this._emit({
4494
+ type: "auto_retry_end",
4495
+ success: false,
4496
+ attempt: this._retryAttempt,
4497
+ finalError: message.errorMessage,
4498
+ });
4499
+ }
4500
+ this._retryAttempt = 0;
4382
4501
  this._resolveRetry();
4383
4502
  return "not-handled";
4384
4503
  }
@@ -4513,7 +4632,8 @@ export class AgentSession {
4513
4632
  if (compactionSettings.enabled &&
4514
4633
  model &&
4515
4634
  shouldCompact(contextTokens, model.contextWindow, compactionSettings)) {
4516
- if (!(await this._runPrePromptCompaction(message, true, "threshold", true, true))) {
4635
+ const preRetryCompaction = await this._runPrePromptCompaction(message, true, "threshold", true, true);
4636
+ if (!preRetryCompaction && !this._isCompactionOnCooldown()) {
4517
4637
  const attempt = this._retryAttempt;
4518
4638
  this._retryAttempt = 0;
4519
4639
  this._emit({