@code-yeongyu/senpi 2026.7.29-6 → 2026.7.30-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 (252) hide show
  1. package/CHANGELOG.md +107 -0
  2. package/README.md +3 -0
  3. package/dist/bun-global-launcher.d.ts +7 -0
  4. package/dist/bun-global-launcher.d.ts.map +1 -0
  5. package/dist/bun-global-launcher.js +21 -0
  6. package/dist/bun-global-launcher.js.map +1 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +18 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/agent-session.d.ts +10 -0
  11. package/dist/core/agent-session.d.ts.map +1 -1
  12. package/dist/core/agent-session.js +62 -3
  13. package/dist/core/agent-session.js.map +1 -1
  14. package/dist/core/compaction/compaction.d.ts +1 -0
  15. package/dist/core/compaction/compaction.d.ts.map +1 -1
  16. package/dist/core/compaction/compaction.js +1 -0
  17. package/dist/core/compaction/compaction.js.map +1 -1
  18. package/dist/core/extensions/builtin/btw/index.d.ts.map +1 -1
  19. package/dist/core/extensions/builtin/btw/index.js +1 -0
  20. package/dist/core/extensions/builtin/btw/index.js.map +1 -1
  21. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.d.ts.map +1 -1
  22. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.js +10 -1
  23. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.js.map +1 -1
  24. package/dist/core/extensions/builtin/claude-agent-sdk/errors.d.ts.map +1 -1
  25. package/dist/core/extensions/builtin/claude-agent-sdk/errors.js +14 -0
  26. package/dist/core/extensions/builtin/claude-agent-sdk/errors.js.map +1 -1
  27. package/dist/core/extensions/builtin/claude-agent-sdk/options.d.ts.map +1 -1
  28. package/dist/core/extensions/builtin/claude-agent-sdk/options.js +2 -1
  29. package/dist/core/extensions/builtin/claude-agent-sdk/options.js.map +1 -1
  30. package/dist/core/extensions/builtin/claude-agent-sdk/tools.d.ts +3 -0
  31. package/dist/core/extensions/builtin/claude-agent-sdk/tools.d.ts.map +1 -1
  32. package/dist/core/extensions/builtin/claude-agent-sdk/tools.js +19 -0
  33. package/dist/core/extensions/builtin/claude-agent-sdk/tools.js.map +1 -1
  34. package/dist/core/extensions/builtin/compaction/idle.d.ts +16 -0
  35. package/dist/core/extensions/builtin/compaction/idle.d.ts.map +1 -0
  36. package/dist/core/extensions/builtin/compaction/idle.js +21 -0
  37. package/dist/core/extensions/builtin/compaction/idle.js.map +1 -0
  38. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  39. package/dist/core/extensions/builtin/compaction/index.js +18 -1
  40. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  41. package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
  42. package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
  43. package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
  44. package/dist/core/extensions/builtin/config-reload/watch-engine.d.ts +1 -2
  45. package/dist/core/extensions/builtin/config-reload/watch-engine.d.ts.map +1 -1
  46. package/dist/core/extensions/builtin/config-reload/watch-engine.js +1 -8
  47. package/dist/core/extensions/builtin/config-reload/watch-engine.js.map +1 -1
  48. package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts +15 -0
  49. package/dist/core/extensions/builtin/config-reload/watch-event-source.d.ts.map +1 -0
  50. package/dist/core/extensions/builtin/config-reload/watch-event-source.js +114 -0
  51. package/dist/core/extensions/builtin/config-reload/watch-event-source.js.map +1 -0
  52. package/dist/core/extensions/builtin/goal/continuation.d.ts +2 -0
  53. package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
  54. package/dist/core/extensions/builtin/goal/continuation.js +12 -0
  55. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  56. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  57. package/dist/core/extensions/builtin/goal/index.js +4 -1
  58. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  59. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  60. package/dist/core/extensions/builtin/goal/monitor-continuation.js +22 -18
  61. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  62. package/dist/core/extensions/builtin/goal/prompt.d.ts.map +1 -1
  63. package/dist/core/extensions/builtin/goal/prompt.js +2 -1
  64. package/dist/core/extensions/builtin/goal/prompt.js.map +1 -1
  65. package/dist/core/extensions/builtin/goal/tool-registration.js +1 -1
  66. package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
  67. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts +1 -1
  68. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts.map +1 -1
  69. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js +67 -66
  70. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js.map +1 -1
  71. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.d.ts +4 -0
  72. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.d.ts.map +1 -0
  73. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.js +35 -0
  74. package/dist/core/extensions/builtin/gpt-apply-patch/recovery.js.map +1 -0
  75. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
  76. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js +0 -5
  77. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
  78. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts +2 -0
  79. package/dist/core/extensions/builtin/gpt-apply-patch/types.d.ts.map +1 -1
  80. package/dist/core/extensions/builtin/gpt-apply-patch/types.js.map +1 -1
  81. package/dist/core/extensions/builtin/rules/rules/project-root.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/rules/rules/project-root.js +8 -1
  83. package/dist/core/extensions/builtin/rules/rules/project-root.js.map +1 -1
  84. package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
  85. package/dist/core/extensions/builtin/service-tier.js +20 -1
  86. package/dist/core/extensions/builtin/service-tier.js.map +1 -1
  87. package/dist/core/extensions/builtin/todotools/normalize.d.ts.map +1 -1
  88. package/dist/core/extensions/builtin/todotools/normalize.js +14 -3
  89. package/dist/core/extensions/builtin/todotools/normalize.js.map +1 -1
  90. package/dist/core/high-reasoning-warning.d.ts +10 -0
  91. package/dist/core/high-reasoning-warning.d.ts.map +1 -0
  92. package/dist/core/high-reasoning-warning.js +28 -0
  93. package/dist/core/high-reasoning-warning.js.map +1 -0
  94. package/dist/core/model-runtime.d.ts.map +1 -1
  95. package/dist/core/model-runtime.js +3 -11
  96. package/dist/core/model-runtime.js.map +1 -1
  97. package/dist/core/resolve-config-value.d.ts.map +1 -1
  98. package/dist/core/resolve-config-value.js +23 -1
  99. package/dist/core/resolve-config-value.js.map +1 -1
  100. package/dist/core/session-log.d.ts +12 -0
  101. package/dist/core/session-log.d.ts.map +1 -0
  102. package/dist/core/session-log.js +101 -0
  103. package/dist/core/session-log.js.map +1 -0
  104. package/dist/core/settings-manager.d.ts +2 -0
  105. package/dist/core/settings-manager.d.ts.map +1 -1
  106. package/dist/core/settings-manager.js +1 -0
  107. package/dist/core/settings-manager.js.map +1 -1
  108. package/dist/modes/interactive/compaction-queue-transfer.d.ts +6 -0
  109. package/dist/modes/interactive/compaction-queue-transfer.d.ts.map +1 -1
  110. package/dist/modes/interactive/compaction-queue-transfer.js +1 -1
  111. package/dist/modes/interactive/compaction-queue-transfer.js.map +1 -1
  112. package/dist/modes/interactive/interactive-mode.d.ts +10 -1
  113. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  114. package/dist/modes/interactive/interactive-mode.js +70 -7
  115. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  116. package/dist/modes/interactive/risky-main-model-warning.d.ts +5 -0
  117. package/dist/modes/interactive/risky-main-model-warning.d.ts.map +1 -0
  118. package/dist/modes/interactive/risky-main-model-warning.js +8 -0
  119. package/dist/modes/interactive/risky-main-model-warning.js.map +1 -0
  120. package/dist/modes/interactive/tips/catalog/subagent-tips.d.ts.map +1 -1
  121. package/dist/modes/interactive/tips/catalog/subagent-tips.js +30 -0
  122. package/dist/modes/interactive/tips/catalog/subagent-tips.js.map +1 -1
  123. package/dist/modes/rpc/rpc-types.d.ts +6 -0
  124. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  125. package/dist/modes/rpc/rpc-types.js.map +1 -1
  126. package/dist/utils/version-check.d.ts.map +1 -1
  127. package/dist/utils/version-check.js +22 -2
  128. package/dist/utils/version-check.js.map +1 -1
  129. package/docs/docs.json +4 -0
  130. package/docs/quickstart.md +3 -0
  131. package/docs/release-guide.md +636 -0
  132. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +24 -0
  133. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  134. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +2 -2
  135. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  136. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.d.ts +4 -0
  137. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.d.ts.map +1 -0
  138. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.js +106 -0
  139. package/node_modules/@earendil-works/pi-agent-core/dist/empty-assistant-recovery.js.map +1 -0
  140. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.d.ts +1 -0
  141. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.d.ts.map +1 -1
  142. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js +1 -0
  143. package/node_modules/@earendil-works/pi-agent-core/dist/stream-fn.js.map +1 -1
  144. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  145. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -1
  146. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  147. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -1
  148. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  149. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  150. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  151. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  152. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts +2 -1
  153. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.d.ts.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js +13 -0
  155. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/index.js.map +1 -1
  156. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js +2 -2
  157. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js.map +1 -1
  158. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts +3 -0
  159. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.d.ts.map +1 -0
  160. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js +29 -0
  161. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery-stream.js.map +1 -0
  162. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts +3 -0
  163. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts.map +1 -0
  164. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js +82 -0
  165. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js.map +1 -0
  166. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  167. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  168. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  169. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.d.ts.map +1 -1
  170. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js +1 -12
  171. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js.map +1 -1
  172. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts +7 -0
  173. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts.map +1 -1
  174. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js +9 -3
  175. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js.map +1 -1
  176. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.d.ts.map +1 -1
  177. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js +5 -3
  178. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/streamableHttp.js.map +1 -1
  179. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.d.ts.map +1 -1
  180. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js +1 -12
  181. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js.map +1 -1
  182. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.d.ts +5 -0
  183. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.d.ts.map +1 -0
  184. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.js +17 -0
  185. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sseKeepAlive.js.map +1 -0
  186. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts +9 -1
  187. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts.map +1 -1
  188. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js +10 -4
  189. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js.map +1 -1
  190. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts +21 -0
  191. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.d.ts.map +1 -1
  192. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js +239 -41
  193. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/webStandardStreamableHttp.js.map +1 -1
  194. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.d.ts.map +1 -1
  195. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.js +25 -6
  196. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/server/zod-compat.js.map +1 -1
  197. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.d.ts +32 -0
  198. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.d.ts.map +1 -0
  199. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.js +64 -0
  200. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/mediaType.js.map +1 -0
  201. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts +5 -0
  202. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts.map +1 -1
  203. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js +10 -1
  204. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js.map +1 -1
  205. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts.map +1 -1
  206. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +2 -13
  207. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -1
  208. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts +7 -0
  209. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts.map +1 -1
  210. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js +9 -3
  211. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js.map +1 -1
  212. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.d.ts.map +1 -1
  213. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js +5 -3
  214. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/streamableHttp.js.map +1 -1
  215. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts.map +1 -1
  216. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +2 -13
  217. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -1
  218. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.d.ts +5 -0
  219. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.d.ts.map +1 -0
  220. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js +13 -0
  221. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js.map +1 -0
  222. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts +9 -1
  223. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts.map +1 -1
  224. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +10 -4
  225. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -1
  226. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts +21 -0
  227. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.d.ts.map +1 -1
  228. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js +239 -41
  229. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js.map +1 -1
  230. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.d.ts.map +1 -1
  231. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +25 -6
  232. package/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js.map +1 -1
  233. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.d.ts +32 -0
  234. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.d.ts.map +1 -0
  235. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js +57 -0
  236. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js.map +1 -0
  237. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts +5 -0
  238. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts.map +1 -1
  239. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +9 -0
  240. package/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -1
  241. package/node_modules/@modelcontextprotocol/sdk/package.json +4 -3
  242. package/node_modules/brace-expansion/README.md +12 -0
  243. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
  244. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  245. package/node_modules/brace-expansion/dist/commonjs/index.js +138 -86
  246. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  247. package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
  248. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  249. package/node_modules/brace-expansion/dist/esm/index.js +137 -85
  250. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  251. package/node_modules/brace-expansion/package.json +2 -2
  252. package/package.json +7 -7
@@ -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";
@@ -44,6 +45,7 @@ import { RetryFallbackController } from "./retry-fallback/controller.js";
44
45
  import { SelectorCooldowns } from "./retry-fallback/cooldown.js";
45
46
  import { createFallbackLogger } from "./retry-fallback/log.js";
46
47
  import { validateFallbackChains } from "./retry-fallback/validate.js";
48
+ import { createSessionLogger } from "./session-log.js";
47
49
  import { buildSessionContext, CURRENT_SESSION_VERSION, getLatestCompactionEntry, } from "./session-manager.js";
48
50
  import { generateSessionTitle, sessionTitleRetryPolicy, shouldSkipSessionTitle } from "./session-title-generator.js";
49
51
  import { SessionWorkBarrier } from "./session-work-barrier.js";
@@ -250,6 +252,7 @@ export class AgentSession {
250
252
  // Base system prompt (without extension appends) - used to apply fresh appends each turn
251
253
  this._baseSystemPrompt = "";
252
254
  this._currentServiceTier = undefined;
255
+ this._lastHighReasoningWarningKey = undefined;
253
256
  // Track last assistant message for auto-compaction check
254
257
  this._lastAssistantMessage = undefined;
255
258
  /** Internal handler for agent events - shared by subscribe and reconnect */
@@ -316,6 +319,7 @@ export class AgentSession {
316
319
  this._modelRuntime = modelRuntime;
317
320
  this._modelRegistry = config.modelRegistry ?? new ModelRegistry(modelRuntime);
318
321
  const fallbackLogger = createFallbackLogger(config.agentDir ?? getAgentDir());
322
+ this._sessionLogger = createSessionLogger(config.agentDir ?? getAgentDir());
319
323
  this._fallbackValidationWarnings = validateFallbackChains(this.settingsManager.getRawFallbackChains(), this._modelRegistry);
320
324
  for (const warning of this._fallbackValidationWarnings) {
321
325
  fallbackLogger.warn("validation_warning", { warning });
@@ -403,9 +407,14 @@ export class AgentSession {
403
407
  return this._getRequiredRequestAuth(model);
404
408
  }
405
409
  try {
406
- const result = await this._modelRuntime.getAuth(model);
410
+ const apiKey = await this.agent.getApiKey?.(model.provider);
411
+ const result = await this._modelRuntime.getAuth(model, { apiKey });
407
412
  return result
408
- ? { apiKey: result.auth.apiKey, headers: withoutDeletedHeaders(result.auth.headers), env: result.env }
413
+ ? {
414
+ apiKey: apiKey ?? result.auth.apiKey,
415
+ headers: withoutDeletedHeaders(result.auth.headers),
416
+ env: result.env,
417
+ }
409
418
  : {};
410
419
  }
411
420
  catch {
@@ -598,10 +607,36 @@ export class AgentSession {
598
607
  // =========================================================================
599
608
  /** Emit an event to all listeners */
600
609
  _emit(event) {
610
+ this._logSessionEvent(event);
601
611
  for (const l of this._eventListeners) {
602
612
  l(event);
603
613
  }
604
614
  }
615
+ /** Mirror stuck-prone lifecycle transitions into logs/session.log (content-free). */
616
+ _logSessionEvent(event) {
617
+ if (event.type === "compaction_end") {
618
+ this._sessionLogger.info("compaction_decision", {
619
+ reason: event.reason,
620
+ accepted: event.accepted ?? event.result !== undefined,
621
+ aborted: event.aborted,
622
+ willRetry: event.willRetry,
623
+ rejectionCause: event.rejectionCause,
624
+ error: event.errorMessage,
625
+ });
626
+ return;
627
+ }
628
+ if (event.type === "message_end" && event.message.role === "assistant") {
629
+ const message = event.message;
630
+ if (message.stopReason !== "error")
631
+ return;
632
+ const kind = isProviderStreamStallError(message)
633
+ ? "stall"
634
+ : isProviderTimeoutError(message)
635
+ ? "timeout"
636
+ : "error";
637
+ this._sessionLogger.warn("provider_error", { kind, error: message.errorMessage });
638
+ }
639
+ }
605
640
  _emitQueueUpdate() {
606
641
  this._emit({
607
642
  type: "queue_update",
@@ -685,6 +720,7 @@ export class AgentSession {
685
720
  const requiredCompactionError = this._requiredCompactionAdmissionError;
686
721
  this._requiredCompactionAdmissionError = undefined;
687
722
  if (requiredCompactionError) {
723
+ this._sessionLogger.warn("prompt_rejected", { stage: "admission", error: "RequiredCompactionError" });
688
724
  throw requiredCompactionError;
689
725
  }
690
726
  }
@@ -2066,6 +2102,7 @@ export class AgentSession {
2066
2102
  */
2067
2103
  async _queueSteer(text, images) {
2068
2104
  this._steeringMessages.push(text);
2105
+ this._sessionLogger.debug("queue_enqueue", { mode: "steer", count: this._steeringMessages.length });
2069
2106
  this._emitQueueUpdate();
2070
2107
  const content = [{ type: "text", text }];
2071
2108
  if (images) {
@@ -2083,6 +2120,7 @@ export class AgentSession {
2083
2120
  */
2084
2121
  async _queueFollowUp(text, images) {
2085
2122
  this._followUpMessages.push(text);
2123
+ this._sessionLogger.debug("queue_enqueue", { mode: "followUp", count: this._followUpMessages.length });
2086
2124
  this._emitQueueUpdate();
2087
2125
  const content = [{ type: "text", text }];
2088
2126
  if (images) {
@@ -2455,6 +2493,7 @@ export class AgentSession {
2455
2493
  else {
2456
2494
  this.setSessionThinkingLevel(thinkingLevel);
2457
2495
  }
2496
+ this._emitHighReasoningWarningIfNeeded();
2458
2497
  if (!opts.emitModelSelect)
2459
2498
  return undefined;
2460
2499
  return await this._emitModelSelect(model, previousModel, opts.modelSelectSource);
@@ -2554,8 +2593,28 @@ export class AgentSession {
2554
2593
  level: effectiveLevel,
2555
2594
  previousLevel,
2556
2595
  });
2596
+ this._emitHighReasoningWarningIfNeeded();
2557
2597
  }
2558
2598
  }
2599
+ _emitHighReasoningWarningIfNeeded() {
2600
+ const model = this.model;
2601
+ const level = this.thinkingLevel;
2602
+ if (!model || !shouldWarnHighReasoning(model, level)) {
2603
+ this._lastHighReasoningWarningKey = undefined;
2604
+ return;
2605
+ }
2606
+ const key = `${model.provider}/${model.id}:${level}`;
2607
+ if (this._lastHighReasoningWarningKey === key) {
2608
+ return;
2609
+ }
2610
+ this._lastHighReasoningWarningKey = key;
2611
+ this._emit({
2612
+ type: "high_reasoning_warning",
2613
+ modelId: model.id,
2614
+ provider: model.provider,
2615
+ thinkingLevel: level,
2616
+ });
2617
+ }
2559
2618
  /**
2560
2619
  * Cycle to next thinking level.
2561
2620
  * @returns New level, or undefined if model doesn't support thinking
@@ -3446,7 +3505,7 @@ export class AgentSession {
3446
3505
  reason,
3447
3506
  result: undefined,
3448
3507
  aborted,
3449
- willRetry,
3508
+ willRetry: false,
3450
3509
  errorMessage: aborted ? undefined : `Pre-prompt compaction failed: ${errorMessage}`,
3451
3510
  });
3452
3511
  return false;