@qduc/term2 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +11 -9
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agent.lite-mode.test.d.ts +2 -0
  5. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  6. package/dist/agent.lite-mode.test.js +39 -0
  7. package/dist/agent.lite-mode.test.js.map +1 -0
  8. package/dist/agent.test.js +17 -4
  9. package/dist/agent.test.js.map +1 -1
  10. package/dist/app.d.ts +4 -2
  11. package/dist/app.d.ts.map +1 -1
  12. package/dist/app.js +24 -1
  13. package/dist/app.js.map +1 -1
  14. package/dist/cli.js +53 -24
  15. package/dist/cli.js.map +1 -1
  16. package/dist/components/ApprovalPrompt.test.d.ts +2 -0
  17. package/dist/components/ApprovalPrompt.test.d.ts.map +1 -0
  18. package/dist/components/ApprovalPrompt.test.js +23 -0
  19. package/dist/components/ApprovalPrompt.test.js.map +1 -0
  20. package/dist/components/LiveResponse.test.d.ts +2 -0
  21. package/dist/components/LiveResponse.test.d.ts.map +1 -0
  22. package/dist/components/LiveResponse.test.js +13 -0
  23. package/dist/components/LiveResponse.test.js.map +1 -0
  24. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +2 -0
  25. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +1 -0
  26. package/dist/components/ModelSelectionMenu.error-tabs.test.js +18 -0
  27. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +1 -0
  28. package/dist/components/TextInput.d.ts +42 -0
  29. package/dist/components/TextInput.d.ts.map +1 -0
  30. package/dist/components/TextInput.js +398 -0
  31. package/dist/components/TextInput.js.map +1 -0
  32. package/dist/components/TextInput.test.d.ts +2 -0
  33. package/dist/components/TextInput.test.d.ts.map +1 -0
  34. package/dist/components/TextInput.test.js +75 -0
  35. package/dist/components/TextInput.test.js.map +1 -0
  36. package/dist/debug_ask_mentor.d.ts +2 -0
  37. package/dist/debug_ask_mentor.d.ts.map +1 -0
  38. package/dist/debug_ask_mentor.js +73 -0
  39. package/dist/debug_ask_mentor.js.map +1 -0
  40. package/dist/hooks/use-conversation.clear.test.d.ts +2 -0
  41. package/dist/hooks/use-conversation.clear.test.d.ts.map +1 -0
  42. package/dist/hooks/use-conversation.clear.test.js +49 -0
  43. package/dist/hooks/use-conversation.clear.test.js.map +1 -0
  44. package/dist/hooks/use-conversation.d.ts +5 -2
  45. package/dist/hooks/use-conversation.d.ts.map +1 -1
  46. package/dist/hooks/use-conversation.js +10 -4
  47. package/dist/hooks/use-conversation.js.map +1 -1
  48. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +2 -0
  49. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +1 -0
  50. package/dist/hooks/use-conversation.max-turns-undo.test.js +118 -0
  51. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +1 -0
  52. package/dist/lib/openai-agent-client.chat.test.js +40 -0
  53. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  54. package/dist/lib/openai-agent-client.d.ts +8 -1
  55. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  56. package/dist/lib/openai-agent-client.js +43 -1
  57. package/dist/lib/openai-agent-client.js.map +1 -1
  58. package/dist/lib/retry-executor.js +45 -7
  59. package/dist/lib/retry-executor.js.map +1 -1
  60. package/dist/lib/retry-executor.test.js +63 -0
  61. package/dist/lib/retry-executor.test.js.map +1 -1
  62. package/dist/lib/shell.d.ts +7 -0
  63. package/dist/lib/shell.d.ts.map +1 -0
  64. package/dist/lib/shell.js +56 -0
  65. package/dist/lib/shell.js.map +1 -0
  66. package/dist/modes/companion/command-index.d.ts +26 -0
  67. package/dist/modes/companion/command-index.d.ts.map +1 -0
  68. package/dist/modes/companion/command-index.js +50 -0
  69. package/dist/modes/companion/command-index.js.map +1 -0
  70. package/dist/modes/companion/command-index.test.d.ts +2 -0
  71. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  72. package/dist/modes/companion/command-index.test.js +86 -0
  73. package/dist/modes/companion/command-index.test.js.map +1 -0
  74. package/dist/modes/companion/companion-app.d.ts +12 -0
  75. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  76. package/dist/modes/companion/companion-app.js +297 -0
  77. package/dist/modes/companion/companion-app.js.map +1 -0
  78. package/dist/modes/companion/companion-session.d.ts +63 -0
  79. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  80. package/dist/modes/companion/companion-session.js +146 -0
  81. package/dist/modes/companion/companion-session.js.map +1 -0
  82. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  83. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  84. package/dist/modes/companion/companion-session.test.js +28 -0
  85. package/dist/modes/companion/companion-session.test.js.map +1 -0
  86. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  87. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  88. package/dist/modes/companion/components/status-bar.js +26 -0
  89. package/dist/modes/companion/components/status-bar.js.map +1 -0
  90. package/dist/modes/companion/context-buffer.d.ts +65 -0
  91. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  92. package/dist/modes/companion/context-buffer.js +156 -0
  93. package/dist/modes/companion/context-buffer.js.map +1 -0
  94. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  95. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  96. package/dist/modes/companion/context-buffer.test.js +154 -0
  97. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  98. package/dist/modes/companion/event-detector.d.ts +46 -0
  99. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  100. package/dist/modes/companion/event-detector.js +169 -0
  101. package/dist/modes/companion/event-detector.js.map +1 -0
  102. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  103. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  104. package/dist/modes/companion/event-detector.test.js +121 -0
  105. package/dist/modes/companion/event-detector.test.js.map +1 -0
  106. package/dist/modes/companion/index.d.ts +33 -0
  107. package/dist/modes/companion/index.d.ts.map +1 -0
  108. package/dist/modes/companion/index.js +21 -0
  109. package/dist/modes/companion/index.js.map +1 -0
  110. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  111. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  112. package/dist/modes/companion/input-key-mapper.js +31 -0
  113. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  114. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  115. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  116. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  117. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  118. package/dist/modes/companion/input-parser.d.ts +53 -0
  119. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  120. package/dist/modes/companion/input-parser.js +114 -0
  121. package/dist/modes/companion/input-parser.js.map +1 -0
  122. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  123. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  124. package/dist/modes/companion/input-parser.test.js +123 -0
  125. package/dist/modes/companion/input-parser.test.js.map +1 -0
  126. package/dist/modes/companion/mode-manager.d.ts +41 -0
  127. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  128. package/dist/modes/companion/mode-manager.js +56 -0
  129. package/dist/modes/companion/mode-manager.js.map +1 -0
  130. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  131. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  132. package/dist/modes/companion/mode-manager.test.js +65 -0
  133. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  134. package/dist/modes/companion/output-classifier.d.ts +15 -0
  135. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  136. package/dist/modes/companion/output-classifier.js +77 -0
  137. package/dist/modes/companion/output-classifier.js.map +1 -0
  138. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  139. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  140. package/dist/modes/companion/output-classifier.test.js +133 -0
  141. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  142. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  143. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  144. package/dist/modes/companion/pty-wrapper.js +143 -0
  145. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  146. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  147. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  148. package/dist/modes/companion/safety-classifier.js +140 -0
  149. package/dist/modes/companion/safety-classifier.js.map +1 -0
  150. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  151. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  152. package/dist/modes/companion/safety-classifier.test.js +151 -0
  153. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  154. package/dist/modes/companion/summarizer.d.ts +24 -0
  155. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  156. package/dist/modes/companion/summarizer.js +132 -0
  157. package/dist/modes/companion/summarizer.js.map +1 -0
  158. package/dist/modes/companion/terminal-history.d.ts +27 -0
  159. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  160. package/dist/modes/companion/terminal-history.js +142 -0
  161. package/dist/modes/companion/terminal-history.js.map +1 -0
  162. package/dist/non-interactive.d.ts +1 -0
  163. package/dist/non-interactive.d.ts.map +1 -1
  164. package/dist/non-interactive.js +3 -1
  165. package/dist/non-interactive.js.map +1 -1
  166. package/dist/non-interactive.test.js +8 -1
  167. package/dist/non-interactive.test.js.map +1 -1
  168. package/dist/prompts/gpt-5.md +4 -7
  169. package/dist/prompts/simple-mentor.md +215 -0
  170. package/dist/providers/ai-sdk-logging-fetch.d.ts +1 -1
  171. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
  172. package/dist/providers/ai-sdk-logging-fetch.js +67 -44
  173. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
  174. package/dist/providers/ai-sdk-logging-fetch.test.js +59 -5
  175. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
  176. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +2 -0
  177. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  178. package/dist/providers/ai-sdk-openai-compatible.provider.js +8 -4
  179. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  180. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +119 -1
  181. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  182. package/dist/providers/ai-sdk-openai.provider.d.ts +14 -0
  183. package/dist/providers/ai-sdk-openai.provider.d.ts.map +1 -0
  184. package/dist/providers/ai-sdk-openai.provider.js +18 -0
  185. package/dist/providers/ai-sdk-openai.provider.js.map +1 -0
  186. package/dist/providers/github-copilot/converters.d.ts +45 -0
  187. package/dist/providers/github-copilot/converters.d.ts.map +1 -0
  188. package/dist/providers/github-copilot/converters.js +118 -0
  189. package/dist/providers/github-copilot/converters.js.map +1 -0
  190. package/dist/providers/github-copilot/converters.test.d.ts +2 -0
  191. package/dist/providers/github-copilot/converters.test.d.ts.map +1 -0
  192. package/dist/providers/github-copilot/converters.test.js +162 -0
  193. package/dist/providers/github-copilot/converters.test.js.map +1 -0
  194. package/dist/providers/github-copilot/github-copilot.provider.d.ts +2 -0
  195. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +1 -0
  196. package/dist/providers/github-copilot/github-copilot.provider.js +75 -0
  197. package/dist/providers/github-copilot/github-copilot.provider.js.map +1 -0
  198. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +2 -0
  199. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +1 -0
  200. package/dist/providers/github-copilot/github-copilot.provider.test.js +26 -0
  201. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +1 -0
  202. package/dist/providers/github-copilot/index.d.ts +4 -0
  203. package/dist/providers/github-copilot/index.d.ts.map +1 -0
  204. package/dist/providers/github-copilot/index.js +4 -0
  205. package/dist/providers/github-copilot/index.js.map +1 -0
  206. package/dist/providers/github-copilot/model.d.ts +24 -0
  207. package/dist/providers/github-copilot/model.d.ts.map +1 -0
  208. package/dist/providers/github-copilot/model.delta.test.d.ts +2 -0
  209. package/dist/providers/github-copilot/model.delta.test.d.ts.map +1 -0
  210. package/dist/providers/github-copilot/model.delta.test.js +15 -0
  211. package/dist/providers/github-copilot/model.delta.test.js.map +1 -0
  212. package/dist/providers/github-copilot/model.js +498 -0
  213. package/dist/providers/github-copilot/model.js.map +1 -0
  214. package/dist/providers/github-copilot/model.test.d.ts +2 -0
  215. package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
  216. package/dist/providers/github-copilot/model.test.js +63 -0
  217. package/dist/providers/github-copilot/model.test.js.map +1 -0
  218. package/dist/providers/github-copilot/provider.d.ts +15 -0
  219. package/dist/providers/github-copilot/provider.d.ts.map +1 -0
  220. package/dist/providers/github-copilot/provider.js +25 -0
  221. package/dist/providers/github-copilot/provider.js.map +1 -0
  222. package/dist/providers/github-copilot/provider.test.d.ts +2 -0
  223. package/dist/providers/github-copilot/provider.test.d.ts.map +1 -0
  224. package/dist/providers/github-copilot/provider.test.js +52 -0
  225. package/dist/providers/github-copilot/provider.test.js.map +1 -0
  226. package/dist/providers/github-copilot/utils.d.ts +20 -0
  227. package/dist/providers/github-copilot/utils.d.ts.map +1 -0
  228. package/dist/providers/github-copilot/utils.js +142 -0
  229. package/dist/providers/github-copilot/utils.js.map +1 -0
  230. package/dist/providers/github-copilot/utils.test.d.ts +2 -0
  231. package/dist/providers/github-copilot/utils.test.d.ts.map +1 -0
  232. package/dist/providers/github-copilot/utils.test.js +21 -0
  233. package/dist/providers/github-copilot/utils.test.js.map +1 -0
  234. package/dist/providers/openai-compatible/api.d.ts +17 -0
  235. package/dist/providers/openai-compatible/api.d.ts.map +1 -0
  236. package/dist/providers/openai-compatible/api.js +58 -0
  237. package/dist/providers/openai-compatible/api.js.map +1 -0
  238. package/dist/providers/openai-compatible/model.d.ts +17 -0
  239. package/dist/providers/openai-compatible/model.d.ts.map +1 -0
  240. package/dist/providers/openai-compatible/model.js +473 -0
  241. package/dist/providers/openai-compatible/model.js.map +1 -0
  242. package/dist/providers/openai-compatible/provider.d.ts +22 -0
  243. package/dist/providers/openai-compatible/provider.d.ts.map +1 -0
  244. package/dist/providers/openai-compatible/provider.js +43 -0
  245. package/dist/providers/openai-compatible/provider.js.map +1 -0
  246. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +2 -0
  247. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +1 -0
  248. package/dist/providers/openai-compatible/reasoning-content.test.js +258 -0
  249. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -0
  250. package/dist/providers/openai-compatible/utils.d.ts +3 -0
  251. package/dist/providers/openai-compatible/utils.d.ts.map +1 -0
  252. package/dist/providers/openai-compatible/utils.js +11 -0
  253. package/dist/providers/openai-compatible/utils.js.map +1 -0
  254. package/dist/providers/openai-compatible-behavior-gate.test.js +42 -1
  255. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  256. package/dist/providers/openai.provider.js +21 -1
  257. package/dist/providers/openai.provider.js.map +1 -1
  258. package/dist/providers/openrouter/api.d.ts +39 -0
  259. package/dist/providers/openrouter/api.d.ts.map +1 -0
  260. package/dist/providers/openrouter/api.js +164 -0
  261. package/dist/providers/openrouter/api.js.map +1 -0
  262. package/dist/providers/openrouter/converters.d.ts +8 -0
  263. package/dist/providers/openrouter/converters.d.ts.map +1 -0
  264. package/dist/providers/openrouter/converters.js +391 -0
  265. package/dist/providers/openrouter/converters.js.map +1 -0
  266. package/dist/providers/openrouter/converters.test.d.ts +2 -0
  267. package/dist/providers/openrouter/converters.test.d.ts.map +1 -0
  268. package/dist/providers/openrouter/converters.test.js +179 -0
  269. package/dist/providers/openrouter/converters.test.js.map +1 -0
  270. package/dist/providers/openrouter/index.d.ts +4 -0
  271. package/dist/providers/openrouter/index.d.ts.map +1 -0
  272. package/dist/providers/openrouter/index.js +4 -0
  273. package/dist/providers/openrouter/index.js.map +1 -0
  274. package/dist/providers/openrouter/model.d.ts +14 -0
  275. package/dist/providers/openrouter/model.d.ts.map +1 -0
  276. package/dist/providers/openrouter/model.js +457 -0
  277. package/dist/providers/openrouter/model.js.map +1 -0
  278. package/dist/providers/openrouter/provider.d.ts +15 -0
  279. package/dist/providers/openrouter/provider.d.ts.map +1 -0
  280. package/dist/providers/openrouter/provider.js +21 -0
  281. package/dist/providers/openrouter/provider.js.map +1 -0
  282. package/dist/providers/openrouter/reasoning-content.test.d.ts +2 -0
  283. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +1 -0
  284. package/dist/providers/openrouter/reasoning-content.test.js +122 -0
  285. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -0
  286. package/dist/providers/openrouter/utils.d.ts +11 -0
  287. package/dist/providers/openrouter/utils.d.ts.map +1 -0
  288. package/dist/providers/openrouter/utils.js +29 -0
  289. package/dist/providers/openrouter/utils.js.map +1 -0
  290. package/dist/providers/openrouter.api.retry.test.d.ts +2 -0
  291. package/dist/providers/openrouter.api.retry.test.d.ts.map +1 -0
  292. package/dist/providers/openrouter.api.retry.test.js +148 -0
  293. package/dist/providers/openrouter.api.retry.test.js.map +1 -0
  294. package/dist/providers/openrouter.provider.d.ts +2 -0
  295. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  296. package/dist/providers/openrouter.provider.js +20 -2
  297. package/dist/providers/openrouter.provider.js.map +1 -1
  298. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts +2 -0
  299. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts.map +1 -0
  300. package/dist/providers/openrouter.provider.request-preprocessing.test.js +48 -0
  301. package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -0
  302. package/dist/providers/openrouter.test.d.ts +2 -0
  303. package/dist/providers/openrouter.test.d.ts.map +1 -0
  304. package/dist/providers/openrouter.test.js +1449 -0
  305. package/dist/providers/openrouter.test.js.map +1 -0
  306. package/dist/providers/registry.test.js +27 -2
  307. package/dist/providers/registry.test.js.map +1 -1
  308. package/dist/safety-checker.js +57 -0
  309. package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
  310. package/dist/services/check_mock.d.ts +2 -0
  311. package/dist/services/check_mock.d.ts.map +1 -0
  312. package/dist/services/check_mock.js +22 -0
  313. package/dist/services/check_mock.js.map +1 -0
  314. package/dist/services/conversation-clear-save.test.d.ts +2 -0
  315. package/dist/services/conversation-clear-save.test.d.ts.map +1 -0
  316. package/dist/services/conversation-clear-save.test.js +85 -0
  317. package/dist/services/conversation-clear-save.test.js.map +1 -0
  318. package/dist/services/conversation-history-repair.d.ts +25 -0
  319. package/dist/services/conversation-history-repair.d.ts.map +1 -0
  320. package/dist/services/conversation-history-repair.js +227 -0
  321. package/dist/services/conversation-history-repair.js.map +1 -0
  322. package/dist/services/conversation-history-repair.test.d.ts +2 -0
  323. package/dist/services/conversation-history-repair.test.d.ts.map +1 -0
  324. package/dist/services/conversation-history-repair.test.js +76 -0
  325. package/dist/services/conversation-history-repair.test.js.map +1 -0
  326. package/dist/services/conversation-persistence.d.ts +7 -4
  327. package/dist/services/conversation-persistence.d.ts.map +1 -1
  328. package/dist/services/conversation-persistence.js +68 -15
  329. package/dist/services/conversation-persistence.js.map +1 -1
  330. package/dist/services/conversation-persistence.test.js +297 -2
  331. package/dist/services/conversation-persistence.test.js.map +1 -1
  332. package/dist/services/conversation-retry-policy.d.ts +7 -0
  333. package/dist/services/conversation-retry-policy.d.ts.map +1 -1
  334. package/dist/services/conversation-retry-policy.js +34 -0
  335. package/dist/services/conversation-retry-policy.js.map +1 -1
  336. package/dist/services/conversation-retry-policy.test.js +44 -2
  337. package/dist/services/conversation-retry-policy.test.js.map +1 -1
  338. package/dist/services/conversation-service.d.ts +3 -2
  339. package/dist/services/conversation-service.d.ts.map +1 -1
  340. package/dist/services/conversation-service.js +11 -3
  341. package/dist/services/conversation-service.js.map +1 -1
  342. package/dist/services/conversation-service.test.d.ts +2 -0
  343. package/dist/services/conversation-service.test.d.ts.map +1 -0
  344. package/dist/services/conversation-service.test.js +156 -0
  345. package/dist/services/conversation-service.test.js.map +1 -0
  346. package/dist/services/conversation-session.auto-approval.test.js +2 -1
  347. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  348. package/dist/services/conversation-session.d.ts +3 -1
  349. package/dist/services/conversation-session.d.ts.map +1 -1
  350. package/dist/services/conversation-session.js +160 -89
  351. package/dist/services/conversation-session.js.map +1 -1
  352. package/dist/services/conversation-store.d.ts.map +1 -1
  353. package/dist/services/conversation-store.js +6 -5
  354. package/dist/services/conversation-store.js.map +1 -1
  355. package/dist/services/conversation-store.test.js +34 -0
  356. package/dist/services/conversation-store.test.js.map +1 -1
  357. package/dist/services/logging-contract.d.ts +1 -1
  358. package/dist/services/logging-service.d.ts +4 -0
  359. package/dist/services/logging-service.d.ts.map +1 -1
  360. package/dist/services/logging-service.js +91 -33
  361. package/dist/services/logging-service.js.map +1 -1
  362. package/dist/services/model-service.d.ts.map +1 -1
  363. package/dist/services/model-service.js +0 -1
  364. package/dist/services/model-service.js.map +1 -1
  365. package/dist/services/provider-traffic.d.ts +87 -0
  366. package/dist/services/provider-traffic.d.ts.map +1 -0
  367. package/dist/services/provider-traffic.js +545 -0
  368. package/dist/services/provider-traffic.js.map +1 -0
  369. package/dist/services/provider-traffic.test.d.ts +2 -0
  370. package/dist/services/provider-traffic.test.d.ts.map +1 -0
  371. package/dist/services/provider-traffic.test.js +383 -0
  372. package/dist/services/provider-traffic.test.js.map +1 -0
  373. package/dist/services/service-interfaces.d.ts +16 -0
  374. package/dist/services/service-interfaces.d.ts.map +1 -1
  375. package/dist/services/settings-service.js +6 -6
  376. package/dist/services/settings-service.js.map +1 -1
  377. package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
  378. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  379. package/dist/services/shell-auto-approval-evaluator.js +284 -81
  380. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  381. package/dist/services/shell-auto-approval-evaluator.test.js +215 -15
  382. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  383. package/dist/services/subagents/reasoning-inheritance.test.d.ts +2 -0
  384. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +1 -0
  385. package/dist/services/subagents/reasoning-inheritance.test.js +73 -0
  386. package/dist/services/subagents/reasoning-inheritance.test.js.map +1 -0
  387. package/dist/services/subagents/subagent-manager.d.ts +2 -0
  388. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  389. package/dist/services/subagents/subagent-manager.js +36 -5
  390. package/dist/services/subagents/subagent-manager.js.map +1 -1
  391. package/dist/services/subagents/subagent-manager.test.js +99 -0
  392. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  393. package/dist/tools/bash.d.ts +10 -0
  394. package/dist/tools/bash.d.ts.map +1 -0
  395. package/dist/tools/bash.js +55 -0
  396. package/dist/tools/bash.js.map +1 -0
  397. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  398. package/dist/utils/command-safety/path-analysis.js +143 -35
  399. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  400. package/dist/utils/command-safety.d.ts +21 -0
  401. package/dist/utils/command-safety.d.ts.map +1 -0
  402. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  403. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  404. package/dist/utils/command-safety.devnull.test.js +13 -0
  405. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  406. package/dist/utils/command-safety.js +348 -0
  407. package/dist/utils/command-safety.js.map +1 -0
  408. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  409. package/dist/utils/conversation-event-handler.js +19 -3
  410. package/dist/utils/conversation-event-handler.js.map +1 -1
  411. package/dist/utils/conversation-event-handler.test.js +72 -0
  412. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  413. package/dist/utils/extract-command-messages.test.d.ts +2 -0
  414. package/dist/utils/extract-command-messages.test.d.ts.map +1 -0
  415. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +2 -0
  416. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +1 -0
  417. package/dist/utils/provider-traffic-extractor.repro.test.js.map +1 -0
  418. package/package.json +1 -1
  419. package/dist/hooks/use-path-completion.test.d.ts +0 -2
  420. package/dist/hooks/use-path-completion.test.d.ts.map +0 -1
  421. package/dist/hooks/use-path-completion.test.js +0 -54
  422. package/dist/hooks/use-path-completion.test.js.map +0 -1
  423. package/dist/providers/openai.provider.test.d.ts +0 -2
  424. package/dist/providers/openai.provider.test.d.ts.map +0 -1
  425. package/dist/providers/openai.provider.test.js +0 -22
  426. package/dist/providers/openai.provider.test.js.map +0 -1
  427. package/dist/utils/project-tree.d.ts +0 -14
  428. package/dist/utils/project-tree.d.ts.map +0 -1
  429. package/dist/utils/project-tree.js +0 -111
  430. package/dist/utils/project-tree.js.map +0 -1
  431. package/dist/utils/project-tree.test.d.ts +0 -2
  432. package/dist/utils/project-tree.test.d.ts.map +0 -1
  433. package/dist/utils/project-tree.test.js +0 -149
  434. package/dist/utils/project-tree.test.js.map +0 -1
  435. package/dist/utils/terminal-clear.d.ts +0 -7
  436. package/dist/utils/terminal-clear.d.ts.map +0 -1
  437. package/dist/utils/terminal-clear.js +0 -5
  438. package/dist/utils/terminal-clear.js.map +0 -1
  439. package/dist/utils/terminal-clear.test.d.ts +0 -2
  440. package/dist/utils/terminal-clear.test.d.ts.map +0 -1
  441. package/dist/utils/terminal-clear.test.js +0 -13
  442. package/dist/utils/terminal-clear.test.js.map +0 -1
@@ -36,8 +36,16 @@ test.serial('generateId: returns unique IDs', (t) => {
36
36
  });
37
37
  test.serial('getResumeCommand: returns correct format', (t) => {
38
38
  const id = 'test-uuid-123';
39
- const cmd = persistenceModule.getResumeCommand(id);
40
- t.is(cmd, 'term2 --resume test-uuid-123');
39
+ // Local (no SSH)
40
+ t.is(persistenceModule.getResumeCommand(id), 'term2 --resume test-uuid-123');
41
+ // SSH with host
42
+ t.is(persistenceModule.getResumeCommand(id, 'user@host'), 'term2 --ssh user@host --resume test-uuid-123');
43
+ // SSH with host and remote directory
44
+ t.is(persistenceModule.getResumeCommand(id, 'user@host', '/path/to/project'), 'term2 --ssh user@host --remote-dir /path/to/project --resume test-uuid-123');
45
+ // SSH with host, remote directory, and custom port
46
+ t.is(persistenceModule.getResumeCommand(id, 'user@host', '/path/to/project', 2222), 'term2 --ssh user@host --remote-dir /path/to/project --ssh-port 2222 --resume test-uuid-123');
47
+ // SSH with host and default port 22 (should be omitted)
48
+ t.is(persistenceModule.getResumeCommand(id, 'user@host', '/path/to/project', 22), 'term2 --ssh user@host --remote-dir /path/to/project --resume test-uuid-123');
41
49
  });
42
50
  test.serial('saveConversation: creates file and last.json pointer', (t) => {
43
51
  const id = persistenceModule.generateId();
@@ -102,6 +110,28 @@ test.serial('saveConversation: normalizes pending command messages to completed'
102
110
  // Cleanup
103
111
  fs.rmSync(path.dirname(filePath), { recursive: true, force: true });
104
112
  });
113
+ test.serial('saveConversation: writes repaired history for duplicated tool replay artifacts', (t) => {
114
+ const id = persistenceModule.generateId();
115
+ const conversation = {
116
+ id,
117
+ createdAt: new Date().toISOString(),
118
+ updatedAt: new Date().toISOString(),
119
+ previousResponseId: 'resp-123',
120
+ history: [
121
+ { role: 'user', type: 'message', content: 'Inspect' },
122
+ { type: 'function_call', id: 'fc_1', callId: 'call-read', name: 'read_file', arguments: '{}' },
123
+ { type: 'function_call_result', id: 'fcr_1', callId: 'call-read', output: 'contents' },
124
+ { type: 'function_call', id: 'fc_2', callId: 'call-read', name: 'read_file', arguments: '{}' },
125
+ { type: 'function_call_result', id: 'fcr_2', callId: 'call-read', output: 'contents' },
126
+ ],
127
+ messages: [{ id: 'msg-1', sender: 'user', text: 'Inspect' }],
128
+ };
129
+ const filePath = persistenceModule.saveConversation(conversation);
130
+ const saved = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
131
+ t.is(saved.previousResponseId, 'resp-123');
132
+ t.is(saved.history.length, 3);
133
+ t.deepEqual(saved.history.filter((item) => item.callId === 'call-read').map((item) => item.id), ['fc_1', 'fcr_1']);
134
+ });
105
135
  test.serial('loadConversation: returns null for non-existent id', (t) => {
106
136
  const result = persistenceModule.loadConversation('non-existent-id');
107
137
  t.is(result, null);
@@ -128,6 +158,31 @@ test.serial('loadConversation: returns saved conversation', (t) => {
128
158
  const filePath = path.join(persistenceModule.getConversationsDirForTest(), `${id}.json`);
129
159
  fs.rmSync(path.dirname(filePath), { recursive: true, force: true });
130
160
  });
161
+ test.serial('loadConversation: returns repaired history with transient repair metadata', (t) => {
162
+ const id = persistenceModule.generateId();
163
+ const dir = persistenceModule.getConversationsDirForTest();
164
+ fs.mkdirSync(dir, { recursive: true });
165
+ fs.writeFileSync(path.join(dir, `${id}.json`), JSON.stringify({
166
+ id,
167
+ createdAt: new Date().toISOString(),
168
+ updatedAt: new Date().toISOString(),
169
+ previousResponseId: 'resp-123',
170
+ history: [
171
+ { role: 'user', type: 'message', content: 'Inspect' },
172
+ { type: 'function_call', id: 'fc_1', callId: 'call-read', name: 'read_file', arguments: '{}' },
173
+ { type: 'function_call_result', id: 'fcr_1', callId: 'call-read', output: 'contents' },
174
+ { type: 'function_call', id: 'fc_2', callId: 'call-read', name: 'read_file', arguments: '{}' },
175
+ { type: 'function_call_result', id: 'fcr_2', callId: 'call-read', output: 'contents' },
176
+ ],
177
+ messages: [{ id: 'msg-1', sender: 'user', text: 'Inspect' }],
178
+ }, null, 2), 'utf-8');
179
+ const loaded = persistenceModule.loadConversation(id);
180
+ t.truthy(loaded);
181
+ t.is(loaded.previousResponseId, 'resp-123');
182
+ t.is(loaded.history.length, 3);
183
+ t.true(loaded.historyRepair?.repaired);
184
+ t.is(loaded.historyRepair?.removedItems, 2);
185
+ });
131
186
  test.serial('loadConversation: preserves saved app mode settings', (t) => {
132
187
  const id = persistenceModule.generateId();
133
188
  const conversation = {
@@ -255,6 +310,30 @@ test.serial('loadLastConversation: returns the last saved conversation', (t) =>
255
310
  // Cleanup
256
311
  fs.rmSync(persistenceModule.getConversationsDirForTest(), { recursive: true, force: true });
257
312
  });
313
+ test.serial('loadLastConversation: surfaces repaired conversation metadata', (t) => {
314
+ const id = persistenceModule.generateId();
315
+ const dir = persistenceModule.getConversationsDirForTest();
316
+ fs.mkdirSync(dir, { recursive: true });
317
+ fs.writeFileSync(path.join(dir, `${id}.json`), JSON.stringify({
318
+ id,
319
+ createdAt: new Date().toISOString(),
320
+ updatedAt: new Date().toISOString(),
321
+ previousResponseId: null,
322
+ history: [
323
+ { role: 'user', type: 'message', content: 'Inspect' },
324
+ { type: 'function_call', id: 'fc_1', callId: 'call-read', name: 'read_file', arguments: '{}' },
325
+ { type: 'function_call_result', id: 'fcr_1', callId: 'call-read', output: 'contents' },
326
+ { type: 'function_call', id: 'fc_2', callId: 'call-read', name: 'read_file', arguments: '{}' },
327
+ { type: 'function_call_result', id: 'fcr_2', callId: 'call-read', output: 'contents' },
328
+ ],
329
+ messages: [{ id: 'msg-1', sender: 'user', text: 'Inspect' }],
330
+ }, null, 2), 'utf-8');
331
+ fs.writeFileSync(path.join(dir, 'last.json'), JSON.stringify({ id }), 'utf-8');
332
+ const last = persistenceModule.loadLastConversation();
333
+ t.truthy(last);
334
+ t.true(last.historyRepair?.repaired);
335
+ t.is(last.history.length, 3);
336
+ });
258
337
  test.serial('loadLastConversation: returns most recent conversation for expected project path', (t) => {
259
338
  const projectAOlder = persistenceModule.generateId();
260
339
  const projectANewer = persistenceModule.generateId();
@@ -415,4 +494,220 @@ test.serial('listConversations: returns conversations sorted by updatedAt descen
415
494
  t.is(list[0].id, id2); // Most recently saved first
416
495
  t.is(list[1].id, id1);
417
496
  });
497
+ test.serial('conversationMatchesProject: loadConversation with matching sshHost returns conversation', (t) => {
498
+ const id = persistenceModule.generateId();
499
+ const conversation = {
500
+ id,
501
+ createdAt: new Date().toISOString(),
502
+ updatedAt: new Date().toISOString(),
503
+ sshHost: 'myhost.example.com',
504
+ previousResponseId: null,
505
+ history: [],
506
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
507
+ };
508
+ persistenceModule.saveConversation(conversation);
509
+ const loaded = persistenceModule.loadConversation(id, undefined, 'myhost.example.com');
510
+ t.truthy(loaded);
511
+ t.is(loaded.id, id);
512
+ t.is(loaded.sshHost, 'myhost.example.com');
513
+ });
514
+ test.serial('conversationMatchesProject: loadConversation with mismatched sshHost returns null', (t) => {
515
+ const id = persistenceModule.generateId();
516
+ const conversation = {
517
+ id,
518
+ createdAt: new Date().toISOString(),
519
+ updatedAt: new Date().toISOString(),
520
+ sshHost: 'myhost.example.com',
521
+ previousResponseId: null,
522
+ history: [],
523
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
524
+ };
525
+ persistenceModule.saveConversation(conversation);
526
+ const loaded = persistenceModule.loadConversation(id, undefined, 'otherhost.example.com');
527
+ t.is(loaded, null);
528
+ });
529
+ test.serial('conversationMatchesProject: loading remote conversation from local session (no expectedSshHost) returns null', (t) => {
530
+ const id = persistenceModule.generateId();
531
+ const conversation = {
532
+ id,
533
+ createdAt: new Date().toISOString(),
534
+ updatedAt: new Date().toISOString(),
535
+ sshHost: 'remote.example.com',
536
+ projectPath: '/workspace/project',
537
+ previousResponseId: null,
538
+ history: [],
539
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
540
+ };
541
+ persistenceModule.saveConversation(conversation);
542
+ // Local session (expectedProjectPath given, but no expectedSshHost)
543
+ // should reject a remote conversation that has sshHost
544
+ const loaded = persistenceModule.loadConversation(id, '/workspace/project', undefined);
545
+ t.is(loaded, null);
546
+ });
547
+ test.serial('conversationMatchesProject: loading local conversation from remote session (no conversation.sshHost) returns null', (t) => {
548
+ const id = persistenceModule.generateId();
549
+ const conversation = {
550
+ id,
551
+ createdAt: new Date().toISOString(),
552
+ updatedAt: new Date().toISOString(),
553
+ // no sshHost — local conversation
554
+ projectPath: '/workspace/project',
555
+ previousResponseId: null,
556
+ history: [],
557
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
558
+ };
559
+ persistenceModule.saveConversation(conversation);
560
+ // Remote session (expectedSshHost given) should reject a local conversation
561
+ const loaded = persistenceModule.loadConversation(id, '/workspace/project', 'remote.example.com');
562
+ t.is(loaded, null);
563
+ });
564
+ test.serial('loadConversationForProject: returns project_mismatch for sshHost mismatch', (t) => {
565
+ const id = persistenceModule.generateId();
566
+ const conversation = {
567
+ id,
568
+ createdAt: new Date().toISOString(),
569
+ updatedAt: new Date().toISOString(),
570
+ sshHost: 'myhost.example.com',
571
+ projectPath: '/workspace/alpha',
572
+ previousResponseId: null,
573
+ history: [],
574
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
575
+ };
576
+ persistenceModule.saveConversation(conversation);
577
+ const result = persistenceModule.loadConversationForProject(id, '/workspace/alpha', 'otherhost.example.com');
578
+ t.is(result.status, 'project_mismatch');
579
+ if (result.status === 'project_mismatch') {
580
+ t.is(result.conversation.id, id);
581
+ t.is(result.conversation.sshHost, 'myhost.example.com');
582
+ }
583
+ });
584
+ test.serial('loadConversationForProject: returns project_mismatch for project path mismatch with sshHost', (t) => {
585
+ const id = persistenceModule.generateId();
586
+ const conversation = {
587
+ id,
588
+ createdAt: new Date().toISOString(),
589
+ updatedAt: new Date().toISOString(),
590
+ sshHost: 'myhost.example.com',
591
+ projectPath: '/workspace/alpha',
592
+ previousResponseId: null,
593
+ history: [],
594
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
595
+ };
596
+ persistenceModule.saveConversation(conversation);
597
+ const result = persistenceModule.loadConversationForProject(id, '/workspace/beta', 'myhost.example.com');
598
+ t.is(result.status, 'project_mismatch');
599
+ if (result.status === 'project_mismatch') {
600
+ t.is(result.conversation.id, id);
601
+ }
602
+ });
603
+ test.serial('loadConversationForProject: returns loaded when both sshHost and projectPath match', (t) => {
604
+ const id = persistenceModule.generateId();
605
+ const conversation = {
606
+ id,
607
+ createdAt: new Date().toISOString(),
608
+ updatedAt: new Date().toISOString(),
609
+ sshHost: 'myhost.example.com',
610
+ projectPath: '/workspace/alpha',
611
+ previousResponseId: null,
612
+ history: [],
613
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
614
+ };
615
+ persistenceModule.saveConversation(conversation);
616
+ const result = persistenceModule.loadConversationForProject(id, '/workspace/alpha', 'myhost.example.com');
617
+ t.is(result.status, 'loaded');
618
+ if (result.status === 'loaded') {
619
+ t.is(result.conversation.id, id);
620
+ t.is(result.conversation.sshHost, 'myhost.example.com');
621
+ }
622
+ });
623
+ test.serial('loadConversationForProject: SSH host matching is case-insensitive', (t) => {
624
+ const id = persistenceModule.generateId();
625
+ const conversation = {
626
+ id,
627
+ createdAt: new Date().toISOString(),
628
+ updatedAt: new Date().toISOString(),
629
+ sshHost: 'MyHost.EXAMPLE.COM',
630
+ projectPath: '/workspace/alpha',
631
+ previousResponseId: null,
632
+ history: [],
633
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
634
+ };
635
+ persistenceModule.saveConversation(conversation);
636
+ const result = persistenceModule.loadConversationForProject(id, '/workspace/alpha', 'myhost.example.com');
637
+ t.is(result.status, 'loaded');
638
+ if (result.status === 'loaded') {
639
+ t.is(result.conversation.id, id);
640
+ }
641
+ });
642
+ test.serial('loadLastConversation: filters by both expectedProjectPath and expectedSshHost', (t) => {
643
+ const matchingId = persistenceModule.generateId();
644
+ const wrongSshId = persistenceModule.generateId();
645
+ const wrongProjectId = persistenceModule.generateId();
646
+ persistenceModule.saveConversation({
647
+ id: matchingId,
648
+ createdAt: '2024-01-03T00:00:00.000Z',
649
+ updatedAt: '2024-01-03T00:00:00.000Z',
650
+ projectPath: '/workspace/alpha',
651
+ sshHost: 'myhost.example.com',
652
+ previousResponseId: null,
653
+ history: [],
654
+ messages: [{ id: 'msg-1', sender: 'user', text: 'matching' }],
655
+ });
656
+ persistenceModule.saveConversation({
657
+ id: wrongSshId,
658
+ createdAt: '2024-01-02T00:00:00.000Z',
659
+ updatedAt: '2024-01-02T00:00:00.000Z',
660
+ projectPath: '/workspace/alpha',
661
+ sshHost: 'other.example.com',
662
+ previousResponseId: null,
663
+ history: [],
664
+ messages: [{ id: 'msg-2', sender: 'user', text: 'wrong ssh' }],
665
+ });
666
+ persistenceModule.saveConversation({
667
+ id: wrongProjectId,
668
+ createdAt: '2024-01-01T00:00:00.000Z',
669
+ updatedAt: '2024-01-01T00:00:00.000Z',
670
+ projectPath: '/workspace/beta',
671
+ sshHost: 'myhost.example.com',
672
+ previousResponseId: null,
673
+ history: [],
674
+ messages: [{ id: 'msg-3', sender: 'user', text: 'wrong project' }],
675
+ });
676
+ const last = persistenceModule.loadLastConversation('/workspace/alpha', 'myhost.example.com');
677
+ t.truthy(last);
678
+ t.is(last.id, matchingId);
679
+ });
680
+ test.serial('loadLastConversation: returns null when no conversation matches both project and ssh', (t) => {
681
+ persistenceModule.saveConversation({
682
+ id: persistenceModule.generateId(),
683
+ createdAt: new Date().toISOString(),
684
+ updatedAt: new Date().toISOString(),
685
+ projectPath: '/workspace/alpha',
686
+ sshHost: 'myhost.example.com',
687
+ previousResponseId: null,
688
+ history: [],
689
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
690
+ });
691
+ const last = persistenceModule.loadLastConversation('/workspace/alpha', 'otherhost.example.com');
692
+ t.is(last, null);
693
+ });
694
+ test.serial('loadConversation: unscoped load (no filters) accepts conversation with sshHost', (t) => {
695
+ const id = persistenceModule.generateId();
696
+ const conversation = {
697
+ id,
698
+ createdAt: new Date().toISOString(),
699
+ updatedAt: new Date().toISOString(),
700
+ sshHost: 'myhost.example.com',
701
+ projectPath: '/workspace/alpha',
702
+ previousResponseId: null,
703
+ history: [],
704
+ messages: [{ id: 'msg-1', sender: 'user', text: 'hello' }],
705
+ };
706
+ persistenceModule.saveConversation(conversation);
707
+ // No filters at all — should pass through
708
+ const loaded = persistenceModule.loadConversation(id);
709
+ t.truthy(loaded);
710
+ t.is(loaded.id, id);
711
+ t.is(loaded.sshHost, 'myhost.example.com');
712
+ });
418
713
  //# sourceMappingURL=conversation-persistence.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-persistence.test.js","sourceRoot":"","sources":["../../source/services/conversation-persistence.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-persistence.test.js","sourceRoot":"","sources":["../../source/services/conversation-persistence.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAC;AAEnE,IAAI,OAAO,GAAG,EAAE,CAAC;AAEjB,6DAA6D;AAC7D,SAAS,UAAU;IACjB,IAAI,OAAO,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,EAAE,EAAE,CAAC;QAC/B,qBAAqB;IACvB,CAAC;AACH,CAAC;AAED,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE;IACnB,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAC9E,iBAAiB,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAClC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE;IACzB,iBAAiB,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,GAAG,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,kCAAkC,EAAE,CAAC,CAAC,EAAE,EAAE;IACpD,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,gEAAgE,CAAC,CAAC;AAChF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,gCAAgC,EAAE,CAAC,CAAC,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC3C,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,0CAA0C,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5D,MAAM,EAAE,GAAG,eAAe,CAAC;IAE3B,iBAAiB;IACjB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAE7E,gBAAgB;IAChB,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,8CAA8C,CAAC,CAAC;IAE1G,qCAAqC;IACrC,CAAC,CAAC,EAAE,CACF,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,EACvE,4EAA4E,CAC7E,CAAC;IAEF,mDAAmD;IACnD,CAAC,CAAC,EAAE,CACF,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,IAAI,CAAC,EAC7E,4FAA4F,CAC7F,CAAC;IAEF,wDAAwD;IACxD,CAAC,CAAC,EAAE,CACF,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAC3E,4EAA4E,CAC7E,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,sDAAsD,EAAE,CAAC,CAAC,EAAE,EAAE;IACxE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,QAAQ;QACf,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7C,QAAQ,EAAE;YACR,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC9C,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;SACtE;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhC,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAEtB,UAAU;IACV,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,yDAAyD,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3E,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,kEAAkE,EAAE,CAAC,CAAC,EAAE,EAAE;IACpF,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE;YACR,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC9C,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE;SACzE;KACF,CAAC;IAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE5C,UAAU;IACV,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;KACpG,CAAC;IAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEvC,UAAU;IACV,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,gFAAgF,EAAE,CAAC,CAAC,EAAE,EAAE;IAClG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,UAAU;QAC9B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;SACvF;QACD,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC7D,CAAC;IAEF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAwC,CAAC;IAEpG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,SAAS,CACT,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAC5F,CAAC,MAAM,EAAE,OAAO,CAAC,CAClB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,oDAAoD,EAAE,CAAC,CAAC,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;IACrE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,8CAA8C,EAAE,CAAC,CAAC,EAAE,EAAE;IAChE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,QAAQ;QACf,kBAAkB,EAAE,UAAU;QAC9B,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7C,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAEjC,UAAU;IACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACzF,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7F,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IAC3D,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,SAAS,CACZ;QACE,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,UAAU;QAC9B,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;SACvF;QACD,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC7D,EACD,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;IAEF,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAC7C,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,qDAAqD,EAAE,CAAC,CAAC,EAAE,EAAE;IACvE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE;YACP,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,gBAAgB,EAAE,KAAK;SACxB;QACD,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE;QAC3B,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,IAAI;QAChB,QAAQ,EAAE,IAAI;QACd,gBAAgB,EAAE,KAAK;KACxB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,mFAAmF,EAAE,CAAC,CAAC,EAAE,EAAE;IACrG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAEzE,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,gGAAgG,EAAE,CAAC,CAAC,EAAE,EAAE;IAClH,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,EAAE,iBAAiB,CAAC,CAAC;IAEnF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACpC,OAAO;IACT,CAAC;IACD,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,wEAAwE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC1F,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAE7F,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,iFAAiF,EAAE,CAAC,CAAC,EAAE,EAAE;IACnG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;IAE1E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,6DAA6D,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/E,MAAM,MAAM,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;IACxD,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,2DAA2D,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7E,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAE3C,MAAM,KAAK,GAAwC;QACjD,EAAE,EAAE,GAAG;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,MAAM,KAAK,GAAwC;QACjD,EAAE,EAAE,GAAG;QACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC5D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC1C,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;IACtD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,EAAE,CAAC,IAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAEpB,UAAU;IACV,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,+DAA+D,EAAE,CAAC,CAAC,EAAE,EAAE;IACjF,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IAC3D,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAC5B,IAAI,CAAC,SAAS,CACZ;QACE,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE;YACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;YACrD,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;YACtF,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAAE;YAC9F,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE;SACvF;QACD,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAC7D,EACD,IAAI,EACJ,CAAC,CACF,EACD,OAAO,CACR,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAE/E,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,EAAE,CAAC,IAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,kFAAkF,EAAE,CAAC,CAAC,EAAE,EAAE;IACpG,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IACrD,MAAM,aAAa,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAErD,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,aAAa;QACjB,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,wBAAwB,EAAE,CAAC;IAC3B,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,aAAa;QACjB,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACjE,CAAC,CAAC;IACH,wBAAwB,EAAE,CAAC;IAC3B,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,aAAa;QACjB,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,iBAAiB;QAC9B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;KAChE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAExE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,EAAE,CAAC,IAAK,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,uFAAuF,EAAE,CAAC,CAAC,EAAE,EAAE;IACzG,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,iBAAiB,CAAC,UAAU,EAAE;QAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAEvE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,mDAAmD,EAAE,CAAC,CAAC,EAAE,EAAE;IACrE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAExD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACf,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAEnD,UAAU;IACV,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,uDAAuD,EAAE,CAAC,CAAC,EAAE,EAAE;IACzE,MAAM,MAAM,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,oEAAoE,EAAE,CAAC,CAAC,EAAE,EAAE;IACtF,iCAAiC;IACjC,MAAM,GAAG,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IAC3D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,IAAI,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IACnD,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,mFAAmF,EAAE,CAAC,CAAC,EAAE,EAAE;IACrG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,+EAA+E;IAC/E,MAAM,GAAG,GAAG,iBAAiB,CAAC,0BAA0B,EAAE,CAAC;IAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,OAAO,GAAG;QACd,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;YACf,wDAAwD;SACzD;QACD,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAE1F,+DAA+D;IAC/D,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,0DAA0D;IAC1D,MAAM,gBAAgB,GAAG,MAAM,EAAE,OAAO,EAAE,gBAAgB,CAAC;IAC3D,CAAC,CAAC,KAAK,CAAC,gBAAgB,EAAE,6DAA6D,CAAC,CAAC;AAC3F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,0EAA0E,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5F,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE;YACP,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,KAAK;YACf,gBAAgB,EAAE,IAAI;SACvB;QACD,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,yEAAyE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3F,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC3C,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAE3C,MAAM,KAAK,GAAwC;QACjD,EAAE,EAAE,GAAG;QACP,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,MAAM,KAAK,GAAwC;QACjD,EAAE,EAAE,GAAG;QACP,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,mBAAmB;IACnB,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,qCAAqC;IACrC,wBAAwB,EAAE,CAAC;IAE3B,kDAAkD;IAClD,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,IAAI,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;IACnD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,4BAA4B;IACnD,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,yFAAyF,EAAE,CAAC,CAAC,EAAE,EAAE;IAC3G,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAC;IAEvF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,mFAAmF,EAAE,CAAC,CAAC,EAAE,EAAE;IACrG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAE1F,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CACT,8GAA8G,EAC9G,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,oBAAoB;QACjC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,oEAAoE;IACpE,uDAAuD;IACvD,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC;IAEvF,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CACF,CAAC;AAEF,IAAI,CAAC,MAAM,CACT,mHAAmH,EACnH,CAAC,CAAC,EAAE,EAAE;IACJ,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,kCAAkC;QAClC,WAAW,EAAE,oBAAoB;QACjC,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,4EAA4E;IAC5E,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAElG,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrB,CAAC,CACF,CAAC;AAEF,IAAI,CAAC,MAAM,CAAC,2EAA2E,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7F,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAE7G,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,6FAA6F,EAAE,CAAC,CAAC,EAAE,EAAE;IAC/G,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;IAEzG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxC,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,oFAAoF,EAAE,CAAC,CAAC,EAAE,EAAE;IACtG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAE1G,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,mEAAmE,EAAE,CAAC,CAAC,EAAE,EAAE;IACrF,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAE1G,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,+EAA+E,EAAE,CAAC,CAAC,EAAE,EAAE;IACjG,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAClD,MAAM,UAAU,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAClD,MAAM,cAAc,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAEtD,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;KAC9D,CAAC,CAAC;IACH,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,mBAAmB;QAC5B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;KAC/D,CAAC,CAAC;IACH,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,cAAc;QAClB,SAAS,EAAE,0BAA0B;QACrC,SAAS,EAAE,0BAA0B;QACrC,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;KACnE,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAE9F,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC,EAAE,CAAC,IAAK,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,sFAAsF,EAAE,CAAC,CAAC,EAAE,EAAE;IACxG,iBAAiB,CAAC,gBAAgB,CAAC;QACjC,EAAE,EAAE,iBAAiB,CAAC,UAAU,EAAE;QAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,oBAAoB;QAC7B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;IAEjG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACnB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,MAAM,CAAC,gFAAgF,EAAE,CAAC,CAAC,EAAE,EAAE;IAClG,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAwC;QACxD,EAAE;QACF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EAAE,kBAAkB;QAC/B,kBAAkB,EAAE,IAAI;QACxB,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3D,CAAC;IAEF,iBAAiB,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjD,0CAA0C;IAC1C,MAAM,MAAM,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;IAEtD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACrB,CAAC,CAAC,EAAE,CAAC,MAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC"}
@@ -1,4 +1,10 @@
1
1
  export declare const MAX_HALLUCINATION_RETRIES = 2;
2
+ export declare const MAX_TRANSIENT_RETRIES = 3;
3
+ /**
4
+ * Returns true when the error is a transient upstream failure (429 / 5xx /
5
+ * connection timeout) that is worth retrying automatically.
6
+ */
7
+ export declare const isTransientRetryableError: (error: unknown) => boolean;
2
8
  export declare const isRecoverableModelError: (error: unknown) => boolean;
3
9
  export type RetryType = 'hallucination' | 'parsing_error' | 'behavior';
4
10
  export interface RetryEventPayload {
@@ -7,6 +13,7 @@ export interface RetryEventPayload {
7
13
  attempt: number;
8
14
  maxRetries: number;
9
15
  errorMessage: string;
16
+ retryType?: RetryType;
10
17
  }
11
18
  export interface RetryLogPayload {
12
19
  toolName: string;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-retry-policy.d.ts","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAYxD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,8GAA8G;IAC9G,SAAS,EAAE,OAAO,CAAC;IACnB,+FAA+F;IAC/F,wBAAwB,EAAE,OAAO,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE;QAAE,uBAAuB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/E,CAAC;AAEN,eAAO,MAAM,WAAW,GACtB,OAAO,OAAO,EACd,cAAc,MAAM,EACpB,WAAW,OAAO,EAClB,qBAAqB,MAAM,KAC1B,aAuCF,CAAC"}
1
+ {"version":3,"file":"conversation-retry-policy.d.ts","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC;;;GAGG;AACH,eAAO,MAAM,yBAAyB,GAAI,OAAO,OAAO,KAAG,OA+B1D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAYxD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG,eAAe,GAAG,UAAU,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IACE,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,8GAA8G;IAC9G,SAAS,EAAE,OAAO,CAAC;IACnB,+FAA+F;IAC/F,wBAAwB,EAAE,OAAO,CAAC;IAClC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE;QAAE,uBAAuB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,CAAA;KAAE,CAAC;CAC/E,CAAC;AAEN,eAAO,MAAM,WAAW,GACtB,OAAO,OAAO,EACd,cAAc,MAAM,EACpB,WAAW,OAAO,EAClB,qBAAqB,MAAM,KAC1B,aAwCF,CAAC"}
@@ -1,5 +1,38 @@
1
1
  import { ModelBehaviorError } from '@openai/agents';
2
+ import { APIConnectionError, APIConnectionTimeoutError, InternalServerError, RateLimitError } from 'openai';
3
+ import { OpenRouterError, OpenAICompatibleError } from '../providers/common/provider-errors.js';
2
4
  export const MAX_HALLUCINATION_RETRIES = 2;
5
+ export const MAX_TRANSIENT_RETRIES = 3;
6
+ /**
7
+ * Returns true when the error is a transient upstream failure (429 / 5xx /
8
+ * connection timeout) that is worth retrying automatically.
9
+ */
10
+ export const isTransientRetryableError = (error) => {
11
+ if (error instanceof APIConnectionError ||
12
+ error instanceof APIConnectionTimeoutError ||
13
+ error instanceof InternalServerError ||
14
+ error instanceof RateLimitError) {
15
+ return true;
16
+ }
17
+ if (error instanceof OpenRouterError && (error.status === 429 || error.status >= 500)) {
18
+ return true;
19
+ }
20
+ if (error instanceof OpenAICompatibleError && (error.status === 429 || error.status >= 500)) {
21
+ return true;
22
+ }
23
+ if (error && typeof error === 'object') {
24
+ const statusRaw = error.status ?? error.statusCode;
25
+ const status = typeof statusRaw === 'number' ? statusRaw : parseInt(statusRaw, 10);
26
+ if (Number.isInteger(status) && (status === 429 || status >= 500)) {
27
+ return true;
28
+ }
29
+ const message = String(error.message || '').toLowerCase();
30
+ if (message.includes('rate limit') || message.includes('too many requests') || message.includes('rate_limit')) {
31
+ return true;
32
+ }
33
+ }
34
+ return false;
35
+ };
3
36
  export const isRecoverableModelError = (error) => {
4
37
  if (!(error instanceof ModelBehaviorError)) {
5
38
  return false;
@@ -30,6 +63,7 @@ export const decideRetry = (error, attemptCount, hadStream, streamHistoryLength)
30
63
  attempt,
31
64
  maxRetries: MAX_HALLUCINATION_RETRIES,
32
65
  errorMessage: message,
66
+ retryType,
33
67
  },
34
68
  logPayload: {
35
69
  toolName,
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-retry-policy.js","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE;IACjE,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,CACL,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC3D,OAAO,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC1D,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC/B,CAAC;AACJ,CAAC,CAAC;AAoCF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAc,EACd,YAAoB,EACpB,SAAkB,EAClB,mBAA2B,EACZ,EAAE;IACjB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,YAAY,IAAI,yBAAyB,EAAE,CAAC;QACjF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACvG,MAAM,SAAS,GAAc,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/G,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC;IAEjC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,OAAO;QACP,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YAC9C,OAAO;YACP,UAAU,EAAE,yBAAyB;YACrC,YAAY,EAAE,OAAO;SACtB;QACD,UAAU,EAAE;YACV,QAAQ;YACR,SAAS;YACT,OAAO;YACP,UAAU,EAAE,yBAAyB;YACrC,YAAY,EAAE,OAAO;SACtB;QACD,OAAO;QACP,SAAS;QACT,wBAAwB,EAAE,SAAS,IAAI,mBAAmB,KAAK,CAAC;QAChE,mBAAmB,EAAE,gDAAgD,OAAO,wCAAwC;QACpH,cAAc,EAAE;YACd,uBAAuB,EAAE,OAAO;YAChC,eAAe,EAAE,SAAS;SAC3B;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"conversation-retry-policy.js","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import test from 'ava';
2
2
  import { ModelBehaviorError } from '@openai/agents';
3
- import { decideRetry, isRecoverableModelError, MAX_HALLUCINATION_RETRIES } from './conversation-retry-policy.js';
3
+ import { APIConnectionError, APIConnectionTimeoutError, InternalServerError, RateLimitError } from 'openai';
4
+ import { OpenRouterError, OpenAICompatibleError } from '../providers/common/provider-errors.js';
5
+ import { decideRetry, isRecoverableModelError, isTransientRetryableError, MAX_HALLUCINATION_RETRIES, } from './conversation-retry-policy.js';
4
6
  test('isRecoverableModelError: non-ModelBehaviorError returns false', (t) => {
5
7
  t.false(isRecoverableModelError(new Error('boom')));
6
8
  t.false(isRecoverableModelError('boom'));
@@ -67,7 +69,7 @@ test('decideRetry: with stream and empty history sets shouldInjectErrorContext',
67
69
  t.true(decision.shouldInjectErrorContext);
68
70
  t.true(decision.errorContextMessage.includes('Previous attempt failed'));
69
71
  });
70
- test('decideRetry: without stream returns retry with skipUserMessage=false', (t) => {
72
+ test('decideRetry: without stream returns retry with skipUserMessage=false', async (t) => {
71
73
  const decision = decideRetry(new ModelBehaviorError('Tool x not found'), 0, false, 0);
72
74
  t.is(decision.kind, 'retry');
73
75
  if (decision.kind !== 'retry')
@@ -76,4 +78,44 @@ test('decideRetry: without stream returns retry with skipUserMessage=false', (t)
76
78
  t.false(decision.shouldInjectErrorContext);
77
79
  t.deepEqual(decision.nextRunOptions, { hallucinationRetryCount: 1, skipUserMessage: false });
78
80
  });
81
+ function asInstanceOf(prototype, props) {
82
+ return Object.assign(Object.create(prototype), props);
83
+ }
84
+ test('isTransientRetryableError: OpenAI SDK errors are retryable', (t) => {
85
+ t.true(isTransientRetryableError(asInstanceOf(APIConnectionError.prototype, { message: 'conn error' })));
86
+ t.true(isTransientRetryableError(asInstanceOf(APIConnectionTimeoutError.prototype, { message: 'timeout' })));
87
+ t.true(isTransientRetryableError(asInstanceOf(InternalServerError.prototype, { message: 'ise', status: 500 })));
88
+ t.true(isTransientRetryableError(asInstanceOf(RateLimitError.prototype, { message: 'rate limit', status: 429 })));
89
+ });
90
+ test('isTransientRetryableError: OpenRouter 429/5xx are retryable', (t) => {
91
+ t.true(isTransientRetryableError(new OpenRouterError('rate limited', 429, {})));
92
+ t.true(isTransientRetryableError(new OpenRouterError('server error', 500, {})));
93
+ t.true(isTransientRetryableError(new OpenRouterError('bad gateway', 502, {})));
94
+ t.false(isTransientRetryableError(new OpenRouterError('not found', 404, {})));
95
+ });
96
+ test('isTransientRetryableError: OpenAI-compatible 429/5xx are retryable', (t) => {
97
+ t.true(isTransientRetryableError(new OpenAICompatibleError('rate limited', 429, {})));
98
+ t.true(isTransientRetryableError(new OpenAICompatibleError('server error', 503, {})));
99
+ t.false(isTransientRetryableError(new OpenAICompatibleError('bad request', 400, {})));
100
+ });
101
+ test('isTransientRetryableError: generic errors with 429/5xx status are retryable', (t) => {
102
+ const err429 = new Error('too many requests');
103
+ err429.status = 429;
104
+ t.true(isTransientRetryableError(err429));
105
+ const err503 = new Error('service unavailable');
106
+ err503.statusCode = 503;
107
+ t.true(isTransientRetryableError(err503));
108
+ });
109
+ test('isTransientRetryableError: generic errors with rate-limit message are retryable', (t) => {
110
+ t.true(isTransientRetryableError(new Error("We're currently processing too many requests — please try again later.")));
111
+ t.true(isTransientRetryableError(new Error('Rate limit exceeded')));
112
+ t.true(isTransientRetryableError(new Error('rate_limit retry after 10s')));
113
+ });
114
+ test('isTransientRetryableError: non-retryable errors return false', (t) => {
115
+ t.false(isTransientRetryableError(new Error('something else')));
116
+ t.false(isTransientRetryableError(new ModelBehaviorError('Tool x not found')));
117
+ t.false(isTransientRetryableError(null));
118
+ t.false(isTransientRetryableError('string error'));
119
+ t.false(isTransientRetryableError(42));
120
+ });
79
121
  //# sourceMappingURL=conversation-retry-policy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-retry-policy.test.js","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-retry-policy.test.js","sourceRoot":"","sources":["../../source/services/conversation-retry-policy.test.ts"],"names":[],"mappings":"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"}