@code-yeongyu/senpi 2026.7.31 → 2026.8.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 (1370) hide show
  1. package/CHANGELOG.md +270 -0
  2. package/README.md +1 -0
  3. package/dist/cli/args.d.ts +2 -0
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +27 -0
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/credential-print.d.ts +23 -0
  8. package/dist/cli/credential-print.d.ts.map +1 -0
  9. package/dist/cli/credential-print.js +116 -0
  10. package/dist/cli/credential-print.js.map +1 -0
  11. package/dist/client/index.d.ts +3 -0
  12. package/dist/client/index.d.ts.map +1 -0
  13. package/dist/client/index.js +3 -0
  14. package/dist/client/index.js.map +1 -0
  15. package/dist/client/remote-session.d.ts +53 -0
  16. package/dist/client/remote-session.d.ts.map +1 -0
  17. package/dist/client/remote-session.js +340 -0
  18. package/dist/client/remote-session.js.map +1 -0
  19. package/dist/client/transcript.d.ts +12 -0
  20. package/dist/client/transcript.d.ts.map +1 -0
  21. package/dist/client/transcript.js +98 -0
  22. package/dist/client/transcript.js.map +1 -0
  23. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  24. package/dist/core/agent-session-runtime.js +3 -0
  25. package/dist/core/agent-session-runtime.js.map +1 -1
  26. package/dist/core/agent-session.d.ts +85 -14
  27. package/dist/core/agent-session.d.ts.map +1 -1
  28. package/dist/core/agent-session.js +445 -78
  29. package/dist/core/agent-session.js.map +1 -1
  30. package/dist/core/auth-storage.d.ts +5 -0
  31. package/dist/core/auth-storage.d.ts.map +1 -1
  32. package/dist/core/auth-storage.js +72 -11
  33. package/dist/core/auth-storage.js.map +1 -1
  34. package/dist/core/dynamic-prompt/build.d.ts.map +1 -1
  35. package/dist/core/dynamic-prompt/build.js +4 -0
  36. package/dist/core/dynamic-prompt/build.js.map +1 -1
  37. package/dist/core/dynamic-prompt/verification.d.ts +2 -2
  38. package/dist/core/dynamic-prompt/verification.d.ts.map +1 -1
  39. package/dist/core/dynamic-prompt/verification.js +2 -2
  40. package/dist/core/dynamic-prompt/verification.js.map +1 -1
  41. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts +2 -2
  42. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.d.ts.map +1 -1
  43. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js +25 -25
  44. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-command.js.map +1 -1
  45. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts.map +1 -1
  46. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js.map +1 -1
  47. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts +1 -1
  48. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.d.ts.map +1 -1
  49. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js +2 -2
  50. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-management.js.map +1 -1
  51. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts +9 -9
  52. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.d.ts.map +1 -1
  53. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js +2 -2
  54. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/accounts.js.map +1 -1
  55. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts +1 -1
  56. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.d.ts.map +1 -1
  57. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js +3 -3
  58. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/affinity.js.map +1 -1
  59. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts +21 -0
  60. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.d.ts.map +1 -0
  61. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js +30 -0
  62. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-attempt.js.map +1 -0
  63. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.d.ts +8 -4
  64. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.d.ts.map +1 -0
  65. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/auth-lane.js +34 -25
  66. package/dist/core/extensions/builtin/claude-sdk-oauth/auth-lane.js.map +1 -0
  67. package/dist/core/extensions/builtin/claude-sdk-oauth/bounded-queue.d.ts +17 -0
  68. package/dist/core/extensions/builtin/claude-sdk-oauth/bounded-queue.d.ts.map +1 -0
  69. package/dist/core/extensions/builtin/claude-sdk-oauth/bounded-queue.js +56 -0
  70. package/dist/core/extensions/builtin/claude-sdk-oauth/bounded-queue.js.map +1 -0
  71. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts.map +1 -1
  72. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js.map +1 -1
  73. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts.map +1 -1
  74. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js.map +1 -1
  75. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts +1 -1
  76. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.d.ts.map +1 -1
  77. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js +1 -1
  78. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/errors.js.map +1 -1
  79. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts.map +1 -1
  80. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js.map +1 -1
  81. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js +1 -1
  83. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.js.map +1 -1
  84. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts +14 -0
  85. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.d.ts.map +1 -0
  86. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/guidance.js +37 -1
  87. package/dist/core/extensions/builtin/claude-sdk-oauth/guidance.js.map +1 -0
  88. package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts +4 -0
  89. package/dist/core/extensions/builtin/claude-sdk-oauth/index.d.ts.map +1 -0
  90. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/index.js +12 -10
  91. package/dist/core/extensions/builtin/claude-sdk-oauth/index.js.map +1 -0
  92. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts +3 -3
  93. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.d.ts.map +1 -1
  94. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/oauth-login.js +2 -2
  95. package/dist/core/extensions/builtin/claude-sdk-oauth/oauth-login.js.map +1 -0
  96. package/dist/core/extensions/builtin/claude-sdk-oauth/options.d.ts +18 -0
  97. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.d.ts.map +1 -1
  98. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/options.js +70 -10
  99. package/dist/core/extensions/builtin/claude-sdk-oauth/options.js.map +1 -0
  100. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts.map +1 -1
  101. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.js +32 -19
  102. package/dist/core/extensions/builtin/claude-sdk-oauth/prompt-bridge.js.map +1 -0
  103. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.d.ts +2 -0
  104. package/dist/core/extensions/builtin/claude-sdk-oauth/sdk-boundary.d.ts.map +1 -0
  105. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js.map +1 -1
  106. package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.d.ts +32 -0
  107. package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.d.ts.map +1 -0
  108. package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.js +43 -0
  109. package/dist/core/extensions/builtin/claude-sdk-oauth/session-binding.js.map +1 -0
  110. package/dist/core/extensions/builtin/claude-sdk-oauth/session-commit-boundary.d.ts +18 -0
  111. package/dist/core/extensions/builtin/claude-sdk-oauth/session-commit-boundary.d.ts.map +1 -0
  112. package/dist/core/extensions/builtin/claude-sdk-oauth/session-commit-boundary.js +46 -0
  113. package/dist/core/extensions/builtin/claude-sdk-oauth/session-commit-boundary.js.map +1 -0
  114. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts +81 -0
  115. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.d.ts.map +1 -0
  116. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js +127 -0
  117. package/dist/core/extensions/builtin/claude-sdk-oauth/session-continuity.js.map +1 -0
  118. package/dist/core/extensions/builtin/claude-sdk-oauth/session-entry-annotations.d.ts +10 -0
  119. package/dist/core/extensions/builtin/claude-sdk-oauth/session-entry-annotations.d.ts.map +1 -0
  120. package/dist/core/extensions/builtin/claude-sdk-oauth/session-entry-annotations.js +34 -0
  121. package/dist/core/extensions/builtin/claude-sdk-oauth/session-entry-annotations.js.map +1 -0
  122. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts +56 -0
  123. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.d.ts.map +1 -0
  124. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js +174 -0
  125. package/dist/core/extensions/builtin/claude-sdk-oauth/session-observability.js.map +1 -0
  126. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reaper.d.ts +24 -0
  127. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reaper.d.ts.map +1 -0
  128. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reaper.js +34 -0
  129. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reaper.js.map +1 -0
  130. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts +34 -0
  131. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.d.ts.map +1 -0
  132. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js +85 -0
  133. package/dist/core/extensions/builtin/claude-sdk-oauth/session-reattach.js.map +1 -0
  134. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts +19 -0
  135. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.d.ts.map +1 -0
  136. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js +176 -0
  137. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-pump.js.map +1 -0
  138. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts +18 -0
  139. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.d.ts.map +1 -0
  140. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js +33 -0
  141. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-state.js.map +1 -0
  142. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts +3 -0
  143. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.d.ts.map +1 -0
  144. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js +76 -0
  145. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry-wiring.js.map +1 -0
  146. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts +87 -0
  147. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.d.ts.map +1 -0
  148. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js +259 -0
  149. package/dist/core/extensions/builtin/claude-sdk-oauth/session-registry.js.map +1 -0
  150. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts +19 -0
  151. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.d.ts.map +1 -0
  152. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js +192 -0
  153. package/dist/core/extensions/builtin/claude-sdk-oauth/session-stream.js.map +1 -0
  154. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts +20 -0
  155. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.d.ts.map +1 -0
  156. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js +132 -0
  157. package/dist/core/extensions/builtin/claude-sdk-oauth/session-sync.js.map +1 -0
  158. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-claim.d.ts +14 -0
  159. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-claim.d.ts.map +1 -0
  160. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-claim.js +42 -0
  161. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-claim.js.map +1 -0
  162. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-types.d.ts +32 -0
  163. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-types.d.ts.map +1 -0
  164. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-types.js +8 -0
  165. package/dist/core/extensions/builtin/claude-sdk-oauth/session-turn-types.js.map +1 -0
  166. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts +28 -0
  167. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.d.ts.map +1 -0
  168. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js +107 -0
  169. package/dist/core/extensions/builtin/claude-sdk-oauth/settings.js.map +1 -0
  170. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-events.d.ts +16 -0
  171. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-events.d.ts.map +1 -0
  172. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-events.js +92 -0
  173. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-events.js.map +1 -0
  174. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts +2 -0
  175. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.d.ts.map +1 -0
  176. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js +10 -0
  177. package/dist/core/extensions/builtin/claude-sdk-oauth/stream-guidance.js.map +1 -0
  178. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts.map +1 -1
  179. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js.map +1 -1
  180. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream.d.ts +1 -1
  181. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.d.ts.map +1 -0
  182. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js +208 -0
  183. package/dist/core/extensions/builtin/claude-sdk-oauth/stream.js.map +1 -0
  184. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts +3 -0
  185. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.d.ts.map +1 -0
  186. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js +25 -0
  187. package/dist/core/extensions/builtin/claude-sdk-oauth/system-prompt.js.map +1 -0
  188. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts +1 -1
  189. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.d.ts.map +1 -1
  190. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js +2 -2
  191. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tool-watch.js.map +1 -1
  192. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.d.ts +1 -0
  193. package/dist/core/extensions/builtin/claude-sdk-oauth/tools.d.ts.map +1 -0
  194. package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/tools.js +1 -0
  195. package/dist/core/extensions/builtin/claude-sdk-oauth/tools.js.map +1 -0
  196. package/dist/core/extensions/builtin/compaction/checkpoint-state.d.ts +18 -1
  197. package/dist/core/extensions/builtin/compaction/checkpoint-state.d.ts.map +1 -1
  198. package/dist/core/extensions/builtin/compaction/checkpoint-state.js +32 -0
  199. package/dist/core/extensions/builtin/compaction/checkpoint-state.js.map +1 -1
  200. package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts +18 -0
  201. package/dist/core/extensions/builtin/compaction/deterministic-fallback.d.ts.map +1 -0
  202. package/dist/core/extensions/builtin/compaction/deterministic-fallback.js +73 -0
  203. package/dist/core/extensions/builtin/compaction/deterministic-fallback.js.map +1 -0
  204. package/dist/core/extensions/builtin/compaction/idle-retry.d.ts +21 -0
  205. package/dist/core/extensions/builtin/compaction/idle-retry.d.ts.map +1 -0
  206. package/dist/core/extensions/builtin/compaction/idle-retry.js +24 -0
  207. package/dist/core/extensions/builtin/compaction/idle-retry.js.map +1 -0
  208. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  209. package/dist/core/extensions/builtin/compaction/index.js +119 -15
  210. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  211. package/dist/core/extensions/builtin/compaction/lane-policy.d.ts +71 -0
  212. package/dist/core/extensions/builtin/compaction/lane-policy.d.ts.map +1 -0
  213. package/dist/core/extensions/builtin/compaction/lane-policy.js +94 -0
  214. package/dist/core/extensions/builtin/compaction/lane-policy.js.map +1 -0
  215. package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
  216. package/dist/core/extensions/builtin/compaction/log.js +1 -0
  217. package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
  218. package/dist/core/extensions/builtin/compaction/overflow-retry.d.ts +59 -0
  219. package/dist/core/extensions/builtin/compaction/overflow-retry.d.ts.map +1 -0
  220. package/dist/core/extensions/builtin/compaction/overflow-retry.js +155 -0
  221. package/dist/core/extensions/builtin/compaction/overflow-retry.js.map +1 -0
  222. package/dist/core/extensions/builtin/compaction/speculative.d.ts +4 -1
  223. package/dist/core/extensions/builtin/compaction/speculative.d.ts.map +1 -1
  224. package/dist/core/extensions/builtin/compaction/speculative.js +39 -115
  225. package/dist/core/extensions/builtin/compaction/speculative.js.map +1 -1
  226. package/dist/core/extensions/builtin/compaction/task-intent.d.ts +2 -6
  227. package/dist/core/extensions/builtin/compaction/task-intent.d.ts.map +1 -1
  228. package/dist/core/extensions/builtin/compaction/task-intent.js +10 -9
  229. package/dist/core/extensions/builtin/compaction/task-intent.js.map +1 -1
  230. package/dist/core/extensions/builtin/compaction/transient-failure.d.ts.map +1 -1
  231. package/dist/core/extensions/builtin/compaction/transient-failure.js +3 -0
  232. package/dist/core/extensions/builtin/compaction/transient-failure.js.map +1 -1
  233. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts +6 -0
  234. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts.map +1 -0
  235. package/dist/core/extensions/builtin/goal/continuation-recovery.js +20 -0
  236. package/dist/core/extensions/builtin/goal/continuation-recovery.js.map +1 -0
  237. package/dist/core/extensions/builtin/goal/continuation.d.ts +2 -4
  238. package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
  239. package/dist/core/extensions/builtin/goal/continuation.js +2 -8
  240. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  241. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts +19 -0
  242. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.d.ts.map +1 -0
  243. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +48 -0
  244. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -0
  245. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  246. package/dist/core/extensions/builtin/goal/index.js +17 -15
  247. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  248. package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts.map +1 -1
  249. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js +12 -10
  250. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -1
  251. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +5 -1
  252. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  253. package/dist/core/extensions/builtin/goal/monitor-continuation.js +94 -52
  254. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  255. package/dist/core/extensions/builtin/goal/persistence.d.ts +16 -0
  256. package/dist/core/extensions/builtin/goal/persistence.d.ts.map +1 -1
  257. package/dist/core/extensions/builtin/goal/persistence.js +185 -11
  258. package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
  259. package/dist/core/extensions/builtin/goal/ui.d.ts +1 -0
  260. package/dist/core/extensions/builtin/goal/ui.d.ts.map +1 -1
  261. package/dist/core/extensions/builtin/goal/ui.js +11 -2
  262. package/dist/core/extensions/builtin/goal/ui.js.map +1 -1
  263. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts +1 -0
  264. package/dist/core/extensions/builtin/gpt-apply-patch/apply.d.ts.map +1 -1
  265. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js +13 -1
  266. package/dist/core/extensions/builtin/gpt-apply-patch/apply.js.map +1 -1
  267. package/dist/core/extensions/builtin/gpt-apply-patch/extension.d.ts.map +1 -1
  268. package/dist/core/extensions/builtin/gpt-apply-patch/extension.js +15 -0
  269. package/dist/core/extensions/builtin/gpt-apply-patch/extension.js.map +1 -1
  270. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts +1 -1
  271. package/dist/core/extensions/builtin/gpt-apply-patch/index.d.ts.map +1 -1
  272. package/dist/core/extensions/builtin/gpt-apply-patch/index.js +1 -1
  273. package/dist/core/extensions/builtin/gpt-apply-patch/index.js.map +1 -1
  274. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts +1 -0
  275. package/dist/core/extensions/builtin/gpt-apply-patch/tool.d.ts.map +1 -1
  276. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js +53 -8
  277. package/dist/core/extensions/builtin/gpt-apply-patch/tool.js.map +1 -1
  278. package/dist/core/extensions/builtin/index.d.ts.map +1 -1
  279. package/dist/core/extensions/builtin/index.js +5 -2
  280. package/dist/core/extensions/builtin/index.js.map +1 -1
  281. package/dist/core/extensions/builtin/loop-guard/detectors.d.ts +31 -0
  282. package/dist/core/extensions/builtin/loop-guard/detectors.d.ts.map +1 -0
  283. package/dist/core/extensions/builtin/loop-guard/detectors.js +152 -0
  284. package/dist/core/extensions/builtin/loop-guard/detectors.js.map +1 -0
  285. package/dist/core/extensions/builtin/loop-guard/index.d.ts +3 -0
  286. package/dist/core/extensions/builtin/loop-guard/index.d.ts.map +1 -0
  287. package/dist/core/extensions/builtin/loop-guard/index.js +31 -0
  288. package/dist/core/extensions/builtin/loop-guard/index.js.map +1 -0
  289. package/dist/core/extensions/builtin/loop-guard/notice.d.ts +5 -0
  290. package/dist/core/extensions/builtin/loop-guard/notice.d.ts.map +1 -0
  291. package/dist/core/extensions/builtin/loop-guard/notice.js +42 -0
  292. package/dist/core/extensions/builtin/loop-guard/notice.js.map +1 -0
  293. package/dist/core/extensions/builtin/loop-guard/policy.d.ts +30 -0
  294. package/dist/core/extensions/builtin/loop-guard/policy.d.ts.map +1 -0
  295. package/dist/core/extensions/builtin/loop-guard/policy.js +30 -0
  296. package/dist/core/extensions/builtin/loop-guard/policy.js.map +1 -0
  297. package/dist/core/extensions/builtin/loop-guard/renderer.d.ts +4 -0
  298. package/dist/core/extensions/builtin/loop-guard/renderer.d.ts.map +1 -0
  299. package/dist/core/extensions/builtin/loop-guard/renderer.js +50 -0
  300. package/dist/core/extensions/builtin/loop-guard/renderer.js.map +1 -0
  301. package/dist/core/extensions/builtin/loop-guard/similarity.d.ts +13 -0
  302. package/dist/core/extensions/builtin/loop-guard/similarity.d.ts.map +1 -0
  303. package/dist/core/extensions/builtin/loop-guard/similarity.js +51 -0
  304. package/dist/core/extensions/builtin/loop-guard/similarity.js.map +1 -0
  305. package/dist/core/extensions/builtin/loop-guard/tracker.d.ts +13 -0
  306. package/dist/core/extensions/builtin/loop-guard/tracker.d.ts.map +1 -0
  307. package/dist/core/extensions/builtin/loop-guard/tracker.js +39 -0
  308. package/dist/core/extensions/builtin/loop-guard/tracker.js.map +1 -0
  309. package/dist/core/extensions/builtin/mcp/health.d.ts.map +1 -1
  310. package/dist/core/extensions/builtin/mcp/health.js +2 -1
  311. package/dist/core/extensions/builtin/mcp/health.js.map +1 -1
  312. package/dist/core/extensions/builtin/monitor-state-event.d.ts +10 -0
  313. package/dist/core/extensions/builtin/monitor-state-event.d.ts.map +1 -1
  314. package/dist/core/extensions/builtin/monitor-state-event.js.map +1 -1
  315. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.d.ts +3 -0
  316. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.d.ts.map +1 -0
  317. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.js +10 -0
  318. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash-0731.js.map +1 -0
  319. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.d.ts +3 -0
  320. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.d.ts.map +1 -0
  321. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.js +10 -0
  322. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-flash.js.map +1 -0
  323. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.d.ts +3 -0
  324. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.d.ts.map +1 -0
  325. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.js +11 -0
  326. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4-pro.js.map +1 -0
  327. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.d.ts +13 -0
  328. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.d.ts.map +1 -0
  329. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.js +60 -0
  330. package/dist/core/extensions/builtin/prompt-preset/deepseek-v4.js.map +1 -0
  331. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts +1 -1
  332. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.d.ts.map +1 -1
  333. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js +5 -3
  334. package/dist/core/extensions/builtin/prompt-preset/gpt-5.6.js.map +1 -1
  335. package/dist/core/extensions/builtin/prompt-preset/index.d.ts.map +1 -1
  336. package/dist/core/extensions/builtin/prompt-preset/index.js +8 -4
  337. package/dist/core/extensions/builtin/prompt-preset/index.js.map +1 -1
  338. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.d.ts.map +1 -1
  339. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js +8 -1
  340. package/dist/core/extensions/builtin/prompt-preset/kimi-k3.js.map +1 -1
  341. package/dist/core/extensions/builtin/prompt-preset/presets.d.ts.map +1 -1
  342. package/dist/core/extensions/builtin/prompt-preset/presets.js +42 -0
  343. package/dist/core/extensions/builtin/prompt-preset/presets.js.map +1 -1
  344. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts +1 -1
  345. package/dist/core/extensions/builtin/prompt-preset/settings.d.ts.map +1 -1
  346. package/dist/core/extensions/builtin/prompt-preset/settings.js +3 -0
  347. package/dist/core/extensions/builtin/prompt-preset/settings.js.map +1 -1
  348. package/dist/core/extensions/builtin/recommended-models/index.d.ts.map +1 -1
  349. package/dist/core/extensions/builtin/recommended-models/index.js +2 -1
  350. package/dist/core/extensions/builtin/recommended-models/index.js.map +1 -1
  351. package/dist/core/extensions/builtin/rules/index.js +4 -3
  352. package/dist/core/extensions/builtin/rules/index.js.map +1 -1
  353. package/dist/core/extensions/builtin/rules/rules/constants.d.ts +11 -0
  354. package/dist/core/extensions/builtin/rules/rules/constants.d.ts.map +1 -1
  355. package/dist/core/extensions/builtin/rules/rules/constants.js +11 -0
  356. package/dist/core/extensions/builtin/rules/rules/constants.js.map +1 -1
  357. package/dist/core/extensions/builtin/rules/rules/formatter.d.ts.map +1 -1
  358. package/dist/core/extensions/builtin/rules/rules/formatter.js +15 -1
  359. package/dist/core/extensions/builtin/rules/rules/formatter.js.map +1 -1
  360. package/dist/core/extensions/builtin/service-tier.d.ts.map +1 -1
  361. package/dist/core/extensions/builtin/service-tier.js +23 -21
  362. package/dist/core/extensions/builtin/service-tier.js.map +1 -1
  363. package/dist/core/extensions/builtin/terminal/extension.d.ts.map +1 -1
  364. package/dist/core/extensions/builtin/terminal/extension.js +21 -7
  365. package/dist/core/extensions/builtin/terminal/extension.js.map +1 -1
  366. package/dist/core/extensions/builtin/terminal/monitor-notify.d.ts.map +1 -1
  367. package/dist/core/extensions/builtin/terminal/monitor-notify.js +42 -5
  368. package/dist/core/extensions/builtin/terminal/monitor-notify.js.map +1 -1
  369. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts +2 -0
  370. package/dist/core/extensions/builtin/terminal/monitor-registry.d.ts.map +1 -1
  371. package/dist/core/extensions/builtin/terminal/monitor-registry.js +2 -0
  372. package/dist/core/extensions/builtin/terminal/monitor-registry.js.map +1 -1
  373. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts +37 -0
  374. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.d.ts.map +1 -0
  375. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js +61 -0
  376. package/dist/core/extensions/builtin/terminal/monitor-status-ticker.js.map +1 -0
  377. package/dist/core/extensions/builtin/terminal/monitor-status.d.ts +9 -1
  378. package/dist/core/extensions/builtin/terminal/monitor-status.d.ts.map +1 -1
  379. package/dist/core/extensions/builtin/terminal/monitor-status.js +35 -2
  380. package/dist/core/extensions/builtin/terminal/monitor-status.js.map +1 -1
  381. package/dist/core/extensions/builtin/terminal/tools/context.d.ts +1 -1
  382. package/dist/core/extensions/builtin/terminal/tools/context.d.ts.map +1 -1
  383. package/dist/core/extensions/builtin/terminal/tools/context.js.map +1 -1
  384. package/dist/core/extensions/builtin/terminal/tools/monitor.d.ts.map +1 -1
  385. package/dist/core/extensions/builtin/terminal/tools/monitor.js +2 -1
  386. package/dist/core/extensions/builtin/terminal/tools/monitor.js.map +1 -1
  387. package/dist/core/extensions/builtin/todotools/commands.d.ts +2 -2
  388. package/dist/core/extensions/builtin/todotools/commands.d.ts.map +1 -1
  389. package/dist/core/extensions/builtin/todotools/commands.js.map +1 -1
  390. package/dist/core/extensions/builtin/todotools/index.d.ts.map +1 -1
  391. package/dist/core/extensions/builtin/todotools/index.js +6 -3
  392. package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
  393. package/dist/core/extensions/builtin/todotools/state.d.ts +1 -1
  394. package/dist/core/extensions/builtin/todotools/state.d.ts.map +1 -1
  395. package/dist/core/extensions/builtin/todotools/state.js +1 -1
  396. package/dist/core/extensions/builtin/todotools/state.js.map +1 -1
  397. package/dist/core/extensions/builtin/todotools/todo-widget-component.d.ts +19 -0
  398. package/dist/core/extensions/builtin/todotools/todo-widget-component.d.ts.map +1 -0
  399. package/dist/core/extensions/builtin/todotools/todo-widget-component.js +78 -0
  400. package/dist/core/extensions/builtin/todotools/todo-widget-component.js.map +1 -0
  401. package/dist/core/extensions/builtin/todotools/todo-widget.d.ts +13 -1
  402. package/dist/core/extensions/builtin/todotools/todo-widget.d.ts.map +1 -1
  403. package/dist/core/extensions/builtin/todotools/todo-widget.js +32 -14
  404. package/dist/core/extensions/builtin/todotools/todo-widget.js.map +1 -1
  405. package/dist/core/extensions/builtin/todotools/tools/todo.d.ts +2 -2
  406. package/dist/core/extensions/builtin/todotools/tools/todo.d.ts.map +1 -1
  407. package/dist/core/extensions/builtin/todotools/tools/todo.js +1 -1
  408. package/dist/core/extensions/builtin/todotools/tools/todo.js.map +1 -1
  409. package/dist/core/extensions/builtin/tool-pair-guard/index.d.ts.map +1 -1
  410. package/dist/core/extensions/builtin/tool-pair-guard/index.js +1 -1
  411. package/dist/core/extensions/builtin/tool-pair-guard/index.js.map +1 -1
  412. package/dist/core/extensions/builtin/tps.d.ts.map +1 -1
  413. package/dist/core/extensions/builtin/tps.js +5 -2
  414. package/dist/core/extensions/builtin/tps.js.map +1 -1
  415. package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts +4 -0
  416. package/dist/core/extensions/builtin/ttsr/builtin-rules.d.ts.map +1 -0
  417. package/dist/core/extensions/builtin/ttsr/builtin-rules.js +20 -0
  418. package/dist/core/extensions/builtin/ttsr/builtin-rules.js.map +1 -0
  419. package/dist/core/extensions/builtin/ttsr/commands.js +9 -1
  420. package/dist/core/extensions/builtin/ttsr/commands.js.map +1 -1
  421. package/dist/core/extensions/builtin/ttsr/index.d.ts.map +1 -1
  422. package/dist/core/extensions/builtin/ttsr/index.js +4 -3
  423. package/dist/core/extensions/builtin/ttsr/index.js.map +1 -1
  424. package/dist/core/extensions/builtin/ttsr/manager.js +1 -1
  425. package/dist/core/extensions/builtin/ttsr/manager.js.map +1 -1
  426. package/dist/core/extensions/builtin/websearch/websearch/config.d.ts.map +1 -1
  427. package/dist/core/extensions/builtin/websearch/websearch/config.js +1 -0
  428. package/dist/core/extensions/builtin/websearch/websearch/config.js.map +1 -1
  429. package/dist/core/extensions/builtin/websearch/websearch/native.d.ts.map +1 -1
  430. package/dist/core/extensions/builtin/websearch/websearch/native.js +16 -5
  431. package/dist/core/extensions/builtin/websearch/websearch/native.js.map +1 -1
  432. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.d.ts.map +1 -1
  433. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js +1 -0
  434. package/dist/core/extensions/builtin/websearch/websearch/provider-endpoints.js.map +1 -1
  435. package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.d.ts +4 -1
  436. package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.d.ts.map +1 -1
  437. package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.js +44 -37
  438. package/dist/core/extensions/builtin/websearch/websearch/providers/anthropic.js.map +1 -1
  439. package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.d.ts +3 -0
  440. package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.d.ts.map +1 -0
  441. package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.js +12 -0
  442. package/dist/core/extensions/builtin/websearch/websearch/providers/deepseek.js.map +1 -0
  443. package/dist/core/extensions/builtin/websearch/websearch/providers.d.ts.map +1 -1
  444. package/dist/core/extensions/builtin/websearch/websearch/providers.js +2 -0
  445. package/dist/core/extensions/builtin/websearch/websearch/providers.js.map +1 -1
  446. package/dist/core/extensions/builtin/websearch/websearch/renderers.d.ts.map +1 -1
  447. package/dist/core/extensions/builtin/websearch/websearch/renderers.js +3 -3
  448. package/dist/core/extensions/builtin/websearch/websearch/renderers.js.map +1 -1
  449. package/dist/core/extensions/builtin/websearch/websearch/search.d.ts.map +1 -1
  450. package/dist/core/extensions/builtin/websearch/websearch/search.js +1 -3
  451. package/dist/core/extensions/builtin/websearch/websearch/search.js.map +1 -1
  452. package/dist/core/extensions/builtin/websearch/websearch/tool.js +2 -2
  453. package/dist/core/extensions/builtin/websearch/websearch/tool.js.map +1 -1
  454. package/dist/core/extensions/builtin/websearch/websearch/types.d.ts +1 -1
  455. package/dist/core/extensions/builtin/websearch/websearch/types.d.ts.map +1 -1
  456. package/dist/core/extensions/builtin/websearch/websearch/types.js.map +1 -1
  457. package/dist/core/extensions/index.d.ts +1 -1
  458. package/dist/core/extensions/index.d.ts.map +1 -1
  459. package/dist/core/extensions/index.js.map +1 -1
  460. package/dist/core/extensions/loader.d.ts.map +1 -1
  461. package/dist/core/extensions/loader.js +19 -18
  462. package/dist/core/extensions/loader.js.map +1 -1
  463. package/dist/core/extensions/runner.d.ts +5 -2
  464. package/dist/core/extensions/runner.d.ts.map +1 -1
  465. package/dist/core/extensions/runner.js +21 -1
  466. package/dist/core/extensions/runner.js.map +1 -1
  467. package/dist/core/extensions/types.d.ts +38 -2
  468. package/dist/core/extensions/types.d.ts.map +1 -1
  469. package/dist/core/extensions/types.js.map +1 -1
  470. package/dist/core/footer-data-provider.d.ts +10 -0
  471. package/dist/core/footer-data-provider.d.ts.map +1 -1
  472. package/dist/core/footer-data-provider.js +1 -1
  473. package/dist/core/footer-data-provider.js.map +1 -1
  474. package/dist/core/keybindings.d.ts +24 -0
  475. package/dist/core/keybindings.d.ts.map +1 -1
  476. package/dist/core/model-registry.d.ts +2 -1
  477. package/dist/core/model-registry.d.ts.map +1 -1
  478. package/dist/core/model-registry.js +3 -0
  479. package/dist/core/model-registry.js.map +1 -1
  480. package/dist/core/model-resolver.js +2 -2
  481. package/dist/core/model-resolver.js.map +1 -1
  482. package/dist/core/model-runtime.d.ts +2 -0
  483. package/dist/core/model-runtime.d.ts.map +1 -1
  484. package/dist/core/model-runtime.js.map +1 -1
  485. package/dist/core/package-manager.d.ts +0 -1
  486. package/dist/core/package-manager.d.ts.map +1 -1
  487. package/dist/core/package-manager.js +18 -34
  488. package/dist/core/package-manager.js.map +1 -1
  489. package/dist/core/pi-manifest.d.ts +9 -0
  490. package/dist/core/pi-manifest.d.ts.map +1 -0
  491. package/dist/core/pi-manifest.js +25 -0
  492. package/dist/core/pi-manifest.js.map +1 -0
  493. package/dist/core/resource-loader.d.ts +15 -0
  494. package/dist/core/resource-loader.d.ts.map +1 -1
  495. package/dist/core/resource-loader.js +55 -6
  496. package/dist/core/resource-loader.js.map +1 -1
  497. package/dist/core/retry-fallback/hint-policy.d.ts +29 -0
  498. package/dist/core/retry-fallback/hint-policy.d.ts.map +1 -0
  499. package/dist/core/retry-fallback/hint-policy.js +54 -0
  500. package/dist/core/retry-fallback/hint-policy.js.map +1 -0
  501. package/dist/core/retry-fallback/probe-scheduler.d.ts +60 -0
  502. package/dist/core/retry-fallback/probe-scheduler.d.ts.map +1 -0
  503. package/dist/core/retry-fallback/probe-scheduler.js +206 -0
  504. package/dist/core/retry-fallback/probe-scheduler.js.map +1 -0
  505. package/dist/core/retry-fallback/settings.d.ts +9 -0
  506. package/dist/core/retry-fallback/settings.d.ts.map +1 -1
  507. package/dist/core/retry-fallback/settings.js +14 -0
  508. package/dist/core/retry-fallback/settings.js.map +1 -1
  509. package/dist/core/settings-manager.d.ts +10 -1
  510. package/dist/core/settings-manager.d.ts.map +1 -1
  511. package/dist/core/settings-manager.js +21 -1
  512. package/dist/core/settings-manager.js.map +1 -1
  513. package/dist/core/thinking-levels.d.ts +5 -0
  514. package/dist/core/thinking-levels.d.ts.map +1 -1
  515. package/dist/core/thinking-levels.js +9 -39
  516. package/dist/core/thinking-levels.js.map +1 -1
  517. package/dist/extensions/llama/provider.js +1 -1
  518. package/dist/extensions/llama/provider.js.map +1 -1
  519. package/dist/index.d.ts +2 -2
  520. package/dist/index.d.ts.map +1 -1
  521. package/dist/index.js.map +1 -1
  522. package/dist/main.d.ts.map +1 -1
  523. package/dist/main.js +44 -0
  524. package/dist/main.js.map +1 -1
  525. package/dist/modes/app-server/server/account.d.ts +1 -1
  526. package/dist/modes/app-server/server/account.js +1 -1
  527. package/dist/modes/app-server/server/account.js.map +1 -1
  528. package/dist/modes/app-server/server/server-core.js +1 -1
  529. package/dist/modes/app-server/server/server-core.js.map +1 -1
  530. package/dist/modes/interactive/compaction-queue-transfer.d.ts +2 -0
  531. package/dist/modes/interactive/compaction-queue-transfer.d.ts.map +1 -1
  532. package/dist/modes/interactive/compaction-queue-transfer.js.map +1 -1
  533. package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
  534. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  535. package/dist/modes/interactive/components/assistant-message.js +16 -4
  536. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  537. package/dist/modes/interactive/components/continuity-notice.d.ts +21 -0
  538. package/dist/modes/interactive/components/continuity-notice.d.ts.map +1 -0
  539. package/dist/modes/interactive/components/continuity-notice.js +58 -0
  540. package/dist/modes/interactive/components/continuity-notice.js.map +1 -0
  541. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  542. package/dist/modes/interactive/components/footer.js +9 -5
  543. package/dist/modes/interactive/components/footer.js.map +1 -1
  544. package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
  545. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
  546. package/dist/modes/interactive/components/markdown-transform.js +19 -0
  547. package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
  548. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  549. package/dist/modes/interactive/components/model-selector.js +4 -1
  550. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  551. package/dist/modes/interactive/components/settings-selector.d.ts +6 -2
  552. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  553. package/dist/modes/interactive/components/settings-selector.js +20 -0
  554. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  555. package/dist/modes/interactive/components/user-message.d.ts +3 -1
  556. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  557. package/dist/modes/interactive/components/user-message.js +8 -2
  558. package/dist/modes/interactive/components/user-message.js.map +1 -1
  559. package/dist/modes/interactive/help-content.d.ts.map +1 -1
  560. package/dist/modes/interactive/help-content.js +1 -0
  561. package/dist/modes/interactive/help-content.js.map +1 -1
  562. package/dist/modes/interactive/interactive-mode.d.ts +21 -0
  563. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  564. package/dist/modes/interactive/interactive-mode.js +189 -62
  565. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  566. package/dist/modes/interactive/risky-main-model-warning.d.ts +1 -1
  567. package/dist/modes/interactive/risky-main-model-warning.d.ts.map +1 -1
  568. package/dist/modes/interactive/risky-main-model-warning.js +1 -1
  569. package/dist/modes/interactive/risky-main-model-warning.js.map +1 -1
  570. package/dist/modes/interactive/theme/dark.json +1 -0
  571. package/dist/modes/interactive/theme/grok-day.json +1 -0
  572. package/dist/modes/interactive/theme/grok-night.json +1 -0
  573. package/dist/modes/interactive/theme/light.json +1 -0
  574. package/dist/modes/interactive/theme/theme-schema.json +5 -1
  575. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  576. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  577. package/dist/modes/interactive/theme/theme.js +13 -3
  578. package/dist/modes/interactive/theme/theme.js.map +1 -1
  579. package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
  580. package/dist/modes/rpc/connection-handler.js +16 -3
  581. package/dist/modes/rpc/connection-handler.js.map +1 -1
  582. package/dist/utils/clipboard.d.ts +1 -1
  583. package/dist/utils/clipboard.d.ts.map +1 -1
  584. package/dist/utils/clipboard.js +22 -2
  585. package/dist/utils/clipboard.js.map +1 -1
  586. package/docs/AGENTS.md +1 -6
  587. package/docs/custom-provider.md +10 -3
  588. package/docs/development.md +1 -2
  589. package/docs/extensions.md +34 -1
  590. package/docs/keybindings.md +13 -0
  591. package/docs/mcp.md +63 -4
  592. package/docs/models.md +1 -0
  593. package/docs/providers.md +41 -5
  594. package/docs/release-guide.md +7 -5
  595. package/docs/session-format.md +2 -0
  596. package/docs/settings.md +3 -1
  597. package/docs/skills.md +29 -0
  598. package/docs/themes.md +5 -3
  599. package/docs/usage.md +5 -0
  600. package/examples/extensions/custom-compaction.ts +1 -2
  601. package/examples/extensions/custom-provider-anthropic/index.ts +8 -2
  602. package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
  603. package/examples/extensions/handoff.ts +2 -3
  604. package/examples/extensions/overlay-test.ts +1 -1
  605. package/examples/extensions/qna.ts +2 -2
  606. package/examples/rpc-extension-ui.ts +11 -2
  607. package/examples/sdk/02-custom-model.ts +1 -2
  608. package/examples/sdk/12-full-control.ts +2 -0
  609. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +45 -0
  610. package/node_modules/@code-yeongyu/senpi-codemode/README.md +6 -3
  611. package/node_modules/@code-yeongyu/senpi-codemode/package.json +3 -3
  612. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status-ticker.ts +79 -0
  613. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-status.ts +36 -3
  614. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +26 -12
  615. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-execution.ts +146 -0
  616. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-handler.ts +21 -119
  617. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-runtime.ts +157 -0
  618. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +62 -208
  619. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-notification.ts +98 -0
  620. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-snapshot.ts +81 -0
  621. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-state.ts +24 -0
  622. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-eval-result.ts +140 -0
  623. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-notification-queue.ts +53 -0
  624. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-request.ts +45 -0
  625. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +45 -0
  626. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +20 -342
  627. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  628. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +1 -0
  629. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  630. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +14 -3
  631. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
  632. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js +156 -67
  633. package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
  634. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/array-session-reader.d.ts +3 -0
  635. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/array-session-reader.d.ts.map +1 -0
  636. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/array-session-reader.js +70 -0
  637. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/array-session-reader.js.map +1 -0
  638. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.d.ts +4 -0
  639. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.d.ts.map +1 -0
  640. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.js +22 -0
  641. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/fork.js.map +1 -0
  642. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-store.d.ts +13 -0
  643. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-store.d.ts.map +1 -0
  644. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-store.js +304 -0
  645. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-store.js.map +1 -0
  646. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/keyed-operation-queue.d.ts +17 -0
  647. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/keyed-operation-queue.d.ts.map +1 -0
  648. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/keyed-operation-queue.js +60 -0
  649. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/keyed-operation-queue.js.map +1 -0
  650. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-store.d.ts +6 -0
  651. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-store.d.ts.map +1 -0
  652. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-store.js +107 -0
  653. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-store.js.map +1 -0
  654. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repository.d.ts +28 -0
  655. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repository.d.ts.map +1 -0
  656. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repository.js +61 -0
  657. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repository.js.map +1 -0
  658. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search-backend.d.ts +8 -0
  659. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search-backend.d.ts.map +1 -0
  660. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search-backend.js +22 -0
  661. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/search-backend.js.map +1 -0
  662. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +6 -10
  663. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
  664. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js +154 -77
  665. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
  666. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +49 -23
  667. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
  668. package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
  669. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +6 -6
  670. package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
  671. package/node_modules/@earendil-works/pi-agent-core/dist/index.js +6 -6
  672. package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
  673. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js +1 -1
  674. package/node_modules/@earendil-works/pi-agent-core/dist/proxy.js.map +1 -1
  675. package/node_modules/@earendil-works/pi-agent-core/package.json +4 -4
  676. package/node_modules/@earendil-works/pi-ai/README.md +2 -1
  677. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  678. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +56 -25
  679. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  680. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts +3 -0
  681. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts.map +1 -0
  682. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js +134 -0
  683. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js.map +1 -0
  684. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.d.ts.map +1 -1
  685. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js +7 -3
  686. package/node_modules/@earendil-works/pi-ai/dist/api/azure-openai-responses.js.map +1 -1
  687. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.d.ts.map +1 -1
  688. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js +64 -4
  689. package/node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.js.map +1 -1
  690. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.d.ts.map +1 -1
  691. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js +12 -2
  692. package/node_modules/@earendil-works/pi-ai/dist/api/google-generative-ai.js.map +1 -1
  693. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.d.ts.map +1 -1
  694. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js +13 -6
  695. package/node_modules/@earendil-works/pi-ai/dist/api/google-shared.js.map +1 -1
  696. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.d.ts.map +1 -1
  697. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js +12 -2
  698. package/node_modules/@earendil-works/pi-ai/dist/api/google-vertex.js.map +1 -1
  699. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.d.ts.map +1 -1
  700. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js +19 -10
  701. package/node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js.map +1 -1
  702. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.d.ts +24 -0
  703. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.d.ts.map +1 -0
  704. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.js +70 -0
  705. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses/fallback-state.js.map +1 -0
  706. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts +2 -16
  707. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.d.ts.map +1 -1
  708. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js +94 -105
  709. package/node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js.map +1 -1
  710. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.d.ts.map +1 -1
  711. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js +19 -10
  712. package/node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js.map +1 -1
  713. package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts +1 -0
  714. package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.d.ts.map +1 -1
  715. package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js +7 -0
  716. package/node_modules/@earendil-works/pi-ai/dist/api/openai-prompt-cache.js.map +1 -1
  717. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.d.ts.map +1 -1
  718. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js +11 -1
  719. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses-shared.js.map +1 -1
  720. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.d.ts.map +1 -1
  721. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js +9 -5
  722. package/node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js.map +1 -1
  723. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js +3 -2
  724. package/node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js.map +1 -1
  725. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js +2 -2
  726. package/node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js.map +1 -1
  727. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.d.ts.map +1 -1
  728. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js +1 -0
  729. package/node_modules/@earendil-works/pi-ai/dist/api/simple-options.js.map +1 -1
  730. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.d.ts +3 -1
  731. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.d.ts.map +1 -1
  732. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js +81 -26
  733. package/node_modules/@earendil-works/pi-ai/dist/auth/oauth/openrouter.js.map +1 -1
  734. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +2 -0
  735. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
  736. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +16 -8
  737. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
  738. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +1 -0
  739. package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
  740. package/node_modules/@earendil-works/pi-ai/dist/index.js +1 -0
  741. package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
  742. package/node_modules/@earendil-works/pi-ai/dist/model.d.ts +2 -1
  743. package/node_modules/@earendil-works/pi-ai/dist/model.d.ts.map +1 -1
  744. package/node_modules/@earendil-works/pi-ai/dist/model.js.map +1 -1
  745. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +14 -0
  746. package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
  747. package/node_modules/@earendil-works/pi-ai/dist/models.js +95 -19
  748. package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
  749. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  750. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
  751. package/node_modules/@earendil-works/pi-ai/dist/providers/data/azure-openai-responses.json +1 -1
  752. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  753. package/node_modules/@earendil-works/pi-ai/dist/providers/data/fireworks.json +1 -1
  754. package/node_modules/@earendil-works/pi-ai/dist/providers/data/github-copilot.json +1 -1
  755. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  756. package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
  757. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai-codex.json +1 -1
  758. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openai.json +1 -1
  759. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  760. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  761. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  762. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan-cn.json +1 -1
  763. package/node_modules/@earendil-works/pi-ai/dist/providers/data/qwen-token-plan.json +1 -1
  764. package/node_modules/@earendil-works/pi-ai/dist/providers/data/together.json +1 -1
  765. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  766. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
  767. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
  768. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
  769. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js +4 -1
  770. package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
  771. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js +1 -1
  772. package/node_modules/@earendil-works/pi-ai/dist/providers/opencode-go.js.map +1 -1
  773. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +18 -1
  774. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  775. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  776. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -1
  777. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +23 -4
  778. package/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -1
  779. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.d.ts.map +1 -1
  780. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js +10 -1
  781. package/node_modules/@earendil-works/pi-ai/dist/utils/prompt-cache-ttl.js.map +1 -1
  782. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.d.ts +3 -0
  783. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.d.ts.map +1 -1
  784. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js +13 -12
  785. package/node_modules/@earendil-works/pi-ai/dist/utils/provider-retry.js.map +1 -1
  786. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-hint.d.ts +24 -0
  787. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-hint.d.ts.map +1 -0
  788. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-hint.js +233 -0
  789. package/node_modules/@earendil-works/pi-ai/dist/utils/retry-hint.js.map +1 -0
  790. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts +3 -0
  791. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.d.ts.map +1 -0
  792. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js +36 -0
  793. package/node_modules/@earendil-works/pi-ai/dist/utils/unavailable-tool-text.js.map +1 -0
  794. package/node_modules/@earendil-works/pi-ai/package.json +10 -6
  795. package/node_modules/@earendil-works/pi-client/CHANGELOG.md +7 -0
  796. package/node_modules/@earendil-works/pi-client/README.md +64 -0
  797. package/node_modules/@earendil-works/pi-client/dist/client.d.ts +25 -0
  798. package/node_modules/@earendil-works/pi-client/dist/client.d.ts.map +1 -0
  799. package/node_modules/@earendil-works/pi-client/dist/client.js +386 -0
  800. package/node_modules/@earendil-works/pi-client/dist/client.js.map +1 -0
  801. package/node_modules/@earendil-works/pi-client/dist/connection.d.ts +25 -0
  802. package/node_modules/@earendil-works/pi-client/dist/connection.d.ts.map +1 -0
  803. package/node_modules/@earendil-works/pi-client/dist/connection.js +204 -0
  804. package/node_modules/@earendil-works/pi-client/dist/connection.js.map +1 -0
  805. package/node_modules/@earendil-works/pi-client/dist/errors.d.ts +23 -0
  806. package/node_modules/@earendil-works/pi-client/dist/errors.d.ts.map +1 -0
  807. package/node_modules/@earendil-works/pi-client/dist/errors.js +42 -0
  808. package/node_modules/@earendil-works/pi-client/dist/errors.js.map +1 -0
  809. package/node_modules/@earendil-works/pi-client/dist/index.d.ts +6 -0
  810. package/node_modules/@earendil-works/pi-client/dist/index.d.ts.map +1 -0
  811. package/node_modules/@earendil-works/pi-client/dist/index.js +3 -0
  812. package/node_modules/@earendil-works/pi-client/dist/index.js.map +1 -0
  813. package/node_modules/@earendil-works/pi-client/dist/promise.d.ts +8 -0
  814. package/node_modules/@earendil-works/pi-client/dist/promise.d.ts.map +1 -0
  815. package/node_modules/@earendil-works/pi-client/dist/promise.js +11 -0
  816. package/node_modules/@earendil-works/pi-client/dist/promise.js.map +1 -0
  817. package/node_modules/@earendil-works/pi-client/dist/session-handle.d.ts +54 -0
  818. package/node_modules/@earendil-works/pi-client/dist/session-handle.d.ts.map +1 -0
  819. package/node_modules/@earendil-works/pi-client/dist/session-handle.js +50 -0
  820. package/node_modules/@earendil-works/pi-client/dist/session-handle.js.map +1 -0
  821. package/node_modules/@earendil-works/pi-client/dist/state.d.ts +22 -0
  822. package/node_modules/@earendil-works/pi-client/dist/state.d.ts.map +1 -0
  823. package/node_modules/@earendil-works/pi-client/dist/state.js +149 -0
  824. package/node_modules/@earendil-works/pi-client/dist/state.js.map +1 -0
  825. package/node_modules/@earendil-works/pi-client/dist/transport.d.ts +17 -0
  826. package/node_modules/@earendil-works/pi-client/dist/transport.d.ts.map +1 -0
  827. package/node_modules/@earendil-works/pi-client/dist/transport.js +2 -0
  828. package/node_modules/@earendil-works/pi-client/dist/transport.js.map +1 -0
  829. package/node_modules/@earendil-works/pi-client/dist/types.d.ts +23 -0
  830. package/node_modules/@earendil-works/pi-client/dist/types.d.ts.map +1 -0
  831. package/node_modules/@earendil-works/pi-client/dist/types.js +2 -0
  832. package/node_modules/@earendil-works/pi-client/dist/types.js.map +1 -0
  833. package/node_modules/@earendil-works/pi-client/dist/unix.d.ts +8 -0
  834. package/node_modules/@earendil-works/pi-client/dist/unix.d.ts.map +1 -0
  835. package/node_modules/@earendil-works/pi-client/dist/unix.js +151 -0
  836. package/node_modules/@earendil-works/pi-client/dist/unix.js.map +1 -0
  837. package/node_modules/@earendil-works/pi-client/package.json +56 -0
  838. package/node_modules/@earendil-works/pi-protocol/README.md +68 -0
  839. package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.d.ts +4 -0
  840. package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.d.ts.map +1 -0
  841. package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.js +163 -0
  842. package/node_modules/@earendil-works/pi-protocol/dist/cbor/decoder.js.map +1 -0
  843. package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.d.ts +4 -0
  844. package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.d.ts.map +1 -0
  845. package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.js +199 -0
  846. package/node_modules/@earendil-works/pi-protocol/dist/cbor/encoder.js.map +1 -0
  847. package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.d.ts +4 -0
  848. package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.d.ts.map +1 -0
  849. package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.js +4 -0
  850. package/node_modules/@earendil-works/pi-protocol/dist/cbor/index.js.map +1 -0
  851. package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.d.ts +26 -0
  852. package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.d.ts.map +1 -0
  853. package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.js +29 -0
  854. package/node_modules/@earendil-works/pi-protocol/dist/cbor/options.js.map +1 -0
  855. package/node_modules/@earendil-works/pi-protocol/dist/codec.d.ts +29 -0
  856. package/node_modules/@earendil-works/pi-protocol/dist/codec.d.ts.map +1 -0
  857. package/node_modules/@earendil-works/pi-protocol/dist/codec.js +140 -0
  858. package/node_modules/@earendil-works/pi-protocol/dist/codec.js.map +1 -0
  859. package/node_modules/@earendil-works/pi-protocol/dist/framing.d.ts +29 -0
  860. package/node_modules/@earendil-works/pi-protocol/dist/framing.d.ts.map +1 -0
  861. package/node_modules/@earendil-works/pi-protocol/dist/framing.js +152 -0
  862. package/node_modules/@earendil-works/pi-protocol/dist/framing.js.map +1 -0
  863. package/node_modules/@earendil-works/pi-protocol/dist/index.d.ts +5 -0
  864. package/node_modules/@earendil-works/pi-protocol/dist/index.d.ts.map +1 -0
  865. package/node_modules/@earendil-works/pi-protocol/dist/index.js +5 -0
  866. package/node_modules/@earendil-works/pi-protocol/dist/index.js.map +1 -0
  867. package/node_modules/@earendil-works/pi-protocol/dist/schemas.d.ts +13818 -0
  868. package/node_modules/@earendil-works/pi-protocol/dist/schemas.d.ts.map +1 -0
  869. package/node_modules/@earendil-works/pi-protocol/dist/schemas.js +382 -0
  870. package/node_modules/@earendil-works/pi-protocol/dist/schemas.js.map +1 -0
  871. package/node_modules/@earendil-works/pi-protocol/package.json +48 -0
  872. package/node_modules/@earendil-works/pi-pty/package.json +2 -2
  873. package/node_modules/@earendil-works/pi-tui/README.md +77 -14
  874. package/node_modules/@earendil-works/pi-tui/dist/TuiAltScreen.d.ts +83 -0
  875. package/node_modules/@earendil-works/pi-tui/dist/TuiAltScreen.d.ts.map +1 -0
  876. package/node_modules/@earendil-works/pi-tui/dist/TuiAltScreen.js +687 -0
  877. package/node_modules/@earendil-works/pi-tui/dist/TuiAltScreen.js.map +1 -0
  878. package/node_modules/@earendil-works/pi-tui/dist/TuiMainScreen.d.ts +5 -0
  879. package/node_modules/@earendil-works/pi-tui/dist/TuiMainScreen.d.ts.map +1 -0
  880. package/node_modules/@earendil-works/pi-tui/dist/TuiMainScreen.js +5 -0
  881. package/node_modules/@earendil-works/pi-tui/dist/TuiMainScreen.js.map +1 -0
  882. package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.d.ts +13 -0
  883. package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.d.ts.map +1 -0
  884. package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.js +36 -0
  885. package/node_modules/@earendil-works/pi-tui/dist/components/alt-screen-flash.js.map +1 -0
  886. package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.d.ts +7 -0
  887. package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.d.ts.map +1 -0
  888. package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.js +43 -0
  889. package/node_modules/@earendil-works/pi-tui/dist/components/h-stack.js.map +1 -0
  890. package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +1 -1
  891. package/node_modules/@earendil-works/pi-tui/dist/components/image.js +4 -4
  892. package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +1 -1
  893. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -0
  894. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  895. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +3 -2
  896. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  897. package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts +51 -0
  898. package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.d.ts.map +1 -0
  899. package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.js +163 -0
  900. package/node_modules/@earendil-works/pi-tui/dist/components/scroll-view.js.map +1 -0
  901. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
  902. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js +3 -6
  903. package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
  904. package/node_modules/@earendil-works/pi-tui/dist/components/stack.d.ts +32 -0
  905. package/node_modules/@earendil-works/pi-tui/dist/components/stack.d.ts.map +1 -0
  906. package/node_modules/@earendil-works/pi-tui/dist/components/stack.js +109 -0
  907. package/node_modules/@earendil-works/pi-tui/dist/components/stack.js.map +1 -0
  908. package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.d.ts +8 -0
  909. package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.d.ts.map +1 -0
  910. package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.js +21 -0
  911. package/node_modules/@earendil-works/pi-tui/dist/components/v-stack.js.map +1 -0
  912. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +10 -4
  913. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  914. package/node_modules/@earendil-works/pi-tui/dist/index.js +10 -4
  915. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  916. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +30 -0
  917. package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
  918. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js +18 -0
  919. package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
  920. package/node_modules/@earendil-works/pi-tui/dist/layout-node.d.ts +40 -0
  921. package/node_modules/@earendil-works/pi-tui/dist/layout-node.d.ts.map +1 -0
  922. package/node_modules/@earendil-works/pi-tui/dist/layout-node.js +6 -0
  923. package/node_modules/@earendil-works/pi-tui/dist/layout-node.js.map +1 -0
  924. package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts +40 -0
  925. package/node_modules/@earendil-works/pi-tui/dist/layout.d.ts.map +1 -0
  926. package/node_modules/@earendil-works/pi-tui/dist/layout.js +315 -0
  927. package/node_modules/@earendil-works/pi-tui/dist/layout.js.map +1 -0
  928. package/node_modules/@earendil-works/pi-tui/dist/mux.js +1 -1
  929. package/node_modules/@earendil-works/pi-tui/dist/mux.js.map +1 -1
  930. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts +10 -0
  931. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
  932. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +61 -3
  933. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
  934. package/node_modules/@earendil-works/pi-tui/dist/terminal-text.d.ts +1 -0
  935. package/node_modules/@earendil-works/pi-tui/dist/terminal-text.d.ts.map +1 -1
  936. package/node_modules/@earendil-works/pi-tui/dist/terminal-text.js +12 -2
  937. package/node_modules/@earendil-works/pi-tui/dist/terminal-text.js.map +1 -1
  938. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +37 -16
  939. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  940. package/node_modules/@earendil-works/pi-tui/dist/tui.js +89 -21
  941. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  942. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +10 -0
  943. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
  944. package/node_modules/@earendil-works/pi-tui/dist/utils.js +95 -4
  945. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
  946. package/node_modules/@earendil-works/pi-tui/package.json +2 -2
  947. package/node_modules/typebox/build/compile/validator.d.mts +3 -11
  948. package/node_modules/typebox/build/compile/validator.mjs +6 -36
  949. package/node_modules/typebox/build/error/errors.d.mts +1 -7
  950. package/node_modules/typebox/build/format/_idna.mjs +36 -6
  951. package/node_modules/typebox/build/format/_puny.mjs +4 -1
  952. package/node_modules/typebox/build/format/uuid.d.mts +2 -2
  953. package/node_modules/typebox/build/format/uuid.mjs +3 -3
  954. package/node_modules/typebox/build/guard/emit.d.mts +0 -4
  955. package/node_modules/typebox/build/guard/emit.mjs +0 -8
  956. package/node_modules/typebox/build/guard/guard.d.mts +5 -9
  957. package/node_modules/typebox/build/guard/guard.mjs +10 -15
  958. package/node_modules/typebox/build/guard/string.mjs +16 -4
  959. package/node_modules/typebox/build/schema/engine/_functions.mjs +34 -15
  960. package/node_modules/typebox/build/schema/engine/boolean.d.mts +3 -3
  961. package/node_modules/typebox/build/schema/engine/boolean.mjs +4 -4
  962. package/node_modules/typebox/build/schema/engine/index.d.mts +0 -1
  963. package/node_modules/typebox/build/schema/engine/index.mjs +0 -1
  964. package/node_modules/typebox/build/schema/engine/schema.mjs +6 -11
  965. package/node_modules/typebox/build/schema/engine/type.mjs +14 -18
  966. package/node_modules/typebox/build/schema/types/dependencies.mjs +1 -1
  967. package/node_modules/typebox/build/schema/types/index.d.mts +0 -1
  968. package/node_modules/typebox/build/schema/types/index.mjs +0 -1
  969. package/node_modules/typebox/build/schema/types/schema.d.mts +1 -1
  970. package/node_modules/typebox/build/schema/types/schema.mjs +2 -2
  971. package/node_modules/typebox/build/system/locale/ar_001.mjs +0 -1
  972. package/node_modules/typebox/build/system/locale/bn_BD.mjs +0 -1
  973. package/node_modules/typebox/build/system/locale/cs_CZ.mjs +0 -1
  974. package/node_modules/typebox/build/system/locale/de_DE.mjs +0 -1
  975. package/node_modules/typebox/build/system/locale/el_GR.mjs +0 -1
  976. package/node_modules/typebox/build/system/locale/en_US.mjs +0 -1
  977. package/node_modules/typebox/build/system/locale/es_419.mjs +0 -1
  978. package/node_modules/typebox/build/system/locale/es_AR.mjs +0 -1
  979. package/node_modules/typebox/build/system/locale/es_ES.mjs +0 -1
  980. package/node_modules/typebox/build/system/locale/es_MX.mjs +0 -1
  981. package/node_modules/typebox/build/system/locale/fa_IR.mjs +0 -1
  982. package/node_modules/typebox/build/system/locale/fil_PH.mjs +0 -1
  983. package/node_modules/typebox/build/system/locale/fr_CA.mjs +0 -1
  984. package/node_modules/typebox/build/system/locale/fr_FR.mjs +0 -1
  985. package/node_modules/typebox/build/system/locale/ha_NG.mjs +0 -1
  986. package/node_modules/typebox/build/system/locale/hi_IN.mjs +0 -1
  987. package/node_modules/typebox/build/system/locale/hu_HU.mjs +0 -1
  988. package/node_modules/typebox/build/system/locale/id_ID.mjs +0 -1
  989. package/node_modules/typebox/build/system/locale/it_IT.mjs +0 -1
  990. package/node_modules/typebox/build/system/locale/ja_JP.mjs +0 -1
  991. package/node_modules/typebox/build/system/locale/ko_KR.mjs +0 -1
  992. package/node_modules/typebox/build/system/locale/ms_MY.mjs +0 -1
  993. package/node_modules/typebox/build/system/locale/nl_NL.mjs +0 -1
  994. package/node_modules/typebox/build/system/locale/pl_PL.mjs +0 -1
  995. package/node_modules/typebox/build/system/locale/pt_BR.mjs +0 -1
  996. package/node_modules/typebox/build/system/locale/pt_PT.mjs +0 -1
  997. package/node_modules/typebox/build/system/locale/ro_RO.mjs +0 -1
  998. package/node_modules/typebox/build/system/locale/ru_RU.mjs +0 -1
  999. package/node_modules/typebox/build/system/locale/sv_SE.mjs +0 -1
  1000. package/node_modules/typebox/build/system/locale/sw_TZ.mjs +0 -1
  1001. package/node_modules/typebox/build/system/locale/th_TH.mjs +0 -1
  1002. package/node_modules/typebox/build/system/locale/tr_TR.mjs +0 -1
  1003. package/node_modules/typebox/build/system/locale/uk_UA.mjs +0 -1
  1004. package/node_modules/typebox/build/system/locale/ur_PK.mjs +0 -1
  1005. package/node_modules/typebox/build/system/locale/vi_VN.mjs +0 -1
  1006. package/node_modules/typebox/build/system/locale/yo_NG.mjs +0 -1
  1007. package/node_modules/typebox/build/system/locale/zh_Hans.mjs +0 -1
  1008. package/node_modules/typebox/build/system/locale/zh_Hant.mjs +0 -1
  1009. package/node_modules/typebox/build/system/memory/clone.d.mts +2 -3
  1010. package/node_modules/typebox/build/system/memory/clone.mjs +73 -26
  1011. package/node_modules/typebox/build/system/settings/settings.d.mts +15 -0
  1012. package/node_modules/typebox/build/system/settings/settings.mjs +3 -1
  1013. package/node_modules/typebox/build/type/action/_add_immutable.d.mts +11 -0
  1014. package/node_modules/typebox/build/type/action/_add_immutable.mjs +11 -0
  1015. package/node_modules/typebox/build/type/action/_add_optional.d.mts +11 -0
  1016. package/node_modules/typebox/build/type/action/_add_optional.mjs +11 -0
  1017. package/node_modules/typebox/build/type/action/_add_readonly.d.mts +11 -0
  1018. package/node_modules/typebox/build/type/action/_add_readonly.mjs +11 -0
  1019. package/node_modules/typebox/build/type/action/_remove_immutable.d.mts +11 -0
  1020. package/node_modules/typebox/build/type/action/_remove_immutable.mjs +11 -0
  1021. package/node_modules/typebox/build/type/action/_remove_optional.d.mts +11 -0
  1022. package/node_modules/typebox/build/type/action/_remove_optional.mjs +11 -0
  1023. package/node_modules/typebox/build/type/action/_remove_readonly.d.mts +11 -0
  1024. package/node_modules/typebox/build/type/action/_remove_readonly.mjs +11 -0
  1025. package/node_modules/typebox/build/type/action/conditional.d.mts +2 -3
  1026. package/node_modules/typebox/build/type/action/conditional.mjs +2 -1
  1027. package/node_modules/typebox/build/type/action/index.d.mts +7 -4
  1028. package/node_modules/typebox/build/type/action/index.mjs +7 -4
  1029. package/node_modules/typebox/build/type/action/mapped.d.mts +2 -3
  1030. package/node_modules/typebox/build/type/action/mapped.mjs +2 -1
  1031. package/node_modules/typebox/build/type/action/module.d.mts +8 -7
  1032. package/node_modules/typebox/build/type/action/module.mjs +7 -6
  1033. package/node_modules/typebox/build/type/action/readonly_object.mjs +3 -0
  1034. package/node_modules/typebox/build/type/action/with.d.mts +11 -0
  1035. package/node_modules/typebox/build/type/action/with.mjs +11 -0
  1036. package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +1 -1
  1037. package/node_modules/typebox/build/type/engine/call/instantiate.d.mts +1 -3
  1038. package/node_modules/typebox/build/type/engine/call/instantiate.mjs +3 -2
  1039. package/node_modules/typebox/build/type/engine/call/resolve_arguments.mjs +2 -2
  1040. package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.d.mts +3 -4
  1041. package/node_modules/typebox/build/type/engine/constructor_parameters/instantiate.mjs +2 -1
  1042. package/node_modules/typebox/build/type/engine/cyclic/candidates.d.mts +2 -3
  1043. package/node_modules/typebox/build/type/engine/cyclic/candidates.mjs +3 -6
  1044. package/node_modules/typebox/build/type/engine/cyclic/check.d.mts +6 -9
  1045. package/node_modules/typebox/build/type/engine/cyclic/check.mjs +10 -16
  1046. package/node_modules/typebox/build/type/engine/cyclic/dependencies.d.mts +1 -4
  1047. package/node_modules/typebox/build/type/engine/cyclic/dependencies.mjs +9 -15
  1048. package/node_modules/typebox/build/type/engine/cyclic/extends.d.mts +1 -4
  1049. package/node_modules/typebox/build/type/engine/cyclic/extends.mjs +8 -14
  1050. package/node_modules/typebox/build/type/engine/cyclic/instantiate.d.mts +2 -5
  1051. package/node_modules/typebox/build/type/engine/cyclic/instantiate.mjs +3 -2
  1052. package/node_modules/typebox/build/type/engine/enum/index.d.mts +0 -1
  1053. package/node_modules/typebox/build/type/engine/enum/index.mjs +0 -1
  1054. package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +1 -2
  1055. package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +2 -6
  1056. package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +10 -6
  1057. package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +10 -6
  1058. package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +2 -1
  1059. package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +3 -3
  1060. package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +17 -5
  1061. package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +34 -8
  1062. package/node_modules/typebox/build/type/engine/exclude/operation.d.mts +5 -6
  1063. package/node_modules/typebox/build/type/engine/exclude/operation.mjs +11 -12
  1064. package/node_modules/typebox/build/type/engine/extract/operation.d.mts +5 -6
  1065. package/node_modules/typebox/build/type/engine/extract/operation.mjs +11 -12
  1066. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.d.mts +10 -0
  1067. package/node_modules/typebox/build/type/engine/immutable/instantiate_add.mjs +14 -0
  1068. package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.d.mts +10 -0
  1069. package/node_modules/typebox/build/type/engine/immutable/instantiate_remove.mjs +14 -0
  1070. package/node_modules/typebox/build/type/engine/index.d.mts +2 -2
  1071. package/node_modules/typebox/build/type/engine/index.mjs +2 -2
  1072. package/node_modules/typebox/build/type/engine/indexable/from_dependent.d.mts +5 -0
  1073. package/node_modules/typebox/build/type/engine/indexable/from_dependent.mjs +8 -0
  1074. package/node_modules/typebox/build/type/engine/indexable/from_enum.d.mts +3 -3
  1075. package/node_modules/typebox/build/type/engine/indexable/from_enum.mjs +4 -4
  1076. package/node_modules/typebox/build/type/engine/indexable/from_template_literal.d.mts +2 -2
  1077. package/node_modules/typebox/build/type/engine/indexable/from_template_literal.mjs +3 -3
  1078. package/node_modules/typebox/build/type/engine/indexable/from_type.d.mts +3 -1
  1079. package/node_modules/typebox/build/type/engine/indexable/from_type.mjs +9 -6
  1080. package/node_modules/typebox/build/type/engine/indexed/instantiate.d.mts +2 -1
  1081. package/node_modules/typebox/build/type/engine/indexed/instantiate.mjs +5 -2
  1082. package/node_modules/typebox/build/type/engine/instantiate.d.mts +44 -31
  1083. package/node_modules/typebox/build/type/engine/instantiate.mjs +82 -83
  1084. package/node_modules/typebox/build/type/engine/interface/instantiate.d.mts +3 -6
  1085. package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.d.mts +2 -2
  1086. package/node_modules/typebox/build/type/engine/intrinsics/from_template_literal.mjs +3 -3
  1087. package/node_modules/typebox/build/type/engine/keyof/instantiate.d.mts +2 -1
  1088. package/node_modules/typebox/build/type/engine/keyof/instantiate.mjs +5 -1
  1089. package/node_modules/typebox/build/type/engine/mapped/mapped_operation.d.mts +4 -4
  1090. package/node_modules/typebox/build/type/engine/mapped/mapped_operation.mjs +3 -3
  1091. package/node_modules/typebox/build/type/engine/mapped/mapped_variants.d.mts +5 -4
  1092. package/node_modules/typebox/build/type/engine/mapped/mapped_variants.mjs +10 -5
  1093. package/node_modules/typebox/build/type/engine/module/instantiate.d.mts +7 -9
  1094. package/node_modules/typebox/build/type/engine/module/instantiate.mjs +17 -15
  1095. package/node_modules/typebox/build/type/engine/object/from_dependent.d.mts +5 -0
  1096. package/node_modules/typebox/build/type/engine/object/from_dependent.mjs +8 -0
  1097. package/node_modules/typebox/build/type/engine/object/from_type.d.mts +3 -1
  1098. package/node_modules/typebox/build/type/engine/object/from_type.mjs +8 -5
  1099. package/node_modules/typebox/build/type/engine/object/from_union.mjs +2 -2
  1100. package/node_modules/typebox/build/type/engine/optional/instantiate_add.d.mts +10 -0
  1101. package/node_modules/typebox/build/type/engine/optional/instantiate_add.mjs +14 -0
  1102. package/node_modules/typebox/build/type/engine/optional/instantiate_remove.d.mts +10 -0
  1103. package/node_modules/typebox/build/type/engine/optional/instantiate_remove.mjs +14 -0
  1104. package/node_modules/typebox/build/type/engine/parameters/instantiate.d.mts +3 -4
  1105. package/node_modules/typebox/build/type/engine/parameters/instantiate.mjs +2 -1
  1106. package/node_modules/typebox/build/type/engine/partial/from_dependent.d.mts +5 -0
  1107. package/node_modules/typebox/build/type/engine/partial/from_dependent.mjs +8 -0
  1108. package/node_modules/typebox/build/type/engine/partial/from_intersect.d.mts +1 -1
  1109. package/node_modules/typebox/build/type/engine/partial/from_intersect.mjs +3 -2
  1110. package/node_modules/typebox/build/type/engine/partial/from_object.d.mts +2 -2
  1111. package/node_modules/typebox/build/type/engine/partial/from_object.mjs +2 -2
  1112. package/node_modules/typebox/build/type/engine/partial/from_type.d.mts +3 -1
  1113. package/node_modules/typebox/build/type/engine/partial/from_type.mjs +7 -4
  1114. package/node_modules/typebox/build/type/engine/priority/index.d.mts +1 -0
  1115. package/node_modules/typebox/build/type/engine/priority/index.mjs +1 -0
  1116. package/node_modules/typebox/build/type/engine/priority/priority.d.mts +20 -0
  1117. package/node_modules/typebox/build/type/engine/priority/priority.mjs +28 -0
  1118. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.d.mts +10 -0
  1119. package/node_modules/typebox/build/type/engine/readonly/instantiate_add.mjs +14 -0
  1120. package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.d.mts +10 -0
  1121. package/node_modules/typebox/build/type/engine/readonly/instantiate_remove.mjs +14 -0
  1122. package/node_modules/typebox/build/type/engine/readonly_object/from_array.d.mts +2 -2
  1123. package/node_modules/typebox/build/type/engine/readonly_object/from_array.mjs +2 -2
  1124. package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.d.mts +5 -0
  1125. package/node_modules/typebox/build/type/engine/readonly_object/from_dependent.mjs +8 -0
  1126. package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.d.mts +1 -1
  1127. package/node_modules/typebox/build/type/engine/readonly_object/from_intersect.mjs +3 -2
  1128. package/node_modules/typebox/build/type/engine/readonly_object/from_object.d.mts +2 -2
  1129. package/node_modules/typebox/build/type/engine/readonly_object/from_object.mjs +2 -2
  1130. package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.d.mts +2 -2
  1131. package/node_modules/typebox/build/type/engine/readonly_object/from_tuple.mjs +2 -2
  1132. package/node_modules/typebox/build/type/engine/readonly_object/from_type.d.mts +3 -1
  1133. package/node_modules/typebox/build/type/engine/readonly_object/from_type.mjs +8 -5
  1134. package/node_modules/typebox/build/type/engine/record/from_key_enum.d.mts +2 -2
  1135. package/node_modules/typebox/build/type/engine/record/from_key_enum.mjs +2 -2
  1136. package/node_modules/typebox/build/type/engine/record/from_key_template_literal.d.mts +2 -2
  1137. package/node_modules/typebox/build/type/engine/record/from_key_template_literal.mjs +2 -2
  1138. package/node_modules/typebox/build/type/engine/ref/instantiate.d.mts +3 -3
  1139. package/node_modules/typebox/build/type/engine/ref/instantiate.mjs +6 -6
  1140. package/node_modules/typebox/build/type/engine/required/from_dependent.d.mts +5 -0
  1141. package/node_modules/typebox/build/type/engine/required/from_dependent.mjs +8 -0
  1142. package/node_modules/typebox/build/type/engine/required/from_intersect.d.mts +1 -1
  1143. package/node_modules/typebox/build/type/engine/required/from_intersect.mjs +3 -2
  1144. package/node_modules/typebox/build/type/engine/required/from_object.d.mts +2 -2
  1145. package/node_modules/typebox/build/type/engine/required/from_object.mjs +2 -2
  1146. package/node_modules/typebox/build/type/engine/required/from_type.d.mts +3 -1
  1147. package/node_modules/typebox/build/type/engine/required/from_type.mjs +7 -4
  1148. package/node_modules/typebox/build/type/engine/template_literal/decode.mjs +3 -3
  1149. package/node_modules/typebox/build/type/engine/template_literal/encode.d.mts +2 -2
  1150. package/node_modules/typebox/build/type/engine/template_literal/encode.mjs +6 -6
  1151. package/node_modules/typebox/build/type/engine/template_literal/is_finite.mjs +1 -1
  1152. package/node_modules/typebox/build/type/engine/template_literal/is_pattern.mjs +1 -0
  1153. package/node_modules/typebox/build/type/engine/this/expand_this.d.mts +1 -4
  1154. package/node_modules/typebox/build/type/engine/this/expand_this.mjs +7 -13
  1155. package/node_modules/typebox/build/type/engine/with/instantiate.d.mts +8 -0
  1156. package/node_modules/typebox/build/type/engine/{options → with}/instantiate.mjs +5 -5
  1157. package/node_modules/typebox/build/type/extends/dependent.d.mts +6 -0
  1158. package/node_modules/typebox/build/type/extends/dependent.mjs +6 -0
  1159. package/node_modules/typebox/build/type/extends/enum.d.mts +4 -4
  1160. package/node_modules/typebox/build/type/extends/enum.mjs +3 -2
  1161. package/node_modules/typebox/build/type/extends/extends_left.d.mts +5 -7
  1162. package/node_modules/typebox/build/type/extends/extends_left.mjs +24 -27
  1163. package/node_modules/typebox/build/type/extends/extends_right.d.mts +7 -5
  1164. package/node_modules/typebox/build/type/extends/extends_right.mjs +20 -15
  1165. package/node_modules/typebox/build/type/extends/inference.mjs +1 -1
  1166. package/node_modules/typebox/build/type/extends/object.d.mts +8 -1
  1167. package/node_modules/typebox/build/type/extends/object.mjs +25 -3
  1168. package/node_modules/typebox/build/type/extends/parameters.mjs +2 -2
  1169. package/node_modules/typebox/build/type/extends/record.d.mts +13 -0
  1170. package/node_modules/typebox/build/type/extends/record.mjs +23 -0
  1171. package/node_modules/typebox/build/type/extends/template_literal.d.mts +3 -3
  1172. package/node_modules/typebox/build/type/extends/template_literal.mjs +3 -3
  1173. package/node_modules/typebox/build/type/extends/tuple.d.mts +3 -6
  1174. package/node_modules/typebox/build/type/extends/tuple.mjs +6 -5
  1175. package/node_modules/typebox/build/type/extends/union.mjs +2 -2
  1176. package/node_modules/typebox/build/type/script/mapping.d.mts +86 -98
  1177. package/node_modules/typebox/build/type/script/mapping.mjs +95 -92
  1178. package/node_modules/typebox/build/type/script/parser.d.mts +42 -40
  1179. package/node_modules/typebox/build/type/script/parser.mjs +23 -22
  1180. package/node_modules/typebox/build/type/script/script.d.mts +3 -4
  1181. package/node_modules/typebox/build/type/script/script.mjs +3 -2
  1182. package/node_modules/typebox/build/type/script/token/internal/guard.d.mts +1 -1
  1183. package/node_modules/typebox/build/type/script/token/internal/guard.mjs +1 -1
  1184. package/node_modules/typebox/build/type/script/token/internal/take.mjs +1 -1
  1185. package/node_modules/typebox/build/type/script/token/until.mjs +2 -2
  1186. package/node_modules/typebox/build/type/types/_codec.d.mts +12 -12
  1187. package/node_modules/typebox/build/type/types/_codec.mjs +0 -1
  1188. package/node_modules/typebox/build/type/types/_immutable.d.mts +2 -9
  1189. package/node_modules/typebox/build/type/types/_immutable.mjs +2 -10
  1190. package/node_modules/typebox/build/type/types/_optional.d.mts +2 -9
  1191. package/node_modules/typebox/build/type/types/_optional.mjs +2 -11
  1192. package/node_modules/typebox/build/type/types/_readonly.d.mts +2 -9
  1193. package/node_modules/typebox/build/type/types/_readonly.mjs +2 -10
  1194. package/node_modules/typebox/build/type/types/_refine.d.mts +8 -10
  1195. package/node_modules/typebox/build/type/types/_refine.mjs +1 -2
  1196. package/node_modules/typebox/build/type/types/call.d.mts +3 -3
  1197. package/node_modules/typebox/build/type/types/call.mjs +3 -2
  1198. package/node_modules/typebox/build/type/types/deferred.d.mts +1 -0
  1199. package/node_modules/typebox/build/type/types/deferred.mjs +1 -1
  1200. package/node_modules/typebox/build/type/types/dependent.d.mts +17 -0
  1201. package/node_modules/typebox/build/type/types/dependent.mjs +24 -0
  1202. package/node_modules/typebox/build/type/types/enum.d.mts +3 -1
  1203. package/node_modules/typebox/build/type/types/enum.mjs +5 -0
  1204. package/node_modules/typebox/build/type/types/index.d.mts +1 -4
  1205. package/node_modules/typebox/build/type/types/index.mjs +1 -4
  1206. package/node_modules/typebox/build/type/types/number.d.mts +1 -1
  1207. package/node_modules/typebox/build/type/types/number.mjs +1 -1
  1208. package/node_modules/typebox/build/type/types/record.d.mts +13 -7
  1209. package/node_modules/typebox/build/type/types/record.mjs +15 -9
  1210. package/node_modules/typebox/build/type/types/static.d.mts +2 -5
  1211. package/node_modules/typebox/build/typebox.d.mts +3 -7
  1212. package/node_modules/typebox/build/typebox.mjs +3 -7
  1213. package/node_modules/typebox/build/value/clean/clean.mjs +4 -2
  1214. package/node_modules/typebox/build/value/clean/from_intersect.mjs +2 -2
  1215. package/node_modules/typebox/build/value/clean/from_type.mjs +8 -10
  1216. package/node_modules/typebox/build/value/clean/from_union.d.mts +1 -1
  1217. package/node_modules/typebox/build/value/clean/from_union.mjs +1 -2
  1218. package/node_modules/typebox/build/value/clone/clone.mjs +2 -73
  1219. package/node_modules/typebox/build/value/codec/decode.mjs +4 -2
  1220. package/node_modules/typebox/build/value/codec/encode.mjs +4 -2
  1221. package/node_modules/typebox/build/value/codec/from_array.mjs +1 -4
  1222. package/node_modules/typebox/build/value/codec/from_object.mjs +1 -4
  1223. package/node_modules/typebox/build/value/codec/from_record.mjs +2 -7
  1224. package/node_modules/typebox/build/value/codec/from_tuple.mjs +1 -4
  1225. package/node_modules/typebox/build/value/codec/from_union.mjs +2 -3
  1226. package/node_modules/typebox/build/value/convert/from_enum.mjs +3 -4
  1227. package/node_modules/typebox/build/value/convert/from_template_literal.d.mts +1 -1
  1228. package/node_modules/typebox/build/value/convert/from_template_literal.mjs +2 -3
  1229. package/node_modules/typebox/build/value/convert/from_type.mjs +19 -21
  1230. package/node_modules/typebox/build/value/create/from_enum.mjs +2 -2
  1231. package/node_modules/typebox/build/value/create/from_type.mjs +23 -31
  1232. package/node_modules/typebox/build/value/default/from_object.mjs +1 -1
  1233. package/node_modules/typebox/build/value/default/from_type.mjs +8 -10
  1234. package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
  1235. package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
  1236. package/node_modules/typebox/build/value/index.d.mts +0 -1
  1237. package/node_modules/typebox/build/value/index.mjs +0 -1
  1238. package/node_modules/typebox/build/value/repair/from_enum.mjs +2 -3
  1239. package/node_modules/typebox/build/value/repair/from_type.mjs +24 -22
  1240. package/node_modules/typebox/build/value/shared/union_priority_sort.d.mts +6 -2
  1241. package/node_modules/typebox/build/value/shared/union_priority_sort.mjs +62 -26
  1242. package/node_modules/typebox/build/value/value.d.mts +0 -1
  1243. package/node_modules/typebox/build/value/value.mjs +0 -1
  1244. package/node_modules/typebox/package.json +33 -33
  1245. package/node_modules/typebox/readme.md +117 -103
  1246. package/package.json +20 -10
  1247. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.d.ts.map +0 -1
  1248. package/dist/core/extensions/builtin/claude-agent-sdk/auth-lane.js.map +0 -1
  1249. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts +0 -6
  1250. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.d.ts.map +0 -1
  1251. package/dist/core/extensions/builtin/claude-agent-sdk/guidance.js.map +0 -1
  1252. package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts +0 -4
  1253. package/dist/core/extensions/builtin/claude-agent-sdk/index.d.ts.map +0 -1
  1254. package/dist/core/extensions/builtin/claude-agent-sdk/index.js.map +0 -1
  1255. package/dist/core/extensions/builtin/claude-agent-sdk/oauth-login.js.map +0 -1
  1256. package/dist/core/extensions/builtin/claude-agent-sdk/options.d.ts +0 -16
  1257. package/dist/core/extensions/builtin/claude-agent-sdk/options.js.map +0 -1
  1258. package/dist/core/extensions/builtin/claude-agent-sdk/prompt-bridge.js.map +0 -1
  1259. package/dist/core/extensions/builtin/claude-agent-sdk/sdk-boundary.d.ts.map +0 -1
  1260. package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts +0 -15
  1261. package/dist/core/extensions/builtin/claude-agent-sdk/settings.d.ts.map +0 -1
  1262. package/dist/core/extensions/builtin/claude-agent-sdk/settings.js +0 -41
  1263. package/dist/core/extensions/builtin/claude-agent-sdk/settings.js.map +0 -1
  1264. package/dist/core/extensions/builtin/claude-agent-sdk/stream.d.ts.map +0 -1
  1265. package/dist/core/extensions/builtin/claude-agent-sdk/stream.js +0 -229
  1266. package/dist/core/extensions/builtin/claude-agent-sdk/stream.js.map +0 -1
  1267. package/dist/core/extensions/builtin/claude-agent-sdk/tools.d.ts.map +0 -1
  1268. package/dist/core/extensions/builtin/claude-agent-sdk/tools.js.map +0 -1
  1269. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts +0 -3
  1270. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.d.ts.map +0 -1
  1271. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js +0 -75
  1272. package/dist/core/extensions/builtin/tool-pair-guard/sanitize-anthropic-payload.js.map +0 -1
  1273. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts +0 -26
  1274. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  1275. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js +0 -100
  1276. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +0 -1
  1277. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +0 -42
  1278. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  1279. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js +0 -286
  1280. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +0 -1
  1281. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts +0 -18
  1282. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts.map +0 -1
  1283. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js +0 -44
  1284. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js.map +0 -1
  1285. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts +0 -33
  1286. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts.map +0 -1
  1287. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js +0 -163
  1288. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js.map +0 -1
  1289. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts +0 -11
  1290. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts.map +0 -1
  1291. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js +0 -39
  1292. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js.map +0 -1
  1293. package/node_modules/typebox/build/schema/engine/_guard.d.mts +0 -6
  1294. package/node_modules/typebox/build/schema/engine/_guard.mjs +0 -26
  1295. package/node_modules/typebox/build/schema/types/_guard.d.mts +0 -10
  1296. package/node_modules/typebox/build/schema/types/_guard.mjs +0 -16
  1297. package/node_modules/typebox/build/type/action/_optional.d.mts +0 -19
  1298. package/node_modules/typebox/build/type/action/_optional.mjs +0 -40
  1299. package/node_modules/typebox/build/type/action/_readonly.d.mts +0 -19
  1300. package/node_modules/typebox/build/type/action/_readonly.mjs +0 -40
  1301. package/node_modules/typebox/build/type/action/awaited.d.mts +0 -15
  1302. package/node_modules/typebox/build/type/action/awaited.mjs +0 -15
  1303. package/node_modules/typebox/build/type/action/options.d.mts +0 -11
  1304. package/node_modules/typebox/build/type/action/options.mjs +0 -11
  1305. package/node_modules/typebox/build/type/engine/awaited/instantiate.d.mts +0 -11
  1306. package/node_modules/typebox/build/type/engine/awaited/instantiate.mjs +0 -20
  1307. package/node_modules/typebox/build/type/engine/enum/enum_to_union.d.mts +0 -14
  1308. package/node_modules/typebox/build/type/engine/enum/enum_to_union.mjs +0 -24
  1309. package/node_modules/typebox/build/type/engine/options/index.d.mts +0 -1
  1310. package/node_modules/typebox/build/type/engine/options/index.mjs +0 -1
  1311. package/node_modules/typebox/build/type/engine/options/instantiate.d.mts +0 -8
  1312. package/node_modules/typebox/build/type/extends/async_iterator.d.mts +0 -7
  1313. package/node_modules/typebox/build/type/extends/async_iterator.mjs +0 -9
  1314. package/node_modules/typebox/build/type/extends/iterator.d.mts +0 -7
  1315. package/node_modules/typebox/build/type/extends/iterator.mjs +0 -9
  1316. package/node_modules/typebox/build/type/extends/promise.d.mts +0 -7
  1317. package/node_modules/typebox/build/type/extends/promise.mjs +0 -9
  1318. package/node_modules/typebox/build/type/types/async_iterator.d.mts +0 -20
  1319. package/node_modules/typebox/build/type/types/async_iterator.mjs +0 -28
  1320. package/node_modules/typebox/build/type/types/base.d.mts +0 -50
  1321. package/node_modules/typebox/build/type/types/base.mjs +0 -84
  1322. package/node_modules/typebox/build/type/types/iterator.d.mts +0 -20
  1323. package/node_modules/typebox/build/type/types/iterator.mjs +0 -28
  1324. package/node_modules/typebox/build/type/types/promise.d.mts +0 -21
  1325. package/node_modules/typebox/build/type/types/promise.mjs +0 -29
  1326. package/node_modules/typebox/build/value/clean/from_base.d.mts +0 -2
  1327. package/node_modules/typebox/build/value/clean/from_base.mjs +0 -4
  1328. package/node_modules/typebox/build/value/convert/from_base.d.mts +0 -2
  1329. package/node_modules/typebox/build/value/convert/from_base.mjs +0 -4
  1330. package/node_modules/typebox/build/value/create/from_async_iterator.d.mts +0 -2
  1331. package/node_modules/typebox/build/value/create/from_async_iterator.mjs +0 -5
  1332. package/node_modules/typebox/build/value/create/from_base.d.mts +0 -2
  1333. package/node_modules/typebox/build/value/create/from_base.mjs +0 -4
  1334. package/node_modules/typebox/build/value/create/from_iterator.d.mts +0 -2
  1335. package/node_modules/typebox/build/value/create/from_iterator.mjs +0 -5
  1336. package/node_modules/typebox/build/value/create/from_promise.d.mts +0 -2
  1337. package/node_modules/typebox/build/value/create/from_promise.mjs +0 -5
  1338. package/node_modules/typebox/build/value/default/from_base.d.mts +0 -2
  1339. package/node_modules/typebox/build/value/default/from_base.mjs +0 -5
  1340. package/node_modules/typebox/build/value/mutate/error.d.mts +0 -3
  1341. package/node_modules/typebox/build/value/mutate/error.mjs +0 -6
  1342. package/node_modules/typebox/build/value/mutate/from_array.d.mts +0 -2
  1343. package/node_modules/typebox/build/value/mutate/from_array.mjs +0 -16
  1344. package/node_modules/typebox/build/value/mutate/from_object.d.mts +0 -2
  1345. package/node_modules/typebox/build/value/mutate/from_object.mjs +0 -40
  1346. package/node_modules/typebox/build/value/mutate/from_unknown.d.mts +0 -2
  1347. package/node_modules/typebox/build/value/mutate/from_unknown.mjs +0 -7
  1348. package/node_modules/typebox/build/value/mutate/from_value.d.mts +0 -2
  1349. package/node_modules/typebox/build/value/mutate/from_value.mjs +0 -12
  1350. package/node_modules/typebox/build/value/mutate/index.d.mts +0 -1
  1351. package/node_modules/typebox/build/value/mutate/index.mjs +0 -1
  1352. package/node_modules/typebox/build/value/mutate/mutate.d.mts +0 -11
  1353. package/node_modules/typebox/build/value/mutate/mutate.mjs +0 -41
  1354. package/node_modules/typebox/build/value/repair/from_base.d.mts +0 -2
  1355. package/node_modules/typebox/build/value/repair/from_base.mjs +0 -8
  1356. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.d.ts +0 -0
  1357. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/account-events.js +0 -0
  1358. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.d.ts +0 -0
  1359. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools-schema.js +0 -0
  1360. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.d.ts +0 -0
  1361. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/custom-tools.js +0 -0
  1362. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.d.ts +0 -0
  1363. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/executable.js +0 -0
  1364. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/failover.d.ts +0 -0
  1365. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/prompt-bridge.d.ts +0 -0
  1366. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/sdk-boundary.js +0 -0
  1367. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.d.ts +0 -0
  1368. /package/dist/core/extensions/builtin/{claude-agent-sdk → claude-sdk-oauth}/stream-protocol.js +0 -0
  1369. /package/node_modules/typebox/build/type/engine/{awaited → with}/index.d.mts +0 -0
  1370. /package/node_modules/typebox/build/type/engine/{awaited → with}/index.mjs +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype AssistantMessage,\n\tcontentText,\n\ttype ImageContent,\n\ttype Model,\n\ttype Models,\n\ttype RetryCallbacks,\n\ttype RetryPolicy,\n\ttype UserMessage,\n} from \"@earendil-works/pi-ai\";\nimport { runAgentLoop } from \"../agent-loop.ts\";\nimport type {\n\tAgentContext,\n\tAgentEvent,\n\tAgentLoopConfig,\n\tAgentMessage,\n\tAgentTool,\n\tQueueMode,\n\tStreamFn,\n\tThinkingLevel,\n} from \"../types.ts\";\nimport { collectEntriesForBranchSummary, generateBranchSummary } from \"./compaction/branch-summarization.ts\";\nimport { compact, DEFAULT_COMPACTION_SETTINGS, prepareCompaction } from \"./compaction/compaction.ts\";\nimport { convertToLlm } from \"./messages.ts\";\nimport { formatPromptTemplateInvocation } from \"./prompt-templates.ts\";\nimport { formatSkillInvocation } from \"./skills.ts\";\nimport type {\n\tAbortResult,\n\tAgentHarnessEvent,\n\tAgentHarnessEventResultMap,\n\tAgentHarnessOptions,\n\tAgentHarnessOwnEvent,\n\tAgentHarnessPhase,\n\tAgentHarnessResources,\n\tAgentHarnessStreamOptions,\n\tAgentHarnessStreamOptionsPatch,\n\tAgentHarnessSystemPrompt,\n\tAgentHarnessTool,\n\tAgentHarnessToolContextSource,\n\tCompactResult,\n\tNavigateTreeResult,\n\tPendingSessionWrite,\n\tPromptTemplate,\n\tSession,\n\tSkill,\n} from \"./types.ts\";\nimport { AgentHarnessError, BranchSummaryError, CompactionError, SessionError, toError } from \"./types.ts\";\n\nfunction createUserMessage(text: string, images?: ImageContent[]): UserMessage {\n\tconst content: Array<{ type: \"text\"; text: string } | ImageContent> = [{ type: \"text\", text }];\n\tif (images) content.push(...images);\n\treturn { role: \"user\", content, timestamp: Date.now() };\n}\n\nfunction createFailureMessage(model: Model<any>, error: unknown, aborted: boolean): AssistantMessage {\n\treturn {\n\t\trole: \"assistant\",\n\t\tcontent: [{ type: \"text\", text: \"\" }],\n\t\tapi: model.api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tstopReason: aborted ? \"aborted\" : \"error\",\n\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\ttimestamp: Date.now(),\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t};\n}\n\nfunction cloneStreamOptions(streamOptions?: AgentHarnessStreamOptions): AgentHarnessStreamOptions {\n\treturn {\n\t\t...streamOptions,\n\t\theaders: streamOptions?.headers ? { ...streamOptions.headers } : undefined,\n\t\tmetadata: streamOptions?.metadata ? { ...streamOptions.metadata } : undefined,\n\t};\n}\n\nfunction _mergeHeaders(...headers: Array<Record<string, string> | undefined>): Record<string, string> | undefined {\n\tconst merged: Record<string, string> = {};\n\tlet hasHeaders = false;\n\tfor (const entry of headers) {\n\t\tif (!entry) continue;\n\t\tObject.assign(merged, entry);\n\t\thasHeaders = true;\n\t}\n\treturn hasHeaders ? merged : undefined;\n}\n\nconst objectHasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction hasOwn(object: object, key: PropertyKey): boolean {\n\treturn objectHasOwnProperty.call(object, key);\n}\n\nfunction findDuplicateNames(names: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst duplicates = new Set<string>();\n\tfor (const name of names) {\n\t\tif (seen.has(name)) duplicates.add(name);\n\t\tseen.add(name);\n\t}\n\treturn [...duplicates];\n}\n\nfunction applyStreamOptionsPatch(\n\tbase: AgentHarnessStreamOptions,\n\tpatch?: AgentHarnessStreamOptionsPatch,\n): AgentHarnessStreamOptions {\n\tconst result = cloneStreamOptions(base);\n\tif (!patch) return result;\n\n\tif (hasOwn(patch, \"transport\")) result.transport = patch.transport;\n\tif (hasOwn(patch, \"timeoutMs\")) result.timeoutMs = patch.timeoutMs;\n\tif (hasOwn(patch, \"maxRetries\")) result.maxRetries = patch.maxRetries;\n\tif (hasOwn(patch, \"maxRetryDelayMs\")) result.maxRetryDelayMs = patch.maxRetryDelayMs;\n\tif (hasOwn(patch, \"cacheRetention\")) result.cacheRetention = patch.cacheRetention;\n\n\tif (hasOwn(patch, \"headers\")) {\n\t\tif (patch.headers === undefined) {\n\t\t\tresult.headers = undefined;\n\t\t} else {\n\t\t\tconst headers = { ...(result.headers ?? {}) };\n\t\t\tfor (const [key, value] of Object.entries(patch.headers)) {\n\t\t\t\tif (value === undefined) delete headers[key];\n\t\t\t\telse headers[key] = value;\n\t\t\t}\n\t\t\tresult.headers = Object.keys(headers).length > 0 ? headers : undefined;\n\t\t}\n\t}\n\n\tif (hasOwn(patch, \"metadata\")) {\n\t\tif (patch.metadata === undefined) {\n\t\t\tresult.metadata = undefined;\n\t\t} else {\n\t\t\tconst metadata = { ...(result.metadata ?? {}) };\n\t\t\tfor (const [key, value] of Object.entries(patch.metadata)) {\n\t\t\t\tif (value === undefined) delete metadata[key];\n\t\t\t\telse metadata[key] = value;\n\t\t\t}\n\t\t\tresult.metadata = Object.keys(metadata).length > 0 ? metadata : undefined;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst SUBSCRIBER_EVENT_TYPE = \"*\";\n\ntype AgentHarnessHandler = (event: any, signal?: AbortSignal) => Promise<any> | any;\n\nfunction normalizeHarnessError(error: unknown, fallbackCode: AgentHarnessError[\"code\"]): AgentHarnessError {\n\tif (error instanceof AgentHarnessError) return error;\n\tconst cause = toError(error);\n\tif (cause instanceof SessionError) return new AgentHarnessError(\"session\", cause.message, cause);\n\tif (cause instanceof CompactionError) return new AgentHarnessError(\"compaction\", cause.message, cause);\n\tif (cause instanceof BranchSummaryError) return new AgentHarnessError(\"branch_summary\", cause.message, cause);\n\treturn new AgentHarnessError(fallbackCode, cause.message, cause);\n}\n\nfunction normalizeHookError(error: unknown): AgentHarnessError {\n\treturn normalizeHarnessError(error, \"hook\");\n}\n\ninterface AgentHarnessTurnState<\n\tTContext extends object | undefined,\n\tTSkill extends Skill = Skill,\n\tTPromptTemplate extends PromptTemplate = PromptTemplate,\n\tTTool extends AgentHarnessTool<TContext> = AgentHarnessTool<TContext>,\n> {\n\tmessages: AgentMessage[];\n\tresources: AgentHarnessResources<TSkill, TPromptTemplate>;\n\ttoolContext: TContext;\n\tstreamOptions: AgentHarnessStreamOptions;\n\tsessionId: string;\n\tsystemPrompt: string;\n\tmodel: Model<any>;\n\tthinkingLevel: ThinkingLevel;\n\ttools: TTool[];\n\tactiveTools: TTool[];\n}\n\nexport class AgentHarness<\n\tTContext extends object | undefined = undefined,\n\tTSkill extends Skill = Skill,\n\tTPromptTemplate extends PromptTemplate = PromptTemplate,\n\tTTool extends AgentHarnessTool<TContext> = AgentHarnessTool<TContext>,\n> {\n\tprivate session: Session;\n\treadonly models: Models;\n\tprivate phase: AgentHarnessPhase = \"idle\";\n\tprivate runAbortController?: AbortController;\n\tprivate runPromise?: Promise<void>;\n\tprivate pendingSessionWrites: PendingSessionWrite[] = [];\n\tprivate model: Model<any>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate systemPrompt: AgentHarnessSystemPrompt<TContext, TSkill, TPromptTemplate, TTool> | undefined;\n\tprivate toolContext: AgentHarnessToolContextSource<TContext> | undefined;\n\tprivate streamOptions: AgentHarnessStreamOptions;\n\tprivate retry: RetryPolicy | undefined;\n\tprivate resources: AgentHarnessResources<TSkill, TPromptTemplate>;\n\tprivate tools = new Map<string, TTool>();\n\tprivate activeToolNames: string[];\n\tprivate steerQueue: UserMessage[] = [];\n\tprivate steeringQueueMode: QueueMode;\n\tprivate followUpQueue: UserMessage[] = [];\n\tprivate followUpQueueMode: QueueMode;\n\tprivate nextTurnQueue: AgentMessage[] = [];\n\tprivate handlers = new Map<string, Set<AgentHarnessHandler>>();\n\n\tconstructor(options: AgentHarnessOptions<TContext, TSkill, TPromptTemplate, TTool>) {\n\t\tthis.session = options.session;\n\t\tthis.models = options.models;\n\t\tthis.resources = options.resources ?? {};\n\t\tthis.streamOptions = cloneStreamOptions(options.streamOptions);\n\t\tthis.retry = options.retry;\n\t\tthis.systemPrompt = options.systemPrompt;\n\t\tthis.toolContext = options.toolContext;\n\t\tthis.validateUniqueNames(\n\t\t\t(options.tools ?? []).map((tool) => tool.name),\n\t\t\t\"Duplicate tool name(s)\",\n\t\t);\n\t\tfor (const tool of options.tools ?? []) {\n\t\t\tthis.tools.set(tool.name, tool);\n\t\t}\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = options.activeToolNames\n\t\t\t? [...options.activeToolNames]\n\t\t\t: (options.tools ?? []).map((tool) => tool.name);\n\t\tthis.validateUniqueNames(this.activeToolNames, \"Duplicate active tool name(s)\");\n\t\tthis.validateToolNames(this.activeToolNames);\n\t\tthis.steeringQueueMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpQueueMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tprivate getHandlers(type: string): Set<AgentHarnessHandler> | undefined {\n\t\treturn this.handlers.get(type);\n\t}\n\n\tprivate async emitOwn(event: AgentHarnessOwnEvent<TSkill, TPromptTemplate>, signal?: AbortSignal): Promise<void> {\n\t\tfor (const listener of this.getHandlers(SUBSCRIBER_EVENT_TYPE) ?? []) {\n\t\t\ttry {\n\t\t\t\tawait listener(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async emitAny(event: AgentHarnessEvent<TSkill, TPromptTemplate>, signal?: AbortSignal): Promise<void> {\n\t\tfor (const listener of this.getHandlers(SUBSCRIBER_EVENT_TYPE) ?? []) {\n\t\t\ttry {\n\t\t\t\tawait listener(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async emitHook<TType extends keyof AgentHarnessEventResultMap>(\n\t\tevent: Extract<AgentHarnessOwnEvent, { type: TType }>,\n\t): Promise<AgentHarnessEventResultMap[TType] | undefined> {\n\t\tconst handlers = this.getHandlers(event.type as TType);\n\t\tif (!handlers || handlers.size === 0) return undefined;\n\t\tlet lastResult: AgentHarnessEventResultMap[TType] | undefined;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler(event);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\tlastResult = result;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn lastResult;\n\t}\n\n\tprivate retryCallbacks(operation: \"compaction\" | \"branch_summary\"): RetryCallbacks {\n\t\treturn {\n\t\t\tonRetryScheduled: (attempt, maxAttempts, delayMs, errorMessage) =>\n\t\t\t\tthis.emitOwn({ type: \"retry_scheduled\", operation, attempt, maxAttempts, delayMs, errorMessage }),\n\t\t\tonRetryAttemptStart: () => this.emitOwn({ type: \"retry_attempt_start\", operation }),\n\t\t\tonRetryFinished: () => this.emitOwn({ type: \"retry_finished\", operation }),\n\t\t};\n\t}\n\n\tprivate async emitBeforeProviderRequest(\n\t\tmodel: Model<any>,\n\t\tsessionId: string,\n\t\tstreamOptions: AgentHarnessStreamOptions,\n\t): Promise<AgentHarnessStreamOptions> {\n\t\tconst handlers = this.getHandlers(\"before_provider_request\");\n\t\tlet current = cloneStreamOptions(streamOptions);\n\t\tif (!handlers || handlers.size === 0) return current;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler({\n\t\t\t\t\ttype: \"before_provider_request\",\n\t\t\t\t\tmodel,\n\t\t\t\t\tsessionId,\n\t\t\t\t\tstreamOptions: cloneStreamOptions(current),\n\t\t\t\t});\n\t\t\t\tif (result?.streamOptions) {\n\t\t\t\t\tcurrent = applyStreamOptionsPatch(current, result.streamOptions);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn current;\n\t}\n\n\tprivate async emitBeforeProviderPayload(model: Model<any>, payload: unknown): Promise<unknown> {\n\t\tconst handlers = this.getHandlers(\"before_provider_payload\");\n\t\tlet current = payload;\n\t\tif (!handlers || handlers.size === 0) return current;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler({ type: \"before_provider_payload\", model, payload: current });\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\tcurrent = result.payload;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn current;\n\t}\n\n\tprivate async emitQueueUpdate(): Promise<void> {\n\t\tawait this.emitOwn({\n\t\t\ttype: \"queue_update\",\n\t\t\tsteer: [...this.steerQueue],\n\t\t\tfollowUp: [...this.followUpQueue],\n\t\t\tnextTurn: [...this.nextTurnQueue],\n\t\t});\n\t}\n\n\tprivate startRunPromise(): () => void {\n\t\tlet finish = () => {};\n\t\tthis.runPromise = new Promise<void>((resolve) => {\n\t\t\tfinish = resolve;\n\t\t});\n\t\treturn () => {\n\t\t\tthis.runPromise = undefined;\n\t\t\tfinish();\n\t\t};\n\t}\n\n\tprivate async resolveToolContext(): Promise<TContext> {\n\t\tif (typeof this.toolContext === \"function\") {\n\t\t\treturn await (this.toolContext as () => TContext | Promise<TContext>)();\n\t\t}\n\t\treturn this.toolContext as TContext;\n\t}\n\n\tprivate bindToolContext(tool: TTool, context: TContext): AgentTool {\n\t\treturn {\n\t\t\t...tool,\n\t\t\texecute: (toolCallId, params, signal, onUpdate) => tool.execute(toolCallId, params, signal, onUpdate, context),\n\t\t};\n\t}\n\n\tprivate async createTurnState(): Promise<AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>> {\n\t\tconst context = await this.session.buildContext();\n\t\tconst resources = this.getResources();\n\t\tconst sessionMetadata = await this.session.getMetadata();\n\t\tconst toolContext = await this.resolveToolContext();\n\t\tconst tools = [...this.tools.values()];\n\t\tconst activeTools = this.activeToolNames\n\t\t\t.map((name) => this.tools.get(name))\n\t\t\t.filter((tool): tool is TTool => tool !== undefined);\n\t\tlet systemPrompt = \"You are a helpful assistant.\";\n\t\tif (typeof this.systemPrompt === \"string\") {\n\t\t\tsystemPrompt = this.systemPrompt;\n\t\t} else if (this.systemPrompt) {\n\t\t\tsystemPrompt = await this.systemPrompt({\n\t\t\t\tsession: this.session,\n\t\t\t\tmodel: this.model,\n\t\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\t\tactiveTools,\n\t\t\t\tresources,\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tmessages: context.messages,\n\t\t\tresources,\n\t\t\ttoolContext,\n\t\t\tstreamOptions: cloneStreamOptions(this.streamOptions),\n\t\t\tsessionId: sessionMetadata.id,\n\t\t\tsystemPrompt,\n\t\t\tmodel: this.model,\n\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\ttools,\n\t\t\tactiveTools,\n\t\t};\n\t}\n\n\tprivate createContext(\n\t\tturnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\tsystemPrompt?: string,\n\t): AgentContext {\n\t\treturn {\n\t\t\tsystemPrompt: systemPrompt ?? turnState.systemPrompt,\n\t\t\tmessages: turnState.messages.slice(),\n\t\t\ttools: turnState.activeTools.map((tool) => this.bindToolContext(tool, turnState.toolContext)),\n\t\t};\n\t}\n\n\tprivate createStreamFn(\n\t\tgetTurnState: () => AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t): StreamFn {\n\t\treturn async (model, context, streamOptions) => {\n\t\t\tconst turnState = getTurnState();\n\t\t\tconst snapshotOptions: AgentHarnessStreamOptions = { ...turnState.streamOptions };\n\t\t\tconst requestOptions = await this.emitBeforeProviderRequest(model, turnState.sessionId, snapshotOptions);\n\t\t\treturn this.models.streamSimple(model, context, {\n\t\t\t\tcacheRetention: requestOptions.cacheRetention,\n\t\t\t\theaders: requestOptions.headers,\n\t\t\t\tmaxRetries: requestOptions.maxRetries,\n\t\t\t\tmaxRetryDelayMs: requestOptions.maxRetryDelayMs,\n\t\t\t\tmetadata: requestOptions.metadata,\n\t\t\t\tonPayload: async (payload) => await this.emitBeforeProviderPayload(model, payload),\n\t\t\t\tonResponse: async (response) => {\n\t\t\t\t\tconst headers = { ...(response.headers as Record<string, string>) };\n\t\t\t\t\tawait this.emitOwn(\n\t\t\t\t\t\t{ type: \"after_provider_response\", status: response.status, headers },\n\t\t\t\t\t\tstreamOptions?.signal,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treasoning: streamOptions?.reasoning,\n\t\t\t\tsignal: streamOptions?.signal,\n\t\t\t\tsessionId: turnState.sessionId,\n\t\t\t\ttimeoutMs: requestOptions.timeoutMs,\n\t\t\t\ttransport: requestOptions.transport,\n\t\t\t});\n\t\t};\n\t}\n\n\tprivate async drainQueuedMessages(queue: AgentMessage[], mode: QueueMode): Promise<AgentMessage[]> {\n\t\tconst messages = mode === \"all\" ? queue.splice(0) : queue.splice(0, 1);\n\t\tif (messages.length === 0) return messages;\n\t\ttry {\n\t\t\tawait this.emitQueueUpdate();\n\t\t\treturn messages;\n\t\t} catch (error) {\n\t\t\tqueue.unshift(...messages);\n\t\t\tthrow normalizeHookError(error);\n\t\t}\n\t}\n\n\tprivate createLoopConfig(\n\t\tgetTurnState: () => AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\tsetTurnState: (turnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>) => void,\n\t): AgentLoopConfig {\n\t\tconst turnState = getTurnState();\n\t\tlet steeringQueueAtDrain = this.steerQueue;\n\t\tlet followUpQueueAtDrain = this.followUpQueue;\n\t\treturn {\n\t\t\tmodel: turnState.model,\n\t\t\treasoning: turnState.thinkingLevel === \"off\" ? undefined : turnState.thinkingLevel,\n\t\t\tconvertToLlm,\n\t\t\ttransformContext: async (messages) => {\n\t\t\t\tconst result = await this.emitHook({ type: \"context\", messages: [...messages] });\n\t\t\t\treturn result?.messages ?? messages;\n\t\t\t},\n\t\t\tbeforeToolCall: async ({ toolCall, args }) => {\n\t\t\t\tconst result = await this.emitHook({\n\t\t\t\t\ttype: \"tool_call\",\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\ttoolName: toolCall.name,\n\t\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\t});\n\t\t\t\treturn result ? { block: result.block, reason: result.reason } : undefined;\n\t\t\t},\n\t\t\tafterToolCall: async ({ toolCall, args, result, isError }) => {\n\t\t\t\tconst patch = await this.emitHook({\n\t\t\t\t\ttype: \"tool_result\",\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\ttoolName: toolCall.name,\n\t\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\t\tcontent: result.content,\n\t\t\t\t\tdetails: result.details,\n\t\t\t\t\tisError,\n\t\t\t\t\tusage: result.usage,\n\t\t\t\t});\n\t\t\t\treturn patch\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcontent: patch.content,\n\t\t\t\t\t\t\tdetails: patch.details,\n\t\t\t\t\t\t\tisError: patch.isError,\n\t\t\t\t\t\t\tusage: patch.usage,\n\t\t\t\t\t\t\tterminate: patch.terminate,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\t},\n\t\t\tprepareNextTurn: async () => {\n\t\t\t\tawait this.flushPendingSessionWrites();\n\t\t\t\tconst nextTurnState = await this.createTurnState();\n\t\t\t\tsetTurnState(nextTurnState);\n\t\t\t\treturn {\n\t\t\t\t\tcontext: this.createContext(nextTurnState),\n\t\t\t\t\tmodel: nextTurnState.model,\n\t\t\t\t\tthinkingLevel: nextTurnState.thinkingLevel,\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetSteeringMessages: async () => {\n\t\t\t\tsteeringQueueAtDrain = this.steerQueue;\n\t\t\t\treturn this.drainQueuedMessages(steeringQueueAtDrain, this.steeringQueueMode);\n\t\t\t},\n\t\t\tgetFollowUpMessages: async () => {\n\t\t\t\tfollowUpQueueAtDrain = this.followUpQueue;\n\t\t\t\treturn this.drainQueuedMessages(followUpQueueAtDrain, this.followUpQueueMode);\n\t\t\t},\n\t\t\trestorePendingMessages: async (queue, messages) => {\n\t\t\t\tconst target = queue === \"steering\" ? this.steerQueue : this.followUpQueue;\n\t\t\t\tconst drainedQueue = queue === \"steering\" ? steeringQueueAtDrain : followUpQueueAtDrain;\n\t\t\t\tif (target !== drainedQueue) return;\n\t\t\t\tfor (let index = messages.length - 1; index >= 0; index--) {\n\t\t\t\t\tconst message = messages[index];\n\t\t\t\t\tif (message?.role !== \"user\") {\n\t\t\t\t\t\tthrow new AgentHarnessError(\"invalid_state\", \"Only user messages can be restored to input queues\");\n\t\t\t\t\t}\n\t\t\t\t\ttarget.unshift(message);\n\t\t\t\t}\n\t\t\t\tawait this.emitQueueUpdate();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate validateUniqueNames(names: string[], message: string): void {\n\t\tconst duplicates = findDuplicateNames(names);\n\t\tif (duplicates.length > 0)\n\t\t\tthrow new AgentHarnessError(\"invalid_argument\", `${message}: ${duplicates.join(\", \")}`);\n\t}\n\n\tprivate validateToolNames(toolNames: string[], tools: Map<string, TTool> = this.tools): void {\n\t\tthis.validateUniqueNames(toolNames, \"Duplicate active tool name(s)\");\n\t\tconst missing = toolNames.filter((name) => !tools.has(name));\n\t\tif (missing.length > 0) throw new AgentHarnessError(\"invalid_argument\", `Unknown tool(s): ${missing.join(\", \")}`);\n\t}\n\n\tprivate async flushPendingSessionWrites(): Promise<void> {\n\t\twhile (this.pendingSessionWrites.length > 0) {\n\t\t\tconst write = this.pendingSessionWrites[0]!;\n\t\t\tif (write.type === \"message\") {\n\t\t\t\tawait this.session.appendMessage(write.message);\n\t\t\t} else if (write.type === \"model_change\") {\n\t\t\t\tawait this.session.appendModelChange(write.provider, write.modelId);\n\t\t\t} else if (write.type === \"thinking_level_change\") {\n\t\t\t\tawait this.session.appendThinkingLevelChange(write.thinkingLevel);\n\t\t\t} else if (write.type === \"active_tools_change\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(write.activeToolNames);\n\t\t\t} else if (write.type === \"custom\") {\n\t\t\t\tawait this.session.appendCustomEntry(write.customType, write.data);\n\t\t\t} else if (write.type === \"custom_message\") {\n\t\t\t\tawait this.session.appendCustomMessageEntry(write.customType, write.content, write.display, write.details);\n\t\t\t} else if (write.type === \"label\") {\n\t\t\t\tawait this.session.appendLabel(write.targetId, write.label);\n\t\t\t} else if (write.type === \"session_info\") {\n\t\t\t\tawait this.session.appendSessionName(write.name ?? \"\");\n\t\t\t} else if (write.type === \"leaf\") {\n\t\t\t\tawait this.session.getStorage().setLeafId(write.targetId);\n\t\t\t}\n\t\t\tthis.pendingSessionWrites.shift();\n\t\t}\n\t}\n\n\tprivate async handleAgentEvent(event: AgentEvent, signal?: AbortSignal): Promise<void> {\n\t\tif (event.type === \"message_end\") {\n\t\t\tawait this.session.appendMessage(event.message);\n\t\t\tawait this.emitAny(event, signal);\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"turn_end\") {\n\t\t\tlet eventError: unknown;\n\t\t\ttry {\n\t\t\t\tawait this.emitAny(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\teventError = error;\n\t\t\t}\n\t\t\tconst hadPendingMutations = this.pendingSessionWrites.length > 0;\n\t\t\tawait this.flushPendingSessionWrites();\n\t\t\tif (eventError) throw eventError;\n\t\t\tawait this.emitOwn({ type: \"save_point\", hadPendingMutations });\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"agent_end\") {\n\t\t\tawait this.flushPendingSessionWrites();\n\t\t\tthis.phase = \"idle\";\n\t\t\tawait this.emitAny(event, signal);\n\t\t\tawait this.emitOwn({ type: \"settled\", nextTurnCount: this.nextTurnQueue.length }, signal);\n\t\t\treturn;\n\t\t}\n\t\tawait this.emitAny(event, signal);\n\t}\n\n\tprivate async emitRunFailure(\n\t\tmodel: Model<any>,\n\t\terror: unknown,\n\t\taborted: boolean,\n\t\tsignal: AbortSignal,\n\t): Promise<AgentMessage[]> {\n\t\tconst failureMessage = createFailureMessage(model, error, aborted);\n\t\tawait this.handleAgentEvent({ type: \"message_start\", message: failureMessage }, signal);\n\t\tawait this.handleAgentEvent({ type: \"message_end\", message: failureMessage }, signal);\n\t\tawait this.handleAgentEvent({ type: \"turn_end\", message: failureMessage, toolResults: [] }, signal);\n\t\tawait this.handleAgentEvent({ type: \"agent_end\", messages: [failureMessage] }, signal);\n\t\treturn [failureMessage];\n\t}\n\n\tprivate async executeTurn(\n\t\tturnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\ttext: string,\n\t\toptions?: { images?: ImageContent[] },\n\t): Promise<AssistantMessage> {\n\t\tlet activeTurnState = turnState;\n\t\tlet messages: AgentMessage[] = [createUserMessage(text, options?.images)];\n\t\tif (this.nextTurnQueue.length > 0) {\n\t\t\tconst queuedMessages = this.nextTurnQueue.splice(0);\n\t\t\ttry {\n\t\t\t\tawait this.emitQueueUpdate();\n\t\t\t} catch (error) {\n\t\t\t\tthis.nextTurnQueue.unshift(...queuedMessages);\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t\tmessages = [...queuedMessages, messages[0]!];\n\t\t}\n\t\tconst beforeResult = await this.emitHook({\n\t\t\ttype: \"before_agent_start\",\n\t\t\tprompt: text,\n\t\t\timages: options?.images,\n\t\t\tsystemPrompt: turnState.systemPrompt,\n\t\t\tresources: turnState.resources,\n\t\t});\n\t\tif (beforeResult?.messages) messages = [...messages, ...beforeResult.messages];\n\n\t\tconst abortController = new AbortController();\n\t\tconst getTurnState = () => activeTurnState;\n\t\tconst setTurnState = (nextTurnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>) => {\n\t\t\tactiveTurnState = nextTurnState;\n\t\t};\n\t\tthis.runAbortController = abortController;\n\t\tconst runResultPromise = (async () => {\n\t\t\ttry {\n\t\t\t\treturn await runAgentLoop(\n\t\t\t\t\tmessages,\n\t\t\t\t\tthis.createContext(turnState, beforeResult?.systemPrompt),\n\t\t\t\t\tthis.createLoopConfig(getTurnState, setTurnState),\n\t\t\t\t\t(event) => this.handleAgentEvent(event, abortController.signal),\n\t\t\t\t\tabortController.signal,\n\t\t\t\t\tthis.createStreamFn(getTurnState),\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\treturn await this.emitRunFailure(\n\t\t\t\t\t\tactiveTurnState.model,\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tabortController.signal.aborted,\n\t\t\t\t\t\tabortController.signal,\n\t\t\t\t\t);\n\t\t\t\t} catch (failureError) {\n\t\t\t\t\tconst cause = new AggregateError(\n\t\t\t\t\t\t[toError(error), toError(failureError)],\n\t\t\t\t\t\t\"Agent run failed and failure reporting failed\",\n\t\t\t\t\t);\n\t\t\t\t\tthrow new AgentHarnessError(\"unknown\", cause.message, cause);\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t\ttry {\n\t\t\tconst newMessages = await runResultPromise;\n\t\t\tfor (let i = newMessages.length - 1; i >= 0; i--) {\n\t\t\t\tconst message = newMessages[i]!;\n\t\t\t\tif (message.role === \"assistant\") {\n\t\t\t\t\treturn message;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new AgentHarnessError(\"invalid_state\", \"AgentHarness prompt completed without an assistant message\");\n\t\t} finally {\n\t\t\ttry {\n\t\t\t\tawait this.flushPendingSessionWrites();\n\t\t\t} finally {\n\t\t\t\tthis.runAbortController = undefined;\n\t\t\t}\n\t\t}\n\t}\n\n\tasync prompt(text: string, options?: { images?: ImageContent[] }): Promise<AssistantMessage> {\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst finishRunPromise = this.startRunPromise();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\treturn await this.executeTurn(turnState, text, options);\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\tfinishRunPromise();\n\t\t}\n\t}\n\n\tasync skill(name: string, additionalInstructions?: string): Promise<AssistantMessage> {\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst finishRunPromise = this.startRunPromise();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\tconst skill = (turnState.resources.skills ?? []).find((candidate) => candidate.name === name);\n\t\t\tif (!skill) throw new AgentHarnessError(\"invalid_argument\", `Unknown skill: ${name}`);\n\t\t\treturn await this.executeTurn(turnState, formatSkillInvocation(skill, additionalInstructions));\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\tfinishRunPromise();\n\t\t}\n\t}\n\n\tasync promptFromTemplate(name: string, args: string[] = []): Promise<AssistantMessage> {\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst finishRunPromise = this.startRunPromise();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\tconst template = (turnState.resources.promptTemplates ?? []).find((candidate) => candidate.name === name);\n\t\t\tif (!template) throw new AgentHarnessError(\"invalid_argument\", `Unknown prompt template: ${name}`);\n\t\t\treturn await this.executeTurn(turnState, formatPromptTemplateInvocation(template, args));\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\tfinishRunPromise();\n\t\t}\n\t}\n\n\tasync steer(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tif (this.phase === \"idle\") throw new AgentHarnessError(\"invalid_state\", \"Cannot steer while idle\");\n\t\tthis.steerQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync followUp(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tif (this.phase === \"idle\") throw new AgentHarnessError(\"invalid_state\", \"Cannot follow up while idle\");\n\t\tthis.followUpQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync nextTurn(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tthis.nextTurnQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync appendMessage(message: AgentMessage): Promise<void> {\n\t\ttry {\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendMessage(message);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"message\", message });\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t}\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactResult> {\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"compact() requires idle harness\");\n\t\tthis.phase = \"compaction\";\n\t\ttry {\n\t\t\tconst model = this.model;\n\t\t\tif (!model) throw new AgentHarnessError(\"invalid_state\", \"No model set for compaction\");\n\t\t\tconst branchEntries = await this.session.getBranch();\n\t\t\tconst preparationResult = prepareCompaction(branchEntries, DEFAULT_COMPACTION_SETTINGS);\n\t\t\tif (!preparationResult.ok) throw preparationResult.error;\n\t\t\tconst preparation = preparationResult.value;\n\t\t\tif (!preparation) throw new AgentHarnessError(\"compaction\", \"Nothing to compact\");\n\t\t\tconst hookResult = await this.emitHook({\n\t\t\t\ttype: \"session_before_compact\",\n\t\t\t\tpreparation,\n\t\t\t\tbranchEntries,\n\t\t\t\tcustomInstructions,\n\t\t\t\tsignal: new AbortController().signal,\n\t\t\t});\n\t\t\tif (hookResult?.cancel) throw new AgentHarnessError(\"compaction\", \"Compaction cancelled\");\n\t\t\tconst provided = hookResult?.compaction;\n\t\t\tconst compactResult = provided\n\t\t\t\t? { ok: true as const, value: provided }\n\t\t\t\t: await compact(\n\t\t\t\t\t\tpreparation,\n\t\t\t\t\t\tthis.models,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tcustomInstructions,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tthis.thinkingLevel,\n\t\t\t\t\t\tthis.retry,\n\t\t\t\t\t\tthis.retryCallbacks(\"compaction\"),\n\t\t\t\t\t);\n\t\t\tif (!compactResult.ok) throw compactResult.error;\n\t\t\tconst result = compactResult.value;\n\t\t\tconst entryId = await this.session.appendCompaction(\n\t\t\t\tresult.summary,\n\t\t\t\tresult.firstKeptEntryId,\n\t\t\t\tresult.tokensBefore,\n\t\t\t\tresult.details,\n\t\t\t\tprovided !== undefined,\n\t\t\t\tresult.usage,\n\t\t\t\tresult.retainedTail,\n\t\t\t);\n\t\t\tconst entry = await this.session.getEntry(entryId);\n\t\t\tif (entry?.type === \"compaction\") {\n\t\t\t\tawait this.emitOwn({ type: \"session_compact\", compactionEntry: entry, fromHook: provided !== undefined });\n\t\t\t}\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"compaction\");\n\t\t} finally {\n\t\t\tthis.phase = \"idle\";\n\t\t}\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<NavigateTreeResult> {\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"navigateTree() requires idle harness\");\n\t\tthis.phase = \"branch_summary\";\n\t\ttry {\n\t\t\tconst oldLeafId = await this.session.getLeafId();\n\t\t\tif (oldLeafId === targetId) return { cancelled: false };\n\t\t\tconst targetEntry = await this.session.getEntry(targetId);\n\t\t\tif (!targetEntry) throw new AgentHarnessError(\"invalid_argument\", `Entry ${targetId} not found`);\n\t\t\tconst { entries, commonAncestorId } = await collectEntriesForBranchSummary(this.session, oldLeafId, targetId);\n\t\t\tconst preparation = {\n\t\t\t\ttargetId,\n\t\t\t\toldLeafId,\n\t\t\t\tcommonAncestorId,\n\t\t\t\tentriesToSummarize: entries,\n\t\t\t\tuserWantsSummary: options?.summarize ?? false,\n\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\treplaceInstructions: options?.replaceInstructions,\n\t\t\t\tlabel: options?.label,\n\t\t\t};\n\t\t\tconst signal = new AbortController().signal;\n\t\t\tconst hookResult = await this.emitHook({ type: \"session_before_tree\", preparation, signal });\n\t\t\tif (hookResult?.cancel) return { cancelled: true };\n\t\t\tlet summaryEntry: NavigateTreeResult[\"summaryEntry\"];\n\t\t\tlet summaryText: string | undefined = hookResult?.summary?.summary;\n\t\t\tlet summaryDetails: unknown = hookResult?.summary?.details;\n\t\t\tlet summaryUsage = hookResult?.summary?.usage;\n\t\t\tif (!summaryText && options?.summarize && entries.length > 0) {\n\t\t\t\tconst model = this.model;\n\t\t\t\tif (!model) throw new AgentHarnessError(\"invalid_state\", \"No model set for branch summary\");\n\t\t\t\tconst branchSummary = await generateBranchSummary(entries, {\n\t\t\t\t\tmodels: this.models,\n\t\t\t\t\tmodel,\n\t\t\t\t\tsignal: new AbortController().signal,\n\t\t\t\t\tcustomInstructions: hookResult?.customInstructions ?? options?.customInstructions,\n\t\t\t\t\treplaceInstructions: hookResult?.replaceInstructions ?? options?.replaceInstructions,\n\t\t\t\t\tretry: this.retry,\n\t\t\t\t\tcallbacks: this.retryCallbacks(\"branch_summary\"),\n\t\t\t\t});\n\t\t\t\tif (!branchSummary.ok) {\n\t\t\t\t\tif (branchSummary.error.code === \"aborted\") return { cancelled: true };\n\t\t\t\t\tthrow new AgentHarnessError(\"branch_summary\", branchSummary.error.message, branchSummary.error);\n\t\t\t\t}\n\t\t\t\tsummaryText = branchSummary.value.summary;\n\t\t\t\tsummaryUsage = branchSummary.value.usage;\n\t\t\t\tsummaryDetails = {\n\t\t\t\t\treadFiles: branchSummary.value.readFiles,\n\t\t\t\t\tmodifiedFiles: branchSummary.value.modifiedFiles,\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet editorText: string | undefined;\n\t\t\tlet newLeafId: string | null;\n\t\t\tif (targetEntry.type === \"message\" && targetEntry.message.role === \"user\") {\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText = contentText(targetEntry.message.content, \"\");\n\t\t\t} else if (targetEntry.type === \"custom_message\") {\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText = contentText(targetEntry.content, \"\");\n\t\t\t} else {\n\t\t\t\tnewLeafId = targetId;\n\t\t\t}\n\t\t\tconst summaryId = await this.session.moveTo(\n\t\t\t\tnewLeafId,\n\t\t\t\tsummaryText\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsummary: summaryText,\n\t\t\t\t\t\t\tdetails: summaryDetails,\n\t\t\t\t\t\t\tusage: summaryUsage,\n\t\t\t\t\t\t\tfromHook: hookResult?.summary !== undefined,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t);\n\t\t\tif (summaryId) {\n\t\t\t\tconst entry = await this.session.getEntry(summaryId);\n\t\t\t\tif (entry?.type === \"branch_summary\") summaryEntry = entry;\n\t\t\t}\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"session_tree\",\n\t\t\t\tnewLeafId: await this.session.getLeafId(),\n\t\t\t\toldLeafId,\n\t\t\t\tsummaryEntry,\n\t\t\t\tfromHook: hookResult?.summary !== undefined,\n\t\t\t});\n\t\t\treturn { cancelled: false, editorText, summaryEntry };\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"branch_summary\");\n\t\t} finally {\n\t\t\tthis.phase = \"idle\";\n\t\t}\n\t}\n\n\tgetModel(): Model<any> {\n\t\treturn this.model;\n\t}\n\n\tasync setModel(model: Model<any>): Promise<void> {\n\t\ttry {\n\t\t\tconst previousModel = this.model;\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendModelChange(model.provider, model.id);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"model_change\", provider: model.provider, modelId: model.id });\n\t\t\t}\n\t\t\tthis.model = model;\n\t\t\tawait this.emitOwn({ type: \"model_update\", model, previousModel, source: \"set\" });\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t}\n\t}\n\n\tgetThinkingLevel(): ThinkingLevel {\n\t\treturn this.thinkingLevel;\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\ttry {\n\t\t\tconst previousLevel = this.thinkingLevel;\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendThinkingLevelChange(level);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"thinking_level_change\", thinkingLevel: level });\n\t\t\t}\n\t\t\tthis.thinkingLevel = level;\n\t\t\tawait this.emitOwn({ type: \"thinking_level_update\", level, previousLevel });\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t}\n\t}\n\n\tgetTools(): TTool[] {\n\t\treturn [...this.tools.values()];\n\t}\n\n\tasync setTools(tools: TTool[], activeToolNames?: string[]): Promise<void> {\n\t\ttry {\n\t\t\tthis.validateUniqueNames(\n\t\t\t\ttools.map((tool) => tool.name),\n\t\t\t\t\"Duplicate tool name(s)\",\n\t\t\t);\n\t\t\tconst nextTools = new Map(tools.map((tool) => [tool.name, tool]));\n\t\t\tconst nextActiveToolNames = activeToolNames ? [...activeToolNames] : this.activeToolNames;\n\t\t\tthis.validateToolNames(nextActiveToolNames, nextTools);\n\t\t\tconst previousToolNames = [...this.tools.keys()];\n\t\t\tconst previousActiveToolNames = [...this.activeToolNames];\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(nextActiveToolNames);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"active_tools_change\", activeToolNames: [...nextActiveToolNames] });\n\t\t\t}\n\t\t\tthis.tools = nextTools;\n\t\t\tthis.activeToolNames = [...nextActiveToolNames];\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"tools_update\",\n\t\t\t\ttoolNames: [...this.tools.keys()],\n\t\t\t\tpreviousToolNames,\n\t\t\t\tactiveToolNames: [...this.activeToolNames],\n\t\t\t\tpreviousActiveToolNames,\n\t\t\t\tsource: \"set\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"invalid_argument\");\n\t\t}\n\t}\n\n\tgetActiveTools(): TTool[] {\n\t\treturn this.activeToolNames.map((name) => this.tools.get(name)!);\n\t}\n\n\tasync setActiveTools(toolNames: string[]): Promise<void> {\n\t\ttry {\n\t\t\tthis.validateToolNames(toolNames);\n\t\t\tconst previousToolNames = [...this.tools.keys()];\n\t\t\tconst previousActiveToolNames = [...this.activeToolNames];\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(toolNames);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"active_tools_change\", activeToolNames: [...toolNames] });\n\t\t\t}\n\t\t\tthis.activeToolNames = [...toolNames];\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"tools_update\",\n\t\t\t\ttoolNames: [...this.tools.keys()],\n\t\t\t\tpreviousToolNames,\n\t\t\t\tactiveToolNames: [...this.activeToolNames],\n\t\t\t\tpreviousActiveToolNames,\n\t\t\t\tsource: \"set\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"invalid_argument\");\n\t\t}\n\t}\n\n\tgetSteeringMode(): QueueMode {\n\t\treturn this.steeringQueueMode;\n\t}\n\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.steeringQueueMode = mode;\n\t}\n\n\tgetFollowUpMode(): QueueMode {\n\t\treturn this.followUpQueueMode;\n\t}\n\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.followUpQueueMode = mode;\n\t}\n\n\tgetResources(): AgentHarnessResources<TSkill, TPromptTemplate> {\n\t\treturn {\n\t\t\tskills: this.resources.skills?.slice(),\n\t\t\tpromptTemplates: this.resources.promptTemplates?.slice(),\n\t\t};\n\t}\n\n\tasync setResources(resources: AgentHarnessResources<TSkill, TPromptTemplate>): Promise<void> {\n\t\tconst previousResources = this.getResources();\n\t\tthis.resources = {\n\t\t\tskills: resources.skills?.slice(),\n\t\t\tpromptTemplates: resources.promptTemplates?.slice(),\n\t\t};\n\t\tawait this.emitOwn({ type: \"resources_update\", resources: this.getResources(), previousResources });\n\t}\n\n\tgetStreamOptions(): AgentHarnessStreamOptions {\n\t\treturn cloneStreamOptions(this.streamOptions);\n\t}\n\n\tasync setStreamOptions(streamOptions: AgentHarnessStreamOptions): Promise<void> {\n\t\tthis.streamOptions = cloneStreamOptions(streamOptions);\n\t}\n\n\tasync abort(): Promise<AbortResult> {\n\t\tconst clearedSteer = [...this.steerQueue];\n\t\tconst clearedFollowUp = [...this.followUpQueue];\n\t\tthis.steerQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.runAbortController?.abort();\n\t\tconst errors: Error[] = [];\n\t\ttry {\n\t\t\tawait this.emitQueueUpdate();\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\ttry {\n\t\t\tawait this.waitForIdle();\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\ttry {\n\t\t\tawait this.emitOwn({ type: \"abort\", clearedSteer, clearedFollowUp });\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\tif (errors.length > 0) {\n\t\t\tconst cause = errors.length === 1 ? errors[0]! : new AggregateError(errors, \"Abort completed with errors\");\n\t\t\tthrow normalizeHarnessError(cause, \"hook\");\n\t\t}\n\t\treturn { clearedSteer, clearedFollowUp };\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.runPromise;\n\t}\n\n\tsubscribe(\n\t\tlistener: (event: AgentHarnessEvent<TSkill, TPromptTemplate>, signal?: AbortSignal) => Promise<void> | void,\n\t): () => void {\n\t\tlet handlers = this.handlers.get(SUBSCRIBER_EVENT_TYPE);\n\t\tif (!handlers) {\n\t\t\thandlers = new Set();\n\t\t\tthis.handlers.set(SUBSCRIBER_EVENT_TYPE, handlers);\n\t\t}\n\t\thandlers.add(listener as AgentHarnessHandler);\n\t\treturn () => handlers!.delete(listener as AgentHarnessHandler);\n\t}\n\n\ton<TType extends keyof AgentHarnessEventResultMap>(\n\t\ttype: TType,\n\t\thandler: (\n\t\t\tevent: Extract<AgentHarnessOwnEvent, { type: TType }>,\n\t\t) => Promise<AgentHarnessEventResultMap[TType]> | AgentHarnessEventResultMap[TType],\n\t): () => void {\n\t\tlet handlers = this.handlers.get(type);\n\t\tif (!handlers) {\n\t\t\thandlers = new Set();\n\t\t\tthis.handlers.set(type, handlers);\n\t\t}\n\t\thandlers.add(handler as AgentHarnessHandler);\n\t\treturn () => handlers!.delete(handler as AgentHarnessHandler);\n\t}\n}\n"]}
1
+ {"version":3,"file":"agent-harness.js","sourceRoot":"","sources":["../../src/harness/agent-harness.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,WAAW,GAOX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAWhD,OAAO,EAAE,8BAA8B,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7G,OAAO,EAAE,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAqBpD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE3G,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAuB;IAC/D,MAAM,OAAO,GAAyD,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,IAAI,MAAM;QAAE,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAiB,EAAE,KAAc,EAAE,OAAgB;IAChF,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACrC,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,EAAE;QACf,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QACzC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACpE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,KAAK,EAAE;YACN,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;SACpE;KACD,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,aAAyC;IACpE,OAAO;QACN,GAAG,aAAa;QAChB,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;QAC1E,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;KAC7E,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAG,OAAkD;IAC3E,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACxC,CAAC;AAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AAE7D,SAAS,MAAM,CAAC,MAAc,EAAE,GAAgB;IAC/C,OAAO,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAe;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,uBAAuB,CAC/B,IAA+B,EAC/B,KAAsC;IAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACnE,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC;QAAE,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACnE,IAAI,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC;QAAE,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACtE,IAAI,MAAM,CAAC,KAAK,EAAE,iBAAiB,CAAC;QAAE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;IACrF,IAAI,MAAM,CAAC,KAAK,EAAE,gBAAgB,CAAC;QAAE,MAAM,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;IAElF,IAAI,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1D,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;;oBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC3B,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,CAAC;IACF,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC7B,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;;oBACzC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;YACD,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3E,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAMlC,SAAS,qBAAqB,CAAC,KAAc,EAAE,YAAuC;IACrF,IAAI,KAAK,YAAY,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACjG,IAAI,KAAK,YAAY,eAAe;QAAE,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACvG,IAAI,KAAK,YAAY,kBAAkB;QAAE,OAAO,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9G,OAAO,IAAI,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACzC,OAAO,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAoBD,MAAM,OAAO,YAAY;IA8BxB,YAAY,OAAsE;QAtB1E,UAAK,GAAsB,MAAM,CAAC;QAEzB,gBAAW,GAAG,IAAI,GAAG,EAAkC,CAAC;QAEjE,eAAU,GAAG,KAAK,CAAC;QACnB,yBAAoB,GAA0B,EAAE,CAAC;QAQjD,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAEjC,eAAU,GAAkB,EAAE,CAAC;QAE/B,kBAAa,GAAkB,EAAE,CAAC;QAElC,kBAAa,GAAmB,EAAE,CAAC;QACnC,aAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;QAG9D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,mBAAmB,CACvB,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9C,wBAAwB,CACxB,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,KAAK,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;YAC7C,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;YAC9B,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC;QAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC;IAClE,CAAC;IAEO,iBAAiB;QACxB,IAAI,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,iCAAiC,CAAC,CAAC;IACtG,CAAC;IAEO,WAAW,CAAC,IAAY;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAoD,EAAE,MAAoB;QAC/F,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC;gBACJ,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,KAAiD,EAAE,MAAoB;QAC5F,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC;gBACJ,MAAM,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,QAAQ,CACrB,KAAqD;QAErD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAa,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACvD,IAAI,UAAyD,CAAC;QAC9D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC1B,UAAU,GAAG,MAAM,CAAC;gBACrB,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,OAAO,UAAU,CAAC;IACnB,CAAC;IAEO,cAAc,CAAC,SAA0C;QAChE,OAAO;YACN,gBAAgB,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CACjE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;YAClG,mBAAmB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,SAAS,EAAE,CAAC;YACnF,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;SAC1E,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACtC,KAAiB,EACjB,SAAiB,EACjB,aAAwC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;oBAC5B,IAAI,EAAE,yBAAyB;oBAC/B,KAAK;oBACL,SAAS;oBACT,aAAa,EAAE,kBAAkB,CAAC,OAAO,CAAC;iBAC1C,CAAC,CAAC;gBACH,IAAI,MAAM,EAAE,aAAa,EAAE,CAAC;oBAC3B,OAAO,GAAG,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;gBAClE,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,yBAAyB,CAAC,KAAiB,EAAE,OAAgB;QAC1E,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;QAC7D,IAAI,OAAO,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QACrD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3F,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBAC1B,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC1B,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;QACF,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,MAAM,IAAI,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC3B,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YACjC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;SACjC,CAAC,CAAC;IACJ,CAAC;IAEO,cAAc;QACrB,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACtB,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC;QAC7C,KAAK,IAAI,CAAC,KAAK,CACd,WAAW,EACX,GAAG,EAAE,CACJ,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CACH,CAAC;QACF,OAAO;YACN,MAAM,EAAE,eAAe,CAAC,MAAM;YAC9B,MAAM,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;gBACvC,MAAM,EAAE,CAAC;YACV,CAAC;SACD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAK,CAAI,IAAqB,EAAE,SAA2B;QACxE,IAAI,MAAM,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAC7C,MAAM,GAAG,OAAO,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC;YACJ,OAAO,MAAM,SAAS,EAAE,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,EAAE,CAAC;QACV,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAsB;QAChD,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAChE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CACrD,CAAC;YACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC/B,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO,MAAO,IAAI,CAAC,WAAkD,EAAE,CAAC;QACzE,CAAC;QACD,OAAO,IAAI,CAAC,WAAuB,CAAC;IACrC,CAAC;IAEO,eAAe,CAAC,IAAW,EAAE,OAAiB;QACrD,OAAO;YACN,GAAG,IAAI;YACP,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;SAC9G,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe;QAC5B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe;aACtC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aACnC,MAAM,CAAC,CAAC,IAAI,EAAiB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACtD,IAAI,YAAY,GAAG,8BAA8B,CAAC;QAClD,IAAI,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3C,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9B,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW;gBACX,SAAS;aACT,CAAC,CAAC;QACJ,CAAC;QACD,OAAO;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS;YACT,WAAW;YACX,aAAa,EAAE,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC;YACrD,SAAS,EAAE,eAAe,CAAC,EAAE;YAC7B,YAAY;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,KAAK;YACL,WAAW;SACX,CAAC;IACH,CAAC;IAEO,aAAa,CACpB,SAA0E,EAC1E,YAAqB;QAErB,OAAO;YACN,YAAY,EAAE,YAAY,IAAI,SAAS,CAAC,YAAY;YACpD,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE;YACpC,KAAK,EAAE,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;SAC7F,CAAC;IACH,CAAC;IAEO,cAAc,CACrB,YAAmF;QAEnF,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;YACjC,MAAM,eAAe,GAA8B,EAAE,GAAG,SAAS,CAAC,aAAa,EAAE,CAAC;YAClF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACzG,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE;gBAC/C,cAAc,EAAE,cAAc,CAAC,cAAc;gBAC7C,OAAO,EAAE,cAAc,CAAC,OAAO;gBAC/B,UAAU,EAAE,cAAc,CAAC,UAAU;gBACrC,eAAe,EAAE,cAAc,CAAC,eAAe;gBAC/C,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,OAAO,CAAC;gBAClF,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;oBAC9B,MAAM,OAAO,GAAG,EAAE,GAAI,QAAQ,CAAC,OAAkC,EAAE,CAAC;oBACpE,MAAM,IAAI,CAAC,OAAO,CACjB,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,EACrE,aAAa,EAAE,MAAM,CACrB,CAAC;gBACH,CAAC;gBACD,SAAS,EAAE,aAAa,EAAE,SAAS;gBACnC,MAAM,EAAE,aAAa,EAAE,MAAM;gBAC7B,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,SAAS,EAAE,cAAc,CAAC,SAAS;gBACnC,SAAS,EAAE,cAAc,CAAC,SAAS;aACnC,CAAC,CAAC;QACJ,CAAC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,KAAqB,EAAE,IAAe;QACvE,MAAM,QAAQ,GAAG,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC3C,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC3B,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;IACF,CAAC;IAEO,gBAAgB,CACvB,YAAmF,EACnF,YAAkG;QAElG,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,IAAI,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3C,IAAI,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC9C,OAAO;YACN,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,SAAS,EAAE,SAAS,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa;YAClF,YAAY;YACZ,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACjF,OAAO,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC;YACrC,CAAC;YACD,cAAc,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;oBAClC,IAAI,EAAE,WAAW;oBACjB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,KAAK,EAAE,IAA+B;iBACtC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YAC5E,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;gBAC5D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;oBACjC,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,QAAQ,EAAE,QAAQ,CAAC,IAAI;oBACvB,KAAK,EAAE,IAA+B;oBACtC,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,OAAO;oBACP,KAAK,EAAE,MAAM,CAAC,KAAK;iBACnB,CAAC,CAAC;gBACH,OAAO,KAAK;oBACX,CAAC,CAAC;wBACA,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,SAAS,EAAE,KAAK,CAAC,SAAS;qBAC1B;oBACF,CAAC,CAAC,SAAS,CAAC;YACd,CAAC;YACD,eAAe,EAAE,KAAK,IAAI,EAAE;gBAC3B,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;gBACvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnD,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,OAAO;oBACN,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;oBAC1C,KAAK,EAAE,aAAa,CAAC,KAAK;oBAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;iBAC1C,CAAC;YACH,CAAC;YACD,mBAAmB,EAAE,KAAK,IAAI,EAAE;gBAC/B,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC;gBACvC,OAAO,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/E,CAAC;YACD,mBAAmB,EAAE,KAAK,IAAI,EAAE;gBAC/B,oBAAoB,GAAG,IAAI,CAAC,aAAa,CAAC;gBAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/E,CAAC;YACD,sBAAsB,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACjD,MAAM,MAAM,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;gBAC3E,MAAM,YAAY,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC;gBACxF,IAAI,MAAM,KAAK,YAAY;oBAAE,OAAO;gBACpC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChC,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC9B,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,oDAAoD,CAAC,CAAC;oBACpG,CAAC;oBACD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9B,CAAC;SACD,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,KAAe,EAAE,OAAe;QAC3D,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACxB,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,GAAG,OAAO,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IAEO,iBAAiB,CAAC,SAAmB,EAAE,KAAK,GAAuB,IAAI,CAAC,KAAK;QACpF,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnH,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACtC,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACjD,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;YACnE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACpC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5G,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;gBAC1C,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,KAAiB,EAAE,MAAoB;QACrE,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClC,OAAO;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,IAAI,UAAmB,CAAC;YACxB,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,UAAU,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,MAAM,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACvC,IAAI,UAAU;gBAAE,MAAM,UAAU,CAAC;YACjC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAChE,OAAO;QACR,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACvC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;YAC1F,OAAO;QACR,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAEO,KAAK,CAAC,cAAc,CAC3B,KAAiB,EACjB,KAAc,EACd,OAAgB,EAChB,MAAmB;QAEnB,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QACxF,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QACtF,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACpG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvF,OAAO,CAAC,cAAc,CAAC,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,WAAW,CACxB,SAA0E,EAC1E,IAAY,EACZ,MAAmB,EACnB,OAAqC;QAErC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,eAAe,GAAG,SAAS,CAAC;QAChC,IAAI,QAAQ,GAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC;gBAC9C,MAAM,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YACD,QAAQ,GAAG,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAE,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YACxC,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,OAAO,EAAE,MAAM;YACvB,YAAY,EAAE,SAAS,CAAC,YAAY;YACpC,SAAS,EAAE,SAAS,CAAC,SAAS;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,YAAY,EAAE,QAAQ;YAAE,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE/E,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,aAA8E,EAAE,EAAE;YACvG,eAAe,GAAG,aAAa,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,gBAAgB,GAAG,CAAC,KAAK,IAAI,EAAE;YACpC,IAAI,CAAC;gBACJ,OAAO,MAAM,YAAY,CACxB,QAAQ,EACR,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC,EACzD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,EACjD,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,EAC/C,MAAM,EACN,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CACjC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACJ,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACxF,CAAC;gBAAC,OAAO,YAAY,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,cAAc,CAC/B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,EACvC,+CAA+C,CAC/C,CAAC;oBACF,MAAM,IAAI,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;QACF,CAAC,CAAC,EAAE,CAAC;QACL,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;gBAChC,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAClC,OAAO,OAAO,CAAC;gBAChB,CAAC;YACF,CAAC;YACD,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,4DAA4D,CAAC,CAAC;QAC5G,CAAC;gBAAS,CAAC;YACV,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACxC,CAAC;IACF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAqC;QAC/D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACV,SAAS,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,sBAA+B;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC9F,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAC;YACtF,OAAO,MAAM,IAAI,CAAC,WAAW,CAC5B,SAAS,EACT,qBAAqB,CAAC,KAAK,EAAE,sBAAsB,CAAC,EACpD,SAAS,CAAC,MAAM,CAChB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACV,SAAS,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,IAAI,GAAa,EAAE;QACzD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;QACvF,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC1G,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAC;YACnG,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,8BAA8B,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;gBAAS,CAAC;YACV,SAAS,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY,EAAE,OAAqC;QAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACnG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqC;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;QACvG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAAqC;QACjE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAqB;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC;gBACJ,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC9D,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,kBAA2B;QACxC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;QAClG,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAC;YACxF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrD,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAC;YACxF,IAAI,CAAC,iBAAiB,CAAC,EAAE;gBAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC;YACzD,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;YAClF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;gBACtC,IAAI,EAAE,wBAAwB;gBAC9B,WAAW;gBACX,aAAa;gBACb,kBAAkB;gBAClB,MAAM,EAAE,SAAS,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,UAAU,EAAE,MAAM;gBAAE,MAAM,IAAI,iBAAiB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,UAAU,EAAE,UAAU,CAAC;YACxC,MAAM,aAAa,GAAG,QAAQ;gBAC7B,CAAC,CAAC,EAAE,EAAE,EAAE,IAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACxC,CAAC,CAAC,MAAM,OAAO,CACb,WAAW,EACX,IAAI,CAAC,MAAM,EACX,KAAK,EACL,kBAAkB,EAClB,SAAS,CAAC,MAAM,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CACjC,CAAC;YACJ,IAAI,CAAC,aAAa,CAAC,EAAE;gBAAE,MAAM,aAAa,CAAC,KAAK,CAAC;YACjD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC;YACnC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAClD,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,OAAO,EACd,QAAQ,KAAK,SAAS,EACtB,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,YAAY,CACnB,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC,CAAC;YAC3G,CAAC;YACD,OAAO,MAAM,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,SAAS,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,KAAK,CAAC,YAAY,CACjB,QAAgB,EAChB,OAA6G;QAE7G,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACvG,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACxC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,SAAS,KAAK,QAAQ;gBAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,iBAAiB,CAAC,kBAAkB,EAAE,SAAS,QAAQ,YAAY,CAAC,CAAC;YACjG,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,8BAA8B,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9G,MAAM,WAAW,GAAG;gBACnB,QAAQ;gBACR,SAAS;gBACT,gBAAgB;gBAChB,kBAAkB,EAAE,OAAO;gBAC3B,gBAAgB,EAAE,OAAO,EAAE,SAAS,IAAI,KAAK;gBAC7C,kBAAkB,EAAE,OAAO,EAAE,kBAAkB;gBAC/C,mBAAmB,EAAE,OAAO,EAAE,mBAAmB;gBACjD,KAAK,EAAE,OAAO,EAAE,KAAK;aACrB,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;gBACtC,IAAI,EAAE,qBAAqB;gBAC3B,WAAW;gBACX,MAAM,EAAE,SAAS,CAAC,MAAM;aACxB,CAAC,CAAC;YACH,IAAI,UAAU,EAAE,MAAM;gBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACnD,IAAI,YAAgD,CAAC;YACrD,IAAI,WAAW,GAAuB,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;YACnE,IAAI,cAAc,GAAY,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC;YAC3D,IAAI,YAAY,GAAG,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;YAC9C,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK;oBAAE,MAAM,IAAI,iBAAiB,CAAC,eAAe,EAAE,iCAAiC,CAAC,CAAC;gBAC5F,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE;oBAC1D,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK;oBACL,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,IAAI,OAAO,EAAE,kBAAkB;oBACjF,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,IAAI,OAAO,EAAE,mBAAmB;oBACpF,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC;iBAChD,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACvB,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;wBAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oBACvE,MAAM,IAAI,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;gBACjG,CAAC;gBACD,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC1C,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC;gBACzC,cAAc,GAAG;oBAChB,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,SAAS;oBACxC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa;iBAChD,CAAC;YACH,CAAC;YACD,IAAI,UAA8B,CAAC;YACnC,IAAI,SAAwB,CAAC;YAC7B,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC3E,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACjC,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAClD,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACjC,UAAU,GAAG,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACP,SAAS,GAAG,QAAQ,CAAC;YACtB,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAC1C,SAAS,EACT,WAAW;gBACV,CAAC,CAAC;oBACA,OAAO,EAAE,WAAW;oBACpB,OAAO,EAAE,cAAc;oBACvB,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS;iBAC3C;gBACF,CAAC,CAAC,SAAS,CACZ,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACrD,IAAI,KAAK,EAAE,IAAI,KAAK,gBAAgB;oBAAE,YAAY,GAAG,KAAK,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;gBACzC,SAAS;gBACT,YAAY;gBACZ,QAAQ,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS;aAC3C,CAAC,CAAC;YACH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,SAAS,CAAC,MAAM,EAAE,CAAC;QACpB,CAAC;IACF,CAAC;IAED,QAAQ;QACP,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAiB;QAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;gBACjC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChE,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvG,CAAC;gBACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACnF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,KAAoB;QAC1C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACxC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;gBACzC,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,QAAQ;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAc,EAAE,eAA0B;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9E,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAc,EAAE,eAA0B;QAClE,IAAI,CAAC;YACJ,IAAI,CAAC,mBAAmB,CACvB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAC9B,wBAAwB,CACxB,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAClE,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;YAC1F,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC5G,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,mBAAmB,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjC,iBAAiB;gBACjB,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1C,uBAAuB;gBACvB,MAAM,EAAE,KAAK;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,cAAc;QACb,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,SAAmB;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;IACvE,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAmB;QACjD,IAAI,CAAC;YACJ,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAClC,MAAM,iBAAiB,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,eAAe,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClB,IAAI,EAAE,cAAc;gBACpB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;gBACjC,iBAAiB;gBACjB,eAAe,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;gBAC1C,uBAAuB;gBACvB,MAAM,EAAE,KAAK;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAe;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,eAAe;QACd,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAe;QACpC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC/B,CAAC;IAED,YAAY;QACX,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;YACtC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,KAAK,EAAE;SACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAyD;QAC3E,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG;YAChB,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE;YACjC,eAAe,EAAE,SAAS,CAAC,eAAe,EAAE,KAAK,EAAE;SACnD,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,gBAAgB;QACf,OAAO,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,aAAwC;QAC9D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAED,mFAAmF;IACnF,eAAe;QACd,IAAI,IAAI,CAAC,UAAU;YAAE,OAAO;QAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED,mEAAmE;IACnE,eAAe;QACd,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,eAAe,EAAE,iCAAiC,CAAC,CAAC,CAAC;QAClG,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,CAAC;QACpC,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,6BAA6B,CAAC,CAAC;YAC3G,MAAM,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,WAAW;QAChB,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,SAAS,CACR,QAA2G;QAE3G,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACpD,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,QAA+B,CAAC,CAAC;QAC9C,OAAO,GAAG,EAAE,CAAC,QAAS,CAAC,MAAM,CAAC,QAA+B,CAAC,CAAC;IAChE,CAAC;IAED,EAAE,CACD,IAAW,EACX,OAEmF;QAEnF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,OAA8B,CAAC,CAAC;QAC7C,OAAO,GAAG,EAAE,CAAC,QAAS,CAAC,MAAM,CAAC,OAA8B,CAAC,CAAC;IAC/D,CAAC;CACD","sourcesContent":["import {\n\ttype AssistantMessage,\n\tcontentText,\n\ttype ImageContent,\n\ttype Model,\n\ttype Models,\n\ttype RetryCallbacks,\n\ttype RetryPolicy,\n\ttype UserMessage,\n} from \"@earendil-works/pi-ai\";\nimport { runAgentLoop } from \"../agent-loop.ts\";\nimport type {\n\tAgentContext,\n\tAgentEvent,\n\tAgentLoopConfig,\n\tAgentMessage,\n\tAgentTool,\n\tQueueMode,\n\tStreamFn,\n\tThinkingLevel,\n} from \"../types.ts\";\nimport { collectEntriesForBranchSummary, generateBranchSummary } from \"./compaction/branch-summarization.ts\";\nimport { compact, DEFAULT_COMPACTION_SETTINGS, prepareCompaction } from \"./compaction/compaction.ts\";\nimport { convertToLlm } from \"./messages.ts\";\nimport { formatPromptTemplateInvocation } from \"./prompt-templates.ts\";\nimport { formatSkillInvocation } from \"./skills.ts\";\nimport type {\n\tAbortResult,\n\tAgentHarnessEvent,\n\tAgentHarnessEventResultMap,\n\tAgentHarnessOptions,\n\tAgentHarnessOwnEvent,\n\tAgentHarnessPhase,\n\tAgentHarnessResources,\n\tAgentHarnessStreamOptions,\n\tAgentHarnessStreamOptionsPatch,\n\tAgentHarnessSystemPrompt,\n\tAgentHarnessTool,\n\tAgentHarnessToolContextSource,\n\tCompactResult,\n\tNavigateTreeResult,\n\tPendingSessionWrite,\n\tPromptTemplate,\n\tSession,\n\tSkill,\n} from \"./types.ts\";\nimport { AgentHarnessError, BranchSummaryError, CompactionError, SessionError, toError } from \"./types.ts\";\n\nfunction createUserMessage(text: string, images?: ImageContent[]): UserMessage {\n\tconst content: Array<{ type: \"text\"; text: string } | ImageContent> = [{ type: \"text\", text }];\n\tif (images) content.push(...images);\n\treturn { role: \"user\", content, timestamp: Date.now() };\n}\n\nfunction createFailureMessage(model: Model<any>, error: unknown, aborted: boolean): AssistantMessage {\n\treturn {\n\t\trole: \"assistant\",\n\t\tcontent: [{ type: \"text\", text: \"\" }],\n\t\tapi: model.api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tstopReason: aborted ? \"aborted\" : \"error\",\n\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\ttimestamp: Date.now(),\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t};\n}\n\nfunction cloneStreamOptions(streamOptions?: AgentHarnessStreamOptions): AgentHarnessStreamOptions {\n\treturn {\n\t\t...streamOptions,\n\t\theaders: streamOptions?.headers ? { ...streamOptions.headers } : undefined,\n\t\tmetadata: streamOptions?.metadata ? { ...streamOptions.metadata } : undefined,\n\t};\n}\n\nfunction _mergeHeaders(...headers: Array<Record<string, string> | undefined>): Record<string, string> | undefined {\n\tconst merged: Record<string, string> = {};\n\tlet hasHeaders = false;\n\tfor (const entry of headers) {\n\t\tif (!entry) continue;\n\t\tObject.assign(merged, entry);\n\t\thasHeaders = true;\n\t}\n\treturn hasHeaders ? merged : undefined;\n}\n\nconst objectHasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction hasOwn(object: object, key: PropertyKey): boolean {\n\treturn objectHasOwnProperty.call(object, key);\n}\n\nfunction findDuplicateNames(names: string[]): string[] {\n\tconst seen = new Set<string>();\n\tconst duplicates = new Set<string>();\n\tfor (const name of names) {\n\t\tif (seen.has(name)) duplicates.add(name);\n\t\tseen.add(name);\n\t}\n\treturn [...duplicates];\n}\n\nfunction applyStreamOptionsPatch(\n\tbase: AgentHarnessStreamOptions,\n\tpatch?: AgentHarnessStreamOptionsPatch,\n): AgentHarnessStreamOptions {\n\tconst result = cloneStreamOptions(base);\n\tif (!patch) return result;\n\n\tif (hasOwn(patch, \"transport\")) result.transport = patch.transport;\n\tif (hasOwn(patch, \"timeoutMs\")) result.timeoutMs = patch.timeoutMs;\n\tif (hasOwn(patch, \"maxRetries\")) result.maxRetries = patch.maxRetries;\n\tif (hasOwn(patch, \"maxRetryDelayMs\")) result.maxRetryDelayMs = patch.maxRetryDelayMs;\n\tif (hasOwn(patch, \"cacheRetention\")) result.cacheRetention = patch.cacheRetention;\n\n\tif (hasOwn(patch, \"headers\")) {\n\t\tif (patch.headers === undefined) {\n\t\t\tresult.headers = undefined;\n\t\t} else {\n\t\t\tconst headers = { ...(result.headers ?? {}) };\n\t\t\tfor (const [key, value] of Object.entries(patch.headers)) {\n\t\t\t\tif (value === undefined) delete headers[key];\n\t\t\t\telse headers[key] = value;\n\t\t\t}\n\t\t\tresult.headers = Object.keys(headers).length > 0 ? headers : undefined;\n\t\t}\n\t}\n\n\tif (hasOwn(patch, \"metadata\")) {\n\t\tif (patch.metadata === undefined) {\n\t\t\tresult.metadata = undefined;\n\t\t} else {\n\t\t\tconst metadata = { ...(result.metadata ?? {}) };\n\t\t\tfor (const [key, value] of Object.entries(patch.metadata)) {\n\t\t\t\tif (value === undefined) delete metadata[key];\n\t\t\t\telse metadata[key] = value;\n\t\t\t}\n\t\t\tresult.metadata = Object.keys(metadata).length > 0 ? metadata : undefined;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nconst SUBSCRIBER_EVENT_TYPE = \"*\";\n\ntype AgentHarnessHandler = (event: any, signal?: AbortSignal) => Promise<any> | any;\n\ntype TrackedTaskKind = \"operation\" | \"mutation\";\n\nfunction normalizeHarnessError(error: unknown, fallbackCode: AgentHarnessError[\"code\"]): AgentHarnessError {\n\tif (error instanceof AgentHarnessError) return error;\n\tconst cause = toError(error);\n\tif (cause instanceof SessionError) return new AgentHarnessError(\"session\", cause.message, cause);\n\tif (cause instanceof CompactionError) return new AgentHarnessError(\"compaction\", cause.message, cause);\n\tif (cause instanceof BranchSummaryError) return new AgentHarnessError(\"branch_summary\", cause.message, cause);\n\treturn new AgentHarnessError(fallbackCode, cause.message, cause);\n}\n\nfunction normalizeHookError(error: unknown): AgentHarnessError {\n\treturn normalizeHarnessError(error, \"hook\");\n}\n\ninterface AgentHarnessTurnState<\n\tTContext extends object | undefined,\n\tTSkill extends Skill = Skill,\n\tTPromptTemplate extends PromptTemplate = PromptTemplate,\n\tTTool extends AgentHarnessTool<TContext> = AgentHarnessTool<TContext>,\n> {\n\tmessages: AgentMessage[];\n\tresources: AgentHarnessResources<TSkill, TPromptTemplate>;\n\ttoolContext: TContext;\n\tstreamOptions: AgentHarnessStreamOptions;\n\tsessionId: string;\n\tsystemPrompt: string;\n\tmodel: Model<any>;\n\tthinkingLevel: ThinkingLevel;\n\ttools: TTool[];\n\tactiveTools: TTool[];\n}\n\nexport class AgentHarness<\n\tTContext extends object | undefined = undefined,\n\tTSkill extends Skill = Skill,\n\tTPromptTemplate extends PromptTemplate = PromptTemplate,\n\tTTool extends AgentHarnessTool<TContext> = AgentHarnessTool<TContext>,\n> {\n\tprivate session: Session;\n\treadonly models: Models;\n\tprivate phase: AgentHarnessPhase = \"idle\";\n\tprivate activeAbortController?: AbortController;\n\tprivate readonly activeTasks = new Map<Promise<void>, TrackedTaskKind>();\n\tprivate shutdownPromise?: Promise<void>;\n\tprivate isShutdown = false;\n\tprivate pendingSessionWrites: PendingSessionWrite[] = [];\n\tprivate model: Model<any>;\n\tprivate thinkingLevel: ThinkingLevel;\n\tprivate systemPrompt: AgentHarnessSystemPrompt<TContext, TSkill, TPromptTemplate, TTool> | undefined;\n\tprivate toolContext: AgentHarnessToolContextSource<TContext> | undefined;\n\tprivate streamOptions: AgentHarnessStreamOptions;\n\tprivate retry: RetryPolicy | undefined;\n\tprivate resources: AgentHarnessResources<TSkill, TPromptTemplate>;\n\tprivate tools = new Map<string, TTool>();\n\tprivate activeToolNames: string[];\n\tprivate steerQueue: UserMessage[] = [];\n\tprivate steeringQueueMode: QueueMode;\n\tprivate followUpQueue: UserMessage[] = [];\n\tprivate followUpQueueMode: QueueMode;\n\tprivate nextTurnQueue: AgentMessage[] = [];\n\tprivate handlers = new Map<string, Set<AgentHarnessHandler>>();\n\n\tconstructor(options: AgentHarnessOptions<TContext, TSkill, TPromptTemplate, TTool>) {\n\t\tthis.session = options.session;\n\t\tthis.models = options.models;\n\t\tthis.resources = options.resources ?? {};\n\t\tthis.streamOptions = cloneStreamOptions(options.streamOptions);\n\t\tthis.retry = options.retry;\n\t\tthis.systemPrompt = options.systemPrompt;\n\t\tthis.toolContext = options.toolContext;\n\t\tthis.validateUniqueNames(\n\t\t\t(options.tools ?? []).map((tool) => tool.name),\n\t\t\t\"Duplicate tool name(s)\",\n\t\t);\n\t\tfor (const tool of options.tools ?? []) {\n\t\t\tthis.tools.set(tool.name, tool);\n\t\t}\n\t\tthis.model = options.model;\n\t\tthis.thinkingLevel = options.thinkingLevel ?? \"off\";\n\t\tthis.activeToolNames = options.activeToolNames\n\t\t\t? [...options.activeToolNames]\n\t\t\t: (options.tools ?? []).map((tool) => tool.name);\n\t\tthis.validateUniqueNames(this.activeToolNames, \"Duplicate active tool name(s)\");\n\t\tthis.validateToolNames(this.activeToolNames);\n\t\tthis.steeringQueueMode = options.steeringMode ?? \"one-at-a-time\";\n\t\tthis.followUpQueueMode = options.followUpMode ?? \"one-at-a-time\";\n\t}\n\n\tprivate assertNotShutDown(): void {\n\t\tif (this.isShutdown) throw new AgentHarnessError(\"invalid_state\", \"AgentHarness has been shut down\");\n\t}\n\n\tprivate getHandlers(type: string): Set<AgentHarnessHandler> | undefined {\n\t\treturn this.handlers.get(type);\n\t}\n\n\tprivate async emitOwn(event: AgentHarnessOwnEvent<TSkill, TPromptTemplate>, signal?: AbortSignal): Promise<void> {\n\t\tfor (const listener of this.getHandlers(SUBSCRIBER_EVENT_TYPE) ?? []) {\n\t\t\ttry {\n\t\t\t\tawait listener(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async emitAny(event: AgentHarnessEvent<TSkill, TPromptTemplate>, signal?: AbortSignal): Promise<void> {\n\t\tfor (const listener of this.getHandlers(SUBSCRIBER_EVENT_TYPE) ?? []) {\n\t\t\ttry {\n\t\t\t\tawait listener(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate async emitHook<TType extends keyof AgentHarnessEventResultMap>(\n\t\tevent: Extract<AgentHarnessOwnEvent, { type: TType }>,\n\t): Promise<AgentHarnessEventResultMap[TType] | undefined> {\n\t\tconst handlers = this.getHandlers(event.type as TType);\n\t\tif (!handlers || handlers.size === 0) return undefined;\n\t\tlet lastResult: AgentHarnessEventResultMap[TType] | undefined;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler(event);\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\tlastResult = result;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn lastResult;\n\t}\n\n\tprivate retryCallbacks(operation: \"compaction\" | \"branch_summary\"): RetryCallbacks {\n\t\treturn {\n\t\t\tonRetryScheduled: (attempt, maxAttempts, delayMs, errorMessage) =>\n\t\t\t\tthis.emitOwn({ type: \"retry_scheduled\", operation, attempt, maxAttempts, delayMs, errorMessage }),\n\t\t\tonRetryAttemptStart: () => this.emitOwn({ type: \"retry_attempt_start\", operation }),\n\t\t\tonRetryFinished: () => this.emitOwn({ type: \"retry_finished\", operation }),\n\t\t};\n\t}\n\n\tprivate async emitBeforeProviderRequest(\n\t\tmodel: Model<any>,\n\t\tsessionId: string,\n\t\tstreamOptions: AgentHarnessStreamOptions,\n\t): Promise<AgentHarnessStreamOptions> {\n\t\tconst handlers = this.getHandlers(\"before_provider_request\");\n\t\tlet current = cloneStreamOptions(streamOptions);\n\t\tif (!handlers || handlers.size === 0) return current;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler({\n\t\t\t\t\ttype: \"before_provider_request\",\n\t\t\t\t\tmodel,\n\t\t\t\t\tsessionId,\n\t\t\t\t\tstreamOptions: cloneStreamOptions(current),\n\t\t\t\t});\n\t\t\t\tif (result?.streamOptions) {\n\t\t\t\t\tcurrent = applyStreamOptionsPatch(current, result.streamOptions);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn current;\n\t}\n\n\tprivate async emitBeforeProviderPayload(model: Model<any>, payload: unknown): Promise<unknown> {\n\t\tconst handlers = this.getHandlers(\"before_provider_payload\");\n\t\tlet current = payload;\n\t\tif (!handlers || handlers.size === 0) return current;\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst result = await handler({ type: \"before_provider_payload\", model, payload: current });\n\t\t\t\tif (result !== undefined) {\n\t\t\t\t\tcurrent = result.payload;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t}\n\t\treturn current;\n\t}\n\n\tprivate async emitQueueUpdate(): Promise<void> {\n\t\tawait this.emitOwn({\n\t\t\ttype: \"queue_update\",\n\t\t\tsteer: [...this.steerQueue],\n\t\t\tfollowUp: [...this.followUpQueue],\n\t\t\tnextTurn: [...this.nextTurnQueue],\n\t\t});\n\t}\n\n\tprivate startOperation(): { signal: AbortSignal; finish: () => void } {\n\t\tconst abortController = new AbortController();\n\t\tlet finish = () => {};\n\t\tthis.activeAbortController = abortController;\n\t\tvoid this.track(\n\t\t\t\"operation\",\n\t\t\t() =>\n\t\t\t\tnew Promise<void>((resolve) => {\n\t\t\t\t\tfinish = resolve;\n\t\t\t\t}),\n\t\t);\n\t\treturn {\n\t\t\tsignal: abortController.signal,\n\t\t\tfinish: () => {\n\t\t\t\tthis.activeAbortController = undefined;\n\t\t\t\tfinish();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate async track<T>(kind: TrackedTaskKind, operation: () => Promise<T>): Promise<T> {\n\t\tlet settle = () => {};\n\t\tconst settled = new Promise<void>((resolve) => {\n\t\t\tsettle = resolve;\n\t\t});\n\t\tthis.activeTasks.set(settled, kind);\n\t\ttry {\n\t\t\treturn await operation();\n\t\t} finally {\n\t\t\tthis.activeTasks.delete(settled);\n\t\t\tsettle();\n\t\t}\n\t}\n\n\tprivate async waitForTasks(kind?: TrackedTaskKind): Promise<void> {\n\t\twhile (true) {\n\t\t\tconst tasks = [...this.activeTasks].flatMap(([task, taskKind]) =>\n\t\t\t\tkind === undefined || kind === taskKind ? [task] : [],\n\t\t\t);\n\t\t\tif (tasks.length === 0) return;\n\t\t\tawait Promise.all(tasks);\n\t\t}\n\t}\n\n\tprivate async resolveToolContext(): Promise<TContext> {\n\t\tif (typeof this.toolContext === \"function\") {\n\t\t\treturn await (this.toolContext as () => TContext | Promise<TContext>)();\n\t\t}\n\t\treturn this.toolContext as TContext;\n\t}\n\n\tprivate bindToolContext(tool: TTool, context: TContext): AgentTool {\n\t\treturn {\n\t\t\t...tool,\n\t\t\texecute: (toolCallId, params, signal, onUpdate) => tool.execute(toolCallId, params, signal, onUpdate, context),\n\t\t};\n\t}\n\n\tprivate async createTurnState(): Promise<AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>> {\n\t\tthis.assertNotShutDown();\n\t\tconst context = await this.session.buildContext();\n\t\tconst resources = this.getResources();\n\t\tconst sessionMetadata = await this.session.getMetadata();\n\t\tconst toolContext = await this.resolveToolContext();\n\t\tconst tools = [...this.tools.values()];\n\t\tconst activeTools = this.activeToolNames\n\t\t\t.map((name) => this.tools.get(name))\n\t\t\t.filter((tool): tool is TTool => tool !== undefined);\n\t\tlet systemPrompt = \"You are a helpful assistant.\";\n\t\tif (typeof this.systemPrompt === \"string\") {\n\t\t\tsystemPrompt = this.systemPrompt;\n\t\t} else if (this.systemPrompt) {\n\t\t\tsystemPrompt = await this.systemPrompt({\n\t\t\t\tsession: this.session,\n\t\t\t\tmodel: this.model,\n\t\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\t\tactiveTools,\n\t\t\t\tresources,\n\t\t\t});\n\t\t}\n\t\treturn {\n\t\t\tmessages: context.messages,\n\t\t\tresources,\n\t\t\ttoolContext,\n\t\t\tstreamOptions: cloneStreamOptions(this.streamOptions),\n\t\t\tsessionId: sessionMetadata.id,\n\t\t\tsystemPrompt,\n\t\t\tmodel: this.model,\n\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\ttools,\n\t\t\tactiveTools,\n\t\t};\n\t}\n\n\tprivate createContext(\n\t\tturnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\tsystemPrompt?: string,\n\t): AgentContext {\n\t\treturn {\n\t\t\tsystemPrompt: systemPrompt ?? turnState.systemPrompt,\n\t\t\tmessages: turnState.messages.slice(),\n\t\t\ttools: turnState.activeTools.map((tool) => this.bindToolContext(tool, turnState.toolContext)),\n\t\t};\n\t}\n\n\tprivate createStreamFn(\n\t\tgetTurnState: () => AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t): StreamFn {\n\t\treturn async (model, context, streamOptions) => {\n\t\t\tconst turnState = getTurnState();\n\t\t\tconst snapshotOptions: AgentHarnessStreamOptions = { ...turnState.streamOptions };\n\t\t\tconst requestOptions = await this.emitBeforeProviderRequest(model, turnState.sessionId, snapshotOptions);\n\t\t\treturn this.models.streamSimple(model, context, {\n\t\t\t\tcacheRetention: requestOptions.cacheRetention,\n\t\t\t\theaders: requestOptions.headers,\n\t\t\t\tmaxRetries: requestOptions.maxRetries,\n\t\t\t\tmaxRetryDelayMs: requestOptions.maxRetryDelayMs,\n\t\t\t\tmetadata: requestOptions.metadata,\n\t\t\t\tonPayload: async (payload) => await this.emitBeforeProviderPayload(model, payload),\n\t\t\t\tonResponse: async (response) => {\n\t\t\t\t\tconst headers = { ...(response.headers as Record<string, string>) };\n\t\t\t\t\tawait this.emitOwn(\n\t\t\t\t\t\t{ type: \"after_provider_response\", status: response.status, headers },\n\t\t\t\t\t\tstreamOptions?.signal,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\treasoning: streamOptions?.reasoning,\n\t\t\t\tsignal: streamOptions?.signal,\n\t\t\t\tsessionId: turnState.sessionId,\n\t\t\t\ttimeoutMs: requestOptions.timeoutMs,\n\t\t\t\ttransport: requestOptions.transport,\n\t\t\t});\n\t\t};\n\t}\n\n\tprivate async drainQueuedMessages(queue: AgentMessage[], mode: QueueMode): Promise<AgentMessage[]> {\n\t\tconst messages = mode === \"all\" ? queue.splice(0) : queue.splice(0, 1);\n\t\tif (messages.length === 0) return messages;\n\t\ttry {\n\t\t\tawait this.emitQueueUpdate();\n\t\t\treturn messages;\n\t\t} catch (error) {\n\t\t\tqueue.unshift(...messages);\n\t\t\tthrow normalizeHookError(error);\n\t\t}\n\t}\n\n\tprivate createLoopConfig(\n\t\tgetTurnState: () => AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\tsetTurnState: (turnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>) => void,\n\t): AgentLoopConfig {\n\t\tconst turnState = getTurnState();\n\t\tlet steeringQueueAtDrain = this.steerQueue;\n\t\tlet followUpQueueAtDrain = this.followUpQueue;\n\t\treturn {\n\t\t\tmodel: turnState.model,\n\t\t\treasoning: turnState.thinkingLevel === \"off\" ? undefined : turnState.thinkingLevel,\n\t\t\tconvertToLlm,\n\t\t\ttransformContext: async (messages) => {\n\t\t\t\tconst result = await this.emitHook({ type: \"context\", messages: [...messages] });\n\t\t\t\treturn result?.messages ?? messages;\n\t\t\t},\n\t\t\tbeforeToolCall: async ({ toolCall, args }) => {\n\t\t\t\tconst result = await this.emitHook({\n\t\t\t\t\ttype: \"tool_call\",\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\ttoolName: toolCall.name,\n\t\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\t});\n\t\t\t\treturn result ? { block: result.block, reason: result.reason } : undefined;\n\t\t\t},\n\t\t\tafterToolCall: async ({ toolCall, args, result, isError }) => {\n\t\t\t\tconst patch = await this.emitHook({\n\t\t\t\t\ttype: \"tool_result\",\n\t\t\t\t\ttoolCallId: toolCall.id,\n\t\t\t\t\ttoolName: toolCall.name,\n\t\t\t\t\tinput: args as Record<string, unknown>,\n\t\t\t\t\tcontent: result.content,\n\t\t\t\t\tdetails: result.details,\n\t\t\t\t\tisError,\n\t\t\t\t\tusage: result.usage,\n\t\t\t\t});\n\t\t\t\treturn patch\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tcontent: patch.content,\n\t\t\t\t\t\t\tdetails: patch.details,\n\t\t\t\t\t\t\tisError: patch.isError,\n\t\t\t\t\t\t\tusage: patch.usage,\n\t\t\t\t\t\t\tterminate: patch.terminate,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined;\n\t\t\t},\n\t\t\tprepareNextTurn: async () => {\n\t\t\t\tawait this.flushPendingSessionWrites();\n\t\t\t\tconst nextTurnState = await this.createTurnState();\n\t\t\t\tsetTurnState(nextTurnState);\n\t\t\t\treturn {\n\t\t\t\t\tcontext: this.createContext(nextTurnState),\n\t\t\t\t\tmodel: nextTurnState.model,\n\t\t\t\t\tthinkingLevel: nextTurnState.thinkingLevel,\n\t\t\t\t};\n\t\t\t},\n\t\t\tgetSteeringMessages: async () => {\n\t\t\t\tsteeringQueueAtDrain = this.steerQueue;\n\t\t\t\treturn this.drainQueuedMessages(steeringQueueAtDrain, this.steeringQueueMode);\n\t\t\t},\n\t\t\tgetFollowUpMessages: async () => {\n\t\t\t\tfollowUpQueueAtDrain = this.followUpQueue;\n\t\t\t\treturn this.drainQueuedMessages(followUpQueueAtDrain, this.followUpQueueMode);\n\t\t\t},\n\t\t\trestorePendingMessages: async (queue, messages) => {\n\t\t\t\tconst target = queue === \"steering\" ? this.steerQueue : this.followUpQueue;\n\t\t\t\tconst drainedQueue = queue === \"steering\" ? steeringQueueAtDrain : followUpQueueAtDrain;\n\t\t\t\tif (target !== drainedQueue) return;\n\t\t\t\tfor (let index = messages.length - 1; index >= 0; index--) {\n\t\t\t\t\tconst message = messages[index];\n\t\t\t\t\tif (message?.role !== \"user\") {\n\t\t\t\t\t\tthrow new AgentHarnessError(\"invalid_state\", \"Only user messages can be restored to input queues\");\n\t\t\t\t\t}\n\t\t\t\t\ttarget.unshift(message);\n\t\t\t\t}\n\t\t\t\tawait this.emitQueueUpdate();\n\t\t\t},\n\t\t};\n\t}\n\n\tprivate validateUniqueNames(names: string[], message: string): void {\n\t\tconst duplicates = findDuplicateNames(names);\n\t\tif (duplicates.length > 0)\n\t\t\tthrow new AgentHarnessError(\"invalid_argument\", `${message}: ${duplicates.join(\", \")}`);\n\t}\n\n\tprivate validateToolNames(toolNames: string[], tools: Map<string, TTool> = this.tools): void {\n\t\tthis.validateUniqueNames(toolNames, \"Duplicate active tool name(s)\");\n\t\tconst missing = toolNames.filter((name) => !tools.has(name));\n\t\tif (missing.length > 0) throw new AgentHarnessError(\"invalid_argument\", `Unknown tool(s): ${missing.join(\", \")}`);\n\t}\n\n\tprivate async flushPendingSessionWrites(): Promise<void> {\n\t\twhile (this.pendingSessionWrites.length > 0) {\n\t\t\tconst write = this.pendingSessionWrites[0]!;\n\t\t\tif (write.type === \"message\") {\n\t\t\t\tawait this.session.appendMessage(write.message);\n\t\t\t} else if (write.type === \"model_change\") {\n\t\t\t\tawait this.session.appendModelChange(write.provider, write.modelId);\n\t\t\t} else if (write.type === \"thinking_level_change\") {\n\t\t\t\tawait this.session.appendThinkingLevelChange(write.thinkingLevel);\n\t\t\t} else if (write.type === \"active_tools_change\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(write.activeToolNames);\n\t\t\t} else if (write.type === \"custom\") {\n\t\t\t\tawait this.session.appendCustomEntry(write.customType, write.data);\n\t\t\t} else if (write.type === \"custom_message\") {\n\t\t\t\tawait this.session.appendCustomMessageEntry(write.customType, write.content, write.display, write.details);\n\t\t\t} else if (write.type === \"label\") {\n\t\t\t\tawait this.session.appendLabel(write.targetId, write.label);\n\t\t\t} else if (write.type === \"session_info\") {\n\t\t\t\tawait this.session.appendSessionName(write.name ?? \"\");\n\t\t\t} else if (write.type === \"leaf\") {\n\t\t\t\tawait this.session.moveTo(write.targetId);\n\t\t\t}\n\t\t\tthis.pendingSessionWrites.shift();\n\t\t}\n\t}\n\n\tprivate async handleAgentEvent(event: AgentEvent, signal?: AbortSignal): Promise<void> {\n\t\tif (event.type === \"message_end\") {\n\t\t\tawait this.session.appendMessage(event.message);\n\t\t\tawait this.emitAny(event, signal);\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"turn_end\") {\n\t\t\tlet eventError: unknown;\n\t\t\ttry {\n\t\t\t\tawait this.emitAny(event, signal);\n\t\t\t} catch (error) {\n\t\t\t\teventError = error;\n\t\t\t}\n\t\t\tconst hadPendingMutations = this.pendingSessionWrites.length > 0;\n\t\t\tawait this.flushPendingSessionWrites();\n\t\t\tif (eventError) throw eventError;\n\t\t\tawait this.emitOwn({ type: \"save_point\", hadPendingMutations });\n\t\t\treturn;\n\t\t}\n\t\tif (event.type === \"agent_end\") {\n\t\t\tawait this.flushPendingSessionWrites();\n\t\t\tthis.phase = \"idle\";\n\t\t\tawait this.emitAny(event, signal);\n\t\t\tawait this.emitOwn({ type: \"settled\", nextTurnCount: this.nextTurnQueue.length }, signal);\n\t\t\treturn;\n\t\t}\n\t\tawait this.emitAny(event, signal);\n\t}\n\n\tprivate async emitRunFailure(\n\t\tmodel: Model<any>,\n\t\terror: unknown,\n\t\taborted: boolean,\n\t\tsignal: AbortSignal,\n\t): Promise<AgentMessage[]> {\n\t\tconst failureMessage = createFailureMessage(model, error, aborted);\n\t\tawait this.handleAgentEvent({ type: \"message_start\", message: failureMessage }, signal);\n\t\tawait this.handleAgentEvent({ type: \"message_end\", message: failureMessage }, signal);\n\t\tawait this.handleAgentEvent({ type: \"turn_end\", message: failureMessage, toolResults: [] }, signal);\n\t\tawait this.handleAgentEvent({ type: \"agent_end\", messages: [failureMessage] }, signal);\n\t\treturn [failureMessage];\n\t}\n\n\tprivate async executeTurn(\n\t\tturnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>,\n\t\ttext: string,\n\t\tsignal: AbortSignal,\n\t\toptions?: { images?: ImageContent[] },\n\t): Promise<AssistantMessage> {\n\t\tthis.assertNotShutDown();\n\t\tlet activeTurnState = turnState;\n\t\tlet messages: AgentMessage[] = [createUserMessage(text, options?.images)];\n\t\tif (this.nextTurnQueue.length > 0) {\n\t\t\tconst queuedMessages = this.nextTurnQueue.splice(0);\n\t\t\ttry {\n\t\t\t\tawait this.emitQueueUpdate();\n\t\t\t} catch (error) {\n\t\t\t\tthis.nextTurnQueue.unshift(...queuedMessages);\n\t\t\t\tthrow normalizeHookError(error);\n\t\t\t}\n\t\t\tmessages = [...queuedMessages, messages[0]!];\n\t\t}\n\t\tconst beforeResult = await this.emitHook({\n\t\t\ttype: \"before_agent_start\",\n\t\t\tprompt: text,\n\t\t\timages: options?.images,\n\t\t\tsystemPrompt: turnState.systemPrompt,\n\t\t\tresources: turnState.resources,\n\t\t});\n\t\tthis.assertNotShutDown();\n\t\tif (beforeResult?.messages) messages = [...messages, ...beforeResult.messages];\n\n\t\tconst getTurnState = () => activeTurnState;\n\t\tconst setTurnState = (nextTurnState: AgentHarnessTurnState<TContext, TSkill, TPromptTemplate, TTool>) => {\n\t\t\tactiveTurnState = nextTurnState;\n\t\t};\n\t\tconst runResultPromise = (async () => {\n\t\t\ttry {\n\t\t\t\treturn await runAgentLoop(\n\t\t\t\t\tmessages,\n\t\t\t\t\tthis.createContext(turnState, beforeResult?.systemPrompt),\n\t\t\t\t\tthis.createLoopConfig(getTurnState, setTurnState),\n\t\t\t\t\t(event) => this.handleAgentEvent(event, signal),\n\t\t\t\t\tsignal,\n\t\t\t\t\tthis.createStreamFn(getTurnState),\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\ttry {\n\t\t\t\t\treturn await this.emitRunFailure(activeTurnState.model, error, signal.aborted, signal);\n\t\t\t\t} catch (failureError) {\n\t\t\t\t\tconst cause = new AggregateError(\n\t\t\t\t\t\t[toError(error), toError(failureError)],\n\t\t\t\t\t\t\"Agent run failed and failure reporting failed\",\n\t\t\t\t\t);\n\t\t\t\t\tthrow new AgentHarnessError(\"unknown\", cause.message, cause);\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t\ttry {\n\t\t\tconst newMessages = await runResultPromise;\n\t\t\tfor (let i = newMessages.length - 1; i >= 0; i--) {\n\t\t\t\tconst message = newMessages[i]!;\n\t\t\t\tif (message.role === \"assistant\") {\n\t\t\t\t\treturn message;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new AgentHarnessError(\"invalid_state\", \"AgentHarness prompt completed without an assistant message\");\n\t\t} finally {\n\t\t\tawait this.flushPendingSessionWrites();\n\t\t}\n\t}\n\n\tasync prompt(text: string, options?: { images?: ImageContent[] }): Promise<AssistantMessage> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst operation = this.startOperation();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\treturn await this.executeTurn(turnState, text, operation.signal, options);\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\toperation.finish();\n\t\t}\n\t}\n\n\tasync skill(name: string, additionalInstructions?: string): Promise<AssistantMessage> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst operation = this.startOperation();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\tconst skill = (turnState.resources.skills ?? []).find((candidate) => candidate.name === name);\n\t\t\tif (!skill) throw new AgentHarnessError(\"invalid_argument\", `Unknown skill: ${name}`);\n\t\t\treturn await this.executeTurn(\n\t\t\t\tturnState,\n\t\t\t\tformatSkillInvocation(skill, additionalInstructions),\n\t\t\t\toperation.signal,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\toperation.finish();\n\t\t}\n\t}\n\n\tasync promptFromTemplate(name: string, args: string[] = []): Promise<AssistantMessage> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"AgentHarness is busy\");\n\t\tthis.phase = \"turn\";\n\t\tconst operation = this.startOperation();\n\t\ttry {\n\t\t\tconst turnState = await this.createTurnState();\n\t\t\tconst template = (turnState.resources.promptTemplates ?? []).find((candidate) => candidate.name === name);\n\t\t\tif (!template) throw new AgentHarnessError(\"invalid_argument\", `Unknown prompt template: ${name}`);\n\t\t\treturn await this.executeTurn(turnState, formatPromptTemplateInvocation(template, args), operation.signal);\n\t\t} catch (error) {\n\t\t\tthis.phase = \"idle\";\n\t\t\tthrow normalizeHarnessError(error, \"unknown\");\n\t\t} finally {\n\t\t\toperation.finish();\n\t\t}\n\t}\n\n\tasync steer(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase === \"idle\") throw new AgentHarnessError(\"invalid_state\", \"Cannot steer while idle\");\n\t\tthis.steerQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync followUp(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase === \"idle\") throw new AgentHarnessError(\"invalid_state\", \"Cannot follow up while idle\");\n\t\tthis.followUpQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync nextTurn(text: string, options?: { images?: ImageContent[] }): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tthis.nextTurnQueue.push(createUserMessage(text, options?.images));\n\t\tawait this.emitQueueUpdate();\n\t}\n\n\tasync appendMessage(message: AgentMessage): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\treturn this.track(\"mutation\", async () => {\n\t\t\ttry {\n\t\t\t\tif (this.phase === \"idle\") {\n\t\t\t\t\tawait this.session.appendMessage(message);\n\t\t\t\t} else {\n\t\t\t\t\tthis.pendingSessionWrites.push({ type: \"message\", message });\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t\t}\n\t\t});\n\t}\n\n\tasync compact(customInstructions?: string): Promise<CompactResult> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"compact() requires idle harness\");\n\t\tthis.phase = \"compaction\";\n\t\tconst operation = this.startOperation();\n\t\ttry {\n\t\t\tconst model = this.model;\n\t\t\tif (!model) throw new AgentHarnessError(\"invalid_state\", \"No model set for compaction\");\n\t\t\tconst branchEntries = await this.session.getBranch();\n\t\t\tconst preparationResult = prepareCompaction(branchEntries, DEFAULT_COMPACTION_SETTINGS);\n\t\t\tif (!preparationResult.ok) throw preparationResult.error;\n\t\t\tconst preparation = preparationResult.value;\n\t\t\tif (!preparation) throw new AgentHarnessError(\"compaction\", \"Nothing to compact\");\n\t\t\tconst hookResult = await this.emitHook({\n\t\t\t\ttype: \"session_before_compact\",\n\t\t\t\tpreparation,\n\t\t\t\tbranchEntries,\n\t\t\t\tcustomInstructions,\n\t\t\t\tsignal: operation.signal,\n\t\t\t});\n\t\t\tif (hookResult?.cancel) throw new AgentHarnessError(\"compaction\", \"Compaction cancelled\");\n\t\t\tconst provided = hookResult?.compaction;\n\t\t\tconst compactResult = provided\n\t\t\t\t? { ok: true as const, value: provided }\n\t\t\t\t: await compact(\n\t\t\t\t\t\tpreparation,\n\t\t\t\t\t\tthis.models,\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tcustomInstructions,\n\t\t\t\t\t\toperation.signal,\n\t\t\t\t\t\tthis.thinkingLevel,\n\t\t\t\t\t\tthis.retry,\n\t\t\t\t\t\tthis.retryCallbacks(\"compaction\"),\n\t\t\t\t\t);\n\t\t\tif (!compactResult.ok) throw compactResult.error;\n\t\t\tconst result = compactResult.value;\n\t\t\tthis.assertNotShutDown();\n\t\t\tconst entryId = await this.session.appendCompaction(\n\t\t\t\tresult.summary,\n\t\t\t\tresult.firstKeptEntryId,\n\t\t\t\tresult.tokensBefore,\n\t\t\t\tresult.details,\n\t\t\t\tprovided !== undefined,\n\t\t\t\tresult.usage,\n\t\t\t\tresult.retainedTail,\n\t\t\t);\n\t\t\tconst entry = await this.session.getEntry(entryId);\n\t\t\tif (entry?.type === \"compaction\") {\n\t\t\t\tawait this.emitOwn({ type: \"session_compact\", compactionEntry: entry, fromHook: provided !== undefined });\n\t\t\t}\n\t\t\treturn result;\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"compaction\");\n\t\t} finally {\n\t\t\tthis.phase = \"idle\";\n\t\t\toperation.finish();\n\t\t}\n\t}\n\n\tasync navigateTree(\n\t\ttargetId: string,\n\t\toptions?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string },\n\t): Promise<NavigateTreeResult> {\n\t\tthis.assertNotShutDown();\n\t\tif (this.phase !== \"idle\") throw new AgentHarnessError(\"busy\", \"navigateTree() requires idle harness\");\n\t\tthis.phase = \"branch_summary\";\n\t\tconst operation = this.startOperation();\n\t\ttry {\n\t\t\tconst oldLeafId = await this.session.getLeafId();\n\t\t\tif (oldLeafId === targetId) return { cancelled: false };\n\t\t\tconst targetEntry = await this.session.getEntry(targetId);\n\t\t\tif (!targetEntry) throw new AgentHarnessError(\"invalid_argument\", `Entry ${targetId} not found`);\n\t\t\tconst { entries, commonAncestorId } = await collectEntriesForBranchSummary(this.session, oldLeafId, targetId);\n\t\t\tconst preparation = {\n\t\t\t\ttargetId,\n\t\t\t\toldLeafId,\n\t\t\t\tcommonAncestorId,\n\t\t\t\tentriesToSummarize: entries,\n\t\t\t\tuserWantsSummary: options?.summarize ?? false,\n\t\t\t\tcustomInstructions: options?.customInstructions,\n\t\t\t\treplaceInstructions: options?.replaceInstructions,\n\t\t\t\tlabel: options?.label,\n\t\t\t};\n\t\t\tconst hookResult = await this.emitHook({\n\t\t\t\ttype: \"session_before_tree\",\n\t\t\t\tpreparation,\n\t\t\t\tsignal: operation.signal,\n\t\t\t});\n\t\t\tif (hookResult?.cancel) return { cancelled: true };\n\t\t\tlet summaryEntry: NavigateTreeResult[\"summaryEntry\"];\n\t\t\tlet summaryText: string | undefined = hookResult?.summary?.summary;\n\t\t\tlet summaryDetails: unknown = hookResult?.summary?.details;\n\t\t\tlet summaryUsage = hookResult?.summary?.usage;\n\t\t\tif (!summaryText && options?.summarize && entries.length > 0) {\n\t\t\t\tconst model = this.model;\n\t\t\t\tif (!model) throw new AgentHarnessError(\"invalid_state\", \"No model set for branch summary\");\n\t\t\t\tconst branchSummary = await generateBranchSummary(entries, {\n\t\t\t\t\tmodels: this.models,\n\t\t\t\t\tmodel,\n\t\t\t\t\tsignal: operation.signal,\n\t\t\t\t\tcustomInstructions: hookResult?.customInstructions ?? options?.customInstructions,\n\t\t\t\t\treplaceInstructions: hookResult?.replaceInstructions ?? options?.replaceInstructions,\n\t\t\t\t\tretry: this.retry,\n\t\t\t\t\tcallbacks: this.retryCallbacks(\"branch_summary\"),\n\t\t\t\t});\n\t\t\t\tif (!branchSummary.ok) {\n\t\t\t\t\tif (branchSummary.error.code === \"aborted\") return { cancelled: true };\n\t\t\t\t\tthrow new AgentHarnessError(\"branch_summary\", branchSummary.error.message, branchSummary.error);\n\t\t\t\t}\n\t\t\t\tsummaryText = branchSummary.value.summary;\n\t\t\t\tsummaryUsage = branchSummary.value.usage;\n\t\t\t\tsummaryDetails = {\n\t\t\t\t\treadFiles: branchSummary.value.readFiles,\n\t\t\t\t\tmodifiedFiles: branchSummary.value.modifiedFiles,\n\t\t\t\t};\n\t\t\t}\n\t\t\tlet editorText: string | undefined;\n\t\t\tlet newLeafId: string | null;\n\t\t\tif (targetEntry.type === \"message\" && targetEntry.message.role === \"user\") {\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText = contentText(targetEntry.message.content, \"\");\n\t\t\t} else if (targetEntry.type === \"custom_message\") {\n\t\t\t\tnewLeafId = targetEntry.parentId;\n\t\t\t\teditorText = contentText(targetEntry.content, \"\");\n\t\t\t} else {\n\t\t\t\tnewLeafId = targetId;\n\t\t\t}\n\t\t\tthis.assertNotShutDown();\n\t\t\tconst summaryId = await this.session.moveTo(\n\t\t\t\tnewLeafId,\n\t\t\t\tsummaryText\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tsummary: summaryText,\n\t\t\t\t\t\t\tdetails: summaryDetails,\n\t\t\t\t\t\t\tusage: summaryUsage,\n\t\t\t\t\t\t\tfromHook: hookResult?.summary !== undefined,\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined,\n\t\t\t);\n\t\t\tif (summaryId) {\n\t\t\t\tconst entry = await this.session.getEntry(summaryId);\n\t\t\t\tif (entry?.type === \"branch_summary\") summaryEntry = entry;\n\t\t\t}\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"session_tree\",\n\t\t\t\tnewLeafId: await this.session.getLeafId(),\n\t\t\t\toldLeafId,\n\t\t\t\tsummaryEntry,\n\t\t\t\tfromHook: hookResult?.summary !== undefined,\n\t\t\t});\n\t\t\treturn { cancelled: false, editorText, summaryEntry };\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"branch_summary\");\n\t\t} finally {\n\t\t\tthis.phase = \"idle\";\n\t\t\toperation.finish();\n\t\t}\n\t}\n\n\tgetModel(): Model<any> {\n\t\treturn this.model;\n\t}\n\n\tasync setModel(model: Model<any>): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\treturn this.track(\"mutation\", async () => {\n\t\t\ttry {\n\t\t\t\tconst previousModel = this.model;\n\t\t\t\tif (this.phase === \"idle\") {\n\t\t\t\t\tawait this.session.appendModelChange(model.provider, model.id);\n\t\t\t\t} else {\n\t\t\t\t\tthis.pendingSessionWrites.push({ type: \"model_change\", provider: model.provider, modelId: model.id });\n\t\t\t\t}\n\t\t\t\tthis.model = model;\n\t\t\t\tawait this.emitOwn({ type: \"model_update\", model, previousModel, source: \"set\" });\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t\t}\n\t\t});\n\t}\n\n\tgetThinkingLevel(): ThinkingLevel {\n\t\treturn this.thinkingLevel;\n\t}\n\n\tasync setThinkingLevel(level: ThinkingLevel): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\treturn this.track(\"mutation\", async () => {\n\t\t\ttry {\n\t\t\t\tconst previousLevel = this.thinkingLevel;\n\t\t\t\tif (this.phase === \"idle\") {\n\t\t\t\t\tawait this.session.appendThinkingLevelChange(level);\n\t\t\t\t} else {\n\t\t\t\t\tthis.pendingSessionWrites.push({ type: \"thinking_level_change\", thinkingLevel: level });\n\t\t\t\t}\n\t\t\t\tthis.thinkingLevel = level;\n\t\t\t\tawait this.emitOwn({ type: \"thinking_level_update\", level, previousLevel });\n\t\t\t} catch (error) {\n\t\t\t\tthrow normalizeHarnessError(error, \"session\");\n\t\t\t}\n\t\t});\n\t}\n\n\tgetTools(): TTool[] {\n\t\treturn [...this.tools.values()];\n\t}\n\n\tasync setTools(tools: TTool[], activeToolNames?: string[]): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\treturn this.track(\"mutation\", () => this.applyTools(tools, activeToolNames));\n\t}\n\n\tprivate async applyTools(tools: TTool[], activeToolNames?: string[]): Promise<void> {\n\t\ttry {\n\t\t\tthis.validateUniqueNames(\n\t\t\t\ttools.map((tool) => tool.name),\n\t\t\t\t\"Duplicate tool name(s)\",\n\t\t\t);\n\t\t\tconst nextTools = new Map(tools.map((tool) => [tool.name, tool]));\n\t\t\tconst nextActiveToolNames = activeToolNames ? [...activeToolNames] : this.activeToolNames;\n\t\t\tthis.validateToolNames(nextActiveToolNames, nextTools);\n\t\t\tconst previousToolNames = [...this.tools.keys()];\n\t\t\tconst previousActiveToolNames = [...this.activeToolNames];\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(nextActiveToolNames);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"active_tools_change\", activeToolNames: [...nextActiveToolNames] });\n\t\t\t}\n\t\t\tthis.tools = nextTools;\n\t\t\tthis.activeToolNames = [...nextActiveToolNames];\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"tools_update\",\n\t\t\t\ttoolNames: [...this.tools.keys()],\n\t\t\t\tpreviousToolNames,\n\t\t\t\tactiveToolNames: [...this.activeToolNames],\n\t\t\t\tpreviousActiveToolNames,\n\t\t\t\tsource: \"set\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"invalid_argument\");\n\t\t}\n\t}\n\n\tgetActiveTools(): TTool[] {\n\t\treturn this.activeToolNames.map((name) => this.tools.get(name)!);\n\t}\n\n\tasync setActiveTools(toolNames: string[]): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\treturn this.track(\"mutation\", () => this.applyActiveTools(toolNames));\n\t}\n\n\tprivate async applyActiveTools(toolNames: string[]): Promise<void> {\n\t\ttry {\n\t\t\tthis.validateToolNames(toolNames);\n\t\t\tconst previousToolNames = [...this.tools.keys()];\n\t\t\tconst previousActiveToolNames = [...this.activeToolNames];\n\t\t\tif (this.phase === \"idle\") {\n\t\t\t\tawait this.session.appendActiveToolsChange(toolNames);\n\t\t\t} else {\n\t\t\t\tthis.pendingSessionWrites.push({ type: \"active_tools_change\", activeToolNames: [...toolNames] });\n\t\t\t}\n\t\t\tthis.activeToolNames = [...toolNames];\n\t\t\tawait this.emitOwn({\n\t\t\t\ttype: \"tools_update\",\n\t\t\t\ttoolNames: [...this.tools.keys()],\n\t\t\t\tpreviousToolNames,\n\t\t\t\tactiveToolNames: [...this.activeToolNames],\n\t\t\t\tpreviousActiveToolNames,\n\t\t\t\tsource: \"set\",\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow normalizeHarnessError(error, \"invalid_argument\");\n\t\t}\n\t}\n\n\tgetSteeringMode(): QueueMode {\n\t\treturn this.steeringQueueMode;\n\t}\n\n\tasync setSteeringMode(mode: QueueMode): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tthis.steeringQueueMode = mode;\n\t}\n\n\tgetFollowUpMode(): QueueMode {\n\t\treturn this.followUpQueueMode;\n\t}\n\n\tasync setFollowUpMode(mode: QueueMode): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tthis.followUpQueueMode = mode;\n\t}\n\n\tgetResources(): AgentHarnessResources<TSkill, TPromptTemplate> {\n\t\treturn {\n\t\t\tskills: this.resources.skills?.slice(),\n\t\t\tpromptTemplates: this.resources.promptTemplates?.slice(),\n\t\t};\n\t}\n\n\tasync setResources(resources: AgentHarnessResources<TSkill, TPromptTemplate>): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tconst previousResources = this.getResources();\n\t\tthis.resources = {\n\t\t\tskills: resources.skills?.slice(),\n\t\t\tpromptTemplates: resources.promptTemplates?.slice(),\n\t\t};\n\t\tawait this.emitOwn({ type: \"resources_update\", resources: this.getResources(), previousResources });\n\t}\n\n\tgetStreamOptions(): AgentHarnessStreamOptions {\n\t\treturn cloneStreamOptions(this.streamOptions);\n\t}\n\n\tasync setStreamOptions(streamOptions: AgentHarnessStreamOptions): Promise<void> {\n\t\tthis.assertNotShutDown();\n\t\tthis.streamOptions = cloneStreamOptions(streamOptions);\n\t}\n\n\t/** Permanently stop this harness instance without deleting its durable session. */\n\trequestShutdown(): void {\n\t\tif (this.isShutdown) return;\n\t\tthis.isShutdown = true;\n\t\tthis.pendingSessionWrites = [];\n\t\tthis.steerQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.nextTurnQueue = [];\n\t\tthis.activeAbortController?.abort();\n\t\tthis.shutdownPromise = this.waitForTasks();\n\t}\n\n\t/** Waits for work active when shutdown was requested to settle. */\n\twaitForShutdown(): Promise<void> {\n\t\tif (!this.shutdownPromise) {\n\t\t\treturn Promise.reject(new AgentHarnessError(\"invalid_state\", \"Shutdown has not been requested\"));\n\t\t}\n\t\treturn this.shutdownPromise;\n\t}\n\n\tasync abort(): Promise<AbortResult> {\n\t\tthis.assertNotShutDown();\n\t\tconst clearedSteer = [...this.steerQueue];\n\t\tconst clearedFollowUp = [...this.followUpQueue];\n\t\tthis.steerQueue = [];\n\t\tthis.followUpQueue = [];\n\t\tthis.activeAbortController?.abort();\n\t\tconst errors: Error[] = [];\n\t\ttry {\n\t\t\tawait this.emitQueueUpdate();\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\ttry {\n\t\t\tawait this.waitForIdle();\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\ttry {\n\t\t\tawait this.emitOwn({ type: \"abort\", clearedSteer, clearedFollowUp });\n\t\t} catch (error) {\n\t\t\terrors.push(toError(error));\n\t\t}\n\t\tif (errors.length > 0) {\n\t\t\tconst cause = errors.length === 1 ? errors[0]! : new AggregateError(errors, \"Abort completed with errors\");\n\t\t\tthrow normalizeHarnessError(cause, \"hook\");\n\t\t}\n\t\treturn { clearedSteer, clearedFollowUp };\n\t}\n\n\tasync waitForIdle(): Promise<void> {\n\t\tawait this.waitForTasks(\"operation\");\n\t}\n\n\tsubscribe(\n\t\tlistener: (event: AgentHarnessEvent<TSkill, TPromptTemplate>, signal?: AbortSignal) => Promise<void> | void,\n\t): () => void {\n\t\tthis.assertNotShutDown();\n\t\tlet handlers = this.handlers.get(SUBSCRIBER_EVENT_TYPE);\n\t\tif (!handlers) {\n\t\t\thandlers = new Set();\n\t\t\tthis.handlers.set(SUBSCRIBER_EVENT_TYPE, handlers);\n\t\t}\n\t\thandlers.add(listener as AgentHarnessHandler);\n\t\treturn () => handlers!.delete(listener as AgentHarnessHandler);\n\t}\n\n\ton<TType extends keyof AgentHarnessEventResultMap>(\n\t\ttype: TType,\n\t\thandler: (\n\t\t\tevent: Extract<AgentHarnessOwnEvent, { type: TType }>,\n\t\t) => Promise<AgentHarnessEventResultMap[TType]> | AgentHarnessEventResultMap[TType],\n\t): () => void {\n\t\tthis.assertNotShutDown();\n\t\tlet handlers = this.handlers.get(type);\n\t\tif (!handlers) {\n\t\t\thandlers = new Set();\n\t\t\tthis.handlers.set(type, handlers);\n\t\t}\n\t\thandlers.add(handler as AgentHarnessHandler);\n\t\treturn () => handlers!.delete(handler as AgentHarnessHandler);\n\t}\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { SessionMetadata, SessionReader, SessionTreeEntry } from "../types.ts";
2
+ export declare function createArraySessionReader<TMetadata extends SessionMetadata>(metadata: TMetadata, readCurrentEntries: () => readonly SessionTreeEntry[]): SessionReader<TMetadata>;
3
+ //# sourceMappingURL=array-session-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-session-reader.d.ts","sourceRoot":"","sources":["../../../src/harness/session/array-session-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/G,wBAAgB,wBAAwB,CAAC,SAAS,SAAS,eAAe,EACzE,QAAQ,EAAE,SAAS,EACnB,kBAAkB,EAAE,MAAM,SAAS,gBAAgB,EAAE,GACnD,aAAa,CAAC,SAAS,CAAC,CA+D1B"}
@@ -0,0 +1,70 @@
1
+ import { SessionError } from "../types.js";
2
+ export function createArraySessionReader(metadata, readCurrentEntries) {
3
+ let indexedCount = 0;
4
+ let indexedEntries;
5
+ let leafId = null;
6
+ const byId = new Map();
7
+ const updateIndex = () => {
8
+ const entries = readCurrentEntries();
9
+ if (entries !== indexedEntries || entries.length < indexedCount) {
10
+ indexedCount = 0;
11
+ leafId = null;
12
+ byId.clear();
13
+ indexedEntries = entries;
14
+ }
15
+ for (; indexedCount < entries.length; indexedCount++) {
16
+ const entry = entries[indexedCount];
17
+ byId.set(entry.id, entry);
18
+ leafId = entry.type === "leaf" ? entry.targetId : entry.id;
19
+ }
20
+ return entries;
21
+ };
22
+ return {
23
+ metadata,
24
+ async readHead() {
25
+ updateIndex();
26
+ if (leafId !== null && !byId.has(leafId)) {
27
+ throw new SessionError("invalid_session", `Entry ${leafId} not found`);
28
+ }
29
+ return { leafId };
30
+ },
31
+ async readEntry(id) {
32
+ updateIndex();
33
+ return byId.get(id);
34
+ },
35
+ async readEntries(options) {
36
+ const entries = updateIndex();
37
+ const start = options?.afterEntrySeq ?? 0;
38
+ const end = options?.limit === undefined ? undefined : start + options.limit;
39
+ return entries.slice(start, end);
40
+ },
41
+ async readPathToRootOrCompaction(requestedLeafId) {
42
+ updateIndex();
43
+ if (requestedLeafId === null)
44
+ return [];
45
+ const path = [];
46
+ let stopAtEntryId = null;
47
+ let current = byId.get(requestedLeafId);
48
+ if (!current)
49
+ throw new SessionError("not_found", `Entry ${requestedLeafId} not found`);
50
+ while (current) {
51
+ path.push(current);
52
+ if (stopAtEntryId !== null && current.id === stopAtEntryId)
53
+ break;
54
+ if (current.type === "compaction") {
55
+ if (current.retainedTail)
56
+ break;
57
+ stopAtEntryId = current.firstKeptEntryId ?? null;
58
+ }
59
+ if (!current.parentId)
60
+ break;
61
+ const parent = byId.get(current.parentId);
62
+ if (!parent)
63
+ throw new SessionError("invalid_session", `Entry ${current.parentId} not found`);
64
+ current = parent;
65
+ }
66
+ return path.reverse();
67
+ },
68
+ };
69
+ }
70
+ //# sourceMappingURL=array-session-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-session-reader.js","sourceRoot":"","sources":["../../../src/harness/session/array-session-reader.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SessionEntryCursorOptions, SessionMetadata, SessionReader, SessionTreeEntry } from \"../types.ts\";\nimport { SessionError } from \"../types.ts\";\n\nexport function createArraySessionReader<TMetadata extends SessionMetadata>(\n\tmetadata: TMetadata,\n\treadCurrentEntries: () => readonly SessionTreeEntry[],\n): SessionReader<TMetadata> {\n\tlet indexedCount = 0;\n\tlet indexedEntries: readonly SessionTreeEntry[] | undefined;\n\tlet leafId: string | null = null;\n\tconst byId = new Map<string, SessionTreeEntry>();\n\n\tconst updateIndex = (): readonly SessionTreeEntry[] => {\n\t\tconst entries = readCurrentEntries();\n\t\tif (entries !== indexedEntries || entries.length < indexedCount) {\n\t\t\tindexedCount = 0;\n\t\t\tleafId = null;\n\t\t\tbyId.clear();\n\t\t\tindexedEntries = entries;\n\t\t}\n\t\tfor (; indexedCount < entries.length; indexedCount++) {\n\t\t\tconst entry = entries[indexedCount]!;\n\t\t\tbyId.set(entry.id, entry);\n\t\t\tleafId = entry.type === \"leaf\" ? entry.targetId : entry.id;\n\t\t}\n\t\treturn entries;\n\t};\n\n\treturn {\n\t\tmetadata,\n\t\tasync readHead() {\n\t\t\tupdateIndex();\n\t\t\tif (leafId !== null && !byId.has(leafId)) {\n\t\t\t\tthrow new SessionError(\"invalid_session\", `Entry ${leafId} not found`);\n\t\t\t}\n\t\t\treturn { leafId };\n\t\t},\n\t\tasync readEntry(id) {\n\t\t\tupdateIndex();\n\t\t\treturn byId.get(id);\n\t\t},\n\t\tasync readEntries(options?: SessionEntryCursorOptions) {\n\t\t\tconst entries = updateIndex();\n\t\t\tconst start = options?.afterEntrySeq ?? 0;\n\t\t\tconst end = options?.limit === undefined ? undefined : start + options.limit;\n\t\t\treturn entries.slice(start, end);\n\t\t},\n\t\tasync readPathToRootOrCompaction(requestedLeafId) {\n\t\t\tupdateIndex();\n\t\t\tif (requestedLeafId === null) return [];\n\t\t\tconst path: SessionTreeEntry[] = [];\n\t\t\tlet stopAtEntryId: string | null = null;\n\t\t\tlet current = byId.get(requestedLeafId);\n\t\t\tif (!current) throw new SessionError(\"not_found\", `Entry ${requestedLeafId} not found`);\n\t\t\twhile (current) {\n\t\t\t\tpath.push(current);\n\t\t\t\tif (stopAtEntryId !== null && current.id === stopAtEntryId) break;\n\t\t\t\tif (current.type === \"compaction\") {\n\t\t\t\t\tif (current.retainedTail) break;\n\t\t\t\t\tstopAtEntryId = current.firstKeptEntryId ?? null;\n\t\t\t\t}\n\t\t\t\tif (!current.parentId) break;\n\t\t\t\tconst parent = byId.get(current.parentId);\n\t\t\t\tif (!parent) throw new SessionError(\"invalid_session\", `Entry ${current.parentId} not found`);\n\t\t\t\tcurrent = parent;\n\t\t\t}\n\t\t\treturn path.reverse();\n\t\t},\n\t};\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { SessionForkOptions, SessionForkSelection, SessionReader, SessionTreeEntry } from "../types.ts";
2
+ export declare function createSessionForkSelection(options: SessionForkOptions): SessionForkSelection;
3
+ export declare function readSessionEntriesForFork(reader: SessionReader, selection: SessionForkSelection): Promise<readonly SessionTreeEntry[]>;
4
+ //# sourceMappingURL=fork.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork.d.ts","sourceRoot":"","sources":["../../../src/harness/session/fork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG7G,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAK5F;AAED,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,oBAAoB,GAC7B,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC,CAStC"}
@@ -0,0 +1,22 @@
1
+ import { SessionError } from "../types.js";
2
+ export function createSessionForkSelection(options) {
3
+ if (!options.entryId)
4
+ return { kind: "all" };
5
+ return (options.position ?? "before") === "at"
6
+ ? { kind: "through_entry", entryId: options.entryId }
7
+ : { kind: "before_user_message", entryId: options.entryId };
8
+ }
9
+ export async function readSessionEntriesForFork(reader, selection) {
10
+ if (selection.kind === "all")
11
+ return reader.readEntries();
12
+ const target = await reader.readEntry(selection.entryId);
13
+ if (!target)
14
+ throw new SessionError("invalid_fork_target", `Entry ${selection.entryId} not found`);
15
+ if (selection.kind === "through_entry")
16
+ return reader.readPathToRootOrCompaction(target.id);
17
+ if (target.type !== "message" || target.message.role !== "user") {
18
+ throw new SessionError("invalid_fork_target", `Entry ${selection.entryId} is not a user message`);
19
+ }
20
+ return reader.readPathToRootOrCompaction(target.parentId);
21
+ }
22
+ //# sourceMappingURL=fork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork.js","sourceRoot":"","sources":["../../../src/harness/session/fork.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,0BAA0B,CAAC,OAA2B;IACrE,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC7C,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;QACrD,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,MAAqB,EACrB,SAA+B;IAE/B,IAAI,SAAS,CAAC,IAAI,KAAK,KAAK;QAAE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,YAAY,CAAC,qBAAqB,EAAE,SAAS,SAAS,CAAC,OAAO,YAAY,CAAC,CAAC;IACnG,IAAI,SAAS,CAAC,IAAI,KAAK,eAAe;QAAE,OAAO,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC5F,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACjE,MAAM,IAAI,YAAY,CAAC,qBAAqB,EAAE,SAAS,SAAS,CAAC,OAAO,wBAAwB,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,MAAM,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3D,CAAC","sourcesContent":["import type { SessionForkOptions, SessionForkSelection, SessionReader, SessionTreeEntry } from \"../types.ts\";\nimport { SessionError } from \"../types.ts\";\n\nexport function createSessionForkSelection(options: SessionForkOptions): SessionForkSelection {\n\tif (!options.entryId) return { kind: \"all\" };\n\treturn (options.position ?? \"before\") === \"at\"\n\t\t? { kind: \"through_entry\", entryId: options.entryId }\n\t\t: { kind: \"before_user_message\", entryId: options.entryId };\n}\n\nexport async function readSessionEntriesForFork(\n\treader: SessionReader,\n\tselection: SessionForkSelection,\n): Promise<readonly SessionTreeEntry[]> {\n\tif (selection.kind === \"all\") return reader.readEntries();\n\tconst target = await reader.readEntry(selection.entryId);\n\tif (!target) throw new SessionError(\"invalid_fork_target\", `Entry ${selection.entryId} not found`);\n\tif (selection.kind === \"through_entry\") return reader.readPathToRootOrCompaction(target.id);\n\tif (target.type !== \"message\" || target.message.role !== \"user\") {\n\t\tthrow new SessionError(\"invalid_fork_target\", `Entry ${selection.entryId} is not a user message`);\n\t}\n\treturn reader.readPathToRootOrCompaction(target.parentId);\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import type { FileSystem, JsonlSessionCreateOptions, JsonlSessionListOptions, JsonlSessionMetadata, SessionStore } from "../types.ts";
2
+ export interface JsonlSessionStoreOptions {
3
+ fs: JsonlSessionStoreFileSystem;
4
+ sessionsRoot: string;
5
+ /** Maximum active operations across session keys. Defaults to 4. */
6
+ maxConcurrentOperations?: number;
7
+ }
8
+ export type JsonlSessionStoreFileSystem = Pick<FileSystem, "absolutePath" | "joinPath" | "readTextFile" | "readTextLines" | "writeFile" | "appendFile" | "listDir" | "exists" | "createDir" | "remove">;
9
+ type JsonlSessionFileSystem = Pick<FileSystem, "readTextFile" | "readTextLines" | "writeFile" | "appendFile">;
10
+ export declare function loadJsonlSessionMetadata(fs: JsonlSessionFileSystem, path: string): Promise<JsonlSessionMetadata>;
11
+ export declare function createJsonlSessionStore(options: JsonlSessionStoreOptions): SessionStore<JsonlSessionMetadata, JsonlSessionCreateOptions, JsonlSessionListOptions>;
12
+ export {};
13
+ //# sourceMappingURL=jsonl-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-store.d.ts","sourceRoot":"","sources":["../../../src/harness/session/jsonl-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,UAAU,EACV,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EAGpB,YAAY,EAEZ,MAAM,aAAa,CAAC;AAOrB,MAAM,WAAW,wBAAwB;IACxC,EAAE,EAAE,2BAA2B,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AACD,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC7C,UAAU,EACR,cAAc,GACd,UAAU,GACV,cAAc,GACd,eAAe,GACf,WAAW,GACX,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,CACV,CAAC;AAEF,KAAK,sBAAsB,GAAG,IAAI,CAAC,UAAU,EAAE,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;AA2G9G,wBAAsB,wBAAwB,CAC7C,EAAE,EAAE,sBAAsB,EAC1B,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,oBAAoB,CAAC,CAO/B;AAwRD,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,wBAAwB,GAC/B,YAAY,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,CAExF"}