qlogicagent 0.1.0

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 (450) hide show
  1. package/README.md +45 -0
  2. package/dist/agent/agent.d.ts +44 -0
  3. package/dist/agent/agent.d.ts.map +1 -0
  4. package/dist/agent/agent.js +114 -0
  5. package/dist/agent/agent.js.map +1 -0
  6. package/dist/agent/tool-loop.d.ts +65 -0
  7. package/dist/agent/tool-loop.d.ts.map +1 -0
  8. package/dist/agent/tool-loop.js +576 -0
  9. package/dist/agent/tool-loop.js.map +1 -0
  10. package/dist/agent/types.d.ts +176 -0
  11. package/dist/agent/types.d.ts.map +1 -0
  12. package/dist/agent/types.js +15 -0
  13. package/dist/agent/types.js.map +1 -0
  14. package/dist/cli/main.d.ts +12 -0
  15. package/dist/cli/main.d.ts.map +1 -0
  16. package/dist/cli/main.js +24 -0
  17. package/dist/cli/main.js.map +1 -0
  18. package/dist/cli/stdio-server.d.ts +46 -0
  19. package/dist/cli/stdio-server.d.ts.map +1 -0
  20. package/dist/cli/stdio-server.js +464 -0
  21. package/dist/cli/stdio-server.js.map +1 -0
  22. package/dist/config/config.d.ts +18 -0
  23. package/dist/config/config.d.ts.map +1 -0
  24. package/dist/config/config.js +22 -0
  25. package/dist/config/config.js.map +1 -0
  26. package/dist/contracts/hooks.d.ts +121 -0
  27. package/dist/contracts/hooks.d.ts.map +1 -0
  28. package/dist/contracts/hooks.js +8 -0
  29. package/dist/contracts/hooks.js.map +1 -0
  30. package/dist/contracts/index.d.ts +11 -0
  31. package/dist/contracts/index.d.ts.map +1 -0
  32. package/dist/contracts/index.js +11 -0
  33. package/dist/contracts/index.js.map +1 -0
  34. package/dist/contracts/planner.d.ts +36 -0
  35. package/dist/contracts/planner.d.ts.map +1 -0
  36. package/dist/contracts/planner.js +3 -0
  37. package/dist/contracts/planner.js.map +1 -0
  38. package/dist/contracts/skill-candidate.d.ts +64 -0
  39. package/dist/contracts/skill-candidate.d.ts.map +1 -0
  40. package/dist/contracts/skill-candidate.js +196 -0
  41. package/dist/contracts/skill-candidate.js.map +1 -0
  42. package/dist/contracts/todo.d.ts +15 -0
  43. package/dist/contracts/todo.d.ts.map +1 -0
  44. package/dist/contracts/todo.js +10 -0
  45. package/dist/contracts/todo.js.map +1 -0
  46. package/dist/index.d.ts +14 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +16 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/llm/builtin-providers.d.ts +11 -0
  51. package/dist/llm/builtin-providers.d.ts.map +1 -0
  52. package/dist/llm/builtin-providers.js +532 -0
  53. package/dist/llm/builtin-providers.js.map +1 -0
  54. package/dist/llm/index.d.ts +16 -0
  55. package/dist/llm/index.d.ts.map +1 -0
  56. package/dist/llm/index.js +15 -0
  57. package/dist/llm/index.js.map +1 -0
  58. package/dist/llm/llm-client.d.ts +44 -0
  59. package/dist/llm/llm-client.d.ts.map +1 -0
  60. package/dist/llm/llm-client.js +68 -0
  61. package/dist/llm/llm-client.js.map +1 -0
  62. package/dist/llm/model-catalog.d.ts +54 -0
  63. package/dist/llm/model-catalog.d.ts.map +1 -0
  64. package/dist/llm/model-catalog.js +192 -0
  65. package/dist/llm/model-catalog.js.map +1 -0
  66. package/dist/llm/provider-def.d.ts +60 -0
  67. package/dist/llm/provider-def.d.ts.map +1 -0
  68. package/dist/llm/provider-def.js +13 -0
  69. package/dist/llm/provider-def.js.map +1 -0
  70. package/dist/llm/provider-registry.d.ts +55 -0
  71. package/dist/llm/provider-registry.d.ts.map +1 -0
  72. package/dist/llm/provider-registry.js +148 -0
  73. package/dist/llm/provider-registry.js.map +1 -0
  74. package/dist/llm/transport.d.ts +63 -0
  75. package/dist/llm/transport.d.ts.map +1 -0
  76. package/dist/llm/transport.js +28 -0
  77. package/dist/llm/transport.js.map +1 -0
  78. package/dist/llm/transports/anthropic-messages.d.ts +32 -0
  79. package/dist/llm/transports/anthropic-messages.d.ts.map +1 -0
  80. package/dist/llm/transports/anthropic-messages.js +294 -0
  81. package/dist/llm/transports/anthropic-messages.js.map +1 -0
  82. package/dist/llm/transports/openai-chat.d.ts +37 -0
  83. package/dist/llm/transports/openai-chat.d.ts.map +1 -0
  84. package/dist/llm/transports/openai-chat.js +166 -0
  85. package/dist/llm/transports/openai-chat.js.map +1 -0
  86. package/dist/orchestration/agent-registry.d.ts +42 -0
  87. package/dist/orchestration/agent-registry.d.ts.map +1 -0
  88. package/dist/orchestration/agent-registry.js +117 -0
  89. package/dist/orchestration/agent-registry.js.map +1 -0
  90. package/dist/orchestration/approval-aware-tool-plan.d.ts +33 -0
  91. package/dist/orchestration/approval-aware-tool-plan.d.ts.map +1 -0
  92. package/dist/orchestration/approval-aware-tool-plan.js +88 -0
  93. package/dist/orchestration/approval-aware-tool-plan.js.map +1 -0
  94. package/dist/orchestration/context-compression.d.ts +221 -0
  95. package/dist/orchestration/context-compression.d.ts.map +1 -0
  96. package/dist/orchestration/context-compression.js +584 -0
  97. package/dist/orchestration/context-compression.js.map +1 -0
  98. package/dist/orchestration/conversation-repair.d.ts +62 -0
  99. package/dist/orchestration/conversation-repair.d.ts.map +1 -0
  100. package/dist/orchestration/conversation-repair.js +430 -0
  101. package/dist/orchestration/conversation-repair.js.map +1 -0
  102. package/dist/orchestration/curator-scheduler.d.ts +120 -0
  103. package/dist/orchestration/curator-scheduler.d.ts.map +1 -0
  104. package/dist/orchestration/curator-scheduler.js +136 -0
  105. package/dist/orchestration/curator-scheduler.js.map +1 -0
  106. package/dist/orchestration/embedded-failover-policy.d.ts +111 -0
  107. package/dist/orchestration/embedded-failover-policy.d.ts.map +1 -0
  108. package/dist/orchestration/embedded-failover-policy.js +169 -0
  109. package/dist/orchestration/embedded-failover-policy.js.map +1 -0
  110. package/dist/orchestration/error-classification.d.ts +13 -0
  111. package/dist/orchestration/error-classification.d.ts.map +1 -0
  112. package/dist/orchestration/error-classification.js +78 -0
  113. package/dist/orchestration/error-classification.js.map +1 -0
  114. package/dist/orchestration/failover-classification.d.ts +9 -0
  115. package/dist/orchestration/failover-classification.d.ts.map +1 -0
  116. package/dist/orchestration/failover-classification.js +382 -0
  117. package/dist/orchestration/failover-classification.js.map +1 -0
  118. package/dist/orchestration/failover-error.d.ts +34 -0
  119. package/dist/orchestration/failover-error.d.ts.map +1 -0
  120. package/dist/orchestration/failover-error.js +199 -0
  121. package/dist/orchestration/failover-error.js.map +1 -0
  122. package/dist/orchestration/fork-subagent.d.ts +101 -0
  123. package/dist/orchestration/fork-subagent.d.ts.map +1 -0
  124. package/dist/orchestration/fork-subagent.js +99 -0
  125. package/dist/orchestration/fork-subagent.js.map +1 -0
  126. package/dist/orchestration/index.d.ts +121 -0
  127. package/dist/orchestration/index.d.ts.map +1 -0
  128. package/dist/orchestration/index.js +268 -0
  129. package/dist/orchestration/index.js.map +1 -0
  130. package/dist/orchestration/memory-flush-policy.d.ts +58 -0
  131. package/dist/orchestration/memory-flush-policy.d.ts.map +1 -0
  132. package/dist/orchestration/memory-flush-policy.js +86 -0
  133. package/dist/orchestration/memory-flush-policy.js.map +1 -0
  134. package/dist/orchestration/memory-provider.d.ts +15 -0
  135. package/dist/orchestration/memory-provider.d.ts.map +1 -0
  136. package/dist/orchestration/memory-provider.js +3 -0
  137. package/dist/orchestration/memory-provider.js.map +1 -0
  138. package/dist/orchestration/parallel-tool-calls.d.ts +42 -0
  139. package/dist/orchestration/parallel-tool-calls.d.ts.map +1 -0
  140. package/dist/orchestration/parallel-tool-calls.js +60 -0
  141. package/dist/orchestration/parallel-tool-calls.js.map +1 -0
  142. package/dist/orchestration/prompt-cache-strategy.d.ts +127 -0
  143. package/dist/orchestration/prompt-cache-strategy.d.ts.map +1 -0
  144. package/dist/orchestration/prompt-cache-strategy.js +229 -0
  145. package/dist/orchestration/prompt-cache-strategy.js.map +1 -0
  146. package/dist/orchestration/reactive-compact.d.ts +74 -0
  147. package/dist/orchestration/reactive-compact.d.ts.map +1 -0
  148. package/dist/orchestration/reactive-compact.js +79 -0
  149. package/dist/orchestration/reactive-compact.js.map +1 -0
  150. package/dist/orchestration/retry-loop.d.ts +23 -0
  151. package/dist/orchestration/retry-loop.d.ts.map +1 -0
  152. package/dist/orchestration/retry-loop.js +25 -0
  153. package/dist/orchestration/retry-loop.js.map +1 -0
  154. package/dist/orchestration/skill-candidate.d.ts +53 -0
  155. package/dist/orchestration/skill-candidate.d.ts.map +1 -0
  156. package/dist/orchestration/skill-candidate.js +142 -0
  157. package/dist/orchestration/skill-candidate.js.map +1 -0
  158. package/dist/orchestration/skill-consolidation.d.ts +124 -0
  159. package/dist/orchestration/skill-consolidation.d.ts.map +1 -0
  160. package/dist/orchestration/skill-consolidation.js +221 -0
  161. package/dist/orchestration/skill-consolidation.js.map +1 -0
  162. package/dist/orchestration/skill-improvement.d.ts +60 -0
  163. package/dist/orchestration/skill-improvement.d.ts.map +1 -0
  164. package/dist/orchestration/skill-improvement.js +67 -0
  165. package/dist/orchestration/skill-improvement.js.map +1 -0
  166. package/dist/orchestration/skill-similarity.d.ts +99 -0
  167. package/dist/orchestration/skill-similarity.d.ts.map +1 -0
  168. package/dist/orchestration/skill-similarity.js +132 -0
  169. package/dist/orchestration/skill-similarity.js.map +1 -0
  170. package/dist/orchestration/streaming-tool-executor.d.ts +74 -0
  171. package/dist/orchestration/streaming-tool-executor.d.ts.map +1 -0
  172. package/dist/orchestration/streaming-tool-executor.js +97 -0
  173. package/dist/orchestration/streaming-tool-executor.js.map +1 -0
  174. package/dist/orchestration/team-orchestration.d.ts +196 -0
  175. package/dist/orchestration/team-orchestration.d.ts.map +1 -0
  176. package/dist/orchestration/team-orchestration.js +370 -0
  177. package/dist/orchestration/team-orchestration.js.map +1 -0
  178. package/dist/orchestration/team-tool-loop-wiring.d.ts +93 -0
  179. package/dist/orchestration/team-tool-loop-wiring.d.ts.map +1 -0
  180. package/dist/orchestration/team-tool-loop-wiring.js +148 -0
  181. package/dist/orchestration/team-tool-loop-wiring.js.map +1 -0
  182. package/dist/orchestration/tool-choice-policy.d.ts +55 -0
  183. package/dist/orchestration/tool-choice-policy.d.ts.map +1 -0
  184. package/dist/orchestration/tool-choice-policy.js +165 -0
  185. package/dist/orchestration/tool-choice-policy.js.map +1 -0
  186. package/dist/orchestration/tool-loop-state.d.ts +51 -0
  187. package/dist/orchestration/tool-loop-state.d.ts.map +1 -0
  188. package/dist/orchestration/tool-loop-state.js +134 -0
  189. package/dist/orchestration/tool-loop-state.js.map +1 -0
  190. package/dist/orchestration/tool-schema.d.ts +40 -0
  191. package/dist/orchestration/tool-schema.d.ts.map +1 -0
  192. package/dist/orchestration/tool-schema.js +298 -0
  193. package/dist/orchestration/tool-schema.js.map +1 -0
  194. package/dist/orchestration/transcript-repair.d.ts +43 -0
  195. package/dist/orchestration/transcript-repair.d.ts.map +1 -0
  196. package/dist/orchestration/transcript-repair.js +427 -0
  197. package/dist/orchestration/transcript-repair.js.map +1 -0
  198. package/dist/orchestration/turn-loop-guard.d.ts +87 -0
  199. package/dist/orchestration/turn-loop-guard.d.ts.map +1 -0
  200. package/dist/orchestration/turn-loop-guard.js +93 -0
  201. package/dist/orchestration/turn-loop-guard.js.map +1 -0
  202. package/dist/orchestration/web-browser-policy.d.ts +18 -0
  203. package/dist/orchestration/web-browser-policy.d.ts.map +1 -0
  204. package/dist/orchestration/web-browser-policy.js +40 -0
  205. package/dist/orchestration/web-browser-policy.js.map +1 -0
  206. package/dist/runtime/context-compression.d.ts +62 -0
  207. package/dist/runtime/context-compression.d.ts.map +1 -0
  208. package/dist/runtime/context-compression.js +275 -0
  209. package/dist/runtime/context-compression.js.map +1 -0
  210. package/dist/runtime/hook-registry.d.ts +13 -0
  211. package/dist/runtime/hook-registry.d.ts.map +1 -0
  212. package/dist/runtime/hook-registry.js +54 -0
  213. package/dist/runtime/hook-registry.js.map +1 -0
  214. package/dist/runtime/memory-hooks.d.ts +24 -0
  215. package/dist/runtime/memory-hooks.d.ts.map +1 -0
  216. package/dist/runtime/memory-hooks.js +66 -0
  217. package/dist/runtime/memory-hooks.js.map +1 -0
  218. package/dist/runtime/tool-eligibility.d.ts +60 -0
  219. package/dist/runtime/tool-eligibility.d.ts.map +1 -0
  220. package/dist/runtime/tool-eligibility.js +112 -0
  221. package/dist/runtime/tool-eligibility.js.map +1 -0
  222. package/dist/skills/index.d.ts +109 -0
  223. package/dist/skills/index.d.ts.map +1 -0
  224. package/dist/skills/index.js +83 -0
  225. package/dist/skills/index.js.map +1 -0
  226. package/dist/skills/memory-extractor.d.ts +65 -0
  227. package/dist/skills/memory-extractor.d.ts.map +1 -0
  228. package/dist/skills/memory-extractor.js +174 -0
  229. package/dist/skills/memory-extractor.js.map +1 -0
  230. package/dist/skills/memory-query-tool.d.ts +44 -0
  231. package/dist/skills/memory-query-tool.d.ts.map +1 -0
  232. package/dist/skills/memory-query-tool.js +128 -0
  233. package/dist/skills/memory-query-tool.js.map +1 -0
  234. package/dist/skills/memory-store.d.ts +67 -0
  235. package/dist/skills/memory-store.d.ts.map +1 -0
  236. package/dist/skills/memory-store.js +229 -0
  237. package/dist/skills/memory-store.js.map +1 -0
  238. package/dist/skills/memory-tool.d.ts +68 -0
  239. package/dist/skills/memory-tool.d.ts.map +1 -0
  240. package/dist/skills/memory-tool.js +193 -0
  241. package/dist/skills/memory-tool.js.map +1 -0
  242. package/dist/skills/portable-tool.d.ts +72 -0
  243. package/dist/skills/portable-tool.d.ts.map +1 -0
  244. package/dist/skills/portable-tool.js +15 -0
  245. package/dist/skills/portable-tool.js.map +1 -0
  246. package/dist/skills/qmemory-adapter.d.ts +53 -0
  247. package/dist/skills/qmemory-adapter.d.ts.map +1 -0
  248. package/dist/skills/qmemory-adapter.js +166 -0
  249. package/dist/skills/qmemory-adapter.js.map +1 -0
  250. package/dist/skills/skill-frontmatter.d.ts +20 -0
  251. package/dist/skills/skill-frontmatter.d.ts.map +1 -0
  252. package/dist/skills/skill-frontmatter.js +345 -0
  253. package/dist/skills/skill-frontmatter.js.map +1 -0
  254. package/dist/skills/skill-guard.d.ts +24 -0
  255. package/dist/skills/skill-guard.d.ts.map +1 -0
  256. package/dist/skills/skill-guard.js +230 -0
  257. package/dist/skills/skill-guard.js.map +1 -0
  258. package/dist/skills/skill-loader.d.ts +17 -0
  259. package/dist/skills/skill-loader.d.ts.map +1 -0
  260. package/dist/skills/skill-loader.js +304 -0
  261. package/dist/skills/skill-loader.js.map +1 -0
  262. package/dist/skills/skill-source.d.ts +120 -0
  263. package/dist/skills/skill-source.d.ts.map +1 -0
  264. package/dist/skills/skill-source.js +127 -0
  265. package/dist/skills/skill-source.js.map +1 -0
  266. package/dist/skills/skill-types.d.ts +200 -0
  267. package/dist/skills/skill-types.d.ts.map +1 -0
  268. package/dist/skills/skill-types.js +7 -0
  269. package/dist/skills/skill-types.js.map +1 -0
  270. package/dist/skills/think-tool.d.ts +17 -0
  271. package/dist/skills/think-tool.d.ts.map +1 -0
  272. package/dist/skills/think-tool.js +60 -0
  273. package/dist/skills/think-tool.js.map +1 -0
  274. package/dist/skills/todo-tool.d.ts +64 -0
  275. package/dist/skills/todo-tool.d.ts.map +1 -0
  276. package/dist/skills/todo-tool.js +115 -0
  277. package/dist/skills/todo-tool.js.map +1 -0
  278. package/dist/skills/tools/agent-tool.d.ts +92 -0
  279. package/dist/skills/tools/agent-tool.d.ts.map +1 -0
  280. package/dist/skills/tools/agent-tool.js +143 -0
  281. package/dist/skills/tools/agent-tool.js.map +1 -0
  282. package/dist/skills/tools/apply-patch-tool.d.ts +30 -0
  283. package/dist/skills/tools/apply-patch-tool.d.ts.map +1 -0
  284. package/dist/skills/tools/apply-patch-tool.js +185 -0
  285. package/dist/skills/tools/apply-patch-tool.js.map +1 -0
  286. package/dist/skills/tools/ask-user-tool.d.ts +81 -0
  287. package/dist/skills/tools/ask-user-tool.d.ts.map +1 -0
  288. package/dist/skills/tools/ask-user-tool.js +122 -0
  289. package/dist/skills/tools/ask-user-tool.js.map +1 -0
  290. package/dist/skills/tools/brief-tool.d.ts +75 -0
  291. package/dist/skills/tools/brief-tool.d.ts.map +1 -0
  292. package/dist/skills/tools/brief-tool.js +96 -0
  293. package/dist/skills/tools/brief-tool.js.map +1 -0
  294. package/dist/skills/tools/browser-tool.d.ts +115 -0
  295. package/dist/skills/tools/browser-tool.d.ts.map +1 -0
  296. package/dist/skills/tools/browser-tool.js +156 -0
  297. package/dist/skills/tools/browser-tool.js.map +1 -0
  298. package/dist/skills/tools/checkpoint-tool.d.ts +67 -0
  299. package/dist/skills/tools/checkpoint-tool.d.ts.map +1 -0
  300. package/dist/skills/tools/checkpoint-tool.js +103 -0
  301. package/dist/skills/tools/checkpoint-tool.js.map +1 -0
  302. package/dist/skills/tools/config-tool.d.ts +64 -0
  303. package/dist/skills/tools/config-tool.d.ts.map +1 -0
  304. package/dist/skills/tools/config-tool.js +144 -0
  305. package/dist/skills/tools/config-tool.js.map +1 -0
  306. package/dist/skills/tools/cron-tool.d.ts +117 -0
  307. package/dist/skills/tools/cron-tool.d.ts.map +1 -0
  308. package/dist/skills/tools/cron-tool.js +176 -0
  309. package/dist/skills/tools/cron-tool.js.map +1 -0
  310. package/dist/skills/tools/edit-tool.d.ts +44 -0
  311. package/dist/skills/tools/edit-tool.d.ts.map +1 -0
  312. package/dist/skills/tools/edit-tool.js +71 -0
  313. package/dist/skills/tools/edit-tool.js.map +1 -0
  314. package/dist/skills/tools/exec-tool.d.ts +103 -0
  315. package/dist/skills/tools/exec-tool.d.ts.map +1 -0
  316. package/dist/skills/tools/exec-tool.js +134 -0
  317. package/dist/skills/tools/exec-tool.js.map +1 -0
  318. package/dist/skills/tools/image-generate-tool.d.ts +63 -0
  319. package/dist/skills/tools/image-generate-tool.d.ts.map +1 -0
  320. package/dist/skills/tools/image-generate-tool.js +68 -0
  321. package/dist/skills/tools/image-generate-tool.js.map +1 -0
  322. package/dist/skills/tools/instructions-tool.d.ts +104 -0
  323. package/dist/skills/tools/instructions-tool.d.ts.map +1 -0
  324. package/dist/skills/tools/instructions-tool.js +188 -0
  325. package/dist/skills/tools/instructions-tool.js.map +1 -0
  326. package/dist/skills/tools/lsp-tool.d.ts +154 -0
  327. package/dist/skills/tools/lsp-tool.d.ts.map +1 -0
  328. package/dist/skills/tools/lsp-tool.js +228 -0
  329. package/dist/skills/tools/lsp-tool.js.map +1 -0
  330. package/dist/skills/tools/mcp-client-types.d.ts +270 -0
  331. package/dist/skills/tools/mcp-client-types.d.ts.map +1 -0
  332. package/dist/skills/tools/mcp-client-types.js +54 -0
  333. package/dist/skills/tools/mcp-client-types.js.map +1 -0
  334. package/dist/skills/tools/mcp-tool.d.ts +250 -0
  335. package/dist/skills/tools/mcp-tool.d.ts.map +1 -0
  336. package/dist/skills/tools/mcp-tool.js +504 -0
  337. package/dist/skills/tools/mcp-tool.js.map +1 -0
  338. package/dist/skills/tools/memory-tool.d.ts +75 -0
  339. package/dist/skills/tools/memory-tool.d.ts.map +1 -0
  340. package/dist/skills/tools/memory-tool.js +89 -0
  341. package/dist/skills/tools/memory-tool.js.map +1 -0
  342. package/dist/skills/tools/monitor-tool.d.ts +114 -0
  343. package/dist/skills/tools/monitor-tool.d.ts.map +1 -0
  344. package/dist/skills/tools/monitor-tool.js +132 -0
  345. package/dist/skills/tools/monitor-tool.js.map +1 -0
  346. package/dist/skills/tools/music-generate-tool.d.ts +56 -0
  347. package/dist/skills/tools/music-generate-tool.d.ts.map +1 -0
  348. package/dist/skills/tools/music-generate-tool.js +63 -0
  349. package/dist/skills/tools/music-generate-tool.js.map +1 -0
  350. package/dist/skills/tools/notify-tool.d.ts +54 -0
  351. package/dist/skills/tools/notify-tool.d.ts.map +1 -0
  352. package/dist/skills/tools/notify-tool.js +63 -0
  353. package/dist/skills/tools/notify-tool.js.map +1 -0
  354. package/dist/skills/tools/patch-tool.d.ts +46 -0
  355. package/dist/skills/tools/patch-tool.d.ts.map +1 -0
  356. package/dist/skills/tools/patch-tool.js +506 -0
  357. package/dist/skills/tools/patch-tool.js.map +1 -0
  358. package/dist/skills/tools/pdf-tool.d.ts +67 -0
  359. package/dist/skills/tools/pdf-tool.d.ts.map +1 -0
  360. package/dist/skills/tools/pdf-tool.js +89 -0
  361. package/dist/skills/tools/pdf-tool.js.map +1 -0
  362. package/dist/skills/tools/plan-mode-tool.d.ts +60 -0
  363. package/dist/skills/tools/plan-mode-tool.d.ts.map +1 -0
  364. package/dist/skills/tools/plan-mode-tool.js +123 -0
  365. package/dist/skills/tools/plan-mode-tool.js.map +1 -0
  366. package/dist/skills/tools/read-tool.d.ts +52 -0
  367. package/dist/skills/tools/read-tool.d.ts.map +1 -0
  368. package/dist/skills/tools/read-tool.js +85 -0
  369. package/dist/skills/tools/read-tool.js.map +1 -0
  370. package/dist/skills/tools/repl-tool.d.ts +71 -0
  371. package/dist/skills/tools/repl-tool.d.ts.map +1 -0
  372. package/dist/skills/tools/repl-tool.js +70 -0
  373. package/dist/skills/tools/repl-tool.js.map +1 -0
  374. package/dist/skills/tools/search-tool.d.ts +113 -0
  375. package/dist/skills/tools/search-tool.d.ts.map +1 -0
  376. package/dist/skills/tools/search-tool.js +226 -0
  377. package/dist/skills/tools/search-tool.js.map +1 -0
  378. package/dist/skills/tools/send-message-tool.d.ts +52 -0
  379. package/dist/skills/tools/send-message-tool.d.ts.map +1 -0
  380. package/dist/skills/tools/send-message-tool.js +77 -0
  381. package/dist/skills/tools/send-message-tool.js.map +1 -0
  382. package/dist/skills/tools/skill-list-tool.d.ts +34 -0
  383. package/dist/skills/tools/skill-list-tool.d.ts.map +1 -0
  384. package/dist/skills/tools/skill-list-tool.js +55 -0
  385. package/dist/skills/tools/skill-list-tool.js.map +1 -0
  386. package/dist/skills/tools/skill-manage-tool.d.ts +74 -0
  387. package/dist/skills/tools/skill-manage-tool.d.ts.map +1 -0
  388. package/dist/skills/tools/skill-manage-tool.js +154 -0
  389. package/dist/skills/tools/skill-manage-tool.js.map +1 -0
  390. package/dist/skills/tools/skill-view-tool.d.ts +38 -0
  391. package/dist/skills/tools/skill-view-tool.d.ts.map +1 -0
  392. package/dist/skills/tools/skill-view-tool.js +73 -0
  393. package/dist/skills/tools/skill-view-tool.js.map +1 -0
  394. package/dist/skills/tools/sleep-tool.d.ts +50 -0
  395. package/dist/skills/tools/sleep-tool.d.ts.map +1 -0
  396. package/dist/skills/tools/sleep-tool.js +82 -0
  397. package/dist/skills/tools/sleep-tool.js.map +1 -0
  398. package/dist/skills/tools/structured-output-tool.d.ts +117 -0
  399. package/dist/skills/tools/structured-output-tool.d.ts.map +1 -0
  400. package/dist/skills/tools/structured-output-tool.js +177 -0
  401. package/dist/skills/tools/structured-output-tool.js.map +1 -0
  402. package/dist/skills/tools/task-tool.d.ts +105 -0
  403. package/dist/skills/tools/task-tool.d.ts.map +1 -0
  404. package/dist/skills/tools/task-tool.js +162 -0
  405. package/dist/skills/tools/task-tool.js.map +1 -0
  406. package/dist/skills/tools/team-tool.d.ts +90 -0
  407. package/dist/skills/tools/team-tool.d.ts.map +1 -0
  408. package/dist/skills/tools/team-tool.js +106 -0
  409. package/dist/skills/tools/team-tool.js.map +1 -0
  410. package/dist/skills/tools/tool-search-tool.d.ts +52 -0
  411. package/dist/skills/tools/tool-search-tool.d.ts.map +1 -0
  412. package/dist/skills/tools/tool-search-tool.js +111 -0
  413. package/dist/skills/tools/tool-search-tool.js.map +1 -0
  414. package/dist/skills/tools/tts-tool.d.ts +39 -0
  415. package/dist/skills/tools/tts-tool.d.ts.map +1 -0
  416. package/dist/skills/tools/tts-tool.js +46 -0
  417. package/dist/skills/tools/tts-tool.js.map +1 -0
  418. package/dist/skills/tools/video-edit-tool.d.ts +70 -0
  419. package/dist/skills/tools/video-edit-tool.d.ts.map +1 -0
  420. package/dist/skills/tools/video-edit-tool.js +75 -0
  421. package/dist/skills/tools/video-edit-tool.js.map +1 -0
  422. package/dist/skills/tools/video-generate-tool.d.ts +63 -0
  423. package/dist/skills/tools/video-generate-tool.d.ts.map +1 -0
  424. package/dist/skills/tools/video-generate-tool.js +67 -0
  425. package/dist/skills/tools/video-generate-tool.js.map +1 -0
  426. package/dist/skills/tools/video-merge-tool.d.ts +106 -0
  427. package/dist/skills/tools/video-merge-tool.d.ts.map +1 -0
  428. package/dist/skills/tools/video-merge-tool.js +93 -0
  429. package/dist/skills/tools/video-merge-tool.js.map +1 -0
  430. package/dist/skills/tools/video-upscale-tool.d.ts +46 -0
  431. package/dist/skills/tools/video-upscale-tool.d.ts.map +1 -0
  432. package/dist/skills/tools/video-upscale-tool.js +53 -0
  433. package/dist/skills/tools/video-upscale-tool.js.map +1 -0
  434. package/dist/skills/tools/web-fetch-tool.d.ts +79 -0
  435. package/dist/skills/tools/web-fetch-tool.d.ts.map +1 -0
  436. package/dist/skills/tools/web-fetch-tool.js +93 -0
  437. package/dist/skills/tools/web-fetch-tool.js.map +1 -0
  438. package/dist/skills/tools/web-search-tool.d.ts +58 -0
  439. package/dist/skills/tools/web-search-tool.d.ts.map +1 -0
  440. package/dist/skills/tools/web-search-tool.js +87 -0
  441. package/dist/skills/tools/web-search-tool.js.map +1 -0
  442. package/dist/skills/tools/worktree-tool.d.ts +70 -0
  443. package/dist/skills/tools/worktree-tool.d.ts.map +1 -0
  444. package/dist/skills/tools/worktree-tool.js +148 -0
  445. package/dist/skills/tools/worktree-tool.js.map +1 -0
  446. package/dist/skills/tools/write-tool.d.ts +46 -0
  447. package/dist/skills/tools/write-tool.d.ts.map +1 -0
  448. package/dist/skills/tools/write-tool.js +82 -0
  449. package/dist/skills/tools/write-tool.js.map +1 -0
  450. package/package.json +41 -0
@@ -0,0 +1,427 @@
1
+ const TOOL_CALL_NAME_MAX_CHARS = 64;
2
+ const TOOL_CALL_NAME_RE = /^[A-Za-z0-9_-]+$/;
3
+ const TOOL_CALL_TYPES = new Set(["toolCall", "toolUse", "functionCall"]);
4
+ const TRANSIENT_ERROR_RE = /rate limit|rate.limited|overloaded|too many requests|quota exceeded|timed?\s*out|billing|insufficient.*(balance|quota|credit)|try again later/i;
5
+ function isRawToolCallBlock(block) {
6
+ if (!block || typeof block !== "object") {
7
+ return false;
8
+ }
9
+ const type = block.type;
10
+ return typeof type === "string" && TOOL_CALL_TYPES.has(type);
11
+ }
12
+ function hasToolCallInput(block) {
13
+ const hasInput = "input" in block ? block.input !== undefined && block.input !== null : false;
14
+ const hasArguments = "arguments" in block ? block.arguments !== undefined && block.arguments !== null : false;
15
+ return hasInput || hasArguments;
16
+ }
17
+ function hasNonEmptyStringField(value) {
18
+ return typeof value === "string" && value.trim().length > 0;
19
+ }
20
+ function hasToolCallId(block) {
21
+ return hasNonEmptyStringField(block.id);
22
+ }
23
+ function trimNonEmptyString(value) {
24
+ if (typeof value !== "string") {
25
+ return undefined;
26
+ }
27
+ const trimmed = value.trim();
28
+ return trimmed || undefined;
29
+ }
30
+ function normalizeAllowedToolNames(allowedToolNames) {
31
+ if (!allowedToolNames) {
32
+ return null;
33
+ }
34
+ const normalized = new Set();
35
+ for (const name of allowedToolNames) {
36
+ if (typeof name !== "string") {
37
+ continue;
38
+ }
39
+ const trimmed = name.trim();
40
+ if (trimmed) {
41
+ normalized.add(trimmed.toLowerCase());
42
+ }
43
+ }
44
+ return normalized.size > 0 ? normalized : null;
45
+ }
46
+ function hasToolCallName(block, allowedToolNames) {
47
+ if (typeof block.name !== "string") {
48
+ return false;
49
+ }
50
+ const trimmed = block.name.trim();
51
+ if (!trimmed) {
52
+ return false;
53
+ }
54
+ if (trimmed.length > TOOL_CALL_NAME_MAX_CHARS || !TOOL_CALL_NAME_RE.test(trimmed)) {
55
+ return false;
56
+ }
57
+ if (!allowedToolNames) {
58
+ return true;
59
+ }
60
+ return allowedToolNames.has(trimmed.toLowerCase());
61
+ }
62
+ function redactSessionsSpawnAttachmentsArgs(value) {
63
+ if (!value || typeof value !== "object") {
64
+ return value;
65
+ }
66
+ const record = value;
67
+ const raw = record.attachments;
68
+ if (!Array.isArray(raw)) {
69
+ return value;
70
+ }
71
+ const next = raw.map((item) => {
72
+ if (!item || typeof item !== "object") {
73
+ return item;
74
+ }
75
+ const attachment = item;
76
+ if (!Object.hasOwn(attachment, "content")) {
77
+ return item;
78
+ }
79
+ const { content: _content, ...rest } = attachment;
80
+ return { ...rest, content: "__OPENCLAW_REDACTED__" };
81
+ });
82
+ return { ...record, attachments: next };
83
+ }
84
+ function sanitizeToolCallBlock(block) {
85
+ const rawName = typeof block.name === "string" ? block.name : undefined;
86
+ const trimmedName = rawName?.trim();
87
+ const hasTrimmedName = typeof trimmedName === "string" && trimmedName.length > 0;
88
+ const normalizedName = hasTrimmedName ? trimmedName : undefined;
89
+ const nameChanged = hasTrimmedName && rawName !== trimmedName;
90
+ const isDelegatedSessionSpawnToolCall = normalizedName?.toLowerCase() === "sessions_spawn";
91
+ if (!isDelegatedSessionSpawnToolCall) {
92
+ if (!nameChanged) {
93
+ return block;
94
+ }
95
+ return { ...block, name: normalizedName };
96
+ }
97
+ const nextArgs = redactSessionsSpawnAttachmentsArgs(block.arguments);
98
+ const nextInput = redactSessionsSpawnAttachmentsArgs(block.input);
99
+ if (nextArgs === block.arguments && nextInput === block.input && !nameChanged) {
100
+ return block;
101
+ }
102
+ const next = { ...block };
103
+ if (nameChanged && normalizedName) {
104
+ next.name = normalizedName;
105
+ }
106
+ if (nextArgs !== block.arguments || Object.hasOwn(block, "arguments")) {
107
+ next.arguments = nextArgs;
108
+ }
109
+ if (nextInput !== block.input || Object.hasOwn(block, "input")) {
110
+ next.input = nextInput;
111
+ }
112
+ return next;
113
+ }
114
+ function normalizeToolResultName(message, fallbackName) {
115
+ const rawToolName = message.toolName;
116
+ const normalizedToolName = trimNonEmptyString(rawToolName);
117
+ if (normalizedToolName) {
118
+ if (rawToolName === normalizedToolName) {
119
+ return message;
120
+ }
121
+ return { ...message, toolName: normalizedToolName };
122
+ }
123
+ const normalizedFallback = trimNonEmptyString(fallbackName);
124
+ if (normalizedFallback) {
125
+ return { ...message, toolName: normalizedFallback };
126
+ }
127
+ if (typeof rawToolName === "string") {
128
+ return { ...message, toolName: "unknown" };
129
+ }
130
+ return message;
131
+ }
132
+ function extractToolCallsFromAssistantLike(message) {
133
+ const content = message.content;
134
+ if (!Array.isArray(content)) {
135
+ return [];
136
+ }
137
+ const toolCalls = [];
138
+ for (const block of content) {
139
+ if (!block || typeof block !== "object") {
140
+ continue;
141
+ }
142
+ const record = block;
143
+ if (typeof record.id !== "string" || !record.id) {
144
+ continue;
145
+ }
146
+ if (typeof record.type === "string" && TOOL_CALL_TYPES.has(record.type)) {
147
+ toolCalls.push({
148
+ id: record.id,
149
+ name: typeof record.name === "string" ? record.name : undefined,
150
+ });
151
+ }
152
+ }
153
+ return toolCalls;
154
+ }
155
+ function extractToolResultIdLike(message) {
156
+ if (typeof message.toolCallId === "string" && message.toolCallId) {
157
+ return message.toolCallId;
158
+ }
159
+ if (typeof message.toolUseId === "string" && message.toolUseId) {
160
+ return message.toolUseId;
161
+ }
162
+ return null;
163
+ }
164
+ function defaultMissingToolResult(params) {
165
+ return {
166
+ role: "toolResult",
167
+ toolCallId: params.toolCallId,
168
+ toolName: params.toolName ?? "unknown",
169
+ content: [
170
+ {
171
+ type: "text",
172
+ text: "[qlogicagent] missing tool result in session history; inserted synthetic error result for transcript repair.",
173
+ },
174
+ ],
175
+ isError: true,
176
+ timestamp: 0,
177
+ };
178
+ }
179
+ export function stripToolResultDetails(messages) {
180
+ let touched = false;
181
+ const out = [];
182
+ for (const message of messages) {
183
+ if (!message || typeof message !== "object" || message.role !== "toolResult") {
184
+ out.push(message);
185
+ continue;
186
+ }
187
+ if (!("details" in message)) {
188
+ out.push(message);
189
+ continue;
190
+ }
191
+ const sanitized = { ...message };
192
+ delete sanitized.details;
193
+ touched = true;
194
+ out.push(sanitized);
195
+ }
196
+ return touched ? out : [...messages];
197
+ }
198
+ export function repairToolCallInputs(messages, options) {
199
+ let droppedToolCalls = 0;
200
+ let droppedAssistantMessages = 0;
201
+ let changed = false;
202
+ const out = [];
203
+ const allowedToolNames = normalizeAllowedToolNames(options?.allowedToolNames);
204
+ for (const message of messages) {
205
+ if (!message || typeof message !== "object") {
206
+ out.push(message);
207
+ continue;
208
+ }
209
+ if (message.role !== "assistant" || !Array.isArray(message.content)) {
210
+ out.push(message);
211
+ continue;
212
+ }
213
+ const nextContent = [];
214
+ let droppedInMessage = 0;
215
+ let messageChanged = false;
216
+ for (const block of message.content) {
217
+ if (isRawToolCallBlock(block) &&
218
+ (!hasToolCallInput(block) ||
219
+ !hasToolCallId(block) ||
220
+ !hasToolCallName(block, allowedToolNames))) {
221
+ droppedToolCalls += 1;
222
+ droppedInMessage += 1;
223
+ changed = true;
224
+ messageChanged = true;
225
+ continue;
226
+ }
227
+ if (isRawToolCallBlock(block)) {
228
+ const blockName = typeof block.name === "string" ? block.name.trim() : undefined;
229
+ if (blockName?.toLowerCase() === "sessions_spawn") {
230
+ const sanitized = sanitizeToolCallBlock(block);
231
+ if (sanitized !== block) {
232
+ changed = true;
233
+ messageChanged = true;
234
+ }
235
+ nextContent.push(sanitized);
236
+ continue;
237
+ }
238
+ if (typeof block.name === "string") {
239
+ const trimmedName = block.name.trim();
240
+ if (trimmedName && trimmedName !== block.name) {
241
+ nextContent.push({ ...block, name: trimmedName });
242
+ changed = true;
243
+ messageChanged = true;
244
+ continue;
245
+ }
246
+ }
247
+ }
248
+ nextContent.push(block);
249
+ }
250
+ if (droppedInMessage > 0) {
251
+ if (nextContent.length === 0) {
252
+ droppedAssistantMessages += 1;
253
+ changed = true;
254
+ continue;
255
+ }
256
+ out.push({ ...message, content: nextContent });
257
+ continue;
258
+ }
259
+ if (messageChanged) {
260
+ out.push({ ...message, content: nextContent });
261
+ continue;
262
+ }
263
+ out.push(message);
264
+ }
265
+ return {
266
+ messages: changed ? out : [...messages],
267
+ droppedToolCalls,
268
+ droppedAssistantMessages,
269
+ };
270
+ }
271
+ export function sanitizeToolCallInputs(messages, options) {
272
+ return repairToolCallInputs(messages, options).messages;
273
+ }
274
+ export function repairToolUseResultPairing(messages, options) {
275
+ const out = [];
276
+ const added = [];
277
+ const seenToolResultIds = new Set();
278
+ let droppedDuplicateCount = 0;
279
+ let droppedOrphanCount = 0;
280
+ let moved = false;
281
+ let changed = false;
282
+ const createMissingToolResult = options?.createMissingToolResult ?? (defaultMissingToolResult);
283
+ const pushToolResult = (message) => {
284
+ const id = extractToolResultIdLike(message);
285
+ if (id && seenToolResultIds.has(id)) {
286
+ droppedDuplicateCount += 1;
287
+ changed = true;
288
+ return;
289
+ }
290
+ if (id) {
291
+ seenToolResultIds.add(id);
292
+ }
293
+ out.push(message);
294
+ };
295
+ for (let i = 0; i < messages.length; i += 1) {
296
+ const message = messages[i];
297
+ if (!message || typeof message !== "object") {
298
+ out.push(message);
299
+ continue;
300
+ }
301
+ if (message.role !== "assistant") {
302
+ if (message.role !== "toolResult") {
303
+ out.push(message);
304
+ }
305
+ else {
306
+ droppedOrphanCount += 1;
307
+ changed = true;
308
+ }
309
+ continue;
310
+ }
311
+ const stopReason = message.stopReason;
312
+ if (stopReason === "error" || stopReason === "aborted") {
313
+ out.push(message);
314
+ continue;
315
+ }
316
+ const toolCalls = extractToolCallsFromAssistantLike(message);
317
+ if (toolCalls.length === 0) {
318
+ out.push(message);
319
+ continue;
320
+ }
321
+ const toolCallIds = new Set(toolCalls.map((toolCall) => toolCall.id));
322
+ const toolCallNamesById = new Map(toolCalls.map((toolCall) => [toolCall.id, toolCall.name]));
323
+ const spanResultsById = new Map();
324
+ const remainder = [];
325
+ let j = i + 1;
326
+ for (; j < messages.length; j += 1) {
327
+ const next = messages[j];
328
+ if (!next || typeof next !== "object") {
329
+ remainder.push(next);
330
+ continue;
331
+ }
332
+ if (next.role === "assistant") {
333
+ break;
334
+ }
335
+ if (next.role === "toolResult") {
336
+ const id = extractToolResultIdLike(next);
337
+ if (id && toolCallIds.has(id)) {
338
+ if (seenToolResultIds.has(id)) {
339
+ droppedDuplicateCount += 1;
340
+ changed = true;
341
+ continue;
342
+ }
343
+ const normalizedToolResult = normalizeToolResultName(next, toolCallNamesById.get(id));
344
+ if (normalizedToolResult !== next) {
345
+ changed = true;
346
+ }
347
+ if (!spanResultsById.has(id)) {
348
+ spanResultsById.set(id, normalizedToolResult);
349
+ }
350
+ continue;
351
+ }
352
+ }
353
+ if (next.role !== "toolResult") {
354
+ remainder.push(next);
355
+ }
356
+ else {
357
+ droppedOrphanCount += 1;
358
+ changed = true;
359
+ }
360
+ }
361
+ out.push(message);
362
+ if (spanResultsById.size > 0 && remainder.length > 0) {
363
+ moved = true;
364
+ changed = true;
365
+ }
366
+ for (const call of toolCalls) {
367
+ const existing = spanResultsById.get(call.id);
368
+ if (existing) {
369
+ pushToolResult(existing);
370
+ }
371
+ else {
372
+ const missing = createMissingToolResult({
373
+ toolCallId: call.id,
374
+ toolName: call.name,
375
+ });
376
+ added.push(missing);
377
+ changed = true;
378
+ pushToolResult(missing);
379
+ }
380
+ }
381
+ for (const rem of remainder) {
382
+ out.push(rem);
383
+ }
384
+ i = j - 1;
385
+ }
386
+ const changedOrMoved = changed || moved;
387
+ return {
388
+ messages: changedOrMoved ? out : [...messages],
389
+ added,
390
+ droppedDuplicateCount,
391
+ droppedOrphanCount,
392
+ moved: changedOrMoved,
393
+ };
394
+ }
395
+ export function sanitizeToolUseResultPairing(messages, options) {
396
+ return repairToolUseResultPairing(messages, options).messages;
397
+ }
398
+ export function stripTransientErrorMessages(messages) {
399
+ let changed = false;
400
+ const out = [];
401
+ for (const message of messages) {
402
+ if (!message || typeof message !== "object") {
403
+ out.push(message);
404
+ continue;
405
+ }
406
+ if (message.role !== "assistant" || message.stopReason !== "error") {
407
+ out.push(message);
408
+ continue;
409
+ }
410
+ const content = message.content;
411
+ const text = typeof content === "string"
412
+ ? content
413
+ : Array.isArray(content)
414
+ ? content
415
+ .filter((block) => block.type === "text")
416
+ .map((block) => block.text ?? "")
417
+ .join(" ")
418
+ : "";
419
+ if (!TRANSIENT_ERROR_RE.test(text)) {
420
+ out.push(message);
421
+ continue;
422
+ }
423
+ changed = true;
424
+ }
425
+ return changed ? out : [...messages];
426
+ }
427
+ //# sourceMappingURL=transcript-repair.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcript-repair.js","sourceRoot":"","sources":["../../src/orchestration/transcript-repair.ts"],"names":[],"mappings":"AAuCA,MAAM,wBAAwB,GAAG,EAAE,CAAC;AACpC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAC7C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC;AACzE,MAAM,kBAAkB,GACtB,gJAAgJ,CAAC;AAUnJ,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAuB;IAC/C,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9F,MAAM,YAAY,GAChB,WAAW,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3F,OAAO,QAAQ,IAAI,YAAY,CAAC;AAClC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,aAAa,CAAC,KAAuB;IAC5C,OAAO,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,yBAAyB,CAAC,gBAAmC;IACpE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE,CAAC;QACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,KAAuB,EAAE,gBAAoC;IACpF,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,wBAAwB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAc;IACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,UAAU,GAAG,IAA+B,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC;QAClD,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAuB;IACpD,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,WAAW,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACjF,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;IAChE,MAAM,WAAW,GAAG,cAAc,IAAI,OAAO,KAAK,WAAW,CAAC;IAC9D,MAAM,+BAA+B,GAAG,cAAc,EAAE,WAAW,EAAE,KAAK,gBAAgB,CAAC;IAE3F,IAAI,CAAC,+BAA+B,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAI,KAAiC,EAAE,IAAI,EAAE,cAAc,EAAsB,CAAC;IAC7F,CAAC;IAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,kCAAkC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAClE,IAAI,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,EAAE,GAAI,KAAiC,EAAE,CAAC;IACvD,IAAI,WAAW,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;IACD,IAAI,QAAQ,KAAK,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,CAAC;QACtE,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IACD,IAAI,SAAS,KAAK,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;IACD,OAAO,IAAwB,CAAC;AAClC,CAAC;AAED,SAAS,uBAAuB,CAC9B,OAAiB,EACjB,YAAqB;IAErB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,WAAW,KAAK,kBAAkB,EAAE,CAAC;YACvC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAc,CAAC;IAClE,CAAC;IAED,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAc,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACpC,OAAO,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAc,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iCAAiC,CACxC,OAAiB;IAEjB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAA6B,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,KAAyD,CAAC;QACzE,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACxE,SAAS,CAAC,IAAI,CAAC;gBACb,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,IAAI,EAAE,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAChE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,uBAAuB,CAAyC,OAAiB;IACxF,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACjE,OAAO,OAAO,CAAC,UAAU,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QAC/D,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,wBAAwB,CAAyC,MAGzE;IACC,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;QACtC,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,8GAA8G;aACrH;SACF;QACD,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC;KACD,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAA6B;IAE7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,EAAE,GAAI,OAAkB,EAA2B,CAAC;QACtE,OAAO,SAAS,CAAC,OAAO,CAAC;QACzB,OAAO,GAAG,IAAI,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,SAAqB,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAA6B,EAC7B,OAAoC;IAEpC,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,wBAAwB,GAAG,CAAC,CAAC;IACjC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,gBAAgB,GAAG,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAE9E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IACE,kBAAkB,CAAC,KAAK,CAAC;gBACzB,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC;oBACvB,CAAC,aAAa,CAAC,KAAK,CAAC;oBACrB,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,EAC5C,CAAC;gBACD,gBAAgB,IAAI,CAAC,CAAC;gBACtB,gBAAgB,IAAI,CAAC,CAAC;gBACtB,OAAO,GAAG,IAAI,CAAC;gBACf,cAAc,GAAG,IAAI,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBACjF,IAAI,SAAS,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,CAAC;oBAClD,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;oBAC/C,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;wBACxB,OAAO,GAAG,IAAI,CAAC;wBACf,cAAc,GAAG,IAAI,CAAC;oBACxB,CAAC;oBACD,WAAW,CAAC,IAAI,CAAC,SAAyB,CAAC,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACnC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACtC,IAAI,WAAW,IAAI,WAAW,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;wBAC9C,WAAW,CAAC,IAAI,CAAC,EAAE,GAAI,KAAgB,EAAE,IAAI,EAAE,WAAW,EAAkB,CAAC,CAAC;wBAC9E,OAAO,GAAG,IAAI,CAAC;wBACf,cAAc,GAAG,IAAI,CAAC;wBACtB,SAAS;oBACX,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACzB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,wBAAwB,IAAI,CAAC,CAAC;gBAC9B,OAAO,GAAG,IAAI,CAAC;gBACf,SAAS;YACX,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAc,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QAED,IAAI,cAAc,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAc,CAAC,CAAC;YAC3D,SAAS;QACX,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QACvC,gBAAgB;QAChB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAA6B,EAC7B,OAAoC;IAEpC,OAAO,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA6B,EAC7B,OAAwC;IAExC,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,IAAI,qBAAqB,GAAG,CAAC,CAAC;IAC9B,IAAI,kBAAkB,GAAG,CAAC,CAAC;IAC3B,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,uBAAuB,GAAG,OAAO,EAAE,uBAAuB,KAAI,wBAAkC,CAAA,CAAC;IAEvG,MAAM,cAAc,GAAG,CAAC,OAAiB,EAAE,EAAE;QAC3C,MAAM,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,qBAAqB,IAAI,CAAC,CAAC;YAC3B,OAAO,GAAG,IAAI,CAAC;YACf,OAAO;QACT,CAAC;QACD,IAAI,EAAE,EAAE,CAAC;YACP,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,IAAI,OAAO,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,kBAAkB,IAAI,CAAC,CAAC;gBACxB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,iCAAiC,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAU,CAAC,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,IAAI,GAAG,EAAoB,CAAC;QACpD,MAAM,SAAS,GAAe,EAAE,CAAC;QAEjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM;YACR,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBACzC,IAAI,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC9B,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC9B,qBAAqB,IAAI,CAAC,CAAC;wBAC3B,OAAO,GAAG,IAAI,CAAC;wBACf,SAAS;oBACX,CAAC;oBACD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACtF,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;wBAClC,OAAO,GAAG,IAAI,CAAC;oBACjB,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC7B,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,oBAAoB,CAAC,CAAC;oBAChD,CAAC;oBACD,SAAS;gBACX,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,kBAAkB,IAAI,CAAC,CAAC;gBACxB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElB,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,QAAQ,EAAE,CAAC;gBACb,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,uBAAuB,CAAC;oBACtC,UAAU,EAAE,IAAI,CAAC,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,IAAI;iBACpB,CAAC,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QACD,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,CAAC;IACxC,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;QAC9C,KAAK;QACL,qBAAqB;QACrB,kBAAkB;QAClB,KAAK,EAAE,cAAc;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,QAA6B,EAC7B,OAAwC;IAExC,OAAO,0BAA0B,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,QAA6B;IAE7B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,GAAG,GAAe,EAAE,CAAC;IAC3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,IAAI,GACR,OAAO,OAAO,KAAK,QAAQ;YACzB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACtB,CAAC,CAAE,OAAmD;qBACjD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;qBACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;qBAChC,IAAI,CAAC,GAAG,CAAC;gBACd,CAAC,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClB,SAAS;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Turn Loop Guard — Abort signal + token budget warning for preventive termination.
3
+ *
4
+ * Aligned with Claude Code's multi-condition termination:
5
+ * 1. AbortSignal from user cancellation
6
+ * 2. Token budget pre-check (don't send API call if over budget)
7
+ * 3. max_output_tokens escalation on truncation
8
+ * 4. Prompt-too-long reactive compact trigger
9
+ */
10
+ export interface TurnLoopGuardConfig {
11
+ /** Context window size in tokens. */
12
+ contextWindowTokens: number;
13
+ /** Buffer reserved for response (default: 13000). */
14
+ responseBufferTokens: number;
15
+ /** Max output tokens for current model. */
16
+ maxOutputTokens: number;
17
+ /** Abort signal for user cancellation. */
18
+ abortSignal?: AbortSignal;
19
+ /** Whether reactive compact is available. */
20
+ reactiveCompactEnabled: boolean;
21
+ /** Whether max_output_tokens escalation is allowed. */
22
+ outputEscalationEnabled: boolean;
23
+ }
24
+ export type TokenWarningState = {
25
+ level: "ok";
26
+ } | {
27
+ level: "warning";
28
+ usagePercent: number;
29
+ remainingTokens: number;
30
+ } | {
31
+ level: "blocking";
32
+ usagePercent: number;
33
+ reason: "prompt_too_long" | "budget_exhausted";
34
+ };
35
+ export interface TurnLoopGuardState {
36
+ /** Current accumulated prompt tokens. */
37
+ promptTokens: number;
38
+ /** Whether reactive compact has already been attempted this turn. */
39
+ hasAttemptedReactiveCompact: boolean;
40
+ /** Current max_output_tokens (may escalate). */
41
+ currentMaxOutputTokens: number;
42
+ /** Number of consecutive max_tokens truncations. */
43
+ consecutiveTruncations: number;
44
+ /** Whether the turn has been aborted. */
45
+ aborted: boolean;
46
+ }
47
+ /** Initial guard state. */
48
+ export declare function createTurnLoopGuardState(config: TurnLoopGuardConfig): TurnLoopGuardState;
49
+ /**
50
+ * Calculate token warning state before making an API call.
51
+ * If level is "blocking", do NOT send the API call.
52
+ */
53
+ export declare function calculateTokenWarningState(state: TurnLoopGuardState, config: TurnLoopGuardConfig): TokenWarningState;
54
+ /**
55
+ * Handle API error and determine recovery action.
56
+ */
57
+ export type ApiErrorRecovery = {
58
+ action: "reactive_compact";
59
+ } | {
60
+ action: "escalate_output_tokens";
61
+ newMax: number;
62
+ } | {
63
+ action: "retry";
64
+ reason: string;
65
+ } | {
66
+ action: "abort";
67
+ reason: string;
68
+ };
69
+ export declare function resolveApiErrorRecovery(error: {
70
+ type?: string;
71
+ status?: number;
72
+ message?: string;
73
+ }, state: TurnLoopGuardState, config: TurnLoopGuardConfig): ApiErrorRecovery;
74
+ /**
75
+ * Handle finish_reason === "max_tokens" — escalate max_output_tokens.
76
+ *
77
+ * CC pattern: double the output token budget up to model max.
78
+ */
79
+ export declare function resolveOutputTokenEscalation(state: TurnLoopGuardState, config: TurnLoopGuardConfig, modelMaxOutput: number): {
80
+ shouldEscalate: boolean;
81
+ newMax: number;
82
+ };
83
+ /**
84
+ * Check if the turn should be aborted (user cancellation).
85
+ */
86
+ export declare function shouldAbortTurn(state: TurnLoopGuardState, config: TurnLoopGuardConfig): boolean;
87
+ //# sourceMappingURL=turn-loop-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-loop-guard.d.ts","sourceRoot":"","sources":["../../src/orchestration/turn-loop-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6CAA6C;IAC7C,sBAAsB,EAAE,OAAO,CAAC;IAChC,uDAAuD;IACvD,uBAAuB,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,CAAA;CAAE,CAAC;AAEhG,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,2BAA2B,EAAE,OAAO,CAAC;IACrC,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oDAAoD;IACpD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2BAA2B;AAC3B,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,GAAG,kBAAkB,CAQxF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,mBAAmB,GAC1B,iBAAiB,CAqBnB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC9B;IAAE,MAAM,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAgB,uBAAuB,CACrC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC3D,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,mBAAmB,GAC1B,gBAAgB,CAuBlB;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,MAAM,GACrB;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAgB7C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAO/F"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Turn Loop Guard — Abort signal + token budget warning for preventive termination.
3
+ *
4
+ * Aligned with Claude Code's multi-condition termination:
5
+ * 1. AbortSignal from user cancellation
6
+ * 2. Token budget pre-check (don't send API call if over budget)
7
+ * 3. max_output_tokens escalation on truncation
8
+ * 4. Prompt-too-long reactive compact trigger
9
+ */
10
+ /** Initial guard state. */
11
+ export function createTurnLoopGuardState(config) {
12
+ return {
13
+ promptTokens: 0,
14
+ hasAttemptedReactiveCompact: false,
15
+ currentMaxOutputTokens: config.maxOutputTokens,
16
+ consecutiveTruncations: 0,
17
+ aborted: config.abortSignal?.aborted ?? false,
18
+ };
19
+ }
20
+ /**
21
+ * Calculate token warning state before making an API call.
22
+ * If level is "blocking", do NOT send the API call.
23
+ */
24
+ export function calculateTokenWarningState(state, config) {
25
+ if (state.aborted) {
26
+ return { level: "blocking", usagePercent: 100, reason: "budget_exhausted" };
27
+ }
28
+ const effectiveLimit = config.contextWindowTokens - config.responseBufferTokens - state.currentMaxOutputTokens;
29
+ const usagePercent = effectiveLimit > 0 ? (state.promptTokens / effectiveLimit) * 100 : 100;
30
+ if (state.promptTokens >= effectiveLimit) {
31
+ if (state.hasAttemptedReactiveCompact || !config.reactiveCompactEnabled) {
32
+ return { level: "blocking", usagePercent, reason: "prompt_too_long" };
33
+ }
34
+ return { level: "blocking", usagePercent, reason: "prompt_too_long" };
35
+ }
36
+ // Warning at 85%
37
+ if (usagePercent >= 85) {
38
+ return { level: "warning", usagePercent, remainingTokens: effectiveLimit - state.promptTokens };
39
+ }
40
+ return { level: "ok" };
41
+ }
42
+ export function resolveApiErrorRecovery(error, state, config) {
43
+ const msg = error.message?.toLowerCase() ?? "";
44
+ const status = error.status ?? 0;
45
+ // Prompt too long (413 or specific error message)
46
+ if (status === 413 || msg.includes("prompt_too_long") || msg.includes("context_length_exceeded")) {
47
+ if (!state.hasAttemptedReactiveCompact && config.reactiveCompactEnabled) {
48
+ return { action: "reactive_compact" };
49
+ }
50
+ return { action: "abort", reason: "prompt_too_long_unrecoverable" };
51
+ }
52
+ // 5xx transient errors
53
+ if (status >= 500 && status < 600) {
54
+ return { action: "retry", reason: `server_error_${status}` };
55
+ }
56
+ // Rate limit
57
+ if (status === 429) {
58
+ return { action: "retry", reason: "rate_limited" };
59
+ }
60
+ return { action: "abort", reason: msg || "unknown_error" };
61
+ }
62
+ /**
63
+ * Handle finish_reason === "max_tokens" — escalate max_output_tokens.
64
+ *
65
+ * CC pattern: double the output token budget up to model max.
66
+ */
67
+ export function resolveOutputTokenEscalation(state, config, modelMaxOutput) {
68
+ if (!config.outputEscalationEnabled) {
69
+ return { shouldEscalate: false, newMax: state.currentMaxOutputTokens };
70
+ }
71
+ // Don't escalate more than 3 times
72
+ if (state.consecutiveTruncations >= 3) {
73
+ return { shouldEscalate: false, newMax: state.currentMaxOutputTokens };
74
+ }
75
+ const newMax = Math.min(state.currentMaxOutputTokens * 2, modelMaxOutput);
76
+ if (newMax <= state.currentMaxOutputTokens) {
77
+ return { shouldEscalate: false, newMax: state.currentMaxOutputTokens };
78
+ }
79
+ return { shouldEscalate: true, newMax };
80
+ }
81
+ /**
82
+ * Check if the turn should be aborted (user cancellation).
83
+ */
84
+ export function shouldAbortTurn(state, config) {
85
+ if (state.aborted)
86
+ return true;
87
+ if (config.abortSignal?.aborted) {
88
+ state.aborted = true;
89
+ return true;
90
+ }
91
+ return false;
92
+ }
93
+ //# sourceMappingURL=turn-loop-guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-loop-guard.js","sourceRoot":"","sources":["../../src/orchestration/turn-loop-guard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { WebCapabilityDescriptorContract, WebCapabilityFamily, WebDegradationTarget, WebEscalationReason, WebTaskMode } from "qlogicagent-runtime-contracts";
2
+ export interface ResolveWebBrowserPolicyInput {
3
+ capability?: Pick<WebCapabilityDescriptorContract, "capabilityFamily" | "taskMode" | "degradationTarget" | "upgradeTargets" | "escalationReasons" | "supportsLoginState" | "supportsPersistentProfile" | "supportsTransactionality">;
4
+ needsInteractiveSession?: boolean;
5
+ needsLoginState?: boolean;
6
+ needsPersistentSession?: boolean;
7
+ needsStateChangingAction?: boolean;
8
+ browserAvailable?: boolean;
9
+ }
10
+ export interface ResolveWebBrowserPolicyResult {
11
+ selectedCapabilityFamily: WebCapabilityFamily;
12
+ selectedTaskMode?: WebTaskMode;
13
+ shouldEscalateToBrowser: boolean;
14
+ degradationTarget?: WebDegradationTarget;
15
+ escalationReasons: WebEscalationReason[];
16
+ }
17
+ export declare function resolveWebBrowserPolicy(params: ResolveWebBrowserPolicyInput): ResolveWebBrowserPolicyResult;
18
+ //# sourceMappingURL=web-browser-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-browser-policy.d.ts","sourceRoot":"","sources":["../../src/orchestration/web-browser-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,IAAI,CACf,+BAA+B,EAC7B,kBAAkB,GAClB,UAAU,GACV,mBAAmB,GACnB,gBAAgB,GAChB,mBAAmB,GACnB,oBAAoB,GACpB,2BAA2B,GAC3B,0BAA0B,CAC7B,CAAC;IACF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,wBAAwB,EAAE,mBAAmB,CAAC;IAC9C,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,oBAAoB,CAAC;IACzC,iBAAiB,EAAE,mBAAmB,EAAE,CAAC;CAC1C;AAQD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,4BAA4B,GACnC,6BAA6B,CAuC/B"}