@qduc/term2 0.7.1 → 0.7.3

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 (956) hide show
  1. package/dist/agent.d.ts +1 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +17 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +36 -0
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +3 -3
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +193 -86
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.large-uncached-warning.test.js.map +1 -1
  12. package/dist/cli.integration.test.js +101 -5
  13. package/dist/cli.integration.test.js.map +1 -1
  14. package/dist/cli.js +61 -12
  15. package/dist/cli.js.map +1 -1
  16. package/dist/components/ApprovalPrompt.ask-user.test.d.ts +2 -0
  17. package/dist/components/ApprovalPrompt.ask-user.test.d.ts.map +1 -0
  18. package/dist/components/ApprovalPrompt.ask-user.test.js +108 -0
  19. package/dist/components/ApprovalPrompt.ask-user.test.js.map +1 -0
  20. package/dist/components/ApprovalPrompt.d.ts +4 -4
  21. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  22. package/dist/components/ApprovalPrompt.js +76 -13
  23. package/dist/components/ApprovalPrompt.js.map +1 -1
  24. package/dist/components/BottomArea.d.ts +11 -2
  25. package/dist/components/BottomArea.d.ts.map +1 -1
  26. package/dist/components/BottomArea.js +20 -6
  27. package/dist/components/BottomArea.js.map +1 -1
  28. package/dist/components/BottomArea.test.js +37 -4
  29. package/dist/components/BottomArea.test.js.map +1 -1
  30. package/dist/components/Common/MenuContainer.d.ts +3 -4
  31. package/dist/components/Common/MenuContainer.d.ts.map +1 -1
  32. package/dist/components/Common/MenuContainer.js +14 -14
  33. package/dist/components/Common/MenuContainer.js.map +1 -1
  34. package/dist/components/Common/MenuContainer.test.d.ts +2 -0
  35. package/dist/components/Common/MenuContainer.test.d.ts.map +1 -0
  36. package/dist/components/Common/MenuContainer.test.js +66 -0
  37. package/dist/components/Common/MenuContainer.test.js.map +1 -0
  38. package/dist/components/Input/PopupManager.d.ts +14 -0
  39. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  40. package/dist/components/Input/PopupManager.js +6 -4
  41. package/dist/components/Input/PopupManager.js.map +1 -1
  42. package/dist/components/Input/input-width.d.ts +2 -1
  43. package/dist/components/Input/input-width.d.ts.map +1 -1
  44. package/dist/components/Input/input-width.js +6 -2
  45. package/dist/components/Input/input-width.js.map +1 -1
  46. package/dist/components/Input/popup-props.d.ts +3 -1
  47. package/dist/components/Input/popup-props.d.ts.map +1 -1
  48. package/dist/components/Input/popup-props.js +12 -1
  49. package/dist/components/Input/popup-props.js.map +1 -1
  50. package/dist/components/Input/popup-props.test.js +9 -0
  51. package/dist/components/Input/popup-props.test.js.map +1 -1
  52. package/dist/components/InputBox.d.ts +8 -0
  53. package/dist/components/InputBox.d.ts.map +1 -1
  54. package/dist/components/InputBox.js +97 -33
  55. package/dist/components/InputBox.js.map +1 -1
  56. package/dist/components/InputBox.test.js +174 -7
  57. package/dist/components/InputBox.test.js.map +1 -1
  58. package/dist/components/LargeUncachedConfirmationPrompt.d.ts +10 -0
  59. package/dist/components/LargeUncachedConfirmationPrompt.d.ts.map +1 -0
  60. package/dist/components/LargeUncachedConfirmationPrompt.js +49 -0
  61. package/dist/components/LargeUncachedConfirmationPrompt.js.map +1 -0
  62. package/dist/components/LargeUncachedConfirmationPrompt.test.d.ts +2 -0
  63. package/dist/components/LargeUncachedConfirmationPrompt.test.d.ts.map +1 -0
  64. package/dist/components/LargeUncachedConfirmationPrompt.test.js +48 -0
  65. package/dist/components/LargeUncachedConfirmationPrompt.test.js.map +1 -0
  66. package/dist/components/MessageList.d.ts +10 -0
  67. package/dist/components/MessageList.d.ts.map +1 -1
  68. package/dist/components/MessageList.js +34 -3
  69. package/dist/components/MessageList.js.map +1 -1
  70. package/dist/components/MessageList.test.js +54 -1
  71. package/dist/components/MessageList.test.js.map +1 -1
  72. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  73. package/dist/components/ModelSelectionMenu.debug.test.d.ts +2 -0
  74. package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +1 -0
  75. package/dist/components/ModelSelectionMenu.debug.test.js.map +1 -0
  76. package/dist/components/ModelSelectionMenu.js +1 -4
  77. package/dist/components/ModelSelectionMenu.js.map +1 -1
  78. package/dist/components/PathSelectionMenu.d.ts +1 -0
  79. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  80. package/dist/components/PathSelectionMenu.js +11 -15
  81. package/dist/components/PathSelectionMenu.js.map +1 -1
  82. package/dist/components/PathSelectionMenu.test.d.ts +2 -0
  83. package/dist/components/PathSelectionMenu.test.d.ts.map +1 -0
  84. package/dist/components/PathSelectionMenu.test.js +17 -0
  85. package/dist/components/PathSelectionMenu.test.js.map +1 -0
  86. package/dist/components/ProviderSelectionMenu.d.ts +15 -0
  87. package/dist/components/ProviderSelectionMenu.d.ts.map +1 -0
  88. package/dist/components/ProviderSelectionMenu.js +172 -0
  89. package/dist/components/ProviderSelectionMenu.js.map +1 -0
  90. package/dist/components/ProviderSelectionMenu.test.d.ts +2 -0
  91. package/dist/components/ProviderSelectionMenu.test.d.ts.map +1 -0
  92. package/dist/components/ProviderSelectionMenu.test.js +97 -0
  93. package/dist/components/ProviderSelectionMenu.test.js.map +1 -0
  94. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  95. package/dist/components/SettingsSelectionMenu.js +1 -12
  96. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  97. package/dist/components/SettingsValueSelectionMenu.d.ts +2 -1
  98. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  99. package/dist/components/SettingsValueSelectionMenu.js +12 -13
  100. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  101. package/dist/components/StatusBar.d.ts +1 -0
  102. package/dist/components/StatusBar.d.ts.map +1 -1
  103. package/dist/components/StatusBar.js +21 -15
  104. package/dist/components/StatusBar.js.map +1 -1
  105. package/dist/components/StatusBar.test.js +23 -4
  106. package/dist/components/StatusBar.test.js.map +1 -1
  107. package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
  108. package/dist/components/UndoSelectionMenu.js +1 -1
  109. package/dist/components/UndoSelectionMenu.js.map +1 -1
  110. package/dist/context/InputContext.d.ts +6 -1
  111. package/dist/context/InputContext.d.ts.map +1 -1
  112. package/dist/context/InputContext.images.test.d.ts +2 -0
  113. package/dist/context/InputContext.images.test.d.ts.map +1 -0
  114. package/dist/context/InputContext.images.test.js +56 -0
  115. package/dist/context/InputContext.images.test.js.map +1 -0
  116. package/dist/context/InputContext.js +3 -2
  117. package/dist/context/InputContext.js.map +1 -1
  118. package/dist/hooks/use-app-commands.d.ts +2 -1
  119. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  120. package/dist/hooks/use-app-commands.js +11 -2
  121. package/dist/hooks/use-app-commands.js.map +1 -1
  122. package/dist/hooks/use-app-commands.test.js +2 -0
  123. package/dist/hooks/use-app-commands.test.js.map +1 -1
  124. package/dist/hooks/use-conversation.clear.test.js +31 -0
  125. package/dist/hooks/use-conversation.clear.test.js.map +1 -1
  126. package/dist/hooks/use-conversation.d.ts +12 -2
  127. package/dist/hooks/use-conversation.d.ts.map +1 -1
  128. package/dist/hooks/use-conversation.js +36 -5
  129. package/dist/hooks/use-conversation.js.map +1 -1
  130. package/dist/hooks/use-conversation.resume.test.js +26 -3
  131. package/dist/hooks/use-conversation.resume.test.js.map +1 -1
  132. package/dist/hooks/use-escape-key.d.ts +12 -3
  133. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  134. package/dist/hooks/use-escape-key.js +25 -11
  135. package/dist/hooks/use-escape-key.js.map +1 -1
  136. package/dist/hooks/use-escape-key.test.js +154 -14
  137. package/dist/hooks/use-escape-key.test.js.map +1 -1
  138. package/dist/hooks/use-mode-handlers.d.ts +13 -1
  139. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  140. package/dist/hooks/use-mode-handlers.js +22 -1
  141. package/dist/hooks/use-mode-handlers.js.map +1 -1
  142. package/dist/hooks/use-mode-handlers.test.d.ts +2 -0
  143. package/dist/hooks/use-mode-handlers.test.d.ts.map +1 -0
  144. package/dist/hooks/use-mode-handlers.test.js +119 -0
  145. package/dist/hooks/use-mode-handlers.test.js.map +1 -0
  146. package/dist/hooks/use-path-completion.d.ts +10 -3
  147. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  148. package/dist/hooks/use-path-completion.js +53 -9
  149. package/dist/hooks/use-path-completion.js.map +1 -1
  150. package/dist/hooks/use-path-completion.test.d.ts +2 -0
  151. package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
  152. package/dist/hooks/use-path-completion.test.js +66 -0
  153. package/dist/hooks/use-path-completion.test.js.map +1 -0
  154. package/dist/hooks/use-provider-selection.d.ts +60 -0
  155. package/dist/hooks/use-provider-selection.d.ts.map +1 -0
  156. package/dist/hooks/use-provider-selection.js +767 -0
  157. package/dist/hooks/use-provider-selection.js.map +1 -0
  158. package/dist/hooks/use-provider-selection.test.d.ts +2 -0
  159. package/dist/hooks/use-provider-selection.test.d.ts.map +1 -0
  160. package/dist/hooks/use-provider-selection.test.js +793 -0
  161. package/dist/hooks/use-provider-selection.test.js.map +1 -0
  162. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  163. package/dist/hooks/use-runtime-settings.js +2 -2
  164. package/dist/hooks/use-runtime-settings.js.map +1 -1
  165. package/dist/hooks/use-selection.d.ts +3 -1
  166. package/dist/hooks/use-selection.d.ts.map +1 -1
  167. package/dist/hooks/use-selection.js +115 -24
  168. package/dist/hooks/use-selection.js.map +1 -1
  169. package/dist/hooks/use-selection.test.js +96 -2
  170. package/dist/hooks/use-selection.test.js.map +1 -1
  171. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  172. package/dist/hooks/use-settings-completion.js +8 -1
  173. package/dist/hooks/use-settings-completion.js.map +1 -1
  174. package/dist/hooks/use-settings-completion.test.js +4 -0
  175. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  176. package/dist/hooks/use-settings-value-completion.d.ts +3 -0
  177. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  178. package/dist/hooks/use-settings-value-completion.js +140 -18
  179. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  180. package/dist/hooks/use-settings-value-completion.test.js +71 -1
  181. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  182. package/dist/hooks/use-terminal-width.d.ts +2 -1
  183. package/dist/hooks/use-terminal-width.d.ts.map +1 -1
  184. package/dist/hooks/use-terminal-width.js +2 -1
  185. package/dist/hooks/use-terminal-width.js.map +1 -1
  186. package/dist/hooks/use-trigger-detection.d.ts +4 -2
  187. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  188. package/dist/hooks/use-trigger-detection.js +42 -8
  189. package/dist/hooks/use-trigger-detection.js.map +1 -1
  190. package/dist/hooks/use-trigger-detection.test.js +2 -1
  191. package/dist/hooks/use-trigger-detection.test.js.map +1 -1
  192. package/dist/inspect_zod.d.ts +2 -0
  193. package/dist/inspect_zod.d.ts.map +1 -0
  194. package/dist/inspect_zod.js +16 -0
  195. package/dist/inspect_zod.js.map +1 -0
  196. package/dist/lib/openai-agent-client.chat.test.js +8 -0
  197. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  198. package/dist/lib/openai-agent-client.d.ts +11 -6
  199. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  200. package/dist/lib/openai-agent-client.js +241 -37
  201. package/dist/lib/openai-agent-client.js.map +1 -1
  202. package/dist/lib/openai-agent-client.public-methods.test.js +326 -23
  203. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  204. package/dist/lib/openai-agent-client.test.js +62 -0
  205. package/dist/lib/openai-agent-client.test.js.map +1 -1
  206. package/dist/lib/tool-execution-limiter.d.ts +16 -0
  207. package/dist/lib/tool-execution-limiter.d.ts.map +1 -0
  208. package/dist/lib/tool-execution-limiter.js +112 -0
  209. package/dist/lib/tool-execution-limiter.js.map +1 -0
  210. package/dist/lib/tool-execution-limiter.test.d.ts +2 -0
  211. package/dist/lib/tool-execution-limiter.test.d.ts.map +1 -0
  212. package/dist/lib/tool-execution-limiter.test.js +70 -0
  213. package/dist/lib/tool-execution-limiter.test.js.map +1 -0
  214. package/dist/lib/tool-invoke.d.ts +27 -0
  215. package/dist/lib/tool-invoke.d.ts.map +1 -1
  216. package/dist/lib/tool-invoke.js +124 -95
  217. package/dist/lib/tool-invoke.js.map +1 -1
  218. package/dist/lib/tool-invoke.test.js +92 -30
  219. package/dist/lib/tool-invoke.test.js.map +1 -1
  220. package/dist/non-interactive.d.ts +2 -1
  221. package/dist/non-interactive.d.ts.map +1 -1
  222. package/dist/non-interactive.js +10 -2
  223. package/dist/non-interactive.js.map +1 -1
  224. package/dist/prompts/gpt-5-modern.md +105 -91
  225. package/dist/prompts/gpt-5.5.md +106 -0
  226. package/dist/prompts/gpt-5.md +7 -4
  227. package/dist/prompts/orchestrator.md +27 -44
  228. package/dist/prompts/plan-mode-info.md +2 -0
  229. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  230. package/dist/prompts/prompt-constructor.js +8 -0
  231. package/dist/prompts/prompt-constructor.js.map +1 -1
  232. package/dist/prompts/prompt-constructor.test.js +13 -0
  233. package/dist/prompts/prompt-constructor.test.js.map +1 -1
  234. package/dist/prompts/prompt-constructor.test.ts +16 -0
  235. package/dist/prompts/prompt-constructor.ts +10 -0
  236. package/dist/prompts/prompt-profiles.js +1 -1
  237. package/dist/prompts/prompt-profiles.js.map +1 -1
  238. package/dist/prompts/prompt-profiles.ts +1 -1
  239. package/dist/prompts/prompt-selector.test.js +1 -1
  240. package/dist/prompts/prompt-selector.test.js.map +1 -1
  241. package/dist/prompts/prompt-selector.test.ts +1 -1
  242. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  243. package/dist/prompts/subagent-delegation.js +17 -1
  244. package/dist/prompts/subagent-delegation.js.map +1 -1
  245. package/dist/prompts/subagent-delegation.test.js +21 -0
  246. package/dist/prompts/subagent-delegation.test.js.map +1 -1
  247. package/dist/prompts/subagent-delegation.test.ts +26 -0
  248. package/dist/prompts/subagent-delegation.ts +17 -1
  249. package/dist/prompts/subagents/base-anthropic.md +3 -0
  250. package/dist/prompts/subagents/base-codex.md +3 -0
  251. package/dist/prompts/subagents/base-gpt-5-modern.md +3 -0
  252. package/dist/prompts/subagents/base-simple.md +3 -0
  253. package/dist/prompts/subagents/explorer.md +8 -10
  254. package/dist/prompts/subagents/researcher.md +2 -1
  255. package/dist/prompts/subagents/worker.md +12 -3
  256. package/dist/prompts/subagents/worktree-hygiene.md +6 -0
  257. package/dist/providers/ai-sdk-anthropic.provider.d.ts +4 -1
  258. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  259. package/dist/providers/ai-sdk-anthropic.provider.js +65 -22
  260. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  261. package/dist/providers/ai-sdk-anthropic.provider.test.js +24 -1
  262. package/dist/providers/ai-sdk-anthropic.provider.test.js.map +1 -1
  263. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +0 -2
  264. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  265. package/dist/providers/ai-sdk-openai-compatible.provider.js +4 -8
  266. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  267. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +1 -119
  268. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  269. package/dist/providers/anthropic-middleware.d.ts +25 -0
  270. package/dist/providers/anthropic-middleware.d.ts.map +1 -0
  271. package/dist/providers/anthropic-middleware.js +32 -0
  272. package/dist/providers/anthropic-middleware.js.map +1 -0
  273. package/dist/providers/anthropic-middleware.test.d.ts +2 -0
  274. package/dist/providers/anthropic-middleware.test.d.ts.map +1 -0
  275. package/dist/providers/anthropic-middleware.test.js +142 -0
  276. package/dist/providers/anthropic-middleware.test.js.map +1 -0
  277. package/dist/providers/codex-responses-model.d.ts +1 -0
  278. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  279. package/dist/providers/codex-responses-model.js +97 -34
  280. package/dist/providers/codex-responses-model.js.map +1 -1
  281. package/dist/providers/codex-responses-model.test.js +158 -0
  282. package/dist/providers/codex-responses-model.test.js.map +1 -1
  283. package/dist/providers/codex.provider.d.ts.map +1 -1
  284. package/dist/providers/codex.provider.js +16 -9
  285. package/dist/providers/codex.provider.js.map +1 -1
  286. package/dist/providers/codex.provider.test.js +2 -1
  287. package/dist/providers/codex.provider.test.js.map +1 -1
  288. package/dist/providers/custom-provider-adapter.test.js +6 -2
  289. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  290. package/dist/providers/fallback-responses-model.d.ts +3 -1
  291. package/dist/providers/fallback-responses-model.d.ts.map +1 -1
  292. package/dist/providers/fallback-responses-model.js +31 -4
  293. package/dist/providers/fallback-responses-model.js.map +1 -1
  294. package/dist/providers/fallback-responses-model.test.js +65 -8
  295. package/dist/providers/fallback-responses-model.test.js.map +1 -1
  296. package/dist/providers/fetch/composer.d.ts +1 -0
  297. package/dist/providers/fetch/composer.d.ts.map +1 -1
  298. package/dist/providers/fetch/composer.js +1 -0
  299. package/dist/providers/fetch/composer.js.map +1 -1
  300. package/dist/providers/fetch/composer.test.js +58 -17
  301. package/dist/providers/fetch/composer.test.js.map +1 -1
  302. package/dist/providers/fetch/logging-middleware.d.ts +3 -2
  303. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
  304. package/dist/providers/fetch/logging-middleware.js +5 -2
  305. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  306. package/dist/providers/openai-compatible-behavior-gate.test.js +1 -42
  307. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  308. package/dist/providers/openai-compatible-lazy.d.ts +4 -0
  309. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -0
  310. package/dist/providers/openai-compatible-lazy.js +55 -0
  311. package/dist/providers/openai-compatible-lazy.js.map +1 -0
  312. package/dist/providers/openai-compatible-middleware.d.ts +5 -2
  313. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -1
  314. package/dist/providers/openai-compatible-middleware.js +8 -11
  315. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  316. package/dist/providers/openai-compatible.provider.d.ts +5 -1
  317. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  318. package/dist/providers/openai-compatible.provider.js +59 -37
  319. package/dist/providers/openai-compatible.provider.js.map +1 -1
  320. package/dist/providers/openai-compatible.provider.test.js +97 -2
  321. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  322. package/dist/providers/openai.provider.d.ts +8 -1
  323. package/dist/providers/openai.provider.d.ts.map +1 -1
  324. package/dist/providers/openai.provider.js +43 -10
  325. package/dist/providers/openai.provider.js.map +1 -1
  326. package/dist/providers/openai.provider.test.d.ts +2 -0
  327. package/dist/providers/openai.provider.test.d.ts.map +1 -0
  328. package/dist/providers/openai.provider.test.js +59 -0
  329. package/dist/providers/openai.provider.test.js.map +1 -0
  330. package/dist/providers/opencode-routing.d.ts +4 -0
  331. package/dist/providers/opencode-routing.d.ts.map +1 -0
  332. package/dist/providers/opencode-routing.js +14 -0
  333. package/dist/providers/opencode-routing.js.map +1 -0
  334. package/dist/providers/opencode-session.d.ts +19 -0
  335. package/dist/providers/opencode-session.d.ts.map +1 -0
  336. package/dist/providers/opencode-session.js +76 -0
  337. package/dist/providers/opencode-session.js.map +1 -0
  338. package/dist/providers/opencode.provider.d.ts +0 -8
  339. package/dist/providers/opencode.provider.d.ts.map +1 -1
  340. package/dist/providers/opencode.provider.js +0 -32
  341. package/dist/providers/opencode.provider.js.map +1 -1
  342. package/dist/providers/opencode.provider.test.d.ts +2 -0
  343. package/dist/providers/opencode.provider.test.d.ts.map +1 -0
  344. package/dist/providers/opencode.provider.test.js +186 -0
  345. package/dist/providers/opencode.provider.test.js.map +1 -0
  346. package/dist/providers/openrouter.provider.createRunner.test.js +5 -0
  347. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  348. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  349. package/dist/providers/openrouter.provider.js +8 -4
  350. package/dist/providers/openrouter.provider.js.map +1 -1
  351. package/dist/providers/registry.d.ts +3 -0
  352. package/dist/providers/registry.d.ts.map +1 -1
  353. package/dist/providers/registry.js.map +1 -1
  354. package/dist/providers/registry.test.js +1 -0
  355. package/dist/providers/registry.test.js.map +1 -1
  356. package/dist/scripts/eval-auto-approval/runner.js +4 -0
  357. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  358. package/dist/services/conversation-integration.test.js +8 -4
  359. package/dist/services/conversation-integration.test.js.map +1 -1
  360. package/dist/services/conversation-log-events.d.ts +3 -0
  361. package/dist/services/conversation-log-events.d.ts.map +1 -1
  362. package/dist/services/conversation-log-events.js.map +1 -1
  363. package/dist/services/conversation-log-writer.d.ts.map +1 -1
  364. package/dist/services/conversation-log-writer.js +1 -2
  365. package/dist/services/conversation-log-writer.js.map +1 -1
  366. package/dist/services/conversation-persistence.d.ts +1 -1
  367. package/dist/services/conversation-persistence.d.ts.map +1 -1
  368. package/dist/services/conversation-persistence.js +53 -4
  369. package/dist/services/conversation-persistence.js.map +1 -1
  370. package/dist/services/conversation-persistence.test.js +203 -1
  371. package/dist/services/conversation-persistence.test.js.map +1 -1
  372. package/dist/services/conversation-replay.d.ts.map +1 -1
  373. package/dist/services/conversation-replay.js +114 -8
  374. package/dist/services/conversation-replay.js.map +1 -1
  375. package/dist/services/conversation-replay.test.js +368 -0
  376. package/dist/services/conversation-replay.test.js.map +1 -1
  377. package/dist/services/conversation-result-builder.test.js +9 -0
  378. package/dist/services/conversation-result-builder.test.js.map +1 -1
  379. package/dist/services/conversation-service.d.ts +3 -1
  380. package/dist/services/conversation-service.d.ts.map +1 -1
  381. package/dist/services/conversation-service.js +3 -0
  382. package/dist/services/conversation-service.js.map +1 -1
  383. package/dist/services/conversation-session-reasoning.test.js +5 -1
  384. package/dist/services/conversation-session-reasoning.test.js.map +1 -1
  385. package/dist/services/conversation-session.auto-approval.test.js +25 -1
  386. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  387. package/dist/services/conversation-session.d.ts +8 -2
  388. package/dist/services/conversation-session.d.ts.map +1 -1
  389. package/dist/services/conversation-session.js +88 -44
  390. package/dist/services/conversation-session.js.map +1 -1
  391. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -1
  392. package/dist/services/conversation-store.merge-modes.test.js +160 -1
  393. package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
  394. package/dist/services/file-service.d.ts +20 -4
  395. package/dist/services/file-service.d.ts.map +1 -1
  396. package/dist/services/file-service.js +111 -52
  397. package/dist/services/file-service.js.map +1 -1
  398. package/dist/services/file-service.test.d.ts +2 -0
  399. package/dist/services/file-service.test.d.ts.map +1 -0
  400. package/dist/services/file-service.test.js +60 -0
  401. package/dist/services/file-service.test.js.map +1 -0
  402. package/dist/services/large-uncached-input-guard.d.ts.map +1 -1
  403. package/dist/services/large-uncached-input-guard.js +4 -3
  404. package/dist/services/large-uncached-input-guard.js.map +1 -1
  405. package/dist/services/large-uncached-input-guard.test.js +22 -0
  406. package/dist/services/large-uncached-input-guard.test.js.map +1 -1
  407. package/dist/services/logging-service.d.ts +0 -3
  408. package/dist/services/logging-service.d.ts.map +1 -1
  409. package/dist/services/logging-service.js +12 -8
  410. package/dist/services/logging-service.js.map +1 -1
  411. package/dist/services/mode-notices.d.ts +4 -5
  412. package/dist/services/mode-notices.d.ts.map +1 -1
  413. package/dist/services/mode-notices.js +4 -5
  414. package/dist/services/mode-notices.js.map +1 -1
  415. package/dist/services/notification-service.d.ts +42 -0
  416. package/dist/services/notification-service.d.ts.map +1 -0
  417. package/dist/services/notification-service.js +116 -0
  418. package/dist/services/notification-service.js.map +1 -0
  419. package/dist/services/notification-service.test.d.ts +2 -0
  420. package/dist/services/notification-service.test.d.ts.map +1 -0
  421. package/dist/services/notification-service.test.js +151 -0
  422. package/dist/services/notification-service.test.js.map +1 -0
  423. package/dist/services/provider-traffic.d.ts +8 -9
  424. package/dist/services/provider-traffic.d.ts.map +1 -1
  425. package/dist/services/provider-traffic.js +25 -12
  426. package/dist/services/provider-traffic.js.map +1 -1
  427. package/dist/services/provider-traffic.test.js +102 -1
  428. package/dist/services/provider-traffic.test.js.map +1 -1
  429. package/dist/services/service-interfaces.d.ts +12 -16
  430. package/dist/services/service-interfaces.d.ts.map +1 -1
  431. package/dist/services/session-context-service.d.ts +8 -0
  432. package/dist/services/session-context-service.d.ts.map +1 -0
  433. package/dist/services/session-context-service.js +19 -0
  434. package/dist/services/session-context-service.js.map +1 -0
  435. package/dist/services/session-context-service.test.d.ts +2 -0
  436. package/dist/services/session-context-service.test.d.ts.map +1 -0
  437. package/dist/services/session-context-service.test.js +38 -0
  438. package/dist/services/session-context-service.test.js.map +1 -0
  439. package/dist/services/settings-env.d.ts.map +1 -1
  440. package/dist/services/settings-env.js +4 -1
  441. package/dist/services/settings-env.js.map +1 -1
  442. package/dist/services/settings-persistence.d.ts.map +1 -1
  443. package/dist/services/settings-persistence.js +0 -1
  444. package/dist/services/settings-persistence.js.map +1 -1
  445. package/dist/services/settings-persistence.test.js +2 -2
  446. package/dist/services/settings-persistence.test.js.map +1 -1
  447. package/dist/services/settings-schema.d.ts +25 -1
  448. package/dist/services/settings-schema.d.ts.map +1 -1
  449. package/dist/services/settings-schema.js +54 -23
  450. package/dist/services/settings-schema.js.map +1 -1
  451. package/dist/services/settings-schema.test.js +10 -0
  452. package/dist/services/settings-schema.test.js.map +1 -1
  453. package/dist/services/settings-service.d.ts +8 -0
  454. package/dist/services/settings-service.d.ts.map +1 -1
  455. package/dist/services/settings-service.js +60 -23
  456. package/dist/services/settings-service.js.map +1 -1
  457. package/dist/services/settings-sources.d.ts.map +1 -1
  458. package/dist/services/settings-sources.js +1 -0
  459. package/dist/services/settings-sources.js.map +1 -1
  460. package/dist/services/settings-sources.test.js +2 -0
  461. package/dist/services/settings-sources.test.js.map +1 -1
  462. package/dist/services/shell-auto-approval-evaluator.d.ts +3 -2
  463. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  464. package/dist/services/shell-auto-approval-evaluator.js +3 -3
  465. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  466. package/dist/services/shell-auto-approval-evaluator.test.js +20 -0
  467. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  468. package/dist/services/shell-auto-approval-resolver.d.ts +2 -1
  469. package/dist/services/shell-auto-approval-resolver.d.ts.map +1 -1
  470. package/dist/services/shell-auto-approval-resolver.js +2 -0
  471. package/dist/services/shell-auto-approval-resolver.js.map +1 -1
  472. package/dist/services/shell-auto-approval-resolver.test.js +10 -0
  473. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -1
  474. package/dist/services/subagents/subagent-manager.d.ts +2 -1
  475. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  476. package/dist/services/subagents/subagent-manager.js +182 -13
  477. package/dist/services/subagents/subagent-manager.js.map +1 -1
  478. package/dist/services/subagents/subagent-manager.test.js +548 -17
  479. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  480. package/dist/tools/apply-patch.d.ts.map +1 -1
  481. package/dist/tools/apply-patch.js +2 -2
  482. package/dist/tools/apply-patch.js.map +1 -1
  483. package/dist/tools/ask-user-constants.d.ts +7 -0
  484. package/dist/tools/ask-user-constants.d.ts.map +1 -0
  485. package/dist/tools/ask-user-constants.js +7 -0
  486. package/dist/tools/ask-user-constants.js.map +1 -0
  487. package/dist/tools/ask-user.d.ts +11 -0
  488. package/dist/tools/ask-user.d.ts.map +1 -0
  489. package/dist/tools/ask-user.js +56 -0
  490. package/dist/tools/ask-user.js.map +1 -0
  491. package/dist/tools/ask-user.test.d.ts +2 -0
  492. package/dist/tools/ask-user.test.d.ts.map +1 -0
  493. package/dist/tools/ask-user.test.js +129 -0
  494. package/dist/tools/ask-user.test.js.map +1 -0
  495. package/dist/tools/code-context.js +1 -1
  496. package/dist/tools/code-context.js.map +1 -1
  497. package/dist/tools/code-context.test.js +278 -0
  498. package/dist/tools/code-context.test.js.map +1 -1
  499. package/dist/tools/format-helpers.d.ts +13 -0
  500. package/dist/tools/format-helpers.d.ts.map +1 -1
  501. package/dist/tools/format-helpers.js +34 -0
  502. package/dist/tools/format-helpers.js.map +1 -1
  503. package/dist/tools/format-helpers.test.d.ts +2 -0
  504. package/dist/tools/format-helpers.test.d.ts.map +1 -0
  505. package/dist/tools/format-helpers.test.js +51 -0
  506. package/dist/tools/format-helpers.test.js.map +1 -0
  507. package/dist/tools/language-providers.d.ts.map +1 -1
  508. package/dist/tools/language-providers.js +379 -0
  509. package/dist/tools/language-providers.js.map +1 -1
  510. package/dist/tools/languages/cpp.d.ts +8 -0
  511. package/dist/tools/languages/cpp.d.ts.map +1 -0
  512. package/dist/tools/languages/cpp.js +306 -0
  513. package/dist/tools/languages/cpp.js.map +1 -0
  514. package/dist/tools/languages/csharp.d.ts +5 -0
  515. package/dist/tools/languages/csharp.d.ts.map +1 -0
  516. package/dist/tools/languages/csharp.js +225 -0
  517. package/dist/tools/languages/csharp.js.map +1 -0
  518. package/dist/tools/languages/go.d.ts +7 -0
  519. package/dist/tools/languages/go.d.ts.map +1 -0
  520. package/dist/tools/languages/go.js +223 -0
  521. package/dist/tools/languages/go.js.map +1 -0
  522. package/dist/tools/languages/index.d.ts +6 -0
  523. package/dist/tools/languages/index.d.ts.map +1 -0
  524. package/dist/tools/languages/index.js +32 -0
  525. package/dist/tools/languages/index.js.map +1 -0
  526. package/dist/tools/languages/java.d.ts +5 -0
  527. package/dist/tools/languages/java.d.ts.map +1 -0
  528. package/dist/tools/languages/java.js +183 -0
  529. package/dist/tools/languages/java.js.map +1 -0
  530. package/dist/tools/languages/json.d.ts +3 -0
  531. package/dist/tools/languages/json.d.ts.map +1 -0
  532. package/dist/tools/languages/json.js +40 -0
  533. package/dist/tools/languages/json.js.map +1 -0
  534. package/dist/tools/languages/php.d.ts +8 -0
  535. package/dist/tools/languages/php.d.ts.map +1 -0
  536. package/dist/tools/languages/php.js +139 -0
  537. package/dist/tools/languages/php.js.map +1 -0
  538. package/dist/tools/languages/python.d.ts +7 -0
  539. package/dist/tools/languages/python.d.ts.map +1 -0
  540. package/dist/tools/languages/python.js +189 -0
  541. package/dist/tools/languages/python.js.map +1 -0
  542. package/dist/tools/languages/ruby.d.ts +8 -0
  543. package/dist/tools/languages/ruby.d.ts.map +1 -0
  544. package/dist/tools/languages/ruby.js +94 -0
  545. package/dist/tools/languages/ruby.js.map +1 -0
  546. package/dist/tools/languages/rust.d.ts +7 -0
  547. package/dist/tools/languages/rust.d.ts.map +1 -0
  548. package/dist/tools/languages/rust.js +186 -0
  549. package/dist/tools/languages/rust.js.map +1 -0
  550. package/dist/tools/languages/types.d.ts +39 -0
  551. package/dist/tools/languages/types.d.ts.map +1 -0
  552. package/dist/tools/languages/types.js +2 -0
  553. package/dist/tools/languages/types.js.map +1 -0
  554. package/dist/tools/languages/typescript.d.ts +4 -0
  555. package/dist/tools/languages/typescript.d.ts.map +1 -0
  556. package/dist/tools/languages/typescript.js +94 -0
  557. package/dist/tools/languages/typescript.js.map +1 -0
  558. package/dist/tools/languages/utils.d.ts +14 -0
  559. package/dist/tools/languages/utils.d.ts.map +1 -0
  560. package/dist/tools/languages/utils.js +73 -0
  561. package/dist/tools/languages/utils.js.map +1 -0
  562. package/dist/tools/search-replace.d.ts.map +1 -1
  563. package/dist/tools/search-replace.js +2 -2
  564. package/dist/tools/search-replace.js.map +1 -1
  565. package/dist/tools/shell.d.ts.map +1 -1
  566. package/dist/tools/shell.js +13 -1
  567. package/dist/tools/shell.js.map +1 -1
  568. package/dist/tools/tool-names.d.ts +1 -0
  569. package/dist/tools/tool-names.d.ts.map +1 -1
  570. package/dist/tools/tool-names.js +1 -0
  571. package/dist/tools/tool-names.js.map +1 -1
  572. package/dist/tools/web-fetch.d.ts.map +1 -1
  573. package/dist/tools/web-fetch.js +1 -1
  574. package/dist/tools/web-fetch.js.map +1 -1
  575. package/dist/utils/clipboard.d.ts +2 -1
  576. package/dist/utils/clipboard.d.ts.map +1 -1
  577. package/dist/utils/clipboard.js +2 -35
  578. package/dist/utils/clipboard.js.map +1 -1
  579. package/dist/utils/command-safety/_scratch-classify.test.d.ts +2 -0
  580. package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +1 -0
  581. package/dist/utils/command-safety/_scratch-classify.test.js +22 -0
  582. package/dist/utils/command-safety/_scratch-classify.test.js.map +1 -0
  583. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  584. package/dist/utils/command-safety/constants.js +21 -0
  585. package/dist/utils/command-safety/constants.js.map +1 -1
  586. package/dist/utils/command-safety/handlers/git-handler.d.ts.map +1 -1
  587. package/dist/utils/command-safety/handlers/git-handler.js +28 -2
  588. package/dist/utils/command-safety/handlers/git-handler.js.map +1 -1
  589. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  590. package/dist/utils/command-safety/path-analysis.js +6 -0
  591. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  592. package/dist/utils/command-safety/scratch-classify.test.d.ts +2 -0
  593. package/dist/utils/command-safety/scratch-classify.test.d.ts.map +1 -0
  594. package/dist/utils/command-safety/scratch-classify.test.js +22 -0
  595. package/dist/utils/command-safety/scratch-classify.test.js.map +1 -0
  596. package/dist/utils/command-safety/scratch-tally.test.d.ts +2 -0
  597. package/dist/utils/command-safety/scratch-tally.test.d.ts.map +1 -0
  598. package/dist/utils/command-safety/scratch-tally.test.js +68 -0
  599. package/dist/utils/command-safety/scratch-tally.test.js.map +1 -0
  600. package/dist/utils/command-safety.evaluator-false-positives.test.d.ts +2 -0
  601. package/dist/utils/command-safety.evaluator-false-positives.test.d.ts.map +1 -0
  602. package/dist/utils/command-safety.evaluator-false-positives.test.js +72 -0
  603. package/dist/utils/command-safety.evaluator-false-positives.test.js.map +1 -0
  604. package/dist/utils/header-sanitizer.d.ts +2 -0
  605. package/dist/utils/header-sanitizer.d.ts.map +1 -0
  606. package/dist/utils/header-sanitizer.js +38 -0
  607. package/dist/utils/header-sanitizer.js.map +1 -0
  608. package/dist/utils/header-sanitizer.test.d.ts +2 -0
  609. package/dist/utils/header-sanitizer.test.d.ts.map +1 -0
  610. package/dist/utils/header-sanitizer.test.js +56 -0
  611. package/dist/utils/header-sanitizer.test.js.map +1 -0
  612. package/dist/utils/home-directory-start-guard.d.ts +10 -0
  613. package/dist/utils/home-directory-start-guard.d.ts.map +1 -0
  614. package/dist/utils/home-directory-start-guard.js +20 -0
  615. package/dist/utils/home-directory-start-guard.js.map +1 -0
  616. package/dist/utils/home-directory-start-guard.test.d.ts +2 -0
  617. package/dist/utils/home-directory-start-guard.test.d.ts.map +1 -0
  618. package/dist/utils/home-directory-start-guard.test.js +40 -0
  619. package/dist/utils/home-directory-start-guard.test.js.map +1 -0
  620. package/dist/utils/inject-warning-into-tool-output.d.ts +2 -0
  621. package/dist/utils/inject-warning-into-tool-output.d.ts.map +1 -0
  622. package/dist/utils/inject-warning-into-tool-output.js +66 -0
  623. package/dist/utils/inject-warning-into-tool-output.js.map +1 -0
  624. package/dist/utils/project-tree.d.ts +14 -0
  625. package/dist/utils/project-tree.d.ts.map +1 -0
  626. package/dist/utils/project-tree.js +111 -0
  627. package/dist/utils/project-tree.js.map +1 -0
  628. package/dist/utils/project-tree.test.d.ts +2 -0
  629. package/dist/utils/project-tree.test.d.ts.map +1 -0
  630. package/dist/utils/project-tree.test.js +149 -0
  631. package/dist/utils/project-tree.test.js.map +1 -0
  632. package/dist/utils/provider-traffic-extractor.d.ts +1 -0
  633. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  634. package/dist/utils/provider-traffic-extractor.js +1 -0
  635. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  636. package/dist/utils/provider-traffic-extractor.test.js +2 -0
  637. package/dist/utils/provider-traffic-extractor.test.js.map +1 -1
  638. package/dist/utils/settings-command.d.ts.map +1 -1
  639. package/dist/utils/settings-command.js +11 -0
  640. package/dist/utils/settings-command.js.map +1 -1
  641. package/dist/utils/terminal-clear.d.ts +7 -0
  642. package/dist/utils/terminal-clear.d.ts.map +1 -0
  643. package/dist/utils/terminal-clear.js +5 -0
  644. package/dist/utils/terminal-clear.js.map +1 -0
  645. package/dist/utils/terminal-clear.test.d.ts +2 -0
  646. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  647. package/dist/utils/terminal-clear.test.js +13 -0
  648. package/dist/utils/terminal-clear.test.js.map +1 -0
  649. package/dist/utils/token-usage.d.ts +6 -2
  650. package/dist/utils/token-usage.d.ts.map +1 -1
  651. package/dist/utils/token-usage.js +11 -4
  652. package/dist/utils/token-usage.js.map +1 -1
  653. package/dist/utils/token-usage.test.js +15 -0
  654. package/dist/utils/token-usage.test.js.map +1 -1
  655. package/dist/utils/tty-osc.d.ts +27 -0
  656. package/dist/utils/tty-osc.d.ts.map +1 -0
  657. package/dist/utils/tty-osc.js +66 -0
  658. package/dist/utils/tty-osc.js.map +1 -0
  659. package/dist/utils/tty-osc.test.d.ts +2 -0
  660. package/dist/utils/tty-osc.test.d.ts.map +1 -0
  661. package/dist/utils/tty-osc.test.js +130 -0
  662. package/dist/utils/tty-osc.test.js.map +1 -0
  663. package/package.json +2 -2
  664. package/readme.md +2 -2
  665. package/dist/agent.lite-mode.test.d.ts +0 -2
  666. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  667. package/dist/agent.lite-mode.test.js +0 -39
  668. package/dist/agent.lite-mode.test.js.map +0 -1
  669. package/dist/app.large-uncached-warning.test.js +0 -15
  670. package/dist/components/ApprovalPrompt.test.d.ts +0 -2
  671. package/dist/components/ApprovalPrompt.test.d.ts.map +0 -1
  672. package/dist/components/ApprovalPrompt.test.js +0 -23
  673. package/dist/components/ApprovalPrompt.test.js.map +0 -1
  674. package/dist/components/LiveResponse.test.d.ts +0 -2
  675. package/dist/components/LiveResponse.test.d.ts.map +0 -1
  676. package/dist/components/LiveResponse.test.js +0 -13
  677. package/dist/components/LiveResponse.test.js.map +0 -1
  678. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  679. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  680. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  681. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  682. package/dist/components/TextInput.d.ts +0 -42
  683. package/dist/components/TextInput.d.ts.map +0 -1
  684. package/dist/components/TextInput.js +0 -398
  685. package/dist/components/TextInput.js.map +0 -1
  686. package/dist/components/TextInput.test.d.ts +0 -2
  687. package/dist/components/TextInput.test.d.ts.map +0 -1
  688. package/dist/components/TextInput.test.js +0 -75
  689. package/dist/components/TextInput.test.js.map +0 -1
  690. package/dist/debug_ask_mentor.d.ts +0 -2
  691. package/dist/debug_ask_mentor.d.ts.map +0 -1
  692. package/dist/debug_ask_mentor.js +0 -73
  693. package/dist/debug_ask_mentor.js.map +0 -1
  694. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +0 -2
  695. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +0 -1
  696. package/dist/hooks/use-conversation.max-turns-undo.test.js +0 -118
  697. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +0 -1
  698. package/dist/lib/shell.d.ts +0 -7
  699. package/dist/lib/shell.d.ts.map +0 -1
  700. package/dist/lib/shell.js +0 -56
  701. package/dist/lib/shell.js.map +0 -1
  702. package/dist/modes/companion/command-index.d.ts +0 -26
  703. package/dist/modes/companion/command-index.d.ts.map +0 -1
  704. package/dist/modes/companion/command-index.js +0 -50
  705. package/dist/modes/companion/command-index.js.map +0 -1
  706. package/dist/modes/companion/command-index.test.d.ts +0 -2
  707. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  708. package/dist/modes/companion/command-index.test.js +0 -86
  709. package/dist/modes/companion/command-index.test.js.map +0 -1
  710. package/dist/modes/companion/companion-app.d.ts +0 -12
  711. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  712. package/dist/modes/companion/companion-app.js +0 -297
  713. package/dist/modes/companion/companion-app.js.map +0 -1
  714. package/dist/modes/companion/companion-session.d.ts +0 -63
  715. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  716. package/dist/modes/companion/companion-session.js +0 -146
  717. package/dist/modes/companion/companion-session.js.map +0 -1
  718. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  719. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  720. package/dist/modes/companion/companion-session.test.js +0 -28
  721. package/dist/modes/companion/companion-session.test.js.map +0 -1
  722. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  723. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  724. package/dist/modes/companion/components/status-bar.js +0 -26
  725. package/dist/modes/companion/components/status-bar.js.map +0 -1
  726. package/dist/modes/companion/context-buffer.d.ts +0 -65
  727. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  728. package/dist/modes/companion/context-buffer.js +0 -156
  729. package/dist/modes/companion/context-buffer.js.map +0 -1
  730. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  731. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  732. package/dist/modes/companion/context-buffer.test.js +0 -154
  733. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  734. package/dist/modes/companion/event-detector.d.ts +0 -46
  735. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  736. package/dist/modes/companion/event-detector.js +0 -169
  737. package/dist/modes/companion/event-detector.js.map +0 -1
  738. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  739. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  740. package/dist/modes/companion/event-detector.test.js +0 -121
  741. package/dist/modes/companion/event-detector.test.js.map +0 -1
  742. package/dist/modes/companion/index.d.ts +0 -33
  743. package/dist/modes/companion/index.d.ts.map +0 -1
  744. package/dist/modes/companion/index.js +0 -21
  745. package/dist/modes/companion/index.js.map +0 -1
  746. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  747. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  748. package/dist/modes/companion/input-key-mapper.js +0 -31
  749. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  750. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  751. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  752. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  753. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  754. package/dist/modes/companion/input-parser.d.ts +0 -53
  755. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  756. package/dist/modes/companion/input-parser.js +0 -114
  757. package/dist/modes/companion/input-parser.js.map +0 -1
  758. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  759. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  760. package/dist/modes/companion/input-parser.test.js +0 -123
  761. package/dist/modes/companion/input-parser.test.js.map +0 -1
  762. package/dist/modes/companion/mode-manager.d.ts +0 -41
  763. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  764. package/dist/modes/companion/mode-manager.js +0 -56
  765. package/dist/modes/companion/mode-manager.js.map +0 -1
  766. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  767. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  768. package/dist/modes/companion/mode-manager.test.js +0 -65
  769. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  770. package/dist/modes/companion/output-classifier.d.ts +0 -15
  771. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  772. package/dist/modes/companion/output-classifier.js +0 -77
  773. package/dist/modes/companion/output-classifier.js.map +0 -1
  774. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  775. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  776. package/dist/modes/companion/output-classifier.test.js +0 -133
  777. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  778. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  779. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  780. package/dist/modes/companion/pty-wrapper.js +0 -143
  781. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  782. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  783. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  784. package/dist/modes/companion/safety-classifier.js +0 -140
  785. package/dist/modes/companion/safety-classifier.js.map +0 -1
  786. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  787. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  788. package/dist/modes/companion/safety-classifier.test.js +0 -151
  789. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  790. package/dist/modes/companion/summarizer.d.ts +0 -24
  791. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  792. package/dist/modes/companion/summarizer.js +0 -132
  793. package/dist/modes/companion/summarizer.js.map +0 -1
  794. package/dist/modes/companion/terminal-history.d.ts +0 -27
  795. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  796. package/dist/modes/companion/terminal-history.js +0 -142
  797. package/dist/modes/companion/terminal-history.js.map +0 -1
  798. package/dist/prompts/simple-mentor.md +0 -215
  799. package/dist/providers/ai-sdk-openai.provider.d.ts +0 -14
  800. package/dist/providers/ai-sdk-openai.provider.d.ts.map +0 -1
  801. package/dist/providers/ai-sdk-openai.provider.js +0 -18
  802. package/dist/providers/ai-sdk-openai.provider.js.map +0 -1
  803. package/dist/providers/github-copilot/converters.d.ts +0 -45
  804. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  805. package/dist/providers/github-copilot/converters.js +0 -118
  806. package/dist/providers/github-copilot/converters.js.map +0 -1
  807. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  808. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  809. package/dist/providers/github-copilot/converters.test.js +0 -162
  810. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  811. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  812. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  813. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  814. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  815. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  816. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  817. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  818. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  819. package/dist/providers/github-copilot/index.d.ts +0 -4
  820. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  821. package/dist/providers/github-copilot/index.js +0 -4
  822. package/dist/providers/github-copilot/index.js.map +0 -1
  823. package/dist/providers/github-copilot/model.d.ts +0 -24
  824. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  825. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  826. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  827. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  828. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  829. package/dist/providers/github-copilot/model.js +0 -498
  830. package/dist/providers/github-copilot/model.js.map +0 -1
  831. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  832. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  833. package/dist/providers/github-copilot/model.test.js +0 -63
  834. package/dist/providers/github-copilot/model.test.js.map +0 -1
  835. package/dist/providers/github-copilot/provider.d.ts +0 -15
  836. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  837. package/dist/providers/github-copilot/provider.js +0 -25
  838. package/dist/providers/github-copilot/provider.js.map +0 -1
  839. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  840. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  841. package/dist/providers/github-copilot/provider.test.js +0 -52
  842. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  843. package/dist/providers/github-copilot/utils.d.ts +0 -20
  844. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  845. package/dist/providers/github-copilot/utils.js +0 -142
  846. package/dist/providers/github-copilot/utils.js.map +0 -1
  847. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  848. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  849. package/dist/providers/github-copilot/utils.test.js +0 -21
  850. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  851. package/dist/providers/openai-compatible/api.d.ts +0 -17
  852. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  853. package/dist/providers/openai-compatible/api.js +0 -58
  854. package/dist/providers/openai-compatible/api.js.map +0 -1
  855. package/dist/providers/openai-compatible/model.d.ts +0 -17
  856. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  857. package/dist/providers/openai-compatible/model.js +0 -473
  858. package/dist/providers/openai-compatible/model.js.map +0 -1
  859. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  860. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  861. package/dist/providers/openai-compatible/provider.js +0 -43
  862. package/dist/providers/openai-compatible/provider.js.map +0 -1
  863. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  864. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  865. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  866. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  867. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  868. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  869. package/dist/providers/openai-compatible/utils.js +0 -11
  870. package/dist/providers/openai-compatible/utils.js.map +0 -1
  871. package/dist/providers/openrouter/api.d.ts +0 -39
  872. package/dist/providers/openrouter/api.d.ts.map +0 -1
  873. package/dist/providers/openrouter/api.js +0 -164
  874. package/dist/providers/openrouter/api.js.map +0 -1
  875. package/dist/providers/openrouter/converters.d.ts +0 -8
  876. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  877. package/dist/providers/openrouter/converters.js +0 -391
  878. package/dist/providers/openrouter/converters.js.map +0 -1
  879. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  880. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  881. package/dist/providers/openrouter/converters.test.js +0 -179
  882. package/dist/providers/openrouter/converters.test.js.map +0 -1
  883. package/dist/providers/openrouter/index.d.ts +0 -4
  884. package/dist/providers/openrouter/index.d.ts.map +0 -1
  885. package/dist/providers/openrouter/index.js +0 -4
  886. package/dist/providers/openrouter/index.js.map +0 -1
  887. package/dist/providers/openrouter/model.d.ts +0 -14
  888. package/dist/providers/openrouter/model.d.ts.map +0 -1
  889. package/dist/providers/openrouter/model.js +0 -457
  890. package/dist/providers/openrouter/model.js.map +0 -1
  891. package/dist/providers/openrouter/provider.d.ts +0 -15
  892. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  893. package/dist/providers/openrouter/provider.js +0 -21
  894. package/dist/providers/openrouter/provider.js.map +0 -1
  895. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  896. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  897. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  898. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  899. package/dist/providers/openrouter/utils.d.ts +0 -11
  900. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  901. package/dist/providers/openrouter/utils.js +0 -29
  902. package/dist/providers/openrouter/utils.js.map +0 -1
  903. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  904. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  905. package/dist/providers/openrouter.api.retry.test.js +0 -148
  906. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  907. package/dist/providers/openrouter.test.d.ts +0 -2
  908. package/dist/providers/openrouter.test.d.ts.map +0 -1
  909. package/dist/providers/openrouter.test.js +0 -1449
  910. package/dist/providers/openrouter.test.js.map +0 -1
  911. package/dist/providers/protocol-client.d.ts +0 -17
  912. package/dist/providers/protocol-client.d.ts.map +0 -1
  913. package/dist/providers/protocol-client.js +0 -57
  914. package/dist/providers/protocol-client.js.map +0 -1
  915. package/dist/providers/protocol-client.test.d.ts +0 -2
  916. package/dist/providers/protocol-client.test.d.ts.map +0 -1
  917. package/dist/providers/protocol-client.test.js +0 -55
  918. package/dist/providers/protocol-client.test.js.map +0 -1
  919. package/dist/safety-checker.js +0 -57
  920. package/dist/services/check_mock.d.ts +0 -2
  921. package/dist/services/check_mock.d.ts.map +0 -1
  922. package/dist/services/check_mock.js +0 -22
  923. package/dist/services/check_mock.js.map +0 -1
  924. package/dist/services/conversation-service.test.d.ts +0 -2
  925. package/dist/services/conversation-service.test.d.ts.map +0 -1
  926. package/dist/services/conversation-service.test.js +0 -156
  927. package/dist/services/conversation-service.test.js.map +0 -1
  928. package/dist/services/conversation-store.merge-modes.removed.d.ts +0 -2
  929. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +0 -1
  930. package/dist/services/conversation-store.merge-modes.removed.js +0 -2
  931. package/dist/services/conversation-store.merge-modes.removed.js.map +0 -1
  932. package/dist/services/repro-error.test.d.ts +0 -2
  933. package/dist/services/repro-error.test.d.ts.map +0 -1
  934. package/dist/services/repro-error.test.js +0 -38
  935. package/dist/services/repro-error.test.js.map +0 -1
  936. package/dist/services/subagents/reasoning-inheritance.test.d.ts +0 -2
  937. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +0 -1
  938. package/dist/services/subagents/reasoning-inheritance.test.js +0 -73
  939. package/dist/services/subagents/reasoning-inheritance.test.js.map +0 -1
  940. package/dist/tools/bash.d.ts +0 -10
  941. package/dist/tools/bash.d.ts.map +0 -1
  942. package/dist/tools/bash.js +0 -55
  943. package/dist/tools/bash.js.map +0 -1
  944. package/dist/utils/command-safety.d.ts +0 -21
  945. package/dist/utils/command-safety.d.ts.map +0 -1
  946. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  947. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  948. package/dist/utils/command-safety.devnull.test.js +0 -13
  949. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  950. package/dist/utils/command-safety.js +0 -348
  951. package/dist/utils/command-safety.js.map +0 -1
  952. package/dist/utils/extract-command-messages.test.d.ts +0 -2
  953. package/dist/utils/extract-command-messages.test.d.ts.map +0 -1
  954. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
  955. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
  956. package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=notification-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-service.test.d.ts","sourceRoot":"","sources":["../../source/services/notification-service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,151 @@
1
+ import test from 'ava';
2
+ import { canUseBell, getNotificationMethod, notify, sendNotification, supportsOsc777, supportsOsc9, buildNotificationSequence, } from './notification-service.js';
3
+ function createStream(isTTY) {
4
+ let written = '';
5
+ return {
6
+ isTTY,
7
+ get written() {
8
+ return written;
9
+ },
10
+ write(data) {
11
+ written += data;
12
+ return true;
13
+ },
14
+ };
15
+ }
16
+ test('supportsOsc777 recognizes supported terminals', (t) => {
17
+ t.true(supportsOsc777({ TERM_PROGRAM: 'ghostty' }));
18
+ t.true(supportsOsc777({ TERM_PROGRAM: 'WezTerm' }));
19
+ t.true(supportsOsc777({ TERM: 'foot' }));
20
+ t.true(supportsOsc777({ TERM: 'foot-extra' }));
21
+ t.true(supportsOsc777({ TERM: 'xterm-ghostty-256color' }));
22
+ });
23
+ test('supportsOsc777 excludes kitty and unrelated terminals', (t) => {
24
+ t.false(supportsOsc777({ TERM_PROGRAM: 'kitty' }));
25
+ t.false(supportsOsc777({ TERM: 'xterm-kitty' }));
26
+ t.false(supportsOsc777({ TERM_PROGRAM: 'iTerm.app' }));
27
+ });
28
+ test('supportsOsc9 recognizes explicitly supported terminals', (t) => {
29
+ t.true(supportsOsc9({ TERM_PROGRAM: 'iTerm.app' }));
30
+ t.true(supportsOsc9({ TERM_PROGRAM: 'WezTerm' }));
31
+ t.true(supportsOsc9({ TERM_PROGRAM: 'WarpTerminal' }));
32
+ t.true(supportsOsc9({ TERM: 'rio' }));
33
+ t.true(supportsOsc9({ TERM: 'rio-256color' }));
34
+ t.true(supportsOsc9({ TERM: 'wezterm' }));
35
+ });
36
+ test('supportsOsc9 excludes generic and unrelated terminals', (t) => {
37
+ t.false(supportsOsc9({ TERM: 'xterm-256color' }));
38
+ t.false(supportsOsc9({ TERM_PROGRAM: 'ghostty' }));
39
+ t.false(supportsOsc9({ TERM_PROGRAM: 'kitty' }));
40
+ t.false(supportsOsc9({}));
41
+ });
42
+ test('canUseBell requires a real TTY and non-CI environment', (t) => {
43
+ t.true(canUseBell({ TERM: 'xterm-256color' }, { isTTY: true }));
44
+ t.true(canUseBell({ TERM: 'dumb' }, { isTTY: true }));
45
+ t.false(canUseBell({ TERM: 'xterm-256color', CI: '1' }, { isTTY: true }));
46
+ t.false(canUseBell({ TERM: 'xterm-256color' }, { isTTY: false }));
47
+ t.true(canUseBell({}, { isTTY: true }));
48
+ });
49
+ test('getNotificationMethod prefers OSC 777 over bell', (t) => {
50
+ const stream = { isTTY: true };
51
+ t.is(getNotificationMethod({ TERM_PROGRAM: 'ghostty', TERM: 'xterm-256color' }, stream), 'osc777');
52
+ });
53
+ test('getNotificationMethod falls back to OSC 9 for explicitly supported terminals', (t) => {
54
+ const stream = { isTTY: true };
55
+ t.is(getNotificationMethod({ TERM_PROGRAM: 'iTerm.app', TERM: 'xterm-256color' }, stream), 'osc9');
56
+ t.is(getNotificationMethod({ TERM: 'rio' }, stream), 'osc9');
57
+ });
58
+ test('getNotificationMethod returns undefined when no notification path is available', (t) => {
59
+ const stream = { isTTY: true };
60
+ t.is(getNotificationMethod({ TERM: 'xterm-256color', CI: '1' }, stream), undefined);
61
+ t.is(getNotificationMethod({ TERM: 'dumb' }, { isTTY: false }), undefined);
62
+ });
63
+ test('getNotificationMethod falls back to bell for dumb terminals on a TTY', (t) => {
64
+ const stream = { isTTY: true };
65
+ t.is(getNotificationMethod({ TERM: 'dumb' }, stream), 'bell');
66
+ t.is(getNotificationMethod({ TERM: 'xterm-256color' }, stream), 'bell');
67
+ });
68
+ test('notify writes OSC 777 for capable terminals and sanitizes payloads', (t) => {
69
+ const stream = createStream(true);
70
+ const result = notify('Ti;tle\x1b', 'Me\x07ss;age', {
71
+ env: { TERM_PROGRAM: 'ghostty' },
72
+ stream,
73
+ });
74
+ t.true(result);
75
+ t.is(stream.written, '\x1b]777;notify;Ti,tle;Mess,age\x07');
76
+ });
77
+ test('notify writes OSC 9 fallback for explicitly supported terminals', (t) => {
78
+ const stream = createStream(true);
79
+ const result = notify('Alert', 'Done', {
80
+ env: { TERM_PROGRAM: 'iTerm.app', TERM: 'xterm-256color' },
81
+ stream,
82
+ });
83
+ t.true(result);
84
+ t.is(stream.written, '\x1b]9;Done\x07');
85
+ });
86
+ test('notify returns false when no notification method is available', (t) => {
87
+ const stream = createStream(false);
88
+ const result = notify('T', 'M', {
89
+ env: { TERM: 'dumb' },
90
+ stream,
91
+ });
92
+ t.false(result);
93
+ t.is(stream.written, '');
94
+ });
95
+ test('buildNotificationSequence mirrors the selected notification method', (t) => {
96
+ t.is(buildNotificationSequence('A', 'B', { TERM_PROGRAM: 'ghostty' }, { isTTY: true }), '\x1b]777;notify;A;B\x07');
97
+ t.is(buildNotificationSequence('A', 'B', { TERM_PROGRAM: 'iTerm.app' }, { isTTY: true }), '\x1b]9;B\x07');
98
+ t.is(buildNotificationSequence('A', 'B', { TERM: 'xterm-256color' }, { isTTY: true }), '\x07');
99
+ t.is(buildNotificationSequence('A', 'B', {}, { isTTY: false }), '');
100
+ t.is(buildNotificationSequence('A', 'B', { TERM: 'dumb' }, { isTTY: true }), '\x07');
101
+ t.is(buildNotificationSequence('A', 'B', { TERM: 'dumb' }, { isTTY: false }), '');
102
+ });
103
+ test('sendNotification supports injected tty writers for compatibility', (t) => {
104
+ let written = '';
105
+ const result = sendNotification('Alert', 'Done', {
106
+ env: { TERM_PROGRAM: 'ghostty' },
107
+ stream: { isTTY: true },
108
+ getTtyWriter: () => (data) => {
109
+ written = data;
110
+ },
111
+ });
112
+ t.true(result);
113
+ t.is(written, '\x1b]777;notify;Alert;Done\x07');
114
+ });
115
+ test('sendNotification wraps OSC sequences for tmux passthrough', (t) => {
116
+ let written = '';
117
+ const result = sendNotification('Alert', 'Done', {
118
+ env: { TERM_PROGRAM: 'ghostty', TMUX: '/tmp/tmux' },
119
+ stream: { isTTY: true },
120
+ getTtyWriter: () => (data) => {
121
+ written = data;
122
+ },
123
+ });
124
+ t.true(result);
125
+ t.is(written, '\x1bPtmux;\x1b\x1b\x1b]777;notify;Alert;Done\x07\x1b\\');
126
+ });
127
+ test('sendNotification uses OSC 9 fallback through tty writer', (t) => {
128
+ let written = '';
129
+ const result = sendNotification('Alert', 'Done', {
130
+ env: { TERM_PROGRAM: 'iTerm.app', TERM: 'xterm-256color' },
131
+ stream: { isTTY: false },
132
+ getTtyWriter: () => (data) => {
133
+ written = data;
134
+ },
135
+ });
136
+ t.true(result);
137
+ t.is(written, '\x1b]9;Done\x07');
138
+ });
139
+ test('sendNotification uses bell for unknown terminals on a TTY', (t) => {
140
+ let written = '';
141
+ const result = sendNotification('Alert', 'Done', {
142
+ env: { TERM: 'xterm-256color' },
143
+ stream: { isTTY: true },
144
+ getTtyWriter: () => (data) => {
145
+ written = data;
146
+ },
147
+ });
148
+ t.true(result);
149
+ t.is(written, '\x07');
150
+ });
151
+ //# sourceMappingURL=notification-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-service.test.js","sourceRoot":"","sources":["../../source/services/notification-service.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,12 @@
1
1
  export declare const TRAFFIC_TEXT_LIMIT = 100;
2
- export type SessionTrafficContext = {
3
- sessionId: string;
4
- sessionStartedAt: string;
5
- firstUserMessagePreview?: string;
6
- mode?: string;
7
- traceId?: string;
8
- evaluator?: boolean;
9
- };
2
+ export type { SessionTrafficContext } from './service-interfaces.js';
10
3
  export type SentTrafficRecord = {
11
4
  requestId: string;
12
5
  timestamp: string;
13
6
  provider: string;
14
7
  model: string;
8
+ modelClass?: string;
9
+ modelWrapperClass?: string;
15
10
  sessionId: string;
16
11
  sessionStartedAt: string;
17
12
  mode?: string;
@@ -56,11 +51,14 @@ type RequestStartInput = {
56
51
  timestamp: string;
57
52
  provider: string;
58
53
  model: string;
54
+ modelClass?: string;
55
+ modelWrapperClass?: string;
59
56
  sessionId: string;
60
57
  sessionStartedAt: string;
61
58
  mode?: string;
62
59
  firstUserMessagePreview?: string;
63
60
  sentBody: Record<string, unknown>;
61
+ headers?: Record<string, string>;
64
62
  evaluator?: boolean;
65
63
  };
66
64
  type RequestCompleteInput = {
@@ -68,6 +66,8 @@ type RequestCompleteInput = {
68
66
  timestamp: string;
69
67
  provider: string;
70
68
  model: string;
69
+ modelClass?: string;
70
+ modelWrapperClass?: string;
71
71
  sessionId: string;
72
72
  sessionStartedAt: string;
73
73
  mode?: string;
@@ -83,5 +83,4 @@ export declare class ProviderTrafficArtifactStore {
83
83
  recordRequestStart(input: RequestStartInput): void;
84
84
  recordRequestComplete(input: RequestCompleteInput): void;
85
85
  }
86
- export {};
87
86
  //# sourceMappingURL=provider-traffic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-traffic.d.ts","sourceRoot":"","sources":["../../source/services/provider-traffic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-traffic.d.ts","sourceRoot":"","sources":["../../source/services/provider-traffic.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAGtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,eAAe,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,aAAa,EAAE,KAAK,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAwFF,eAAO,MAAM,uBAAuB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAoC7F,CAAC;AAuGF,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmSlG;AAED,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,qBAAa,4BAA4B;;gBAI3B,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;IAI5C,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAkClD,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;CA0GzD"}
@@ -28,10 +28,23 @@ const normalizePreview = (text) => {
28
28
  return normalized;
29
29
  return normalized.slice(0, PREVIEW_LIMIT);
30
30
  };
31
+ const sanitizeContentArray = (content) => content.map((item) => {
32
+ const record = asRecord(item);
33
+ if (!record)
34
+ return item;
35
+ if (record.type === 'text' && typeof record.text === 'string') {
36
+ return { ...record, text: truncateTrafficText(record.text) };
37
+ }
38
+ return item;
39
+ });
31
40
  const sanitizeInstructionLikeValue = (value) => {
32
- if (typeof value !== 'string')
33
- return value;
34
- return truncateTrafficText(value);
41
+ if (typeof value === 'string') {
42
+ return truncateTrafficText(value);
43
+ }
44
+ if (Array.isArray(value)) {
45
+ return sanitizeContentArray(value);
46
+ }
47
+ return value;
35
48
  };
36
49
  const sanitizeToolDefinitions = (tools) => {
37
50
  if (!Array.isArray(tools))
@@ -50,15 +63,6 @@ const sanitizeToolDefinitions = (tools) => {
50
63
  return 'unknown-tool';
51
64
  });
52
65
  };
53
- const sanitizeContentArray = (content) => content.map((item) => {
54
- const record = asRecord(item);
55
- if (!record)
56
- return item;
57
- if (record.type === 'text' && typeof record.text === 'string') {
58
- return { ...record, text: truncateTrafficText(record.text) };
59
- }
60
- return item;
61
- });
62
66
  const sanitizeReasoningDetails = (reasoningDetails) => {
63
67
  if (!Array.isArray(reasoningDetails))
64
68
  return reasoningDetails;
@@ -92,6 +96,9 @@ export const sanitizeSentTrafficBody = (body) => {
92
96
  if (Object.prototype.hasOwnProperty.call(sanitized, 'instructions')) {
93
97
  sanitized.instructions = sanitizeInstructionLikeValue(sanitized.instructions);
94
98
  }
99
+ if (Object.prototype.hasOwnProperty.call(sanitized, 'system')) {
100
+ sanitized.system = sanitizeInstructionLikeValue(sanitized.system);
101
+ }
95
102
  if (Array.isArray(sanitized.messages)) {
96
103
  sanitized.messages = sanitized.messages.map((item) => {
97
104
  const record = asRecord(item);
@@ -496,8 +503,11 @@ export class ProviderTrafficArtifactStore {
496
503
  timestamp: input.timestamp,
497
504
  provider: input.provider,
498
505
  model: input.model,
506
+ ...(input.modelClass ? { modelClass: input.modelClass } : {}),
507
+ ...(input.modelWrapperClass ? { modelWrapperClass: input.modelWrapperClass } : {}),
499
508
  sessionId: input.sessionId,
500
509
  mode: input.mode ?? 'unknown',
510
+ ...(input.headers ? { headers: input.headers } : {}),
501
511
  body: sanitizeSentTrafficBody(input.sentBody),
502
512
  };
503
513
  fs.writeFileSync(requestPath, `${JSON.stringify(sentRecord, null, 2)}\n`, 'utf8');
@@ -525,6 +535,8 @@ export class ProviderTrafficArtifactStore {
525
535
  timestamp: input.timestamp,
526
536
  provider: input.provider,
527
537
  model: input.model,
538
+ ...(input.modelClass ? { modelClass: input.modelClass } : {}),
539
+ ...(input.modelWrapperClass ? { modelWrapperClass: input.modelWrapperClass } : {}),
528
540
  sessionId: input.sessionId,
529
541
  mode: input.mode ?? 'unknown',
530
542
  ...(input.receivedSummary ? { summary: input.receivedSummary } : {}),
@@ -532,6 +544,7 @@ export class ProviderTrafficArtifactStore {
532
544
  };
533
545
  fs.mkdirSync(path.dirname(requestPath), { recursive: true });
534
546
  fs.appendFileSync(requestPath, `\n${JSON.stringify(receivedRecord, null, 2)}\n`, 'utf8');
547
+ this.#requestPaths.delete(input.requestId);
535
548
  this.#touchDailyIndex(dayDir, {
536
549
  sessionId: input.sessionId,
537
550
  sessionDir: sessionDirName,
@@ -1 +1 @@
1
- {"version":3,"file":"provider-traffic.js","sourceRoot":"","sources":["../../source/services/provider-traffic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-traffic.js","sourceRoot":"","sources":["../../source/services/provider-traffic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,aAAa,GAAG,GAAG,CAAC;AAgD1B,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAkC,EAAE;IAClE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7E,OAAO,KAAgC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IAC7C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAEvF,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE;IACnD,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAkB;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;IACjD,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,YAAY,OAAO,SAAS,CAAC;AAC1E,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,IAAwB,EAAU,EAAE;IAC5D,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa;QAAE,OAAO,UAAU,CAAC;IAC1D,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,OAAkB,EAAa,EAAE,CAC7D,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;IACnB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CAAC;AAEL,MAAM,4BAA4B,GAAG,CAAC,KAAc,EAAW,EAAE;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC1D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,EAAE,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC,IAAI,CAAC;QACjD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QACxD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC;QACxD,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,gBAAyB,EAAW,EAAE;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAC9D,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7E,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,OAAgC,EAA2B,EAAE;IAC3F,MAAM,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,mBAAmB,CAAC;QACzF,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACxF,CAAC,CAAC,OAAO,CAAC;IACZ,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,gBAAgB,CAAC;IACvE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;QAAE,OAAO,gBAAgB,CAAC;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,GAAG,gBAAgB,EAAE,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,GAAG,gBAAgB,EAAE,OAAO,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;AACjF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAA6B,EAA2B,EAAE;IAChG,MAAM,SAAS,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IAEvD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,EAAE,CAAC;QACpE,SAAS,CAAC,YAAY,GAAG,4BAA4B,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC9D,SAAS,CAAC,MAAM,GAAG,4BAA4B,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACvE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACpE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;QAC7D,SAAS,CAAC,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAEzF,MAAM,eAAe,GAAG,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAEpF,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE,CACpD,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAE9G,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAU,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAEpH,MAAM,sBAAsB,GAAG,CAAC,GAAW,EAAuC,EAAE;IAClF,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAChE,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,WAAmB,EAAuC,EAAE;IAC5F,IAAI,WAAW,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5D,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IACnD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAwB,EAAW,EAAE;IACnE,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,YAAY,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,MAA+B,EAAU,EAAE;IACpE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,WAAW,GAAG,QAAQ,CAAE,MAAM,CAAC,OAAiC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC;IACpF,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,GAAwB,EAAE,GAAW,EAAE,KAAa,EAAQ,EAAE;IACzF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;AAC7C,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,KAAa,EAAU,EAAE;IACzD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAW,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,GAAG,MAAiB,EAAsB,EAAE;IACtE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IACvD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAA6B,EAAsB,EAAE;IAC5E,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,WAAW,CAAC;IAClE,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,OAAO,QAAQ,EAAE,WAAW,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC3E,MAAM,MAAM,GAAG,QAAQ,CAAE,IAAI,CAAC,OAAiC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,OAAO,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACzF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAA6B,EAAsB,EAAE;IACjF,MAAM,MAAM,GAAG,QAAQ,CAAE,IAAI,CAAC,OAAiC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,kBAAkB,CACvB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,cAAc,EACnB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,EACrB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,cAAc,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAA6B,EAAa,EAAE;IACxE,MAAM,MAAM,GAAG,QAAQ,CAAE,IAAI,CAAC,OAAiC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,SAAS,GAAI,OAAO,EAAE,UAAwB,IAAK,KAAK,EAAE,UAAwB,IAAI,EAAE,CAAC;IAC/F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAG,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;QAClF,OAAO;YACL,GAAG;YACH,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACvD,aAAa;YACb,aAAa,EAAE,sBAAsB,CAAC,aAAa,CAAC;SACrD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,QAAkB;IAC/D,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,SAAS,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;IACtD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,OAAO,KAAK,SAAS;YAAE,SAAS,GAAG,OAAO,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAA2B;QACtC,SAAS;QACT,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,WAAW,EAAE,EAAE;QACf,eAAe,EAAE,EAAE;QACnB,aAAa,EAAE,EAAE;KAClB,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,aAAa,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7F,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;QAC3B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,aAAiC,CAAC;IACtC,IAAI,eAAmC,CAAC;IACxC,IAAI,QAA6C,CAAC;IAClD,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmF,CAAC;IAEnH,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACvG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACrC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,QAAQ,KAAK,QAAQ;YAAE,SAAS;QAEpC,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACjE,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,GAAG,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvD,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE/E,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBAChE,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;oBAAE,eAAe,GAAG,eAAe,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gBAC1E,MAAM,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpD,IAAI,MAAM;oBAAE,aAAa,GAAG,aAAa,IAAI,MAAM,CAAC;gBACpD,SAAS;YACX,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAE,MAAM,CAAC,OAAiC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEtC,aAAa;YACX,aAAa,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAS,EAAE,EAAE,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtE,IAAI,SAAS;YAAE,QAAQ,GAAG,SAAS,CAAC;QACpC,eAAe;YACb,eAAe;gBACf,kBAAkB,CAChB,MAAM,CAAC,aAAa,EACpB,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,MAAM,CACd,CAAC;QAEJ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3E,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/E,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC7G,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjH,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,SAAS,EAAE,QAAQ,CAAC,yBAAyB,CAAC,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvF,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACxG,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACtD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,UAAU,EAAE,CAAC;YACrD,IAAI,UAAU,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/E,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ;wBAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;oBAC9E,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ;wBAAE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC1F,CAAC;YACH,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAE,KAAK,EAAE,UAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,IAAI,OAAO,KAAK,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,KAAK,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YACzC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,KAAK,EAAE,cAAc,KAAK,QAAQ,EAAE,CAAC;YAC9C,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC3C,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,KAAK,EAAE,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YACjD,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;YAC9C,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,OAAO,cAAc,CAAC,EAAE,KAAK,QAAQ,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3G,MAAM,UAAU,GAAG,OAAO,cAAc,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/F,MAAM,GAAG,GACP,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;YAChH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ;gBAAE,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5F,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;YACvC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,UAAuB,EAAE,CAAC;gBACvD,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAChD,MAAM,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnD,MAAM,GAAG,GAAG,kBAAkB,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;gBAC5F,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ;oBAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBACjE,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ;oBAAE,mBAAmB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5F,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,IACE,CAAC,UAAU;YACX,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,EACzG,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,oGAAoG;QACpG,IAAI,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,yFAAyF;QACzF,IACE,CAAC,UAAU;YACX,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;YAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAC3B,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,gDAAgD;QAChD,IACE,CAAC,UAAU;YACX,KAAK;YACL,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAC/B,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QACD,IACE,CAAC,UAAU;YACX,KAAK;YACL,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC9B,KAAK,CAAC,OAAO,KAAK,IAAI;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,EAC9B,CAAC;YACD,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;gBACpB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE;oBAC7B,SAAS;oBACT,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,QAAQ;oBAClB,OAAO,EAAE,QAAQ;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACvD,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC;YAAE,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,gBAAgB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7F,MAAM,kBAAkB,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,EAAE,EAAE;QACnF,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,OAAO;YACL,EAAE,EAAE,GAAG;YACP,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE;gBACR,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvC,SAAS,EAAE,aAAa;aACzB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,aAAa,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtD,MAAM,YAAY,GAChB,gBAAgB,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;IACtG,IAAI,YAAY,IAAI,aAAa,IAAI,eAAe,IAAI,QAAQ,EAAE,CAAC;QACjE,OAAO,CAAC,OAAO,GAAG;YAChB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC,OAAO,EAAE;gBACP;oBACE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC9D,KAAK,EAAE;wBACL,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxE,GAAG,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9E,GAAG,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC7E;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC;IAC7B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAiCD,MAAM,OAAO,4BAA4B;IAC9B,QAAQ,CAAS;IACjB,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,YAAY,EAAE,OAAO,EAAuB;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,kBAAkB,CAAC,KAAwB;QACzC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG;YACjB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;YAC7B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,IAAI,EAAE,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC9C,CAAC;QACF,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClF,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;YAC7B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,KAAK,CAAC,SAAS;YAC/B,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,YAAY,EAAE,CAAC;YACf,uBAAuB,EAAE,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC;YACxE,cAAc,EAAE,KAAK,CAAC,QAAQ;YAC9B,WAAW,EAAE,KAAK,CAAC,KAAK;YACxB,aAAa,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC;YAC/B,UAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YACzB,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;YACnC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,KAA2B;QAC/C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC;QACnF,MAAM,cAAc,GAAG;YACrB,SAAS,EAAE,UAAU;YACrB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;YAC7B,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;QACF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,UAAU,EAAE,cAAc;YAC1B,aAAa,EAAE,KAAK,CAAC,SAAS;YAC9B,cAAc,EAAE,KAAK,CAAC,QAAQ;YAC9B,WAAW,EAAE,KAAK,CAAC,KAAK;YACxB,UAAU,EAAE,KAAK,CAAC,IAAI,IAAI,SAAS;SACpC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,KAMT;QAMC,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;QAC7C,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrF,MAAM,cAAc,GAAG,GAAG,eAAe,IAAI,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;QACjD,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,eAAe,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,eAAe,IAAI,cAAc,QAAQ,CAAC;QAC3G,MAAM,WAAW,GAAG,GAAG,UAAU,IAAI,eAAe,EAAE,CAAC;QACvD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC7D,CAAC;IAED,eAAe,CAAC,MAAc;QAC5B,MAAM,SAAS,GAAG,GAAG,MAAM,cAAc,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,OAAO,EAAE;aACN,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;aAC/B,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAA2B,CAAC,CAAC;IAC/D,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,OAAiC;QAChE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3F,EAAE,CAAC,aAAa,CAAC,GAAG,MAAM,cAAc,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpH,CAAC;IAED,iBAAiB,CAAC,MAAc,EAAE,KAA6B;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1F,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB,CACd,MAAc,EACd,MAGC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC;QAC3F,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,GAAG;YACf,GAAG,OAAO;YACV,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC;YACtC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;YAC9E,UAAU,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACrE,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;SACnE,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -74,6 +74,27 @@ test('sanitizeSentTrafficBody truncates system message with content array', (t)
74
74
  t.deepEqual(systemContent[0].cache_control, { type: 'ephemeral' });
75
75
  t.is(messages[1].content, 'hi');
76
76
  });
77
+ test('sanitizeSentTrafficBody truncates anthropic message api system prompt (string or content array)', (t) => {
78
+ const longText = 'a'.repeat(1200);
79
+ const bodyWithStringSystem = {
80
+ system: longText,
81
+ messages: [{ role: 'user', content: 'hi' }],
82
+ };
83
+ const sanitizedString = sanitizeSentTrafficBody(bodyWithStringSystem);
84
+ t.true(typeof sanitizedString.system === 'string');
85
+ t.true(sanitizedString.system.includes(expectedTruncation(longText.length)));
86
+ t.is(sanitizedString.system.length < longText.length, true);
87
+ const bodyWithArraySystem = {
88
+ system: [{ type: 'text', text: longText, cache_control: { type: 'ephemeral' } }],
89
+ messages: [{ role: 'user', content: 'hi' }],
90
+ };
91
+ const sanitizedArray = sanitizeSentTrafficBody(bodyWithArraySystem);
92
+ const systemContent = sanitizedArray.system;
93
+ t.is(systemContent[0].type, 'text');
94
+ t.true(String(systemContent[0].text).startsWith('a'.repeat(TRAFFIC_TEXT_LIMIT)));
95
+ t.true(String(systemContent[0].text).includes(expectedTruncation(longText.length)));
96
+ t.deepEqual(systemContent[0].cache_control, { type: 'ephemeral' });
97
+ });
77
98
  test('sanitizeSentTrafficBody removes encrypted reasoning payload data from messages', (t) => {
78
99
  const body = {
79
100
  messages: [
@@ -325,10 +346,13 @@ test('ProviderTrafficArtifactStore writes per-day per-session request files and
325
346
  timestamp: '2026-05-22T09:14:35.044Z',
326
347
  provider: 'openrouter',
327
348
  model: 'qwen/qwen3',
349
+ modelClass: 'TimedOpenAIResponsesWSModel',
350
+ modelWrapperClass: 'FallbackResponsesModel',
328
351
  sessionId: 'session-123',
329
352
  sessionStartedAt: '2026-05-22T09:14:31.125Z',
330
353
  mode: 'standard',
331
354
  firstUserMessagePreview: 'hello there',
355
+ headers: { host: 'api.openrouter.ai', authorization: '[REDACTED]' },
332
356
  sentBody: { messages: [{ role: 'user', content: 'hello there' }] },
333
357
  });
334
358
  const dayDir = path.join(rootDir, '2026-05-22');
@@ -339,7 +363,11 @@ test('ProviderTrafficArtifactStore writes per-day per-session request files and
339
363
  t.true(fs.existsSync(requestFile));
340
364
  t.is(path.basename(requestFile), '09-14-35.044Z_req-1.jsonl');
341
365
  t.false(path.basename(requestFile).includes('session-123'));
342
- t.is(readRequestFile(requestFile)[0]?.direction, 'sent');
366
+ const firstRecord = readRequestFile(requestFile)[0];
367
+ t.is(firstRecord?.direction, 'sent');
368
+ t.deepEqual(firstRecord?.headers, { host: 'api.openrouter.ai', authorization: '[REDACTED]' });
369
+ t.is(firstRecord?.modelClass, 'TimedOpenAIResponsesWSModel');
370
+ t.is(firstRecord?.modelWrapperClass, 'FallbackResponsesModel');
343
371
  const indexPath = path.join(dayDir, 'index.jsonl');
344
372
  const indexEntries = fs
345
373
  .readFileSync(indexPath, 'utf8')
@@ -368,6 +396,8 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
368
396
  timestamp: '2026-05-22T09:14:35.044Z',
369
397
  provider: 'openai',
370
398
  model: 'gpt-5',
399
+ modelClass: 'TimedResponsesWSModel',
400
+ modelWrapperClass: 'FallbackResponsesModel',
371
401
  sessionId: 'session-123',
372
402
  sessionStartedAt: '2026-05-22T09:14:31.125Z',
373
403
  mode: 'standard',
@@ -379,6 +409,8 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
379
409
  timestamp: '2026-05-22T09:14:36.000Z',
380
410
  provider: 'openai',
381
411
  model: 'gpt-5',
412
+ modelClass: 'TimedResponsesWSModel',
413
+ modelWrapperClass: 'FallbackResponsesModel',
382
414
  sessionId: 'session-123',
383
415
  sessionStartedAt: '2026-05-22T09:14:31.125Z',
384
416
  mode: 'standard',
@@ -389,6 +421,8 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
389
421
  timestamp: '2026-05-22T10:00:00.000Z',
390
422
  provider: 'openrouter',
391
423
  model: 'deepseek/chat',
424
+ modelClass: 'TimedOpenAIResponsesWSModel',
425
+ modelWrapperClass: 'FallbackResponsesModel',
392
426
  sessionId: 'session-999',
393
427
  sessionStartedAt: '2026-05-22T10:00:00.000Z',
394
428
  mode: 'mentor',
@@ -400,6 +434,8 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
400
434
  timestamp: '2026-05-22T10:00:01.000Z',
401
435
  provider: 'openrouter',
402
436
  model: 'deepseek/chat',
437
+ modelClass: 'TimedOpenAIResponsesWSModel',
438
+ modelWrapperClass: 'FallbackResponsesModel',
403
439
  sessionId: 'session-999',
404
440
  sessionStartedAt: '2026-05-22T10:00:00.000Z',
405
441
  mode: 'mentor',
@@ -410,6 +446,8 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
410
446
  timestamp: '2026-05-23T00:00:01.000Z',
411
447
  provider: 'openai',
412
448
  model: 'gpt-5',
449
+ modelClass: 'TimedResponsesWSModel',
450
+ modelWrapperClass: 'FallbackResponsesModel',
413
451
  sessionId: 'session-123',
414
452
  sessionStartedAt: '2026-05-23T00:00:00.000Z',
415
453
  mode: 'standard',
@@ -421,8 +459,14 @@ test('ProviderTrafficArtifactStore appends received line, upserts newest-first i
421
459
  t.is(requestRecords.length, 2);
422
460
  t.is(requestRecords[1]?.direction, 'received');
423
461
  t.is(requestRecords[1]?.summary?.outputText, 'done');
462
+ t.is(requestRecords[0]?.modelClass, 'TimedResponsesWSModel');
463
+ t.is(requestRecords[0]?.modelWrapperClass, 'FallbackResponsesModel');
464
+ t.is(requestRecords[1]?.modelClass, 'TimedResponsesWSModel');
465
+ t.is(requestRecords[1]?.modelWrapperClass, 'FallbackResponsesModel');
424
466
  const failureFile = path.join(rootDir, '2026-05-22', '10-00-00_sessi', '10-00-00.000Z_req-2.jsonl');
425
467
  t.is(readRequestFile(failureFile)[1]?.error?.message, 'fetch failed');
468
+ t.is(readRequestFile(failureFile)[0]?.modelClass, 'TimedOpenAIResponsesWSModel');
469
+ t.is(readRequestFile(failureFile)[1]?.modelClass, 'TimedOpenAIResponsesWSModel');
426
470
  const indexEntries = fs
427
471
  .readFileSync(path.join(rootDir, '2026-05-22', 'index.jsonl'), 'utf8')
428
472
  .trim()
@@ -444,6 +488,8 @@ test('ProviderTrafficArtifactStore places evaluator requests under evaluator sub
444
488
  timestamp: '2026-05-22T09:14:35.044Z',
445
489
  provider: 'openai',
446
490
  model: 'gpt-4o-mini',
491
+ modelClass: 'CodexResponsesWSModel',
492
+ modelWrapperClass: 'FallbackResponsesModel',
447
493
  sessionId: 'session-123',
448
494
  sessionStartedAt: '2026-05-22T09:14:31.125Z',
449
495
  mode: 'standard',
@@ -455,6 +501,8 @@ test('ProviderTrafficArtifactStore places evaluator requests under evaluator sub
455
501
  timestamp: '2026-05-22T09:14:36.000Z',
456
502
  provider: 'openai',
457
503
  model: 'gpt-4o-mini',
504
+ modelClass: 'CodexResponsesWSModel',
505
+ modelWrapperClass: 'FallbackResponsesModel',
458
506
  sessionId: 'session-123',
459
507
  sessionStartedAt: '2026-05-22T09:14:31.125Z',
460
508
  mode: 'standard',
@@ -471,5 +519,58 @@ test('ProviderTrafficArtifactStore places evaluator requests under evaluator sub
471
519
  t.is(records.length, 2);
472
520
  t.is(records[0]?.direction, 'sent');
473
521
  t.is(records[1]?.direction, 'received');
522
+ t.is(records[0]?.modelClass, 'CodexResponsesWSModel');
523
+ t.is(records[1]?.modelClass, 'CodexResponsesWSModel');
524
+ });
525
+ test('recordRequestComplete removes completed request path from map so a second completion without a fresh start gets a new path', (t) => {
526
+ const rootDir = makeTempDir();
527
+ const store = new ProviderTrafficArtifactStore({ rootDir });
528
+ const requestId = 'test-req-id';
529
+ const startedAt = '2026-06-01T10:00:00.000Z';
530
+ // Start the request — stores the computed path in the internal map
531
+ store.recordRequestStart({
532
+ requestId,
533
+ timestamp: '2026-06-01T10:00:01.000Z',
534
+ provider: 'openai',
535
+ model: 'gpt-4',
536
+ sessionId: 'session-cleanup',
537
+ sessionStartedAt: startedAt,
538
+ mode: 'standard',
539
+ sentBody: { messages: [{ role: 'user', content: 'hello' }] },
540
+ });
541
+ // First completion — uses the stored path, then (after fix) removes it
542
+ store.recordRequestComplete({
543
+ requestId,
544
+ timestamp: '2026-06-01T10:00:05.000Z',
545
+ provider: 'openai',
546
+ model: 'gpt-4',
547
+ sessionId: 'session-cleanup',
548
+ sessionStartedAt: startedAt,
549
+ mode: 'standard',
550
+ receivedSummary: { status: 200 },
551
+ });
552
+ // Second completion, same requestId, no fresh start — must fall back to #pathsFor
553
+ store.recordRequestComplete({
554
+ requestId,
555
+ timestamp: '2026-06-01T10:00:10.000Z',
556
+ provider: 'openai',
557
+ model: 'gpt-4',
558
+ sessionId: 'session-cleanup',
559
+ sessionStartedAt: startedAt,
560
+ mode: 'standard',
561
+ receivedSummary: { status: 200 },
562
+ });
563
+ const dayDir = path.join(rootDir, '2026-06-01');
564
+ const sessionDir = path.join(dayDir, '10-00-00_sessi');
565
+ // The file created by recordRequestStart holds sent + first received (2 records)
566
+ const startFile = path.join(sessionDir, '10-00-01.000Z_test-.jsonl');
567
+ t.true(fs.existsSync(startFile), 'start file should exist');
568
+ t.is(readRequestFile(startFile).length, 2, 'start file should have sent + first received');
569
+ // The second completion MUST write to a NEW file, not reuse the stored path
570
+ const secondFile = path.join(sessionDir, '10-00-10.000Z_test-.jsonl');
571
+ t.true(fs.existsSync(secondFile), 'second completion must create a new file, not reuse the old one');
572
+ const secondRecords = readRequestFile(secondFile);
573
+ t.is(secondRecords.length, 1, 'new file should have exactly one received record');
574
+ t.is(secondRecords[0]?.timestamp, '2026-06-01T10:00:10.000Z');
474
575
  });
475
576
  //# sourceMappingURL=provider-traffic.test.js.map