@evalops/maestro 0.10.18 → 0.10.21

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 (2490) hide show
  1. package/README.md +56 -1
  2. package/dist/agent/action-approval.d.ts +12 -2
  3. package/dist/agent/action-approval.d.ts.map +1 -1
  4. package/dist/agent/action-approval.js +19 -32
  5. package/dist/agent/action-approval.js.map +1 -1
  6. package/dist/agent/agent.d.ts +1 -0
  7. package/dist/agent/agent.d.ts.map +1 -1
  8. package/dist/agent/agent.js +26 -0
  9. package/dist/agent/agent.js.map +1 -1
  10. package/dist/agent/compaction.d.ts +2 -0
  11. package/dist/agent/compaction.d.ts.map +1 -1
  12. package/dist/agent/compaction.js +4 -2
  13. package/dist/agent/compaction.js.map +1 -1
  14. package/dist/agent/index.d.ts +1 -1
  15. package/dist/agent/index.d.ts.map +1 -1
  16. package/dist/agent/index.js +1 -1
  17. package/dist/agent/index.js.map +1 -1
  18. package/dist/agent/modes.d.ts +56 -4
  19. package/dist/agent/modes.d.ts.map +1 -1
  20. package/dist/agent/modes.js +163 -2
  21. package/dist/agent/modes.js.map +1 -1
  22. package/dist/agent/prompt-recovery.d.ts.map +1 -1
  23. package/dist/agent/prompt-recovery.js +1 -3
  24. package/dist/agent/prompt-recovery.js.map +1 -1
  25. package/dist/agent/providers/anthropic.d.ts.map +1 -1
  26. package/dist/agent/providers/anthropic.js +9 -1
  27. package/dist/agent/providers/anthropic.js.map +1 -1
  28. package/dist/agent/providers/codex-app-server.d.ts +12 -0
  29. package/dist/agent/providers/codex-app-server.d.ts.map +1 -0
  30. package/dist/agent/providers/codex-app-server.js +788 -0
  31. package/dist/agent/providers/codex-app-server.js.map +1 -0
  32. package/dist/agent/providers/google-gemini-cli.js +14 -3
  33. package/dist/agent/providers/google.js +22 -3
  34. package/dist/agent/providers/scripted.d.ts +11 -0
  35. package/dist/agent/providers/scripted.d.ts.map +1 -0
  36. package/dist/agent/providers/scripted.js +399 -0
  37. package/dist/agent/providers/scripted.js.map +1 -0
  38. package/dist/agent/providers/vertex.js +14 -3
  39. package/dist/agent/scenario-source.d.ts +19 -0
  40. package/dist/agent/scenario-source.d.ts.map +1 -0
  41. package/dist/agent/scenario-source.js +112 -0
  42. package/dist/agent/scenario-source.js.map +1 -0
  43. package/dist/agent/subagent-specs.d.ts +1 -1
  44. package/dist/agent/subagent-specs.js +1 -1
  45. package/dist/agent/subagent-specs.js.map +1 -1
  46. package/dist/agent/swarm/executor.d.ts +25 -0
  47. package/dist/agent/swarm/executor.d.ts.map +1 -1
  48. package/dist/agent/swarm/executor.js +795 -20
  49. package/dist/agent/swarm/executor.js.map +1 -1
  50. package/dist/agent/swarm/runtime-events.d.ts +11 -0
  51. package/dist/agent/swarm/runtime-events.d.ts.map +1 -0
  52. package/dist/agent/swarm/runtime-events.js +26 -0
  53. package/dist/agent/swarm/runtime-events.js.map +1 -0
  54. package/dist/agent/swarm/types.d.ts +78 -0
  55. package/dist/agent/swarm/types.d.ts.map +1 -1
  56. package/dist/agent/swarm/types.js.map +1 -1
  57. package/dist/agent/tracing.d.ts +1 -1
  58. package/dist/agent/tracing.d.ts.map +1 -1
  59. package/dist/agent/tracing.js +17 -9
  60. package/dist/agent/tracing.js.map +1 -1
  61. package/dist/agent/transport/create-provider-stream.d.ts.map +1 -1
  62. package/dist/agent/transport/create-provider-stream.js +14 -0
  63. package/dist/agent/transport/create-provider-stream.js.map +1 -1
  64. package/dist/agent/transport/stable-stringify.d.ts +2 -0
  65. package/dist/agent/transport/stable-stringify.d.ts.map +1 -0
  66. package/dist/agent/transport/stable-stringify.js +14 -0
  67. package/dist/agent/transport/stable-stringify.js.map +1 -0
  68. package/dist/agent/transport/tool-execution-bridge.d.ts.map +1 -1
  69. package/dist/agent/transport/tool-execution-bridge.js +2 -15
  70. package/dist/agent/transport/tool-execution-bridge.js.map +1 -1
  71. package/dist/agent/transport/tool-safety-pipeline.d.ts +5 -1
  72. package/dist/agent/transport/tool-safety-pipeline.d.ts.map +1 -1
  73. package/dist/agent/transport/tool-safety-pipeline.js +184 -36
  74. package/dist/agent/transport/tool-safety-pipeline.js.map +1 -1
  75. package/dist/agent/transport.d.ts +8 -0
  76. package/dist/agent/transport.d.ts.map +1 -1
  77. package/dist/agent/transport.js +1613 -68
  78. package/dist/agent/transport.js.map +1 -1
  79. package/dist/agent/types.d.ts +170 -2
  80. package/dist/agent/types.d.ts.map +1 -1
  81. package/dist/agent/types.js.map +1 -1
  82. package/dist/api/enterprise-routes.d.ts.map +1 -1
  83. package/dist/api/enterprise-routes.js +34 -3
  84. package/dist/api/enterprise-routes.js.map +1 -1
  85. package/dist/app-server/in-process-client.d.ts +32 -0
  86. package/dist/app-server/in-process-client.d.ts.map +1 -0
  87. package/dist/app-server/in-process-client.js +73 -0
  88. package/dist/app-server/in-process-client.js.map +1 -0
  89. package/dist/app-server/session-api.d.ts +36 -0
  90. package/dist/app-server/session-api.d.ts.map +1 -0
  91. package/dist/app-server/session-api.js +713 -0
  92. package/dist/app-server/session-api.js.map +1 -0
  93. package/dist/approvals/platform-action-approval.d.ts +3 -1
  94. package/dist/approvals/platform-action-approval.d.ts.map +1 -1
  95. package/dist/approvals/platform-action-approval.js +16 -9
  96. package/dist/approvals/platform-action-approval.js.map +1 -1
  97. package/dist/approvals/service-client.d.ts.map +1 -1
  98. package/dist/approvals/service-client.js +7 -7
  99. package/dist/approvals/service-client.js.map +1 -1
  100. package/dist/audit/logger.d.ts +4 -4
  101. package/dist/bootstrap/agent-creation-setup.d.ts +4 -0
  102. package/dist/bootstrap/agent-creation-setup.d.ts.map +1 -1
  103. package/dist/bootstrap/agent-creation-setup.js +3 -1
  104. package/dist/bootstrap/agent-creation-setup.js.map +1 -1
  105. package/dist/bootstrap/auth-setup.js +1 -1
  106. package/dist/bootstrap/auth-setup.js.map +1 -1
  107. package/dist/bootstrap/event-subscriptions-setup.d.ts +6 -0
  108. package/dist/bootstrap/event-subscriptions-setup.d.ts.map +1 -1
  109. package/dist/bootstrap/event-subscriptions-setup.js +26 -2
  110. package/dist/bootstrap/event-subscriptions-setup.js.map +1 -1
  111. package/dist/bootstrap/model-resolution-setup.d.ts.map +1 -1
  112. package/dist/bootstrap/model-resolution-setup.js +4 -1
  113. package/dist/bootstrap/model-resolution-setup.js.map +1 -1
  114. package/dist/bootstrap/tools-setup.d.ts +2 -1
  115. package/dist/bootstrap/tools-setup.d.ts.map +1 -1
  116. package/dist/bootstrap/tools-setup.js +5 -1
  117. package/dist/bootstrap/tools-setup.js.map +1 -1
  118. package/dist/cli/args.d.ts +9 -1
  119. package/dist/cli/args.d.ts.map +1 -1
  120. package/dist/cli/args.js +130 -5
  121. package/dist/cli/args.js.map +1 -1
  122. package/dist/cli/commands/a2a.d.ts +9 -0
  123. package/dist/cli/commands/a2a.d.ts.map +1 -0
  124. package/dist/cli/commands/a2a.js +1714 -0
  125. package/dist/cli/commands/a2a.js.map +1 -0
  126. package/dist/cli/commands/agents.d.ts +16 -2
  127. package/dist/cli/commands/agents.d.ts.map +1 -1
  128. package/dist/cli/commands/agents.js +223 -35
  129. package/dist/cli/commands/agents.js.map +1 -1
  130. package/dist/cli/commands/codex.d.ts +1 -1
  131. package/dist/cli/commands/codex.d.ts.map +1 -1
  132. package/dist/cli/commands/codex.js +145 -39
  133. package/dist/cli/commands/codex.js.map +1 -1
  134. package/dist/cli/commands/context.d.ts +10 -0
  135. package/dist/cli/commands/context.d.ts.map +1 -0
  136. package/dist/cli/commands/context.js +176 -0
  137. package/dist/cli/commands/context.js.map +1 -0
  138. package/dist/cli/commands/hosted-runner.d.ts +1 -0
  139. package/dist/cli/commands/hosted-runner.d.ts.map +1 -1
  140. package/dist/cli/commands/hosted-runner.js +9 -1
  141. package/dist/cli/commands/hosted-runner.js.map +1 -1
  142. package/dist/cli/commands/modes.d.ts +8 -0
  143. package/dist/cli/commands/modes.d.ts.map +1 -0
  144. package/dist/cli/commands/modes.js +151 -0
  145. package/dist/cli/commands/modes.js.map +1 -0
  146. package/dist/cli/commands/operating-plane.d.ts +14 -0
  147. package/dist/cli/commands/operating-plane.d.ts.map +1 -0
  148. package/dist/cli/commands/operating-plane.js +160 -0
  149. package/dist/cli/commands/operating-plane.js.map +1 -0
  150. package/dist/cli/commands/run.d.ts +87 -0
  151. package/dist/cli/commands/run.d.ts.map +1 -0
  152. package/dist/cli/commands/run.js +356 -0
  153. package/dist/cli/commands/run.js.map +1 -0
  154. package/dist/cli/commands/scenario.d.ts +7 -0
  155. package/dist/cli/commands/scenario.d.ts.map +1 -0
  156. package/dist/cli/commands/scenario.js +195 -0
  157. package/dist/cli/commands/scenario.js.map +1 -0
  158. package/dist/cli/commands/skill.d.ts +7 -0
  159. package/dist/cli/commands/skill.d.ts.map +1 -0
  160. package/dist/cli/commands/skill.js +286 -0
  161. package/dist/cli/commands/skill.js.map +1 -0
  162. package/dist/cli/headless-protocol.d.ts +55 -1
  163. package/dist/cli/headless-protocol.d.ts.map +1 -1
  164. package/dist/cli/headless-protocol.js +446 -7
  165. package/dist/cli/headless-protocol.js.map +1 -1
  166. package/dist/cli/headless-runtime-selection.d.ts +38 -0
  167. package/dist/cli/headless-runtime-selection.d.ts.map +1 -0
  168. package/dist/cli/headless-runtime-selection.js +48 -0
  169. package/dist/cli/headless-runtime-selection.js.map +1 -0
  170. package/dist/cli/headless.d.ts +5 -1
  171. package/dist/cli/headless.d.ts.map +1 -1
  172. package/dist/cli/headless.js +11 -1
  173. package/dist/cli/headless.js.map +1 -1
  174. package/dist/cli/help.d.ts +3 -1
  175. package/dist/cli/help.d.ts.map +1 -1
  176. package/dist/cli/help.js +135 -30
  177. package/dist/cli/help.js.map +1 -1
  178. package/dist/cli/system-prompt.d.ts +22 -4
  179. package/dist/cli/system-prompt.d.ts.map +1 -1
  180. package/dist/cli/system-prompt.js +224 -127
  181. package/dist/cli/system-prompt.js.map +1 -1
  182. package/dist/cli-tui/commands/a2a-handlers.d.ts +7 -0
  183. package/dist/cli-tui/commands/a2a-handlers.d.ts.map +1 -0
  184. package/dist/cli-tui/commands/a2a-handlers.js +160 -0
  185. package/dist/cli-tui/commands/a2a-handlers.js.map +1 -0
  186. package/dist/cli-tui/commands/command-catalog.d.ts.map +1 -1
  187. package/dist/cli-tui/commands/command-catalog.js +15 -0
  188. package/dist/cli-tui/commands/command-catalog.js.map +1 -1
  189. package/dist/cli-tui/commands/command-registry-adapter.js +10 -1
  190. package/dist/cli-tui/commands/command-registry-adapter.js.map +1 -1
  191. package/dist/cli-tui/commands/handlers/mode-handler.d.ts.map +1 -1
  192. package/dist/cli-tui/commands/handlers/mode-handler.js +22 -10
  193. package/dist/cli-tui/commands/handlers/mode-handler.js.map +1 -1
  194. package/dist/cli-tui/commands/mcp-handlers.d.ts.map +1 -1
  195. package/dist/cli-tui/commands/mcp-handlers.js +6 -5
  196. package/dist/cli-tui/commands/mcp-handlers.js.map +1 -1
  197. package/dist/cli-tui/commands/types.d.ts +1 -0
  198. package/dist/cli-tui/commands/types.d.ts.map +1 -1
  199. package/dist/cli-tui/commands/types.js.map +1 -1
  200. package/dist/cli-tui/commands/utility-handlers.d.ts +4 -0
  201. package/dist/cli-tui/commands/utility-handlers.d.ts.map +1 -1
  202. package/dist/cli-tui/commands/utility-handlers.js +45 -6
  203. package/dist/cli-tui/commands/utility-handlers.js.map +1 -1
  204. package/dist/cli-tui/run/run-shell-command.d.ts.map +1 -1
  205. package/dist/cli-tui/run/run-shell-command.js +14 -5
  206. package/dist/cli-tui/run/run-shell-command.js.map +1 -1
  207. package/dist/cli-tui/run/streaming-shell-command.d.ts.map +1 -1
  208. package/dist/cli-tui/run/streaming-shell-command.js +14 -5
  209. package/dist/cli-tui/run/streaming-shell-command.js.map +1 -1
  210. package/dist/cli-tui/selectors/model-selector.d.ts +1 -0
  211. package/dist/cli-tui/selectors/model-selector.d.ts.map +1 -1
  212. package/dist/cli-tui/selectors/model-selector.js +6 -2
  213. package/dist/cli-tui/selectors/model-selector.js.map +1 -1
  214. package/dist/cli-tui/tui-renderer/command-registry-options.d.ts.map +1 -1
  215. package/dist/cli-tui/tui-renderer/command-registry-options.js +5 -0
  216. package/dist/cli-tui/tui-renderer/command-registry-options.js.map +1 -1
  217. package/dist/cli-tui/utils/commands/review-prompt.d.ts +1 -1
  218. package/dist/cli-tui/utils/commands/review-prompt.d.ts.map +1 -1
  219. package/dist/cli-tui/utils/commands/review-prompt.js +8 -3
  220. package/dist/cli-tui/utils/commands/review-prompt.js.map +1 -1
  221. package/dist/cli-tui/utils/runtime-badges.d.ts +1 -0
  222. package/dist/cli-tui/utils/runtime-badges.d.ts.map +1 -1
  223. package/dist/cli-tui/utils/runtime-badges.js +7 -0
  224. package/dist/cli-tui/utils/runtime-badges.js.map +1 -1
  225. package/dist/cli-tui/utils/text-formatting.d.ts +1 -0
  226. package/dist/cli-tui/utils/text-formatting.d.ts.map +1 -1
  227. package/dist/cli-tui/utils/text-formatting.js +5 -0
  228. package/dist/cli-tui/utils/text-formatting.js.map +1 -1
  229. package/dist/cli.js +49158 -26161
  230. package/dist/cli.js.map +1 -1
  231. package/dist/codex/app-server-client.d.ts +139 -0
  232. package/dist/codex/app-server-client.d.ts.map +1 -0
  233. package/dist/codex/app-server-client.js +352 -0
  234. package/dist/codex/app-server-client.js.map +1 -0
  235. package/dist/codex/compatibility.d.ts +48 -0
  236. package/dist/codex/compatibility.d.ts.map +1 -0
  237. package/dist/codex/compatibility.js +344 -0
  238. package/dist/codex/compatibility.js.map +1 -0
  239. package/dist/codex/subagent-dispatch-table.d.ts +66 -0
  240. package/dist/codex/subagent-dispatch-table.d.ts.map +1 -0
  241. package/dist/codex/subagent-dispatch-table.js +127 -0
  242. package/dist/codex/subagent-dispatch-table.js.map +1 -0
  243. package/dist/codex/subagent-workgraph.d.ts +56 -0
  244. package/dist/codex/subagent-workgraph.d.ts.map +1 -0
  245. package/dist/codex/subagent-workgraph.js +89 -0
  246. package/dist/codex/subagent-workgraph.js.map +1 -0
  247. package/dist/config/constants.d.ts +3 -1
  248. package/dist/config/constants.d.ts.map +1 -1
  249. package/dist/config/constants.js +9 -0
  250. package/dist/config/constants.js.map +1 -1
  251. package/dist/config/feature-flags.d.ts +10 -1
  252. package/dist/config/feature-flags.d.ts.map +1 -1
  253. package/dist/config/feature-flags.js +17 -6
  254. package/dist/config/feature-flags.js.map +1 -1
  255. package/dist/config/index.d.ts +1 -1
  256. package/dist/config/index.d.ts.map +1 -1
  257. package/dist/config/index.js +1 -1
  258. package/dist/config/index.js.map +1 -1
  259. package/dist/config/toml-config.d.ts +32 -0
  260. package/dist/config/toml-config.d.ts.map +1 -1
  261. package/dist/config/toml-config.js +152 -43
  262. package/dist/config/toml-config.js.map +1 -1
  263. package/dist/connectors/service-client.d.ts.map +1 -1
  264. package/dist/connectors/service-client.js +4 -7
  265. package/dist/connectors/service-client.js.map +1 -1
  266. package/dist/context/manifest-types.d.ts +59 -0
  267. package/dist/context/manifest-types.d.ts.map +1 -0
  268. package/dist/context/manifest-types.js +2 -0
  269. package/dist/context/manifest-types.js.map +1 -0
  270. package/dist/context/manifest.d.ts +16 -0
  271. package/dist/context/manifest.d.ts.map +1 -0
  272. package/dist/context/manifest.js +503 -0
  273. package/dist/context/manifest.js.map +1 -0
  274. package/dist/db/schema.d.ts +10 -1
  275. package/dist/db/schema.d.ts.map +1 -1
  276. package/dist/db/schema.js.map +1 -1
  277. package/dist/evalops/env-aliases.d.ts +13 -0
  278. package/dist/evalops/env-aliases.d.ts.map +1 -0
  279. package/dist/evalops/env-aliases.js +60 -0
  280. package/dist/evalops/env-aliases.js.map +1 -0
  281. package/dist/evalops/managed-context.d.ts.map +1 -1
  282. package/dist/evalops/managed-context.js +28 -62
  283. package/dist/evalops/managed-context.js.map +1 -1
  284. package/dist/guardian/config.d.ts.map +1 -1
  285. package/dist/guardian/config.js +1 -0
  286. package/dist/guardian/config.js.map +1 -1
  287. package/dist/guardian/runner.d.ts +2 -0
  288. package/dist/guardian/runner.d.ts.map +1 -1
  289. package/dist/guardian/runner.js +105 -2
  290. package/dist/guardian/runner.js.map +1 -1
  291. package/dist/guardian/types.d.ts +1 -0
  292. package/dist/guardian/types.d.ts.map +1 -1
  293. package/dist/guardian/types.js.map +1 -1
  294. package/dist/index.d.ts +5 -1
  295. package/dist/index.d.ts.map +1 -1
  296. package/dist/index.js +5 -1
  297. package/dist/index.js.map +1 -1
  298. package/dist/main.d.ts.map +1 -1
  299. package/dist/main.js +267 -55
  300. package/dist/main.js.map +1 -1
  301. package/dist/mcp/config.d.ts.map +1 -1
  302. package/dist/mcp/config.js +89 -7
  303. package/dist/mcp/config.js.map +1 -1
  304. package/dist/mcp/manager.d.ts +5 -1
  305. package/dist/mcp/manager.d.ts.map +1 -1
  306. package/dist/mcp/manager.js +159 -4
  307. package/dist/mcp/manager.js.map +1 -1
  308. package/dist/mcp/platform-plugin.d.ts.map +1 -1
  309. package/dist/mcp/platform-plugin.js +9 -26
  310. package/dist/mcp/platform-plugin.js.map +1 -1
  311. package/dist/mcp/schema.d.ts +15 -0
  312. package/dist/mcp/schema.d.ts.map +1 -1
  313. package/dist/mcp/schema.js +24 -0
  314. package/dist/mcp/schema.js.map +1 -1
  315. package/dist/mcp/tool-bridge.d.ts +39 -10
  316. package/dist/mcp/tool-bridge.d.ts.map +1 -1
  317. package/dist/mcp/tool-bridge.js +101 -24
  318. package/dist/mcp/tool-bridge.js.map +1 -1
  319. package/dist/mcp/types.d.ts +27 -0
  320. package/dist/mcp/types.d.ts.map +1 -1
  321. package/dist/mcp/types.js.map +1 -1
  322. package/dist/mcp/workspace-trust.d.ts +10 -0
  323. package/dist/mcp/workspace-trust.d.ts.map +1 -0
  324. package/dist/mcp/workspace-trust.js +295 -0
  325. package/dist/mcp/workspace-trust.js.map +1 -0
  326. package/dist/memory/service-client.d.ts +1 -0
  327. package/dist/memory/service-client.d.ts.map +1 -1
  328. package/dist/memory/service-client.js +194 -9
  329. package/dist/memory/service-client.js.map +1 -1
  330. package/dist/models/builtin.d.ts.map +1 -1
  331. package/dist/models/builtin.js +66 -25
  332. package/dist/models/builtin.js.map +1 -1
  333. package/dist/models/config-loader.d.ts +10 -10
  334. package/dist/models/config-loader.d.ts.map +1 -1
  335. package/dist/models/config-loader.js +2 -0
  336. package/dist/models/config-loader.js.map +1 -1
  337. package/dist/models/registry.d.ts +1 -0
  338. package/dist/models/registry.d.ts.map +1 -1
  339. package/dist/models/registry.js +1 -0
  340. package/dist/models/registry.js.map +1 -1
  341. package/dist/node_modules/@evalops/contracts/dist/advisor-effort.d.ts +8 -0
  342. package/dist/node_modules/@evalops/contracts/dist/advisor-effort.d.ts.map +1 -0
  343. package/dist/node_modules/@evalops/contracts/dist/advisor-effort.js +35 -0
  344. package/dist/node_modules/@evalops/contracts/dist/advisor-effort.js.map +1 -0
  345. package/dist/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts +10 -0
  346. package/dist/node_modules/@evalops/contracts/dist/delegation-prompt.d.ts.map +1 -0
  347. package/dist/node_modules/@evalops/contracts/dist/delegation-prompt.js +48 -0
  348. package/dist/node_modules/@evalops/contracts/dist/delegation-prompt.js.map +1 -0
  349. package/dist/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts +20 -0
  350. package/dist/node_modules/@evalops/contracts/dist/guarded-files-settings.d.ts.map +1 -0
  351. package/dist/node_modules/@evalops/contracts/dist/guarded-files-settings.js +147 -0
  352. package/dist/node_modules/@evalops/contracts/dist/guarded-files-settings.js.map +1 -0
  353. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +40 -0
  354. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +1 -0
  355. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +122 -0
  356. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +1 -0
  357. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +3273 -0
  358. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +1 -0
  359. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +666 -0
  360. package/dist/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +1 -0
  361. package/dist/node_modules/@evalops/contracts/dist/index.d.ts +1124 -0
  362. package/dist/node_modules/@evalops/contracts/dist/index.d.ts.map +1 -0
  363. package/dist/node_modules/@evalops/contracts/dist/index.js +65 -0
  364. package/dist/node_modules/@evalops/contracts/dist/index.js.map +1 -0
  365. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts +593 -0
  366. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.d.ts.map +1 -0
  367. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js +218 -0
  368. package/dist/node_modules/@evalops/contracts/dist/maestro-app-server.js.map +1 -0
  369. package/dist/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +2217 -0
  370. package/dist/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +1 -0
  371. package/dist/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +879 -0
  372. package/dist/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +1 -0
  373. package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +185 -0
  374. package/dist/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +1 -0
  375. package/dist/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts +28 -0
  376. package/dist/node_modules/@evalops/contracts/dist/runtime-constraints.d.ts.map +1 -0
  377. package/dist/node_modules/@evalops/contracts/dist/runtime-constraints.js +71 -0
  378. package/dist/node_modules/@evalops/contracts/dist/runtime-constraints.js.map +1 -0
  379. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +140 -0
  380. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +1 -0
  381. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.js +70 -0
  382. package/dist/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +1 -0
  383. package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts +191 -0
  384. package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -0
  385. package/dist/node_modules/@evalops/contracts/dist/scenario.js +4 -0
  386. package/dist/node_modules/@evalops/contracts/dist/scenario.js.map +1 -0
  387. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts +3614 -0
  388. package/dist/node_modules/@evalops/contracts/dist/schemas.d.ts.map +1 -0
  389. package/dist/node_modules/@evalops/contracts/dist/schemas.js +1082 -0
  390. package/dist/node_modules/@evalops/contracts/dist/schemas.js.map +1 -0
  391. package/dist/node_modules/@evalops/contracts/package.json +30 -0
  392. package/dist/node_modules/@evalops/tui/package.json +58 -0
  393. package/dist/oauth/device-identity.d.ts.map +1 -1
  394. package/dist/oauth/device-identity.js +1 -3
  395. package/dist/oauth/device-identity.js.map +1 -1
  396. package/dist/oauth/evalops.d.ts.map +1 -1
  397. package/dist/oauth/evalops.js +2 -5
  398. package/dist/oauth/evalops.js.map +1 -1
  399. package/dist/opentelemetry.d.ts.map +1 -1
  400. package/dist/opentelemetry.js +12 -12
  401. package/dist/opentelemetry.js.map +1 -1
  402. package/dist/package-version.d.ts +2 -0
  403. package/dist/package-version.d.ts.map +1 -0
  404. package/dist/package-version.js +11 -0
  405. package/dist/package-version.js.map +1 -0
  406. package/dist/packages/constants.d.ts +3 -0
  407. package/dist/packages/constants.d.ts.map +1 -0
  408. package/dist/packages/constants.js +3 -0
  409. package/dist/packages/constants.js.map +1 -0
  410. package/dist/packages/inspection.d.ts.map +1 -1
  411. package/dist/packages/inspection.js +2 -1
  412. package/dist/packages/inspection.js.map +1 -1
  413. package/dist/packages/search.d.ts.map +1 -1
  414. package/dist/packages/search.js +1 -1
  415. package/dist/packages/search.js.map +1 -1
  416. package/dist/platform/a2a-capability-market.d.ts +21 -0
  417. package/dist/platform/a2a-capability-market.d.ts.map +1 -0
  418. package/dist/platform/a2a-capability-market.js +176 -0
  419. package/dist/platform/a2a-capability-market.js.map +1 -0
  420. package/dist/platform/a2a-client.d.ts +119 -0
  421. package/dist/platform/a2a-client.d.ts.map +1 -1
  422. package/dist/platform/a2a-client.js +413 -24
  423. package/dist/platform/a2a-client.js.map +1 -1
  424. package/dist/platform/a2a-fleet.d.ts +41 -0
  425. package/dist/platform/a2a-fleet.d.ts.map +1 -0
  426. package/dist/platform/a2a-fleet.js +109 -0
  427. package/dist/platform/a2a-fleet.js.map +1 -0
  428. package/dist/platform/a2a-maestro-peer.d.ts +20 -0
  429. package/dist/platform/a2a-maestro-peer.d.ts.map +1 -0
  430. package/dist/platform/a2a-maestro-peer.js +176 -0
  431. package/dist/platform/a2a-maestro-peer.js.map +1 -0
  432. package/dist/platform/a2a-peer-pairing.d.ts +107 -0
  433. package/dist/platform/a2a-peer-pairing.d.ts.map +1 -0
  434. package/dist/platform/a2a-peer-pairing.js +489 -0
  435. package/dist/platform/a2a-peer-pairing.js.map +1 -0
  436. package/dist/platform/a2a-peer-registry.d.ts +68 -0
  437. package/dist/platform/a2a-peer-registry.d.ts.map +1 -0
  438. package/dist/platform/a2a-peer-registry.js +320 -0
  439. package/dist/platform/a2a-peer-registry.js.map +1 -0
  440. package/dist/platform/a2a-task-ledger.d.ts +86 -0
  441. package/dist/platform/a2a-task-ledger.d.ts.map +1 -0
  442. package/dist/platform/a2a-task-ledger.js +546 -0
  443. package/dist/platform/a2a-task-ledger.js.map +1 -0
  444. package/dist/platform/a2a-work-graph.d.ts +43 -0
  445. package/dist/platform/a2a-work-graph.d.ts.map +1 -0
  446. package/dist/platform/a2a-work-graph.js +267 -0
  447. package/dist/platform/a2a-work-graph.js.map +1 -0
  448. package/dist/platform/agent-registry-client.d.ts +327 -0
  449. package/dist/platform/agent-registry-client.d.ts.map +1 -0
  450. package/dist/platform/agent-registry-client.js +803 -0
  451. package/dist/platform/agent-registry-client.js.map +1 -0
  452. package/dist/platform/agent-runtime-client.d.ts +135 -1
  453. package/dist/platform/agent-runtime-client.d.ts.map +1 -1
  454. package/dist/platform/agent-runtime-client.js +467 -10
  455. package/dist/platform/agent-runtime-client.js.map +1 -1
  456. package/dist/platform/cerebro-facts-client.d.ts.map +1 -1
  457. package/dist/platform/cerebro-facts-client.js +4 -7
  458. package/dist/platform/cerebro-facts-client.js.map +1 -1
  459. package/dist/platform/client.d.ts.map +1 -1
  460. package/dist/platform/client.js +3 -12
  461. package/dist/platform/client.js.map +1 -1
  462. package/dist/platform/core-services.d.ts +68 -0
  463. package/dist/platform/core-services.d.ts.map +1 -1
  464. package/dist/platform/core-services.js +68 -0
  465. package/dist/platform/core-services.js.map +1 -1
  466. package/dist/platform/fermata-eval-client.d.ts +195 -0
  467. package/dist/platform/fermata-eval-client.d.ts.map +1 -0
  468. package/dist/platform/fermata-eval-client.js +146 -0
  469. package/dist/platform/fermata-eval-client.js.map +1 -0
  470. package/dist/platform/fermata-scenario-suite.d.ts +99 -0
  471. package/dist/platform/fermata-scenario-suite.d.ts.map +1 -0
  472. package/dist/platform/fermata-scenario-suite.js +459 -0
  473. package/dist/platform/fermata-scenario-suite.js.map +1 -0
  474. package/dist/platform/maestro-timeline-client.d.ts.map +1 -1
  475. package/dist/platform/maestro-timeline-client.js +5 -11
  476. package/dist/platform/maestro-timeline-client.js.map +1 -1
  477. package/dist/platform/operating-plane-client.d.ts +156 -0
  478. package/dist/platform/operating-plane-client.d.ts.map +1 -0
  479. package/dist/platform/operating-plane-client.js +131 -0
  480. package/dist/platform/operating-plane-client.js.map +1 -0
  481. package/dist/platform/operating-plane-summary.d.ts +47 -0
  482. package/dist/platform/operating-plane-summary.d.ts.map +1 -0
  483. package/dist/platform/operating-plane-summary.js +209 -0
  484. package/dist/platform/operating-plane-summary.js.map +1 -0
  485. package/dist/platform/tool-execution-client.d.ts.map +1 -1
  486. package/dist/platform/tool-execution-client.js +4 -11
  487. package/dist/platform/tool-execution-client.js.map +1 -1
  488. package/dist/prompts/service-client.d.ts.map +1 -1
  489. package/dist/prompts/service-client.js +3 -5
  490. package/dist/prompts/service-client.js.map +1 -1
  491. package/dist/prompts/system-prompt.d.ts +3 -0
  492. package/dist/prompts/system-prompt.d.ts.map +1 -1
  493. package/dist/prompts/system-prompt.js +13 -3
  494. package/dist/prompts/system-prompt.js.map +1 -1
  495. package/dist/prompts/types.d.ts +2 -0
  496. package/dist/prompts/types.d.ts.map +1 -1
  497. package/dist/prompts/types.js.map +1 -1
  498. package/dist/providers/api-keys.d.ts +1 -1
  499. package/dist/providers/api-keys.d.ts.map +1 -1
  500. package/dist/providers/api-keys.js +2 -1
  501. package/dist/providers/api-keys.js.map +1 -1
  502. package/dist/providers/auth.d.ts.map +1 -1
  503. package/dist/providers/auth.js +48 -25
  504. package/dist/providers/auth.js.map +1 -1
  505. package/dist/remote-runner/attach-client.d.ts.map +1 -1
  506. package/dist/remote-runner/attach-client.js +1 -0
  507. package/dist/remote-runner/attach-client.js.map +1 -1
  508. package/dist/remote-runner/client.d.ts.map +1 -1
  509. package/dist/remote-runner/client.js +4 -7
  510. package/dist/remote-runner/client.js.map +1 -1
  511. package/dist/rpc/rpc-types.d.ts.map +1 -1
  512. package/dist/rpc/rpc-types.js +1 -0
  513. package/dist/rpc/rpc-types.js.map +1 -1
  514. package/dist/safety/action-firewall.d.ts.map +1 -1
  515. package/dist/safety/action-firewall.js +69 -6
  516. package/dist/safety/action-firewall.js.map +1 -1
  517. package/dist/safety/attack-patterns.d.ts.map +1 -1
  518. package/dist/safety/attack-patterns.js +31 -14
  519. package/dist/safety/attack-patterns.js.map +1 -1
  520. package/dist/safety/bash-parser.d.ts.map +1 -1
  521. package/dist/safety/bash-parser.js +4 -3
  522. package/dist/safety/bash-parser.js.map +1 -1
  523. package/dist/safety/execpolicy.d.ts +15 -3
  524. package/dist/safety/execpolicy.d.ts.map +1 -1
  525. package/dist/safety/execpolicy.js +248 -37
  526. package/dist/safety/execpolicy.js.map +1 -1
  527. package/dist/safety/governance-service-client.d.ts.map +1 -1
  528. package/dist/safety/governance-service-client.js +4 -7
  529. package/dist/safety/governance-service-client.js.map +1 -1
  530. package/dist/safety/guarded-files.d.ts +34 -0
  531. package/dist/safety/guarded-files.d.ts.map +1 -0
  532. package/dist/safety/guarded-files.js +372 -0
  533. package/dist/safety/guarded-files.js.map +1 -0
  534. package/dist/safety/loop-detector.d.ts.map +1 -1
  535. package/dist/safety/loop-detector.js +6 -1
  536. package/dist/safety/loop-detector.js.map +1 -1
  537. package/dist/safety/permission-profile.d.ts +47 -0
  538. package/dist/safety/permission-profile.d.ts.map +1 -0
  539. package/dist/safety/permission-profile.js +349 -0
  540. package/dist/safety/permission-profile.js.map +1 -0
  541. package/dist/safety/safety-middleware.d.ts +5 -1
  542. package/dist/safety/safety-middleware.d.ts.map +1 -1
  543. package/dist/safety/safety-middleware.js +3 -2
  544. package/dist/safety/safety-middleware.js.map +1 -1
  545. package/dist/safety/suspicious-patterns.d.ts.map +1 -1
  546. package/dist/safety/suspicious-patterns.js +12 -7
  547. package/dist/safety/suspicious-patterns.js.map +1 -1
  548. package/dist/safety/tool-categorization.js +1 -1
  549. package/dist/safety/tool-categorization.js.map +1 -1
  550. package/dist/safety/validators/path-policy-validator.d.ts.map +1 -1
  551. package/dist/safety/validators/path-policy-validator.js +7 -0
  552. package/dist/safety/validators/path-policy-validator.js.map +1 -1
  553. package/dist/sandbox/index.d.ts +6 -1
  554. package/dist/sandbox/index.d.ts.map +1 -1
  555. package/dist/sandbox/index.js +30 -4
  556. package/dist/sandbox/index.js.map +1 -1
  557. package/dist/sandbox/native-sandbox.d.ts +3 -0
  558. package/dist/sandbox/native-sandbox.d.ts.map +1 -1
  559. package/dist/sandbox/native-sandbox.js +139 -18
  560. package/dist/sandbox/native-sandbox.js.map +1 -1
  561. package/dist/sentry.d.ts +17 -0
  562. package/dist/sentry.d.ts.map +1 -0
  563. package/dist/sentry.js +91 -0
  564. package/dist/sentry.js.map +1 -0
  565. package/dist/server/agent-runtime-ledger.d.ts +141 -0
  566. package/dist/server/agent-runtime-ledger.d.ts.map +1 -0
  567. package/dist/server/agent-runtime-ledger.js +334 -0
  568. package/dist/server/agent-runtime-ledger.js.map +1 -0
  569. package/dist/server/agent-trajectory-inspection.d.ts +104 -0
  570. package/dist/server/agent-trajectory-inspection.d.ts.map +1 -0
  571. package/dist/server/agent-trajectory-inspection.js +168 -0
  572. package/dist/server/agent-trajectory-inspection.js.map +1 -0
  573. package/dist/server/agent-trajectory-replay.d.ts +56 -0
  574. package/dist/server/agent-trajectory-replay.d.ts.map +1 -0
  575. package/dist/server/agent-trajectory-replay.js +214 -0
  576. package/dist/server/agent-trajectory-replay.js.map +1 -0
  577. package/dist/server/agent-trajectory-scenarios.d.ts +109 -0
  578. package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -0
  579. package/dist/server/agent-trajectory-scenarios.js +822 -0
  580. package/dist/server/agent-trajectory-scenarios.js.map +1 -0
  581. package/dist/server/agent-trajectory-scorers.d.ts +61 -0
  582. package/dist/server/agent-trajectory-scorers.d.ts.map +1 -0
  583. package/dist/server/agent-trajectory-scorers.js +162 -0
  584. package/dist/server/agent-trajectory-scorers.js.map +1 -0
  585. package/dist/server/agent-trajectory-validation.d.ts +7 -0
  586. package/dist/server/agent-trajectory-validation.d.ts.map +1 -0
  587. package/dist/server/agent-trajectory-validation.js +101 -0
  588. package/dist/server/agent-trajectory-validation.js.map +1 -0
  589. package/dist/server/agent-trajectory.d.ts +50 -0
  590. package/dist/server/agent-trajectory.d.ts.map +1 -0
  591. package/dist/server/agent-trajectory.js +159 -0
  592. package/dist/server/agent-trajectory.js.map +1 -0
  593. package/dist/server/app-context.d.ts +18 -0
  594. package/dist/server/app-context.d.ts.map +1 -1
  595. package/dist/server/app-context.js.map +1 -1
  596. package/dist/server/handlers/headless-sessions.d.ts.map +1 -1
  597. package/dist/server/handlers/headless-sessions.js +64 -27
  598. package/dist/server/handlers/headless-sessions.js.map +1 -1
  599. package/dist/server/handlers/health.d.ts +6 -0
  600. package/dist/server/handlers/health.d.ts.map +1 -1
  601. package/dist/server/handlers/health.js +6 -0
  602. package/dist/server/handlers/health.js.map +1 -1
  603. package/dist/server/handlers/hosted-runner-drain.d.ts +69 -1
  604. package/dist/server/handlers/hosted-runner-drain.d.ts.map +1 -1
  605. package/dist/server/handlers/hosted-runner-drain.js +309 -18
  606. package/dist/server/handlers/hosted-runner-drain.js.map +1 -1
  607. package/dist/server/handlers/hosted-runner-identity.d.ts +16 -0
  608. package/dist/server/handlers/hosted-runner-identity.d.ts.map +1 -1
  609. package/dist/server/handlers/hosted-runner-identity.js +43 -0
  610. package/dist/server/handlers/hosted-runner-identity.js.map +1 -1
  611. package/dist/server/handlers/mode.d.ts.map +1 -1
  612. package/dist/server/handlers/mode.js +3 -1
  613. package/dist/server/handlers/mode.js.map +1 -1
  614. package/dist/server/handlers/pending-requests.d.ts.map +1 -1
  615. package/dist/server/handlers/pending-requests.js +336 -51
  616. package/dist/server/handlers/pending-requests.js.map +1 -1
  617. package/dist/server/handlers/platform-a2a-push.d.ts +6 -0
  618. package/dist/server/handlers/platform-a2a-push.d.ts.map +1 -0
  619. package/dist/server/handlers/platform-a2a-push.js +136 -0
  620. package/dist/server/handlers/platform-a2a-push.js.map +1 -0
  621. package/dist/server/handlers/sessions.d.ts.map +1 -1
  622. package/dist/server/handlers/sessions.js +21 -1
  623. package/dist/server/handlers/sessions.js.map +1 -1
  624. package/dist/server/headless-runtime-service.d.ts +9 -2
  625. package/dist/server/headless-runtime-service.d.ts.map +1 -1
  626. package/dist/server/headless-runtime-service.js +39 -0
  627. package/dist/server/headless-runtime-service.js.map +1 -1
  628. package/dist/server/hosted-agent-runtime-progress.d.ts +144 -0
  629. package/dist/server/hosted-agent-runtime-progress.d.ts.map +1 -0
  630. package/dist/server/hosted-agent-runtime-progress.js +1650 -0
  631. package/dist/server/hosted-agent-runtime-progress.js.map +1 -0
  632. package/dist/server/hosted-runner-lease.d.ts +41 -0
  633. package/dist/server/hosted-runner-lease.d.ts.map +1 -0
  634. package/dist/server/hosted-runner-lease.js +140 -0
  635. package/dist/server/hosted-runner-lease.js.map +1 -0
  636. package/dist/server/hosted-session-manager.d.ts +16 -8
  637. package/dist/server/hosted-session-manager.d.ts.map +1 -1
  638. package/dist/server/hosted-session-manager.js +98 -76
  639. package/dist/server/hosted-session-manager.js.map +1 -1
  640. package/dist/server/junit-xml.d.ts +2 -0
  641. package/dist/server/junit-xml.d.ts.map +1 -0
  642. package/dist/server/junit-xml.js +9 -0
  643. package/dist/server/junit-xml.js.map +1 -0
  644. package/dist/server/routes.d.ts.map +1 -1
  645. package/dist/server/routes.js +6 -0
  646. package/dist/server/routes.js.map +1 -1
  647. package/dist/server/scenario-recorder.d.ts +56 -0
  648. package/dist/server/scenario-recorder.d.ts.map +1 -0
  649. package/dist/server/scenario-recorder.js +109 -0
  650. package/dist/server/scenario-recorder.js.map +1 -0
  651. package/dist/server/scripted-scenario-runner.d.ts +46 -0
  652. package/dist/server/scripted-scenario-runner.d.ts.map +1 -0
  653. package/dist/server/scripted-scenario-runner.js +190 -0
  654. package/dist/server/scripted-scenario-runner.js.map +1 -0
  655. package/dist/server/server-middlewares.d.ts +6 -2
  656. package/dist/server/server-middlewares.d.ts.map +1 -1
  657. package/dist/server/server-middlewares.js +8 -2
  658. package/dist/server/server-middlewares.js.map +1 -1
  659. package/dist/server/server-request-manager.d.ts +9 -1
  660. package/dist/server/server-request-manager.d.ts.map +1 -1
  661. package/dist/server/server-request-manager.js +49 -4
  662. package/dist/server/server-request-manager.js.map +1 -1
  663. package/dist/services/intelligent-router/service.d.ts +2 -0
  664. package/dist/services/intelligent-router/service.d.ts.map +1 -1
  665. package/dist/services/intelligent-router/service.js +4 -0
  666. package/dist/services/intelligent-router/service.js.map +1 -1
  667. package/dist/services/service-authority.d.ts +25 -0
  668. package/dist/services/service-authority.d.ts.map +1 -0
  669. package/dist/services/service-authority.js +143 -0
  670. package/dist/services/service-authority.js.map +1 -0
  671. package/dist/services/workspace-config/service.d.ts +2 -0
  672. package/dist/services/workspace-config/service.d.ts.map +1 -1
  673. package/dist/services/workspace-config/service.js +4 -0
  674. package/dist/services/workspace-config/service.js.map +1 -1
  675. package/dist/session/manager.d.ts +8 -2
  676. package/dist/session/manager.d.ts.map +1 -1
  677. package/dist/session/manager.js +19 -4
  678. package/dist/session/manager.js.map +1 -1
  679. package/dist/session/session-branch.d.ts.map +1 -1
  680. package/dist/session/session-branch.js +5 -1
  681. package/dist/session/session-branch.js.map +1 -1
  682. package/dist/session/session-catalog.d.ts +7 -2
  683. package/dist/session/session-catalog.d.ts.map +1 -1
  684. package/dist/session/session-catalog.js +13 -2
  685. package/dist/session/session-catalog.js.map +1 -1
  686. package/dist/session/session-context.d.ts +6 -2
  687. package/dist/session/session-context.d.ts.map +1 -1
  688. package/dist/session/session-context.js +44 -4
  689. package/dist/session/session-context.js.map +1 -1
  690. package/dist/session/session-graph-projection.d.ts +32 -0
  691. package/dist/session/session-graph-projection.d.ts.map +1 -0
  692. package/dist/session/session-graph-projection.js +133 -0
  693. package/dist/session/session-graph-projection.js.map +1 -0
  694. package/dist/session/types.d.ts +18 -0
  695. package/dist/session/types.d.ts.map +1 -1
  696. package/dist/session/types.js +8 -0
  697. package/dist/session/types.js.map +1 -1
  698. package/dist/session/wire-format.generated.d.ts +3 -0
  699. package/dist/session/wire-format.generated.d.ts.map +1 -1
  700. package/dist/session/wire-format.generated.js +20 -0
  701. package/dist/session/wire-format.generated.js.map +1 -1
  702. package/dist/skills/eval-harness.d.ts +38 -0
  703. package/dist/skills/eval-harness.d.ts.map +1 -0
  704. package/dist/skills/eval-harness.js +112 -0
  705. package/dist/skills/eval-harness.js.map +1 -0
  706. package/dist/skills/index.d.ts +5 -1
  707. package/dist/skills/index.d.ts.map +1 -1
  708. package/dist/skills/index.js +5 -1
  709. package/dist/skills/index.js.map +1 -1
  710. package/dist/skills/linter.d.ts +36 -0
  711. package/dist/skills/linter.d.ts.map +1 -0
  712. package/dist/skills/linter.js +398 -0
  713. package/dist/skills/linter.js.map +1 -0
  714. package/dist/skills/loader.d.ts +36 -6
  715. package/dist/skills/loader.d.ts.map +1 -1
  716. package/dist/skills/loader.js +169 -86
  717. package/dist/skills/loader.js.map +1 -1
  718. package/dist/skills/package-contract.d.ts +45 -0
  719. package/dist/skills/package-contract.d.ts.map +1 -0
  720. package/dist/skills/package-contract.js +153 -0
  721. package/dist/skills/package-contract.js.map +1 -0
  722. package/dist/skills/runtime-activation.d.ts +68 -0
  723. package/dist/skills/runtime-activation.d.ts.map +1 -0
  724. package/dist/skills/runtime-activation.js +228 -0
  725. package/dist/skills/runtime-activation.js.map +1 -0
  726. package/dist/skills/service-client.d.ts.map +1 -1
  727. package/dist/skills/service-client.js +3 -4
  728. package/dist/skills/service-client.js.map +1 -1
  729. package/dist/skills/tool.d.ts.map +1 -1
  730. package/dist/skills/tool.js +2 -0
  731. package/dist/skills/tool.js.map +1 -1
  732. package/dist/skills/types.d.ts +14 -0
  733. package/dist/skills/types.d.ts.map +1 -1
  734. package/dist/skills/types.js.map +1 -1
  735. package/dist/telemetry/agent-operating-plane-context.d.ts +24 -0
  736. package/dist/telemetry/agent-operating-plane-context.d.ts.map +1 -0
  737. package/dist/telemetry/agent-operating-plane-context.js +54 -0
  738. package/dist/telemetry/agent-operating-plane-context.js.map +1 -0
  739. package/dist/telemetry/beacon.d.ts +24 -0
  740. package/dist/telemetry/beacon.d.ts.map +1 -0
  741. package/dist/telemetry/beacon.js +115 -0
  742. package/dist/telemetry/beacon.js.map +1 -0
  743. package/dist/telemetry/cli-command-aggregator.d.ts +36 -0
  744. package/dist/telemetry/cli-command-aggregator.d.ts.map +1 -0
  745. package/dist/telemetry/cli-command-aggregator.js +251 -0
  746. package/dist/telemetry/cli-command-aggregator.js.map +1 -0
  747. package/dist/telemetry/cli-startup.d.ts +21 -0
  748. package/dist/telemetry/cli-startup.d.ts.map +1 -0
  749. package/dist/telemetry/cli-startup.js +83 -0
  750. package/dist/telemetry/cli-startup.js.map +1 -0
  751. package/dist/telemetry/disablement.d.ts +13 -0
  752. package/dist/telemetry/disablement.d.ts.map +1 -0
  753. package/dist/telemetry/disablement.js +19 -0
  754. package/dist/telemetry/disablement.js.map +1 -0
  755. package/dist/telemetry/index.d.ts +6 -2
  756. package/dist/telemetry/index.d.ts.map +1 -1
  757. package/dist/telemetry/index.js +6 -2
  758. package/dist/telemetry/index.js.map +1 -1
  759. package/dist/telemetry/maestro-event-bus.d.ts +52 -0
  760. package/dist/telemetry/maestro-event-bus.d.ts.map +1 -1
  761. package/dist/telemetry/maestro-event-bus.js +179 -3
  762. package/dist/telemetry/maestro-event-bus.js.map +1 -1
  763. package/dist/telemetry/maestro-event-catalog.d.ts +3 -1
  764. package/dist/telemetry/maestro-event-catalog.d.ts.map +1 -1
  765. package/dist/telemetry/maestro-event-catalog.js +2 -0
  766. package/dist/telemetry/maestro-event-catalog.js.map +1 -1
  767. package/dist/telemetry/maestro-platform-replay-fixture.d.ts.map +1 -1
  768. package/dist/telemetry/maestro-platform-replay-fixture.js +74 -9
  769. package/dist/telemetry/maestro-platform-replay-fixture.js.map +1 -1
  770. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts +1 -1
  771. package/dist/telemetry/maestro-publisher-conformance-fixture.d.ts.map +1 -1
  772. package/dist/telemetry/maestro-publisher-conformance-fixture.js +46 -11
  773. package/dist/telemetry/maestro-publisher-conformance-fixture.js.map +1 -1
  774. package/dist/telemetry/mcp-beacon.d.ts +20 -0
  775. package/dist/telemetry/mcp-beacon.d.ts.map +1 -0
  776. package/dist/telemetry/mcp-beacon.js +54 -0
  777. package/dist/telemetry/mcp-beacon.js.map +1 -0
  778. package/dist/telemetry/metadata-normalization.d.ts +7 -0
  779. package/dist/telemetry/metadata-normalization.d.ts.map +1 -0
  780. package/dist/telemetry/metadata-normalization.js +189 -0
  781. package/dist/telemetry/metadata-normalization.js.map +1 -0
  782. package/dist/telemetry/meter-service-client.d.ts.map +1 -1
  783. package/dist/telemetry/meter-service-client.js +5 -10
  784. package/dist/telemetry/meter-service-client.js.map +1 -1
  785. package/dist/telemetry/metrics.d.ts +123 -0
  786. package/dist/telemetry/metrics.d.ts.map +1 -0
  787. package/dist/telemetry/metrics.js +184 -0
  788. package/dist/telemetry/metrics.js.map +1 -0
  789. package/dist/telemetry/turn-tracker.d.ts +1 -0
  790. package/dist/telemetry/turn-tracker.d.ts.map +1 -1
  791. package/dist/telemetry/turn-tracker.js +22 -1
  792. package/dist/telemetry/turn-tracker.js.map +1 -1
  793. package/dist/telemetry/wide-events.d.ts +31 -1
  794. package/dist/telemetry/wide-events.d.ts.map +1 -1
  795. package/dist/telemetry/wide-events.js +229 -1
  796. package/dist/telemetry/wide-events.js.map +1 -1
  797. package/dist/telemetry.d.ts +39 -3
  798. package/dist/telemetry.d.ts.map +1 -1
  799. package/dist/telemetry.js +160 -3
  800. package/dist/telemetry.js.map +1 -1
  801. package/dist/testing/test-verification-hook.d.ts.map +1 -1
  802. package/dist/testing/test-verification-hook.js +34 -21
  803. package/dist/testing/test-verification-hook.js.map +1 -1
  804. package/dist/tools/apply-patch-parser.d.ts +26 -0
  805. package/dist/tools/apply-patch-parser.d.ts.map +1 -0
  806. package/dist/tools/apply-patch-parser.js +146 -0
  807. package/dist/tools/apply-patch-parser.js.map +1 -0
  808. package/dist/tools/apply-patch.d.ts +42 -0
  809. package/dist/tools/apply-patch.d.ts.map +1 -0
  810. package/dist/tools/apply-patch.js +648 -0
  811. package/dist/tools/apply-patch.js.map +1 -0
  812. package/dist/tools/ask-user.d.ts +1 -0
  813. package/dist/tools/ask-user.d.ts.map +1 -1
  814. package/dist/tools/background/tool-handler.d.ts +1 -0
  815. package/dist/tools/background/tool-handler.d.ts.map +1 -1
  816. package/dist/tools/bash.d.ts +1 -0
  817. package/dist/tools/bash.d.ts.map +1 -1
  818. package/dist/tools/codesearch.d.ts +1 -0
  819. package/dist/tools/codesearch.d.ts.map +1 -1
  820. package/dist/tools/conductor-client.d.ts +1 -0
  821. package/dist/tools/conductor-client.d.ts.map +1 -1
  822. package/dist/tools/conductor-client.js +63 -0
  823. package/dist/tools/conductor-client.js.map +1 -1
  824. package/dist/tools/diff.d.ts +1 -0
  825. package/dist/tools/diff.d.ts.map +1 -1
  826. package/dist/tools/edit.d.ts +1 -0
  827. package/dist/tools/edit.d.ts.map +1 -1
  828. package/dist/tools/extract-document.d.ts +1 -0
  829. package/dist/tools/extract-document.d.ts.map +1 -1
  830. package/dist/tools/find.d.ts +10 -0
  831. package/dist/tools/find.d.ts.map +1 -1
  832. package/dist/tools/find.js +236 -27
  833. package/dist/tools/find.js.map +1 -1
  834. package/dist/tools/gh.d.ts +3 -0
  835. package/dist/tools/gh.d.ts.map +1 -1
  836. package/dist/tools/index.d.ts +50 -0
  837. package/dist/tools/index.d.ts.map +1 -1
  838. package/dist/tools/index.js +4 -0
  839. package/dist/tools/index.js.map +1 -1
  840. package/dist/tools/list.d.ts +1 -0
  841. package/dist/tools/list.d.ts.map +1 -1
  842. package/dist/tools/notebook.d.ts +1 -0
  843. package/dist/tools/notebook.d.ts.map +1 -1
  844. package/dist/tools/oracle.d.ts +1 -0
  845. package/dist/tools/oracle.d.ts.map +1 -1
  846. package/dist/tools/oracle.js +17 -32
  847. package/dist/tools/oracle.js.map +1 -1
  848. package/dist/tools/parallel-execution.d.ts +13 -2
  849. package/dist/tools/parallel-execution.d.ts.map +1 -1
  850. package/dist/tools/parallel-execution.js +178 -7
  851. package/dist/tools/parallel-execution.js.map +1 -1
  852. package/dist/tools/parallel-ripgrep.d.ts +1 -0
  853. package/dist/tools/parallel-ripgrep.d.ts.map +1 -1
  854. package/dist/tools/pipeline.d.ts +4 -0
  855. package/dist/tools/pipeline.d.ts.map +1 -1
  856. package/dist/tools/read.d.ts +1 -0
  857. package/dist/tools/read.d.ts.map +1 -1
  858. package/dist/tools/search.d.ts +1 -0
  859. package/dist/tools/search.d.ts.map +1 -1
  860. package/dist/tools/status.d.ts +1 -0
  861. package/dist/tools/status.d.ts.map +1 -1
  862. package/dist/tools/todo.d.ts +1 -0
  863. package/dist/tools/todo.d.ts.map +1 -1
  864. package/dist/tools/tool-dsl.d.ts +5 -1
  865. package/dist/tools/tool-dsl.d.ts.map +1 -1
  866. package/dist/tools/tool-dsl.js +1 -0
  867. package/dist/tools/tool-dsl.js.map +1 -1
  868. package/dist/tools/tool-result-cache.d.ts.map +1 -1
  869. package/dist/tools/tool-result-cache.js +1 -0
  870. package/dist/tools/tool-result-cache.js.map +1 -1
  871. package/dist/tools/typebox-tool.d.ts.map +1 -1
  872. package/dist/tools/typebox-tool.js +3 -0
  873. package/dist/tools/typebox-tool.js.map +1 -1
  874. package/dist/tools/webfetch.d.ts +1 -0
  875. package/dist/tools/webfetch.d.ts.map +1 -1
  876. package/dist/tools/websearch.d.ts +1 -0
  877. package/dist/tools/websearch.d.ts.map +1 -1
  878. package/dist/tools/write.d.ts +1 -0
  879. package/dist/tools/write.d.ts.map +1 -1
  880. package/dist/utils/abort-error.d.ts +2 -0
  881. package/dist/utils/abort-error.d.ts.map +1 -0
  882. package/dist/utils/abort-error.js +7 -0
  883. package/dist/utils/abort-error.js.map +1 -0
  884. package/dist/utils/downstream.d.ts.map +1 -1
  885. package/dist/utils/downstream.js +4 -0
  886. package/dist/utils/downstream.js.map +1 -1
  887. package/dist/utils/logger.d.ts +3 -0
  888. package/dist/utils/logger.d.ts.map +1 -1
  889. package/dist/utils/logger.js +14 -3
  890. package/dist/utils/logger.js.map +1 -1
  891. package/dist/utils/path-containment.d.ts +2 -0
  892. package/dist/utils/path-containment.d.ts.map +1 -0
  893. package/dist/utils/path-containment.js +14 -0
  894. package/dist/utils/path-containment.js.map +1 -0
  895. package/dist/utils/prompt-safe-text.d.ts +7 -0
  896. package/dist/utils/prompt-safe-text.d.ts.map +1 -0
  897. package/dist/utils/prompt-safe-text.js +44 -0
  898. package/dist/utils/prompt-safe-text.js.map +1 -0
  899. package/dist/version.json +2 -2
  900. package/dist/web-server.d.ts.map +1 -1
  901. package/dist/web-server.js +32 -7
  902. package/dist/web-server.js.map +1 -1
  903. package/dist/workspace/root-resolver.d.ts +4 -1
  904. package/dist/workspace/root-resolver.d.ts.map +1 -1
  905. package/dist/workspace/root-resolver.js +16 -6
  906. package/dist/workspace/root-resolver.js.map +1 -1
  907. package/package.json +283 -248
  908. package/skills/incident-triage/SKILL.md +40 -0
  909. package/skills/incident-triage/mcp.json +14 -0
  910. package/skills/incident-triage/reference/triage.md +20 -0
  911. package/skills/incident-triage/toolbox/incident-timeline +22 -0
  912. package/skills/incident-triage/toolbox/incident-timeline.cmd +16 -0
  913. package/skills/pr-review/SKILL.md +40 -0
  914. package/skills/pr-review/mcp.json +14 -0
  915. package/skills/pr-review/reference/rubric.md +20 -0
  916. package/skills/pr-review/toolbox/review-summary +20 -0
  917. package/skills/pr-review/toolbox/review-summary.cmd +14 -0
  918. package/skills/release-verification/SKILL.md +40 -0
  919. package/skills/release-verification/mcp.json +15 -0
  920. package/skills/release-verification/reference/checklist.md +21 -0
  921. package/skills/release-verification/toolbox/release-readiness +18 -0
  922. package/skills/release-verification/toolbox/release-readiness.cmd +12 -0
  923. package/node_modules/@bufbuild/protobuf/README.md +0 -44
  924. package/node_modules/@bufbuild/protobuf/dist/cjs/clone.d.ts +0 -6
  925. package/node_modules/@bufbuild/protobuf/dist/cjs/clone.js +0 -66
  926. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.d.ts +0 -10
  927. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/enum.js +0 -31
  928. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/extension.d.ts +0 -9
  929. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/extension.js +0 -28
  930. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/file.d.ts +0 -1
  931. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/file.js +0 -18
  932. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/index.d.ts +0 -10
  933. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/index.js +0 -39
  934. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/message.d.ts +0 -10
  935. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/message.js +0 -24
  936. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/service.d.ts +0 -8
  937. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/service.js +0 -27
  938. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/symbols.d.ts +0 -135
  939. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/symbols.js +0 -43
  940. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/types.d.ts +0 -75
  941. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv1/types.js +0 -22
  942. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/boot.d.ts +0 -63
  943. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/boot.js +0 -105
  944. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/embed.d.ts +0 -43
  945. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/embed.js +0 -244
  946. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/enum.d.ts +0 -18
  947. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/enum.js +0 -40
  948. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/extension.d.ts +0 -9
  949. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/extension.js +0 -28
  950. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/file.d.ts +0 -7
  951. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/file.js +0 -35
  952. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/index.d.ts +0 -10
  953. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/index.js +0 -39
  954. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/message.d.ts +0 -15
  955. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/message.js +0 -24
  956. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/restore-json-names.d.ts +0 -5
  957. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/restore-json-names.js +0 -29
  958. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/scalar.d.ts +0 -9
  959. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/scalar.js +0 -67
  960. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/service.d.ts +0 -8
  961. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/service.js +0 -27
  962. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/symbols.d.ts +0 -135
  963. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/symbols.js +0 -72
  964. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/types.d.ts +0 -81
  965. package/node_modules/@bufbuild/protobuf/dist/cjs/codegenv2/types.js +0 -22
  966. package/node_modules/@bufbuild/protobuf/dist/cjs/create.d.ts +0 -9
  967. package/node_modules/@bufbuild/protobuf/dist/cjs/create.js +0 -259
  968. package/node_modules/@bufbuild/protobuf/dist/cjs/descriptors.d.ts +0 -634
  969. package/node_modules/@bufbuild/protobuf/dist/cjs/descriptors.js +0 -53
  970. package/node_modules/@bufbuild/protobuf/dist/cjs/equals.d.ts +0 -41
  971. package/node_modules/@bufbuild/protobuf/dist/cjs/equals.js +0 -204
  972. package/node_modules/@bufbuild/protobuf/dist/cjs/extensions.d.ts +0 -59
  973. package/node_modules/@bufbuild/protobuf/dist/cjs/extensions.js +0 -169
  974. package/node_modules/@bufbuild/protobuf/dist/cjs/fields.d.ts +0 -23
  975. package/node_modules/@bufbuild/protobuf/dist/cjs/fields.js +0 -45
  976. package/node_modules/@bufbuild/protobuf/dist/cjs/from-binary.d.ts +0 -34
  977. package/node_modules/@bufbuild/protobuf/dist/cjs/from-binary.js +0 -241
  978. package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.d.ts +0 -56
  979. package/node_modules/@bufbuild/protobuf/dist/cjs/from-json.js +0 -619
  980. package/node_modules/@bufbuild/protobuf/dist/cjs/index.d.ts +0 -18
  981. package/node_modules/@bufbuild/protobuf/dist/cjs/index.js +0 -54
  982. package/node_modules/@bufbuild/protobuf/dist/cjs/is-message.d.ts +0 -7
  983. package/node_modules/@bufbuild/protobuf/dist/cjs/is-message.js +0 -33
  984. package/node_modules/@bufbuild/protobuf/dist/cjs/json-value.d.ts +0 -16
  985. package/node_modules/@bufbuild/protobuf/dist/cjs/json-value.js +0 -15
  986. package/node_modules/@bufbuild/protobuf/dist/cjs/merge.d.ts +0 -13
  987. package/node_modules/@bufbuild/protobuf/dist/cjs/merge.js +0 -70
  988. package/node_modules/@bufbuild/protobuf/dist/cjs/package.json +0 -1
  989. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.d.ts +0 -98
  990. package/node_modules/@bufbuild/protobuf/dist/cjs/proto-int64.js +0 -130
  991. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/error.d.ts +0 -9
  992. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/error.js +0 -36
  993. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/guard.d.ts +0 -20
  994. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/guard.js +0 -78
  995. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/index.d.ts +0 -8
  996. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/index.js +0 -41
  997. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/names.d.ts +0 -30
  998. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/names.js +0 -115
  999. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/nested-types.d.ts +0 -35
  1000. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/nested-types.js +0 -110
  1001. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/path.d.ts +0 -107
  1002. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/path.js +0 -376
  1003. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-check.d.ts +0 -19
  1004. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-check.js +0 -266
  1005. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-types.d.ts +0 -217
  1006. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect-types.js +0 -16
  1007. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect.d.ts +0 -43
  1008. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/reflect.js +0 -545
  1009. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/scalar.d.ts +0 -21
  1010. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/scalar.js +0 -102
  1011. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/unsafe.d.ts +0 -39
  1012. package/node_modules/@bufbuild/protobuf/dist/cjs/reflect/unsafe.js +0 -149
  1013. package/node_modules/@bufbuild/protobuf/dist/cjs/registry.d.ts +0 -98
  1014. package/node_modules/@bufbuild/protobuf/dist/cjs/registry.js +0 -945
  1015. package/node_modules/@bufbuild/protobuf/dist/cjs/to-binary.d.ts +0 -24
  1016. package/node_modules/@bufbuild/protobuf/dist/cjs/to-binary.js +0 -199
  1017. package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.d.ts +0 -67
  1018. package/node_modules/@bufbuild/protobuf/dist/cjs/to-json.js +0 -391
  1019. package/node_modules/@bufbuild/protobuf/dist/cjs/types.d.ts +0 -128
  1020. package/node_modules/@bufbuild/protobuf/dist/cjs/types.js +0 -15
  1021. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/base64-encoding.d.ts +0 -23
  1022. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/base64-encoding.js +0 -156
  1023. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.d.ts +0 -266
  1024. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/binary-encoding.js +0 -525
  1025. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/index.d.ts +0 -5
  1026. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/index.js +0 -34
  1027. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/size-delimited.d.ts +0 -51
  1028. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/size-delimited.js +0 -153
  1029. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.d.ts +0 -28
  1030. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-encoding.js +0 -61
  1031. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-format.d.ts +0 -13
  1032. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/text-format.js +0 -199
  1033. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/varint.d.ts +0 -70
  1034. package/node_modules/@bufbuild/protobuf/dist/cjs/wire/varint.js +0 -322
  1035. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/any.d.ts +0 -38
  1036. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/any.js +0 -75
  1037. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/duration.d.ts +0 -9
  1038. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/duration.js +0 -39
  1039. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/any_pb.d.ts +0 -238
  1040. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/any_pb.js +0 -27
  1041. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/api_pb.d.ts +0 -537
  1042. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/api_pb.js +0 -39
  1043. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +0 -490
  1044. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/compiler/plugin_pb.js +0 -68
  1045. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/cpp_features_pb.d.ts +0 -91
  1046. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/cpp_features_pb.js +0 -60
  1047. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.d.ts +0 -4143
  1048. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/descriptor_pb.js +0 -892
  1049. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/duration_pb.d.ts +0 -161
  1050. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/duration_pb.js +0 -27
  1051. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/empty_pb.d.ts +0 -39
  1052. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/empty_pb.js +0 -27
  1053. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.d.ts +0 -424
  1054. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/field_mask_pb.js +0 -27
  1055. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.d.ts +0 -189
  1056. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/go_features_pb.js +0 -126
  1057. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/java_features_pb.d.ts +0 -194
  1058. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/java_features_pb.js +0 -106
  1059. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/source_context_pb.d.ts +0 -43
  1060. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/source_context_pb.js +0 -27
  1061. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/struct_pb.d.ts +0 -195
  1062. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/struct_pb.js +0 -59
  1063. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.d.ts +0 -222
  1064. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/timestamp_pb.js +0 -27
  1065. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/type_pb.d.ts +0 -722
  1066. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/type_pb.js +0 -242
  1067. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.d.ts +0 -330
  1068. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/gen/google/protobuf/wrappers_pb.js +0 -67
  1069. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/index.d.ts +0 -19
  1070. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/index.js +0 -48
  1071. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/timestamp.d.ts +0 -21
  1072. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/timestamp.js +0 -57
  1073. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.d.ts +0 -25
  1074. package/node_modules/@bufbuild/protobuf/dist/cjs/wkt/wrappers.js +0 -66
  1075. package/node_modules/@bufbuild/protobuf/dist/esm/clone.d.ts +0 -6
  1076. package/node_modules/@bufbuild/protobuf/dist/esm/clone.js +0 -63
  1077. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.d.ts +0 -10
  1078. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.js +0 -26
  1079. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.d.ts +0 -9
  1080. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.js +0 -25
  1081. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.d.ts +0 -1
  1082. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.js +0 -14
  1083. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.d.ts +0 -10
  1084. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.js +0 -23
  1085. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.d.ts +0 -10
  1086. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.js +0 -21
  1087. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.d.ts +0 -8
  1088. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.js +0 -24
  1089. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.d.ts +0 -135
  1090. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.js +0 -40
  1091. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.d.ts +0 -75
  1092. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.js +0 -21
  1093. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.d.ts +0 -63
  1094. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.js +0 -101
  1095. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.d.ts +0 -43
  1096. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.js +0 -239
  1097. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.d.ts +0 -18
  1098. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.js +0 -36
  1099. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.d.ts +0 -9
  1100. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/extension.js +0 -25
  1101. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.d.ts +0 -7
  1102. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.js +0 -32
  1103. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.d.ts +0 -10
  1104. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/index.js +0 -23
  1105. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.d.ts +0 -15
  1106. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/message.js +0 -21
  1107. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.d.ts +0 -5
  1108. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/restore-json-names.js +0 -26
  1109. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.d.ts +0 -9
  1110. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.js +0 -63
  1111. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.d.ts +0 -8
  1112. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/service.js +0 -24
  1113. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.d.ts +0 -135
  1114. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/symbols.js +0 -69
  1115. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.d.ts +0 -81
  1116. package/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.js +0 -21
  1117. package/node_modules/@bufbuild/protobuf/dist/esm/create.d.ts +0 -9
  1118. package/node_modules/@bufbuild/protobuf/dist/esm/create.js +0 -256
  1119. package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts +0 -634
  1120. package/node_modules/@bufbuild/protobuf/dist/esm/descriptors.js +0 -50
  1121. package/node_modules/@bufbuild/protobuf/dist/esm/equals.d.ts +0 -41
  1122. package/node_modules/@bufbuild/protobuf/dist/esm/equals.js +0 -201
  1123. package/node_modules/@bufbuild/protobuf/dist/esm/extensions.d.ts +0 -59
  1124. package/node_modules/@bufbuild/protobuf/dist/esm/extensions.js +0 -160
  1125. package/node_modules/@bufbuild/protobuf/dist/esm/fields.d.ts +0 -23
  1126. package/node_modules/@bufbuild/protobuf/dist/esm/fields.js +0 -41
  1127. package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.d.ts +0 -34
  1128. package/node_modules/@bufbuild/protobuf/dist/esm/from-binary.js +0 -236
  1129. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts +0 -56
  1130. package/node_modules/@bufbuild/protobuf/dist/esm/from-json.js +0 -611
  1131. package/node_modules/@bufbuild/protobuf/dist/esm/index.d.ts +0 -18
  1132. package/node_modules/@bufbuild/protobuf/dist/esm/index.js +0 -28
  1133. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.d.ts +0 -7
  1134. package/node_modules/@bufbuild/protobuf/dist/esm/is-message.js +0 -30
  1135. package/node_modules/@bufbuild/protobuf/dist/esm/json-value.d.ts +0 -16
  1136. package/node_modules/@bufbuild/protobuf/dist/esm/json-value.js +0 -14
  1137. package/node_modules/@bufbuild/protobuf/dist/esm/merge.d.ts +0 -13
  1138. package/node_modules/@bufbuild/protobuf/dist/esm/merge.js +0 -67
  1139. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.d.ts +0 -98
  1140. package/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js +0 -127
  1141. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.d.ts +0 -9
  1142. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.js +0 -31
  1143. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.d.ts +0 -20
  1144. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.js +0 -71
  1145. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.d.ts +0 -8
  1146. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.js +0 -21
  1147. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.d.ts +0 -30
  1148. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.js +0 -109
  1149. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.d.ts +0 -35
  1150. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.js +0 -105
  1151. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts +0 -107
  1152. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.js +0 -369
  1153. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.d.ts +0 -19
  1154. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-check.js +0 -260
  1155. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.d.ts +0 -217
  1156. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.js +0 -14
  1157. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.d.ts +0 -43
  1158. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.js +0 -540
  1159. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.d.ts +0 -21
  1160. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.js +0 -97
  1161. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.d.ts +0 -39
  1162. package/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.js +0 -140
  1163. package/node_modules/@bufbuild/protobuf/dist/esm/registry.d.ts +0 -98
  1164. package/node_modules/@bufbuild/protobuf/dist/esm/registry.js +0 -939
  1165. package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.d.ts +0 -24
  1166. package/node_modules/@bufbuild/protobuf/dist/esm/to-binary.js +0 -195
  1167. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts +0 -67
  1168. package/node_modules/@bufbuild/protobuf/dist/esm/to-json.js +0 -386
  1169. package/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts +0 -128
  1170. package/node_modules/@bufbuild/protobuf/dist/esm/types.js +0 -14
  1171. package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.d.ts +0 -23
  1172. package/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.js +0 -152
  1173. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts +0 -266
  1174. package/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.js +0 -520
  1175. package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.d.ts +0 -5
  1176. package/node_modules/@bufbuild/protobuf/dist/esm/wire/index.js +0 -18
  1177. package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.d.ts +0 -51
  1178. package/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.js +0 -148
  1179. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts +0 -28
  1180. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.js +0 -57
  1181. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.d.ts +0 -13
  1182. package/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.js +0 -195
  1183. package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.d.ts +0 -70
  1184. package/node_modules/@bufbuild/protobuf/dist/esm/wire/varint.js +0 -313
  1185. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.d.ts +0 -38
  1186. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.js +0 -69
  1187. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.d.ts +0 -9
  1188. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.js +0 -35
  1189. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts +0 -238
  1190. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.js +0 -24
  1191. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts +0 -537
  1192. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.js +0 -36
  1193. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts +0 -490
  1194. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.js +0 -65
  1195. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.d.ts +0 -91
  1196. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.js +0 -57
  1197. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts +0 -4143
  1198. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.js +0 -888
  1199. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts +0 -161
  1200. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.js +0 -24
  1201. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts +0 -39
  1202. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.js +0 -24
  1203. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts +0 -424
  1204. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.js +0 -24
  1205. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts +0 -189
  1206. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.js +0 -123
  1207. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.d.ts +0 -194
  1208. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.js +0 -103
  1209. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts +0 -43
  1210. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.js +0 -24
  1211. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts +0 -195
  1212. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.js +0 -56
  1213. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts +0 -222
  1214. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.js +0 -24
  1215. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts +0 -722
  1216. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.js +0 -239
  1217. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts +0 -330
  1218. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.js +0 -64
  1219. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.d.ts +0 -19
  1220. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.js +0 -32
  1221. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.d.ts +0 -21
  1222. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.js +0 -50
  1223. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts +0 -25
  1224. package/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.js +0 -61
  1225. package/node_modules/@bufbuild/protobuf/package.json +0 -68
  1226. package/node_modules/@evalops/contracts/README.md +0 -69
  1227. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts +0 -38
  1228. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.d.ts.map +0 -1
  1229. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js +0 -121
  1230. package/node_modules/@evalops/contracts/dist/headless-protocol-generated.js.map +0 -1
  1231. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts +0 -2998
  1232. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.d.ts.map +0 -1
  1233. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js +0 -631
  1234. package/node_modules/@evalops/contracts/dist/headless-protocol-schemas.generated.js.map +0 -1
  1235. package/node_modules/@evalops/contracts/dist/index.d.ts +0 -1110
  1236. package/node_modules/@evalops/contracts/dist/index.d.ts.map +0 -1
  1237. package/node_modules/@evalops/contracts/dist/index.js +0 -59
  1238. package/node_modules/@evalops/contracts/dist/index.js.map +0 -1
  1239. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts +0 -2126
  1240. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.d.ts.map +0 -1
  1241. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js +0 -848
  1242. package/node_modules/@evalops/contracts/dist/proto/maestro/v1/headless_pb.js.map +0 -1
  1243. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts +0 -182
  1244. package/node_modules/@evalops/contracts/dist/runtime-app-server.d.ts.map +0 -1
  1245. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts +0 -133
  1246. package/node_modules/@evalops/contracts/dist/runtime-server-request.d.ts.map +0 -1
  1247. package/node_modules/@evalops/contracts/dist/runtime-server-request.js +0 -68
  1248. package/node_modules/@evalops/contracts/dist/runtime-server-request.js.map +0 -1
  1249. package/node_modules/@evalops/contracts/dist/schemas.d.ts +0 -3600
  1250. package/node_modules/@evalops/contracts/dist/schemas.d.ts.map +0 -1
  1251. package/node_modules/@evalops/contracts/dist/schemas.js +0 -1066
  1252. package/node_modules/@evalops/contracts/dist/schemas.js.map +0 -1
  1253. package/node_modules/@evalops/contracts/package.json +0 -30
  1254. package/node_modules/@evalops/tui/README.md +0 -255
  1255. package/node_modules/@evalops/tui/dist/testing/index.d.ts +0 -46
  1256. package/node_modules/@evalops/tui/dist/testing/index.d.ts.map +0 -1
  1257. package/node_modules/@evalops/tui/dist/testing/index.js +0 -46
  1258. package/node_modules/@evalops/tui/dist/testing/index.js.map +0 -1
  1259. package/node_modules/@evalops/tui/dist/testing/virtual-terminal.d.ts +0 -147
  1260. package/node_modules/@evalops/tui/dist/testing/virtual-terminal.d.ts.map +0 -1
  1261. package/node_modules/@evalops/tui/dist/testing/virtual-terminal.js +0 -269
  1262. package/node_modules/@evalops/tui/dist/testing/virtual-terminal.js.map +0 -1
  1263. package/node_modules/@evalops/tui/package.json +0 -58
  1264. package/node_modules/@sinclair/typebox/build/cjs/compiler/compiler.d.ts +0 -55
  1265. package/node_modules/@sinclair/typebox/build/cjs/compiler/compiler.js +0 -670
  1266. package/node_modules/@sinclair/typebox/build/cjs/compiler/index.d.ts +0 -2
  1267. package/node_modules/@sinclair/typebox/build/cjs/compiler/index.js +0 -22
  1268. package/node_modules/@sinclair/typebox/build/cjs/errors/errors.d.ts +0 -91
  1269. package/node_modules/@sinclair/typebox/build/cjs/errors/errors.js +0 -599
  1270. package/node_modules/@sinclair/typebox/build/cjs/errors/function.d.ts +0 -21
  1271. package/node_modules/@sinclair/typebox/build/cjs/errors/function.js +0 -153
  1272. package/node_modules/@sinclair/typebox/build/cjs/errors/index.d.ts +0 -2
  1273. package/node_modules/@sinclair/typebox/build/cjs/errors/index.js +0 -19
  1274. package/node_modules/@sinclair/typebox/build/cjs/index.d.ts +0 -71
  1275. package/node_modules/@sinclair/typebox/build/cjs/index.js +0 -97
  1276. package/node_modules/@sinclair/typebox/build/cjs/parser/index.d.ts +0 -2
  1277. package/node_modules/@sinclair/typebox/build/cjs/parser/index.js +0 -39
  1278. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/guard.d.ts +0 -23
  1279. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/guard.js +0 -86
  1280. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/index.d.ts +0 -5
  1281. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/index.js +0 -45
  1282. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/module.d.ts +0 -9
  1283. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/module.js +0 -22
  1284. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/parse.d.ts +0 -9
  1285. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/parse.js +0 -160
  1286. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/token.d.ts +0 -8
  1287. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/token.js +0 -230
  1288. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/types.d.ts +0 -98
  1289. package/node_modules/@sinclair/typebox/build/cjs/parser/runtime/types.js +0 -71
  1290. package/node_modules/@sinclair/typebox/build/cjs/parser/static/index.d.ts +0 -3
  1291. package/node_modules/@sinclair/typebox/build/cjs/parser/static/index.js +0 -43
  1292. package/node_modules/@sinclair/typebox/build/cjs/parser/static/parse.d.ts +0 -20
  1293. package/node_modules/@sinclair/typebox/build/cjs/parser/static/parse.js +0 -3
  1294. package/node_modules/@sinclair/typebox/build/cjs/parser/static/token.d.ts +0 -108
  1295. package/node_modules/@sinclair/typebox/build/cjs/parser/static/token.js +0 -3
  1296. package/node_modules/@sinclair/typebox/build/cjs/parser/static/types.d.ts +0 -69
  1297. package/node_modules/@sinclair/typebox/build/cjs/parser/static/types.js +0 -3
  1298. package/node_modules/@sinclair/typebox/build/cjs/syntax/index.d.ts +0 -1
  1299. package/node_modules/@sinclair/typebox/build/cjs/syntax/index.js +0 -18
  1300. package/node_modules/@sinclair/typebox/build/cjs/syntax/mapping.d.ts +0 -167
  1301. package/node_modules/@sinclair/typebox/build/cjs/syntax/mapping.js +0 -491
  1302. package/node_modules/@sinclair/typebox/build/cjs/syntax/parser.d.ts +0 -162
  1303. package/node_modules/@sinclair/typebox/build/cjs/syntax/parser.js +0 -191
  1304. package/node_modules/@sinclair/typebox/build/cjs/syntax/syntax.d.ts +0 -12
  1305. package/node_modules/@sinclair/typebox/build/cjs/syntax/syntax.js +0 -54
  1306. package/node_modules/@sinclair/typebox/build/cjs/system/index.d.ts +0 -2
  1307. package/node_modules/@sinclair/typebox/build/cjs/system/index.js +0 -19
  1308. package/node_modules/@sinclair/typebox/build/cjs/system/policy.d.ts +0 -29
  1309. package/node_modules/@sinclair/typebox/build/cjs/system/policy.js +0 -58
  1310. package/node_modules/@sinclair/typebox/build/cjs/system/system.d.ts +0 -16
  1311. package/node_modules/@sinclair/typebox/build/cjs/system/system.js +0 -43
  1312. package/node_modules/@sinclair/typebox/build/cjs/type/any/any.d.ts +0 -8
  1313. package/node_modules/@sinclair/typebox/build/cjs/type/any/any.js +0 -10
  1314. package/node_modules/@sinclair/typebox/build/cjs/type/any/index.d.ts +0 -1
  1315. package/node_modules/@sinclair/typebox/build/cjs/type/any/index.js +0 -18
  1316. package/node_modules/@sinclair/typebox/build/cjs/type/argument/argument.d.ts +0 -9
  1317. package/node_modules/@sinclair/typebox/build/cjs/type/argument/argument.js +0 -10
  1318. package/node_modules/@sinclair/typebox/build/cjs/type/argument/index.d.ts +0 -1
  1319. package/node_modules/@sinclair/typebox/build/cjs/type/argument/index.js +0 -18
  1320. package/node_modules/@sinclair/typebox/build/cjs/type/array/array.d.ts +0 -28
  1321. package/node_modules/@sinclair/typebox/build/cjs/type/array/array.js +0 -10
  1322. package/node_modules/@sinclair/typebox/build/cjs/type/array/index.d.ts +0 -1
  1323. package/node_modules/@sinclair/typebox/build/cjs/type/array/index.js +0 -18
  1324. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.d.ts +0 -11
  1325. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/async-iterator.js +0 -10
  1326. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.d.ts +0 -1
  1327. package/node_modules/@sinclair/typebox/build/cjs/type/async-iterator/index.js +0 -18
  1328. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.d.ts +0 -14
  1329. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/awaited.js +0 -41
  1330. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/index.d.ts +0 -1
  1331. package/node_modules/@sinclair/typebox/build/cjs/type/awaited/index.js +0 -18
  1332. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.d.ts +0 -16
  1333. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/bigint.js +0 -10
  1334. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/index.d.ts +0 -1
  1335. package/node_modules/@sinclair/typebox/build/cjs/type/bigint/index.js +0 -18
  1336. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.d.ts +0 -9
  1337. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/boolean.js +0 -10
  1338. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/index.d.ts +0 -1
  1339. package/node_modules/@sinclair/typebox/build/cjs/type/boolean/index.js +0 -18
  1340. package/node_modules/@sinclair/typebox/build/cjs/type/clone/index.d.ts +0 -2
  1341. package/node_modules/@sinclair/typebox/build/cjs/type/clone/index.js +0 -19
  1342. package/node_modules/@sinclair/typebox/build/cjs/type/clone/type.d.ts +0 -5
  1343. package/node_modules/@sinclair/typebox/build/cjs/type/clone/type.js +0 -14
  1344. package/node_modules/@sinclair/typebox/build/cjs/type/clone/value.d.ts +0 -2
  1345. package/node_modules/@sinclair/typebox/build/cjs/type/clone/value.js +0 -73
  1346. package/node_modules/@sinclair/typebox/build/cjs/type/composite/composite.d.ts +0 -18
  1347. package/node_modules/@sinclair/typebox/build/cjs/type/composite/composite.js +0 -46
  1348. package/node_modules/@sinclair/typebox/build/cjs/type/composite/index.d.ts +0 -1
  1349. package/node_modules/@sinclair/typebox/build/cjs/type/composite/index.js +0 -18
  1350. package/node_modules/@sinclair/typebox/build/cjs/type/computed/computed.d.ts +0 -9
  1351. package/node_modules/@sinclair/typebox/build/cjs/type/computed/computed.js +0 -10
  1352. package/node_modules/@sinclair/typebox/build/cjs/type/computed/index.d.ts +0 -1
  1353. package/node_modules/@sinclair/typebox/build/cjs/type/computed/index.js +0 -18
  1354. package/node_modules/@sinclair/typebox/build/cjs/type/const/const.d.ts +0 -27
  1355. package/node_modules/@sinclair/typebox/build/cjs/type/const/const.js +0 -58
  1356. package/node_modules/@sinclair/typebox/build/cjs/type/const/index.d.ts +0 -1
  1357. package/node_modules/@sinclair/typebox/build/cjs/type/const/index.js +0 -18
  1358. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.d.ts +0 -23
  1359. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/constructor.js +0 -10
  1360. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/index.d.ts +0 -1
  1361. package/node_modules/@sinclair/typebox/build/cjs/type/constructor/index.js +0 -18
  1362. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.d.ts +0 -7
  1363. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/constructor-parameters.js +0 -44
  1364. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.d.ts +0 -1
  1365. package/node_modules/@sinclair/typebox/build/cjs/type/constructor-parameters/index.js +0 -18
  1366. package/node_modules/@sinclair/typebox/build/cjs/type/create/immutable.d.ts +0 -2
  1367. package/node_modules/@sinclair/typebox/build/cjs/type/create/immutable.js +0 -70
  1368. package/node_modules/@sinclair/typebox/build/cjs/type/create/index.d.ts +0 -1
  1369. package/node_modules/@sinclair/typebox/build/cjs/type/create/index.js +0 -18
  1370. package/node_modules/@sinclair/typebox/build/cjs/type/create/type.d.ts +0 -3
  1371. package/node_modules/@sinclair/typebox/build/cjs/type/create/type.js +0 -19
  1372. package/node_modules/@sinclair/typebox/build/cjs/type/date/date.d.ts +0 -21
  1373. package/node_modules/@sinclair/typebox/build/cjs/type/date/date.js +0 -10
  1374. package/node_modules/@sinclair/typebox/build/cjs/type/date/index.d.ts +0 -1
  1375. package/node_modules/@sinclair/typebox/build/cjs/type/date/index.js +0 -18
  1376. package/node_modules/@sinclair/typebox/build/cjs/type/discard/discard.d.ts +0 -2
  1377. package/node_modules/@sinclair/typebox/build/cjs/type/discard/discard.js +0 -12
  1378. package/node_modules/@sinclair/typebox/build/cjs/type/discard/index.d.ts +0 -1
  1379. package/node_modules/@sinclair/typebox/build/cjs/type/discard/index.js +0 -18
  1380. package/node_modules/@sinclair/typebox/build/cjs/type/enum/enum.d.ts +0 -14
  1381. package/node_modules/@sinclair/typebox/build/cjs/type/enum/enum.js +0 -22
  1382. package/node_modules/@sinclair/typebox/build/cjs/type/enum/index.d.ts +0 -1
  1383. package/node_modules/@sinclair/typebox/build/cjs/type/enum/index.js +0 -18
  1384. package/node_modules/@sinclair/typebox/build/cjs/type/error/error.d.ts +0 -4
  1385. package/node_modules/@sinclair/typebox/build/cjs/type/error/error.js +0 -11
  1386. package/node_modules/@sinclair/typebox/build/cjs/type/error/index.d.ts +0 -1
  1387. package/node_modules/@sinclair/typebox/build/cjs/type/error/index.js +0 -18
  1388. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.d.ts +0 -11
  1389. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-mapped-result.js +0 -22
  1390. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.d.ts +0 -5
  1391. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude-from-template-literal.js +0 -9
  1392. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.d.ts +0 -21
  1393. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/exclude.js +0 -29
  1394. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/index.d.ts +0 -3
  1395. package/node_modules/@sinclair/typebox/build/cjs/type/exclude/index.js +0 -20
  1396. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.d.ts +0 -10
  1397. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-check.js +0 -641
  1398. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.d.ts +0 -14
  1399. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-key.js +0 -29
  1400. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.d.ts +0 -11
  1401. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-from-mapped-result.js +0 -23
  1402. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.d.ts +0 -3
  1403. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends-undefined.js +0 -24
  1404. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends.d.ts +0 -16
  1405. package/node_modules/@sinclair/typebox/build/cjs/type/extends/extends.js +0 -27
  1406. package/node_modules/@sinclair/typebox/build/cjs/type/extends/index.d.ts +0 -5
  1407. package/node_modules/@sinclair/typebox/build/cjs/type/extends/index.js +0 -22
  1408. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.d.ts +0 -11
  1409. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-mapped-result.js +0 -22
  1410. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.d.ts +0 -5
  1411. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract-from-template-literal.js +0 -9
  1412. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract.d.ts +0 -21
  1413. package/node_modules/@sinclair/typebox/build/cjs/type/extract/extract.js +0 -29
  1414. package/node_modules/@sinclair/typebox/build/cjs/type/extract/index.d.ts +0 -3
  1415. package/node_modules/@sinclair/typebox/build/cjs/type/extract/index.js +0 -20
  1416. package/node_modules/@sinclair/typebox/build/cjs/type/function/function.d.ts +0 -23
  1417. package/node_modules/@sinclair/typebox/build/cjs/type/function/function.js +0 -10
  1418. package/node_modules/@sinclair/typebox/build/cjs/type/function/index.d.ts +0 -1
  1419. package/node_modules/@sinclair/typebox/build/cjs/type/function/index.js +0 -18
  1420. package/node_modules/@sinclair/typebox/build/cjs/type/guard/index.d.ts +0 -3
  1421. package/node_modules/@sinclair/typebox/build/cjs/type/guard/index.js +0 -40
  1422. package/node_modules/@sinclair/typebox/build/cjs/type/guard/kind.d.ts +0 -147
  1423. package/node_modules/@sinclair/typebox/build/cjs/type/guard/kind.js +0 -320
  1424. package/node_modules/@sinclair/typebox/build/cjs/type/guard/type.d.ts +0 -152
  1425. package/node_modules/@sinclair/typebox/build/cjs/type/guard/type.js +0 -597
  1426. package/node_modules/@sinclair/typebox/build/cjs/type/guard/value.d.ts +0 -34
  1427. package/node_modules/@sinclair/typebox/build/cjs/type/guard/value.js +0 -89
  1428. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.d.ts +0 -42
  1429. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/helpers.js +0 -8
  1430. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/index.d.ts +0 -1
  1431. package/node_modules/@sinclair/typebox/build/cjs/type/helpers/index.js +0 -18
  1432. package/node_modules/@sinclair/typebox/build/cjs/type/index.d.ts +0 -71
  1433. package/node_modules/@sinclair/typebox/build/cjs/type/index.js +0 -88
  1434. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/index.d.ts +0 -4
  1435. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/index.js +0 -21
  1436. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.d.ts +0 -13
  1437. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-key.js +0 -26
  1438. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.d.ts +0 -12
  1439. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-from-mapped-result.js +0 -24
  1440. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.d.ts +0 -14
  1441. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed-property-keys.js +0 -36
  1442. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.d.ts +0 -52
  1443. package/node_modules/@sinclair/typebox/build/cjs/type/indexed/indexed.js +0 -98
  1444. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.d.ts +0 -1
  1445. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/index.js +0 -18
  1446. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.d.ts +0 -6
  1447. package/node_modules/@sinclair/typebox/build/cjs/type/instance-type/instance-type.js +0 -44
  1448. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.d.ts +0 -1
  1449. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/index.js +0 -18
  1450. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.d.ts +0 -50
  1451. package/node_modules/@sinclair/typebox/build/cjs/type/instantiate/instantiate.js +0 -153
  1452. package/node_modules/@sinclair/typebox/build/cjs/type/integer/index.d.ts +0 -1
  1453. package/node_modules/@sinclair/typebox/build/cjs/type/integer/index.js +0 -18
  1454. package/node_modules/@sinclair/typebox/build/cjs/type/integer/integer.d.ts +0 -16
  1455. package/node_modules/@sinclair/typebox/build/cjs/type/integer/integer.js +0 -10
  1456. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/index.d.ts +0 -3
  1457. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/index.js +0 -20
  1458. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-create.d.ts +0 -3
  1459. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-create.js +0 -23
  1460. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.d.ts +0 -13
  1461. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-evaluated.js +0 -42
  1462. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.d.ts +0 -15
  1463. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect-type.js +0 -4
  1464. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.d.ts +0 -6
  1465. package/node_modules/@sinclair/typebox/build/cjs/type/intersect/intersect.js +0 -21
  1466. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.d.ts +0 -5
  1467. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/capitalize.js +0 -9
  1468. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.d.ts +0 -6
  1469. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/index.js +0 -23
  1470. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.d.ts +0 -14
  1471. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic-from-mapped-key.js +0 -30
  1472. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.d.ts +0 -16
  1473. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/intrinsic.js +0 -68
  1474. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.d.ts +0 -5
  1475. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/lowercase.js +0 -9
  1476. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.d.ts +0 -5
  1477. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uncapitalize.js +0 -9
  1478. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.d.ts +0 -5
  1479. package/node_modules/@sinclair/typebox/build/cjs/type/intrinsic/uppercase.js +0 -9
  1480. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/index.d.ts +0 -1
  1481. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/index.js +0 -18
  1482. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.d.ts +0 -11
  1483. package/node_modules/@sinclair/typebox/build/cjs/type/iterator/iterator.js +0 -10
  1484. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/index.d.ts +0 -4
  1485. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/index.js +0 -21
  1486. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.d.ts +0 -12
  1487. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-from-mapped-result.js +0 -23
  1488. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.d.ts +0 -7
  1489. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-entries.js +0 -16
  1490. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.d.ts +0 -24
  1491. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof-property-keys.js +0 -78
  1492. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.d.ts +0 -21
  1493. package/node_modules/@sinclair/typebox/build/cjs/type/keyof/keyof.js +0 -40
  1494. package/node_modules/@sinclair/typebox/build/cjs/type/literal/index.d.ts +0 -1
  1495. package/node_modules/@sinclair/typebox/build/cjs/type/literal/index.js +0 -18
  1496. package/node_modules/@sinclair/typebox/build/cjs/type/literal/literal.d.ts +0 -10
  1497. package/node_modules/@sinclair/typebox/build/cjs/type/literal/literal.js +0 -14
  1498. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/index.d.ts +0 -3
  1499. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/index.js +0 -20
  1500. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.d.ts +0 -8
  1501. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-key.js +0 -13
  1502. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.d.ts +0 -9
  1503. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped-result.js +0 -13
  1504. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.d.ts +0 -47
  1505. package/node_modules/@sinclair/typebox/build/cjs/type/mapped/mapped.js +0 -107
  1506. package/node_modules/@sinclair/typebox/build/cjs/type/module/compute.d.ts +0 -59
  1507. package/node_modules/@sinclair/typebox/build/cjs/type/module/compute.js +0 -205
  1508. package/node_modules/@sinclair/typebox/build/cjs/type/module/index.d.ts +0 -1
  1509. package/node_modules/@sinclair/typebox/build/cjs/type/module/index.js +0 -18
  1510. package/node_modules/@sinclair/typebox/build/cjs/type/module/infer.d.ts +0 -49
  1511. package/node_modules/@sinclair/typebox/build/cjs/type/module/infer.js +0 -3
  1512. package/node_modules/@sinclair/typebox/build/cjs/type/module/module.d.ts +0 -27
  1513. package/node_modules/@sinclair/typebox/build/cjs/type/module/module.js +0 -38
  1514. package/node_modules/@sinclair/typebox/build/cjs/type/never/index.d.ts +0 -1
  1515. package/node_modules/@sinclair/typebox/build/cjs/type/never/index.js +0 -18
  1516. package/node_modules/@sinclair/typebox/build/cjs/type/never/never.d.ts +0 -9
  1517. package/node_modules/@sinclair/typebox/build/cjs/type/never/never.js +0 -10
  1518. package/node_modules/@sinclair/typebox/build/cjs/type/not/index.d.ts +0 -1
  1519. package/node_modules/@sinclair/typebox/build/cjs/type/not/index.js +0 -18
  1520. package/node_modules/@sinclair/typebox/build/cjs/type/not/not.d.ts +0 -10
  1521. package/node_modules/@sinclair/typebox/build/cjs/type/not/not.js +0 -10
  1522. package/node_modules/@sinclair/typebox/build/cjs/type/null/index.d.ts +0 -1
  1523. package/node_modules/@sinclair/typebox/build/cjs/type/null/index.js +0 -18
  1524. package/node_modules/@sinclair/typebox/build/cjs/type/null/null.d.ts +0 -9
  1525. package/node_modules/@sinclair/typebox/build/cjs/type/null/null.js +0 -10
  1526. package/node_modules/@sinclair/typebox/build/cjs/type/number/index.d.ts +0 -1
  1527. package/node_modules/@sinclair/typebox/build/cjs/type/number/index.js +0 -18
  1528. package/node_modules/@sinclair/typebox/build/cjs/type/number/number.d.ts +0 -16
  1529. package/node_modules/@sinclair/typebox/build/cjs/type/number/number.js +0 -10
  1530. package/node_modules/@sinclair/typebox/build/cjs/type/object/index.d.ts +0 -1
  1531. package/node_modules/@sinclair/typebox/build/cjs/type/object/index.js +0 -18
  1532. package/node_modules/@sinclair/typebox/build/cjs/type/object/object.d.ts +0 -51
  1533. package/node_modules/@sinclair/typebox/build/cjs/type/object/object.js +0 -22
  1534. package/node_modules/@sinclair/typebox/build/cjs/type/omit/index.d.ts +0 -3
  1535. package/node_modules/@sinclair/typebox/build/cjs/type/omit/index.js +0 -20
  1536. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.d.ts +0 -12
  1537. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-key.js +0 -26
  1538. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.d.ts +0 -12
  1539. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit-from-mapped-result.js +0 -23
  1540. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit.d.ts +0 -36
  1541. package/node_modules/@sinclair/typebox/build/cjs/type/omit/omit.js +0 -75
  1542. package/node_modules/@sinclair/typebox/build/cjs/type/optional/index.d.ts +0 -2
  1543. package/node_modules/@sinclair/typebox/build/cjs/type/optional/index.js +0 -19
  1544. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.d.ts +0 -10
  1545. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional-from-mapped-result.js +0 -22
  1546. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional.d.ts +0 -20
  1547. package/node_modules/@sinclair/typebox/build/cjs/type/optional/optional.js +0 -26
  1548. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/index.d.ts +0 -1
  1549. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/index.js +0 -18
  1550. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.d.ts +0 -7
  1551. package/node_modules/@sinclair/typebox/build/cjs/type/parameters/parameters.js +0 -44
  1552. package/node_modules/@sinclair/typebox/build/cjs/type/partial/index.d.ts +0 -2
  1553. package/node_modules/@sinclair/typebox/build/cjs/type/partial/index.js +0 -19
  1554. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.d.ts +0 -12
  1555. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial-from-mapped-result.js +0 -23
  1556. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial.d.ts +0 -35
  1557. package/node_modules/@sinclair/typebox/build/cjs/type/partial/partial.js +0 -111
  1558. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/index.d.ts +0 -1
  1559. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/index.js +0 -18
  1560. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.d.ts +0 -8
  1561. package/node_modules/@sinclair/typebox/build/cjs/type/patterns/patterns.js +0 -12
  1562. package/node_modules/@sinclair/typebox/build/cjs/type/pick/index.d.ts +0 -3
  1563. package/node_modules/@sinclair/typebox/build/cjs/type/pick/index.js +0 -20
  1564. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.d.ts +0 -12
  1565. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-key.js +0 -28
  1566. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.d.ts +0 -12
  1567. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick-from-mapped-result.js +0 -23
  1568. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick.d.ts +0 -36
  1569. package/node_modules/@sinclair/typebox/build/cjs/type/pick/pick.js +0 -70
  1570. package/node_modules/@sinclair/typebox/build/cjs/type/promise/index.d.ts +0 -1
  1571. package/node_modules/@sinclair/typebox/build/cjs/type/promise/index.js +0 -18
  1572. package/node_modules/@sinclair/typebox/build/cjs/type/promise/promise.d.ts +0 -11
  1573. package/node_modules/@sinclair/typebox/build/cjs/type/promise/promise.js +0 -10
  1574. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/index.d.ts +0 -2
  1575. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/index.js +0 -19
  1576. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.d.ts +0 -10
  1577. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly-from-mapped-result.js +0 -22
  1578. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.d.ts +0 -20
  1579. package/node_modules/@sinclair/typebox/build/cjs/type/readonly/readonly.js +0 -26
  1580. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.d.ts +0 -1
  1581. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/index.js +0 -18
  1582. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.d.ts +0 -6
  1583. package/node_modules/@sinclair/typebox/build/cjs/type/readonly-optional/readonly-optional.js +0 -10
  1584. package/node_modules/@sinclair/typebox/build/cjs/type/record/index.d.ts +0 -1
  1585. package/node_modules/@sinclair/typebox/build/cjs/type/record/index.js +0 -18
  1586. package/node_modules/@sinclair/typebox/build/cjs/type/record/record.d.ts +0 -71
  1587. package/node_modules/@sinclair/typebox/build/cjs/type/record/record.js +0 -123
  1588. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/index.d.ts +0 -1
  1589. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/index.js +0 -18
  1590. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.d.ts +0 -16
  1591. package/node_modules/@sinclair/typebox/build/cjs/type/recursive/recursive.js +0 -19
  1592. package/node_modules/@sinclair/typebox/build/cjs/type/ref/index.d.ts +0 -1
  1593. package/node_modules/@sinclair/typebox/build/cjs/type/ref/index.js +0 -18
  1594. package/node_modules/@sinclair/typebox/build/cjs/type/ref/ref.d.ts +0 -41
  1595. package/node_modules/@sinclair/typebox/build/cjs/type/ref/ref.js +0 -14
  1596. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/index.d.ts +0 -1
  1597. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/index.js +0 -18
  1598. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.d.ts +0 -20
  1599. package/node_modules/@sinclair/typebox/build/cjs/type/regexp/regexp.js +0 -12
  1600. package/node_modules/@sinclair/typebox/build/cjs/type/registry/format.d.ts +0 -13
  1601. package/node_modules/@sinclair/typebox/build/cjs/type/registry/format.js +0 -35
  1602. package/node_modules/@sinclair/typebox/build/cjs/type/registry/index.d.ts +0 -2
  1603. package/node_modules/@sinclair/typebox/build/cjs/type/registry/index.js +0 -39
  1604. package/node_modules/@sinclair/typebox/build/cjs/type/registry/type.d.ts +0 -13
  1605. package/node_modules/@sinclair/typebox/build/cjs/type/registry/type.js +0 -35
  1606. package/node_modules/@sinclair/typebox/build/cjs/type/required/index.d.ts +0 -2
  1607. package/node_modules/@sinclair/typebox/build/cjs/type/required/index.js +0 -19
  1608. package/node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.d.ts +0 -12
  1609. package/node_modules/@sinclair/typebox/build/cjs/type/required/required-from-mapped-result.js +0 -22
  1610. package/node_modules/@sinclair/typebox/build/cjs/type/required/required.d.ts +0 -35
  1611. package/node_modules/@sinclair/typebox/build/cjs/type/required/required.js +0 -110
  1612. package/node_modules/@sinclair/typebox/build/cjs/type/rest/index.d.ts +0 -1
  1613. package/node_modules/@sinclair/typebox/build/cjs/type/rest/index.js +0 -18
  1614. package/node_modules/@sinclair/typebox/build/cjs/type/rest/rest.d.ts +0 -10
  1615. package/node_modules/@sinclair/typebox/build/cjs/type/rest/rest.js +0 -19
  1616. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/index.d.ts +0 -1
  1617. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/index.js +0 -18
  1618. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.d.ts +0 -6
  1619. package/node_modules/@sinclair/typebox/build/cjs/type/return-type/return-type.js +0 -44
  1620. package/node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.d.ts +0 -33
  1621. package/node_modules/@sinclair/typebox/build/cjs/type/schema/anyschema.js +0 -3
  1622. package/node_modules/@sinclair/typebox/build/cjs/type/schema/index.d.ts +0 -2
  1623. package/node_modules/@sinclair/typebox/build/cjs/type/schema/index.js +0 -19
  1624. package/node_modules/@sinclair/typebox/build/cjs/type/schema/schema.d.ts +0 -29
  1625. package/node_modules/@sinclair/typebox/build/cjs/type/schema/schema.js +0 -4
  1626. package/node_modules/@sinclair/typebox/build/cjs/type/sets/index.d.ts +0 -1
  1627. package/node_modules/@sinclair/typebox/build/cjs/type/sets/index.js +0 -18
  1628. package/node_modules/@sinclair/typebox/build/cjs/type/sets/set.d.ts +0 -28
  1629. package/node_modules/@sinclair/typebox/build/cjs/type/sets/set.js +0 -59
  1630. package/node_modules/@sinclair/typebox/build/cjs/type/static/index.d.ts +0 -1
  1631. package/node_modules/@sinclair/typebox/build/cjs/type/static/index.js +0 -18
  1632. package/node_modules/@sinclair/typebox/build/cjs/type/static/static.d.ts +0 -39
  1633. package/node_modules/@sinclair/typebox/build/cjs/type/static/static.js +0 -3
  1634. package/node_modules/@sinclair/typebox/build/cjs/type/string/index.d.ts +0 -1
  1635. package/node_modules/@sinclair/typebox/build/cjs/type/string/index.js +0 -18
  1636. package/node_modules/@sinclair/typebox/build/cjs/type/string/string.d.ts +0 -25
  1637. package/node_modules/@sinclair/typebox/build/cjs/type/string/string.js +0 -10
  1638. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/index.d.ts +0 -1
  1639. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/index.js +0 -18
  1640. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.d.ts +0 -10
  1641. package/node_modules/@sinclair/typebox/build/cjs/type/symbol/symbol.js +0 -10
  1642. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/index.d.ts +0 -1
  1643. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/index.js +0 -18
  1644. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.d.ts +0 -10
  1645. package/node_modules/@sinclair/typebox/build/cjs/type/symbols/symbols.js +0 -14
  1646. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.d.ts +0 -19
  1647. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/finite.js +0 -56
  1648. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.d.ts +0 -21
  1649. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/generate.js +0 -60
  1650. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.d.ts +0 -7
  1651. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/index.js +0 -24
  1652. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.d.ts +0 -20
  1653. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/parse.js +0 -174
  1654. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.d.ts +0 -5
  1655. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/pattern.js +0 -39
  1656. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.d.ts +0 -20
  1657. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/syntax.js +0 -59
  1658. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.d.ts +0 -30
  1659. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/template-literal.js +0 -17
  1660. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.d.ts +0 -9
  1661. package/node_modules/@sinclair/typebox/build/cjs/type/template-literal/union.js +0 -13
  1662. package/node_modules/@sinclair/typebox/build/cjs/type/transform/index.d.ts +0 -1
  1663. package/node_modules/@sinclair/typebox/build/cjs/type/transform/index.js +0 -18
  1664. package/node_modules/@sinclair/typebox/build/cjs/type/transform/transform.d.ts +0 -30
  1665. package/node_modules/@sinclair/typebox/build/cjs/type/transform/transform.js +0 -47
  1666. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/index.d.ts +0 -1
  1667. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/index.js +0 -18
  1668. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.d.ts +0 -16
  1669. package/node_modules/@sinclair/typebox/build/cjs/type/tuple/tuple.js +0 -13
  1670. package/node_modules/@sinclair/typebox/build/cjs/type/type/index.d.ts +0 -6
  1671. package/node_modules/@sinclair/typebox/build/cjs/type/type/index.js +0 -51
  1672. package/node_modules/@sinclair/typebox/build/cjs/type/type/javascript.d.ts +0 -64
  1673. package/node_modules/@sinclair/typebox/build/cjs/type/type/javascript.js +0 -104
  1674. package/node_modules/@sinclair/typebox/build/cjs/type/type/json.d.ts +0 -208
  1675. package/node_modules/@sinclair/typebox/build/cjs/type/type/json.js +0 -226
  1676. package/node_modules/@sinclair/typebox/build/cjs/type/type/type.d.ts +0 -59
  1677. package/node_modules/@sinclair/typebox/build/cjs/type/type/type.js +0 -129
  1678. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.d.ts +0 -1
  1679. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/index.js +0 -18
  1680. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.d.ts +0 -13
  1681. package/node_modules/@sinclair/typebox/build/cjs/type/uint8array/uint8array.js +0 -10
  1682. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/index.d.ts +0 -1
  1683. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/index.js +0 -18
  1684. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.d.ts +0 -9
  1685. package/node_modules/@sinclair/typebox/build/cjs/type/undefined/undefined.js +0 -10
  1686. package/node_modules/@sinclair/typebox/build/cjs/type/union/index.d.ts +0 -3
  1687. package/node_modules/@sinclair/typebox/build/cjs/type/union/index.js +0 -20
  1688. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-create.d.ts +0 -3
  1689. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-create.js +0 -9
  1690. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.d.ts +0 -13
  1691. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-evaluated.js +0 -40
  1692. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-type.d.ts +0 -12
  1693. package/node_modules/@sinclair/typebox/build/cjs/type/union/union-type.js +0 -4
  1694. package/node_modules/@sinclair/typebox/build/cjs/type/union/union.d.ts +0 -6
  1695. package/node_modules/@sinclair/typebox/build/cjs/type/union/union.js +0 -14
  1696. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/index.d.ts +0 -1
  1697. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/index.js +0 -18
  1698. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.d.ts +0 -8
  1699. package/node_modules/@sinclair/typebox/build/cjs/type/unknown/unknown.js +0 -10
  1700. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.d.ts +0 -1
  1701. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/index.js +0 -18
  1702. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.d.ts +0 -11
  1703. package/node_modules/@sinclair/typebox/build/cjs/type/unsafe/unsafe.js +0 -10
  1704. package/node_modules/@sinclair/typebox/build/cjs/type/void/index.d.ts +0 -1
  1705. package/node_modules/@sinclair/typebox/build/cjs/type/void/index.js +0 -18
  1706. package/node_modules/@sinclair/typebox/build/cjs/type/void/void.d.ts +0 -9
  1707. package/node_modules/@sinclair/typebox/build/cjs/type/void/void.js +0 -10
  1708. package/node_modules/@sinclair/typebox/build/cjs/value/assert/assert.d.ts +0 -15
  1709. package/node_modules/@sinclair/typebox/build/cjs/value/assert/assert.js +0 -55
  1710. package/node_modules/@sinclair/typebox/build/cjs/value/assert/index.d.ts +0 -1
  1711. package/node_modules/@sinclair/typebox/build/cjs/value/assert/index.js +0 -18
  1712. package/node_modules/@sinclair/typebox/build/cjs/value/cast/cast.d.ts +0 -11
  1713. package/node_modules/@sinclair/typebox/build/cjs/value/cast/cast.js +0 -241
  1714. package/node_modules/@sinclair/typebox/build/cjs/value/cast/index.d.ts +0 -1
  1715. package/node_modules/@sinclair/typebox/build/cjs/value/cast/index.js +0 -18
  1716. package/node_modules/@sinclair/typebox/build/cjs/value/check/check.d.ts +0 -11
  1717. package/node_modules/@sinclair/typebox/build/cjs/value/check/check.js +0 -476
  1718. package/node_modules/@sinclair/typebox/build/cjs/value/check/index.d.ts +0 -1
  1719. package/node_modules/@sinclair/typebox/build/cjs/value/check/index.js +0 -18
  1720. package/node_modules/@sinclair/typebox/build/cjs/value/clean/clean.d.ts +0 -5
  1721. package/node_modules/@sinclair/typebox/build/cjs/value/clean/clean.js +0 -149
  1722. package/node_modules/@sinclair/typebox/build/cjs/value/clean/index.d.ts +0 -1
  1723. package/node_modules/@sinclair/typebox/build/cjs/value/clean/index.js +0 -18
  1724. package/node_modules/@sinclair/typebox/build/cjs/value/clone/clone.d.ts +0 -2
  1725. package/node_modules/@sinclair/typebox/build/cjs/value/clone/clone.js +0 -60
  1726. package/node_modules/@sinclair/typebox/build/cjs/value/clone/index.d.ts +0 -1
  1727. package/node_modules/@sinclair/typebox/build/cjs/value/clone/index.js +0 -18
  1728. package/node_modules/@sinclair/typebox/build/cjs/value/convert/convert.d.ts +0 -5
  1729. package/node_modules/@sinclair/typebox/build/cjs/value/convert/convert.js +0 -264
  1730. package/node_modules/@sinclair/typebox/build/cjs/value/convert/index.d.ts +0 -1
  1731. package/node_modules/@sinclair/typebox/build/cjs/value/convert/index.js +0 -18
  1732. package/node_modules/@sinclair/typebox/build/cjs/value/create/create.d.ts +0 -11
  1733. package/node_modules/@sinclair/typebox/build/cjs/value/create/create.js +0 -474
  1734. package/node_modules/@sinclair/typebox/build/cjs/value/create/index.d.ts +0 -1
  1735. package/node_modules/@sinclair/typebox/build/cjs/value/create/index.js +0 -18
  1736. package/node_modules/@sinclair/typebox/build/cjs/value/decode/decode.d.ts +0 -6
  1737. package/node_modules/@sinclair/typebox/build/cjs/value/decode/decode.js +0 -14
  1738. package/node_modules/@sinclair/typebox/build/cjs/value/decode/index.d.ts +0 -1
  1739. package/node_modules/@sinclair/typebox/build/cjs/value/decode/index.js +0 -18
  1740. package/node_modules/@sinclair/typebox/build/cjs/value/default/default.d.ts +0 -5
  1741. package/node_modules/@sinclair/typebox/build/cjs/value/default/default.js +0 -176
  1742. package/node_modules/@sinclair/typebox/build/cjs/value/default/index.d.ts +0 -1
  1743. package/node_modules/@sinclair/typebox/build/cjs/value/default/index.js +0 -18
  1744. package/node_modules/@sinclair/typebox/build/cjs/value/delta/delta.d.ts +0 -32
  1745. package/node_modules/@sinclair/typebox/build/cjs/value/delta/delta.js +0 -178
  1746. package/node_modules/@sinclair/typebox/build/cjs/value/delta/index.d.ts +0 -1
  1747. package/node_modules/@sinclair/typebox/build/cjs/value/delta/index.js +0 -18
  1748. package/node_modules/@sinclair/typebox/build/cjs/value/deref/deref.d.ts +0 -12
  1749. package/node_modules/@sinclair/typebox/build/cjs/value/deref/deref.js +0 -36
  1750. package/node_modules/@sinclair/typebox/build/cjs/value/deref/index.d.ts +0 -1
  1751. package/node_modules/@sinclair/typebox/build/cjs/value/deref/index.js +0 -18
  1752. package/node_modules/@sinclair/typebox/build/cjs/value/encode/encode.d.ts +0 -6
  1753. package/node_modules/@sinclair/typebox/build/cjs/value/encode/encode.js +0 -15
  1754. package/node_modules/@sinclair/typebox/build/cjs/value/encode/index.d.ts +0 -1
  1755. package/node_modules/@sinclair/typebox/build/cjs/value/encode/index.js +0 -18
  1756. package/node_modules/@sinclair/typebox/build/cjs/value/equal/equal.d.ts +0 -2
  1757. package/node_modules/@sinclair/typebox/build/cjs/value/equal/equal.js +0 -50
  1758. package/node_modules/@sinclair/typebox/build/cjs/value/equal/index.d.ts +0 -1
  1759. package/node_modules/@sinclair/typebox/build/cjs/value/equal/index.js +0 -18
  1760. package/node_modules/@sinclair/typebox/build/cjs/value/guard/guard.d.ts +0 -74
  1761. package/node_modules/@sinclair/typebox/build/cjs/value/guard/guard.js +0 -195
  1762. package/node_modules/@sinclair/typebox/build/cjs/value/guard/index.d.ts +0 -1
  1763. package/node_modules/@sinclair/typebox/build/cjs/value/guard/index.js +0 -18
  1764. package/node_modules/@sinclair/typebox/build/cjs/value/hash/hash.d.ts +0 -7
  1765. package/node_modules/@sinclair/typebox/build/cjs/value/hash/hash.js +0 -152
  1766. package/node_modules/@sinclair/typebox/build/cjs/value/hash/index.d.ts +0 -1
  1767. package/node_modules/@sinclair/typebox/build/cjs/value/hash/index.js +0 -18
  1768. package/node_modules/@sinclair/typebox/build/cjs/value/index.d.ts +0 -20
  1769. package/node_modules/@sinclair/typebox/build/cjs/value/index.js +0 -53
  1770. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/index.d.ts +0 -1
  1771. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/index.js +0 -18
  1772. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/mutate.d.ts +0 -9
  1773. package/node_modules/@sinclair/typebox/build/cjs/value/mutate/mutate.js +0 -104
  1774. package/node_modules/@sinclair/typebox/build/cjs/value/parse/index.d.ts +0 -1
  1775. package/node_modules/@sinclair/typebox/build/cjs/value/parse/index.js +0 -18
  1776. package/node_modules/@sinclair/typebox/build/cjs/value/parse/parse.d.ts +0 -22
  1777. package/node_modules/@sinclair/typebox/build/cjs/value/parse/parse.js +0 -87
  1778. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/index.d.ts +0 -1
  1779. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/index.js +0 -38
  1780. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/pointer.d.ts +0 -22
  1781. package/node_modules/@sinclair/typebox/build/cjs/value/pointer/pointer.js +0 -126
  1782. package/node_modules/@sinclair/typebox/build/cjs/value/transform/decode.d.ts +0 -22
  1783. package/node_modules/@sinclair/typebox/build/cjs/value/transform/decode.js +0 -214
  1784. package/node_modules/@sinclair/typebox/build/cjs/value/transform/encode.d.ts +0 -23
  1785. package/node_modules/@sinclair/typebox/build/cjs/value/transform/encode.js +0 -225
  1786. package/node_modules/@sinclair/typebox/build/cjs/value/transform/has.d.ts +0 -3
  1787. package/node_modules/@sinclair/typebox/build/cjs/value/transform/has.js +0 -133
  1788. package/node_modules/@sinclair/typebox/build/cjs/value/transform/index.d.ts +0 -3
  1789. package/node_modules/@sinclair/typebox/build/cjs/value/transform/index.js +0 -20
  1790. package/node_modules/@sinclair/typebox/build/cjs/value/value/index.d.ts +0 -1
  1791. package/node_modules/@sinclair/typebox/build/cjs/value/value/index.js +0 -38
  1792. package/node_modules/@sinclair/typebox/build/cjs/value/value/value.d.ts +0 -16
  1793. package/node_modules/@sinclair/typebox/build/cjs/value/value/value.js +0 -39
  1794. package/node_modules/@sinclair/typebox/build/esm/compiler/compiler.d.mts +0 -55
  1795. package/node_modules/@sinclair/typebox/build/esm/compiler/compiler.mjs +0 -663
  1796. package/node_modules/@sinclair/typebox/build/esm/compiler/index.d.mts +0 -2
  1797. package/node_modules/@sinclair/typebox/build/esm/compiler/index.mjs +0 -2
  1798. package/node_modules/@sinclair/typebox/build/esm/errors/errors.d.mts +0 -91
  1799. package/node_modules/@sinclair/typebox/build/esm/errors/errors.mjs +0 -592
  1800. package/node_modules/@sinclair/typebox/build/esm/errors/function.d.mts +0 -21
  1801. package/node_modules/@sinclair/typebox/build/esm/errors/function.mjs +0 -147
  1802. package/node_modules/@sinclair/typebox/build/esm/errors/index.d.mts +0 -2
  1803. package/node_modules/@sinclair/typebox/build/esm/errors/index.mjs +0 -2
  1804. package/node_modules/@sinclair/typebox/build/esm/index.d.mts +0 -71
  1805. package/node_modules/@sinclair/typebox/build/esm/index.mjs +0 -80
  1806. package/node_modules/@sinclair/typebox/build/esm/parser/index.d.mts +0 -2
  1807. package/node_modules/@sinclair/typebox/build/esm/parser/index.mjs +0 -2
  1808. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/guard.d.mts +0 -23
  1809. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/guard.mjs +0 -72
  1810. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/index.d.mts +0 -5
  1811. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/index.mjs +0 -5
  1812. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/module.d.mts +0 -9
  1813. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/module.mjs +0 -17
  1814. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/parse.d.mts +0 -9
  1815. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/parse.mjs +0 -123
  1816. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/token.d.mts +0 -8
  1817. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/token.mjs +0 -223
  1818. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/types.d.mts +0 -98
  1819. package/node_modules/@sinclair/typebox/build/esm/parser/runtime/types.mjs +0 -55
  1820. package/node_modules/@sinclair/typebox/build/esm/parser/static/index.d.mts +0 -3
  1821. package/node_modules/@sinclair/typebox/build/esm/parser/static/index.mjs +0 -3
  1822. package/node_modules/@sinclair/typebox/build/esm/parser/static/parse.d.mts +0 -20
  1823. package/node_modules/@sinclair/typebox/build/esm/parser/static/parse.mjs +0 -1
  1824. package/node_modules/@sinclair/typebox/build/esm/parser/static/token.d.mts +0 -108
  1825. package/node_modules/@sinclair/typebox/build/esm/parser/static/token.mjs +0 -1
  1826. package/node_modules/@sinclair/typebox/build/esm/parser/static/types.d.mts +0 -69
  1827. package/node_modules/@sinclair/typebox/build/esm/parser/static/types.mjs +0 -1
  1828. package/node_modules/@sinclair/typebox/build/esm/syntax/index.d.mts +0 -1
  1829. package/node_modules/@sinclair/typebox/build/esm/syntax/index.mjs +0 -1
  1830. package/node_modules/@sinclair/typebox/build/esm/syntax/mapping.d.mts +0 -167
  1831. package/node_modules/@sinclair/typebox/build/esm/syntax/mapping.mjs +0 -386
  1832. package/node_modules/@sinclair/typebox/build/esm/syntax/parser.d.mts +0 -162
  1833. package/node_modules/@sinclair/typebox/build/esm/syntax/parser.mjs +0 -78
  1834. package/node_modules/@sinclair/typebox/build/esm/syntax/syntax.d.mts +0 -12
  1835. package/node_modules/@sinclair/typebox/build/esm/syntax/syntax.mjs +0 -16
  1836. package/node_modules/@sinclair/typebox/build/esm/system/index.d.mts +0 -2
  1837. package/node_modules/@sinclair/typebox/build/esm/system/index.mjs +0 -2
  1838. package/node_modules/@sinclair/typebox/build/esm/system/policy.d.mts +0 -29
  1839. package/node_modules/@sinclair/typebox/build/esm/system/policy.mjs +0 -54
  1840. package/node_modules/@sinclair/typebox/build/esm/system/system.d.mts +0 -16
  1841. package/node_modules/@sinclair/typebox/build/esm/system/system.mjs +0 -37
  1842. package/node_modules/@sinclair/typebox/build/esm/type/any/any.d.mts +0 -8
  1843. package/node_modules/@sinclair/typebox/build/esm/type/any/any.mjs +0 -6
  1844. package/node_modules/@sinclair/typebox/build/esm/type/any/index.d.mts +0 -1
  1845. package/node_modules/@sinclair/typebox/build/esm/type/any/index.mjs +0 -1
  1846. package/node_modules/@sinclair/typebox/build/esm/type/argument/argument.d.mts +0 -9
  1847. package/node_modules/@sinclair/typebox/build/esm/type/argument/argument.mjs +0 -6
  1848. package/node_modules/@sinclair/typebox/build/esm/type/argument/index.d.mts +0 -1
  1849. package/node_modules/@sinclair/typebox/build/esm/type/argument/index.mjs +0 -1
  1850. package/node_modules/@sinclair/typebox/build/esm/type/array/array.d.mts +0 -28
  1851. package/node_modules/@sinclair/typebox/build/esm/type/array/array.mjs +0 -6
  1852. package/node_modules/@sinclair/typebox/build/esm/type/array/index.d.mts +0 -1
  1853. package/node_modules/@sinclair/typebox/build/esm/type/array/index.mjs +0 -1
  1854. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.d.mts +0 -11
  1855. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/async-iterator.mjs +0 -6
  1856. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.d.mts +0 -1
  1857. package/node_modules/@sinclair/typebox/build/esm/type/async-iterator/index.mjs +0 -1
  1858. package/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.d.mts +0 -14
  1859. package/node_modules/@sinclair/typebox/build/esm/type/awaited/awaited.mjs +0 -37
  1860. package/node_modules/@sinclair/typebox/build/esm/type/awaited/index.d.mts +0 -1
  1861. package/node_modules/@sinclair/typebox/build/esm/type/awaited/index.mjs +0 -1
  1862. package/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.d.mts +0 -16
  1863. package/node_modules/@sinclair/typebox/build/esm/type/bigint/bigint.mjs +0 -6
  1864. package/node_modules/@sinclair/typebox/build/esm/type/bigint/index.d.mts +0 -1
  1865. package/node_modules/@sinclair/typebox/build/esm/type/bigint/index.mjs +0 -1
  1866. package/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.d.mts +0 -9
  1867. package/node_modules/@sinclair/typebox/build/esm/type/boolean/boolean.mjs +0 -6
  1868. package/node_modules/@sinclair/typebox/build/esm/type/boolean/index.d.mts +0 -1
  1869. package/node_modules/@sinclair/typebox/build/esm/type/boolean/index.mjs +0 -1
  1870. package/node_modules/@sinclair/typebox/build/esm/type/clone/index.d.mts +0 -2
  1871. package/node_modules/@sinclair/typebox/build/esm/type/clone/index.mjs +0 -2
  1872. package/node_modules/@sinclair/typebox/build/esm/type/clone/type.d.mts +0 -5
  1873. package/node_modules/@sinclair/typebox/build/esm/type/clone/type.mjs +0 -9
  1874. package/node_modules/@sinclair/typebox/build/esm/type/clone/value.d.mts +0 -2
  1875. package/node_modules/@sinclair/typebox/build/esm/type/clone/value.mjs +0 -36
  1876. package/node_modules/@sinclair/typebox/build/esm/type/composite/composite.d.mts +0 -18
  1877. package/node_modules/@sinclair/typebox/build/esm/type/composite/composite.mjs +0 -42
  1878. package/node_modules/@sinclair/typebox/build/esm/type/composite/index.d.mts +0 -1
  1879. package/node_modules/@sinclair/typebox/build/esm/type/composite/index.mjs +0 -1
  1880. package/node_modules/@sinclair/typebox/build/esm/type/computed/computed.d.mts +0 -9
  1881. package/node_modules/@sinclair/typebox/build/esm/type/computed/computed.mjs +0 -6
  1882. package/node_modules/@sinclair/typebox/build/esm/type/computed/index.d.mts +0 -1
  1883. package/node_modules/@sinclair/typebox/build/esm/type/computed/index.mjs +0 -1
  1884. package/node_modules/@sinclair/typebox/build/esm/type/const/const.d.mts +0 -27
  1885. package/node_modules/@sinclair/typebox/build/esm/type/const/const.mjs +0 -54
  1886. package/node_modules/@sinclair/typebox/build/esm/type/const/index.d.mts +0 -1
  1887. package/node_modules/@sinclair/typebox/build/esm/type/const/index.mjs +0 -1
  1888. package/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.d.mts +0 -23
  1889. package/node_modules/@sinclair/typebox/build/esm/type/constructor/constructor.mjs +0 -6
  1890. package/node_modules/@sinclair/typebox/build/esm/type/constructor/index.d.mts +0 -1
  1891. package/node_modules/@sinclair/typebox/build/esm/type/constructor/index.mjs +0 -1
  1892. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.d.mts +0 -7
  1893. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/constructor-parameters.mjs +0 -7
  1894. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.d.mts +0 -1
  1895. package/node_modules/@sinclair/typebox/build/esm/type/constructor-parameters/index.mjs +0 -1
  1896. package/node_modules/@sinclair/typebox/build/esm/type/create/immutable.d.mts +0 -2
  1897. package/node_modules/@sinclair/typebox/build/esm/type/create/immutable.mjs +0 -33
  1898. package/node_modules/@sinclair/typebox/build/esm/type/create/index.d.mts +0 -1
  1899. package/node_modules/@sinclair/typebox/build/esm/type/create/index.mjs +0 -1
  1900. package/node_modules/@sinclair/typebox/build/esm/type/create/type.d.mts +0 -3
  1901. package/node_modules/@sinclair/typebox/build/esm/type/create/type.mjs +0 -15
  1902. package/node_modules/@sinclair/typebox/build/esm/type/date/date.d.mts +0 -21
  1903. package/node_modules/@sinclair/typebox/build/esm/type/date/date.mjs +0 -6
  1904. package/node_modules/@sinclair/typebox/build/esm/type/date/index.d.mts +0 -1
  1905. package/node_modules/@sinclair/typebox/build/esm/type/date/index.mjs +0 -1
  1906. package/node_modules/@sinclair/typebox/build/esm/type/discard/discard.d.mts +0 -2
  1907. package/node_modules/@sinclair/typebox/build/esm/type/discard/discard.mjs +0 -8
  1908. package/node_modules/@sinclair/typebox/build/esm/type/discard/index.d.mts +0 -1
  1909. package/node_modules/@sinclair/typebox/build/esm/type/discard/index.mjs +0 -1
  1910. package/node_modules/@sinclair/typebox/build/esm/type/enum/enum.d.mts +0 -14
  1911. package/node_modules/@sinclair/typebox/build/esm/type/enum/enum.mjs +0 -18
  1912. package/node_modules/@sinclair/typebox/build/esm/type/enum/index.d.mts +0 -1
  1913. package/node_modules/@sinclair/typebox/build/esm/type/enum/index.mjs +0 -1
  1914. package/node_modules/@sinclair/typebox/build/esm/type/error/error.d.mts +0 -4
  1915. package/node_modules/@sinclair/typebox/build/esm/type/error/error.mjs +0 -6
  1916. package/node_modules/@sinclair/typebox/build/esm/type/error/index.d.mts +0 -1
  1917. package/node_modules/@sinclair/typebox/build/esm/type/error/index.mjs +0 -1
  1918. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.d.mts +0 -11
  1919. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-mapped-result.mjs +0 -18
  1920. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.d.mts +0 -5
  1921. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude-from-template-literal.mjs +0 -5
  1922. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.d.mts +0 -21
  1923. package/node_modules/@sinclair/typebox/build/esm/type/exclude/exclude.mjs +0 -25
  1924. package/node_modules/@sinclair/typebox/build/esm/type/exclude/index.d.mts +0 -3
  1925. package/node_modules/@sinclair/typebox/build/esm/type/exclude/index.mjs +0 -3
  1926. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.d.mts +0 -10
  1927. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-check.mjs +0 -635
  1928. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.d.mts +0 -14
  1929. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-key.mjs +0 -25
  1930. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.d.mts +0 -11
  1931. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-from-mapped-result.mjs +0 -19
  1932. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.d.mts +0 -3
  1933. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends-undefined.mjs +0 -20
  1934. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends.d.mts +0 -16
  1935. package/node_modules/@sinclair/typebox/build/esm/type/extends/extends.mjs +0 -23
  1936. package/node_modules/@sinclair/typebox/build/esm/type/extends/index.d.mts +0 -5
  1937. package/node_modules/@sinclair/typebox/build/esm/type/extends/index.mjs +0 -5
  1938. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.d.mts +0 -11
  1939. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-mapped-result.mjs +0 -18
  1940. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.d.mts +0 -5
  1941. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract-from-template-literal.mjs +0 -5
  1942. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract.d.mts +0 -21
  1943. package/node_modules/@sinclair/typebox/build/esm/type/extract/extract.mjs +0 -25
  1944. package/node_modules/@sinclair/typebox/build/esm/type/extract/index.d.mts +0 -3
  1945. package/node_modules/@sinclair/typebox/build/esm/type/extract/index.mjs +0 -3
  1946. package/node_modules/@sinclair/typebox/build/esm/type/function/function.d.mts +0 -23
  1947. package/node_modules/@sinclair/typebox/build/esm/type/function/function.mjs +0 -6
  1948. package/node_modules/@sinclair/typebox/build/esm/type/function/index.d.mts +0 -1
  1949. package/node_modules/@sinclair/typebox/build/esm/type/function/index.mjs +0 -1
  1950. package/node_modules/@sinclair/typebox/build/esm/type/guard/index.d.mts +0 -3
  1951. package/node_modules/@sinclair/typebox/build/esm/type/guard/index.mjs +0 -3
  1952. package/node_modules/@sinclair/typebox/build/esm/type/guard/kind.d.mts +0 -147
  1953. package/node_modules/@sinclair/typebox/build/esm/type/guard/kind.mjs +0 -235
  1954. package/node_modules/@sinclair/typebox/build/esm/type/guard/type.d.mts +0 -152
  1955. package/node_modules/@sinclair/typebox/build/esm/type/guard/type.mjs +0 -509
  1956. package/node_modules/@sinclair/typebox/build/esm/type/guard/value.d.mts +0 -34
  1957. package/node_modules/@sinclair/typebox/build/esm/type/guard/value.mjs +0 -70
  1958. package/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.d.mts +0 -42
  1959. package/node_modules/@sinclair/typebox/build/esm/type/helpers/helpers.mjs +0 -4
  1960. package/node_modules/@sinclair/typebox/build/esm/type/helpers/index.d.mts +0 -1
  1961. package/node_modules/@sinclair/typebox/build/esm/type/helpers/index.mjs +0 -1
  1962. package/node_modules/@sinclair/typebox/build/esm/type/index.d.mts +0 -71
  1963. package/node_modules/@sinclair/typebox/build/esm/type/index.mjs +0 -71
  1964. package/node_modules/@sinclair/typebox/build/esm/type/indexed/index.d.mts +0 -4
  1965. package/node_modules/@sinclair/typebox/build/esm/type/indexed/index.mjs +0 -4
  1966. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.d.mts +0 -13
  1967. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-key.mjs +0 -22
  1968. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.d.mts +0 -12
  1969. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-from-mapped-result.mjs +0 -20
  1970. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.d.mts +0 -14
  1971. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed-property-keys.mjs +0 -32
  1972. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.d.mts +0 -52
  1973. package/node_modules/@sinclair/typebox/build/esm/type/indexed/indexed.mjs +0 -91
  1974. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.d.mts +0 -1
  1975. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/index.mjs +0 -1
  1976. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.d.mts +0 -6
  1977. package/node_modules/@sinclair/typebox/build/esm/type/instance-type/instance-type.mjs +0 -7
  1978. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.d.mts +0 -1
  1979. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/index.mjs +0 -1
  1980. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.d.mts +0 -50
  1981. package/node_modules/@sinclair/typebox/build/esm/type/instantiate/instantiate.mjs +0 -115
  1982. package/node_modules/@sinclair/typebox/build/esm/type/integer/index.d.mts +0 -1
  1983. package/node_modules/@sinclair/typebox/build/esm/type/integer/index.mjs +0 -1
  1984. package/node_modules/@sinclair/typebox/build/esm/type/integer/integer.d.mts +0 -16
  1985. package/node_modules/@sinclair/typebox/build/esm/type/integer/integer.mjs +0 -6
  1986. package/node_modules/@sinclair/typebox/build/esm/type/intersect/index.d.mts +0 -3
  1987. package/node_modules/@sinclair/typebox/build/esm/type/intersect/index.mjs +0 -3
  1988. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.d.mts +0 -3
  1989. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-create.mjs +0 -19
  1990. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.d.mts +0 -13
  1991. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-evaluated.mjs +0 -38
  1992. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.d.mts +0 -15
  1993. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect-type.mjs +0 -1
  1994. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.d.mts +0 -6
  1995. package/node_modules/@sinclair/typebox/build/esm/type/intersect/intersect.mjs +0 -17
  1996. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.d.mts +0 -5
  1997. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/capitalize.mjs +0 -5
  1998. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.d.mts +0 -6
  1999. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/index.mjs +0 -6
  2000. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.d.mts +0 -14
  2001. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic-from-mapped-key.mjs +0 -26
  2002. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.d.mts +0 -16
  2003. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/intrinsic.mjs +0 -64
  2004. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.d.mts +0 -5
  2005. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/lowercase.mjs +0 -5
  2006. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.d.mts +0 -5
  2007. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uncapitalize.mjs +0 -5
  2008. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.d.mts +0 -5
  2009. package/node_modules/@sinclair/typebox/build/esm/type/intrinsic/uppercase.mjs +0 -5
  2010. package/node_modules/@sinclair/typebox/build/esm/type/iterator/index.d.mts +0 -1
  2011. package/node_modules/@sinclair/typebox/build/esm/type/iterator/index.mjs +0 -1
  2012. package/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.d.mts +0 -11
  2013. package/node_modules/@sinclair/typebox/build/esm/type/iterator/iterator.mjs +0 -6
  2014. package/node_modules/@sinclair/typebox/build/esm/type/keyof/index.d.mts +0 -4
  2015. package/node_modules/@sinclair/typebox/build/esm/type/keyof/index.mjs +0 -4
  2016. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.d.mts +0 -12
  2017. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-from-mapped-result.mjs +0 -19
  2018. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.d.mts +0 -7
  2019. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-entries.mjs +0 -12
  2020. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.d.mts +0 -24
  2021. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof-property-keys.mjs +0 -73
  2022. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.d.mts +0 -21
  2023. package/node_modules/@sinclair/typebox/build/esm/type/keyof/keyof.mjs +0 -35
  2024. package/node_modules/@sinclair/typebox/build/esm/type/literal/index.d.mts +0 -1
  2025. package/node_modules/@sinclair/typebox/build/esm/type/literal/index.mjs +0 -1
  2026. package/node_modules/@sinclair/typebox/build/esm/type/literal/literal.d.mts +0 -10
  2027. package/node_modules/@sinclair/typebox/build/esm/type/literal/literal.mjs +0 -10
  2028. package/node_modules/@sinclair/typebox/build/esm/type/mapped/index.d.mts +0 -3
  2029. package/node_modules/@sinclair/typebox/build/esm/type/mapped/index.mjs +0 -3
  2030. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.d.mts +0 -8
  2031. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-key.mjs +0 -9
  2032. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.d.mts +0 -9
  2033. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped-result.mjs +0 -9
  2034. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.d.mts +0 -47
  2035. package/node_modules/@sinclair/typebox/build/esm/type/mapped/mapped.mjs +0 -102
  2036. package/node_modules/@sinclair/typebox/build/esm/type/module/compute.d.mts +0 -59
  2037. package/node_modules/@sinclair/typebox/build/esm/type/module/compute.mjs +0 -166
  2038. package/node_modules/@sinclair/typebox/build/esm/type/module/index.d.mts +0 -1
  2039. package/node_modules/@sinclair/typebox/build/esm/type/module/index.mjs +0 -1
  2040. package/node_modules/@sinclair/typebox/build/esm/type/module/infer.d.mts +0 -49
  2041. package/node_modules/@sinclair/typebox/build/esm/type/module/infer.mjs +0 -1
  2042. package/node_modules/@sinclair/typebox/build/esm/type/module/module.d.mts +0 -27
  2043. package/node_modules/@sinclair/typebox/build/esm/type/module/module.mjs +0 -32
  2044. package/node_modules/@sinclair/typebox/build/esm/type/never/index.d.mts +0 -1
  2045. package/node_modules/@sinclair/typebox/build/esm/type/never/index.mjs +0 -1
  2046. package/node_modules/@sinclair/typebox/build/esm/type/never/never.d.mts +0 -9
  2047. package/node_modules/@sinclair/typebox/build/esm/type/never/never.mjs +0 -6
  2048. package/node_modules/@sinclair/typebox/build/esm/type/not/index.d.mts +0 -1
  2049. package/node_modules/@sinclair/typebox/build/esm/type/not/index.mjs +0 -1
  2050. package/node_modules/@sinclair/typebox/build/esm/type/not/not.d.mts +0 -10
  2051. package/node_modules/@sinclair/typebox/build/esm/type/not/not.mjs +0 -6
  2052. package/node_modules/@sinclair/typebox/build/esm/type/null/index.d.mts +0 -1
  2053. package/node_modules/@sinclair/typebox/build/esm/type/null/index.mjs +0 -1
  2054. package/node_modules/@sinclair/typebox/build/esm/type/null/null.d.mts +0 -9
  2055. package/node_modules/@sinclair/typebox/build/esm/type/null/null.mjs +0 -6
  2056. package/node_modules/@sinclair/typebox/build/esm/type/number/index.d.mts +0 -1
  2057. package/node_modules/@sinclair/typebox/build/esm/type/number/index.mjs +0 -1
  2058. package/node_modules/@sinclair/typebox/build/esm/type/number/number.d.mts +0 -16
  2059. package/node_modules/@sinclair/typebox/build/esm/type/number/number.mjs +0 -6
  2060. package/node_modules/@sinclair/typebox/build/esm/type/object/index.d.mts +0 -1
  2061. package/node_modules/@sinclair/typebox/build/esm/type/object/index.mjs +0 -1
  2062. package/node_modules/@sinclair/typebox/build/esm/type/object/object.d.mts +0 -51
  2063. package/node_modules/@sinclair/typebox/build/esm/type/object/object.mjs +0 -18
  2064. package/node_modules/@sinclair/typebox/build/esm/type/omit/index.d.mts +0 -3
  2065. package/node_modules/@sinclair/typebox/build/esm/type/omit/index.mjs +0 -3
  2066. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.d.mts +0 -12
  2067. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-key.mjs +0 -22
  2068. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.d.mts +0 -12
  2069. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit-from-mapped-result.mjs +0 -19
  2070. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit.d.mts +0 -36
  2071. package/node_modules/@sinclair/typebox/build/esm/type/omit/omit.mjs +0 -71
  2072. package/node_modules/@sinclair/typebox/build/esm/type/optional/index.d.mts +0 -2
  2073. package/node_modules/@sinclair/typebox/build/esm/type/optional/index.mjs +0 -2
  2074. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.d.mts +0 -10
  2075. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional-from-mapped-result.mjs +0 -18
  2076. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional.d.mts +0 -20
  2077. package/node_modules/@sinclair/typebox/build/esm/type/optional/optional.mjs +0 -22
  2078. package/node_modules/@sinclair/typebox/build/esm/type/parameters/index.d.mts +0 -1
  2079. package/node_modules/@sinclair/typebox/build/esm/type/parameters/index.mjs +0 -1
  2080. package/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.d.mts +0 -7
  2081. package/node_modules/@sinclair/typebox/build/esm/type/parameters/parameters.mjs +0 -7
  2082. package/node_modules/@sinclair/typebox/build/esm/type/partial/index.d.mts +0 -2
  2083. package/node_modules/@sinclair/typebox/build/esm/type/partial/index.mjs +0 -2
  2084. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.d.mts +0 -12
  2085. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial-from-mapped-result.mjs +0 -19
  2086. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial.d.mts +0 -35
  2087. package/node_modules/@sinclair/typebox/build/esm/type/partial/partial.mjs +0 -74
  2088. package/node_modules/@sinclair/typebox/build/esm/type/patterns/index.d.mts +0 -1
  2089. package/node_modules/@sinclair/typebox/build/esm/type/patterns/index.mjs +0 -1
  2090. package/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.d.mts +0 -8
  2091. package/node_modules/@sinclair/typebox/build/esm/type/patterns/patterns.mjs +0 -8
  2092. package/node_modules/@sinclair/typebox/build/esm/type/pick/index.d.mts +0 -3
  2093. package/node_modules/@sinclair/typebox/build/esm/type/pick/index.mjs +0 -3
  2094. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.d.mts +0 -12
  2095. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-key.mjs +0 -24
  2096. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.d.mts +0 -12
  2097. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick-from-mapped-result.mjs +0 -19
  2098. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick.d.mts +0 -36
  2099. package/node_modules/@sinclair/typebox/build/esm/type/pick/pick.mjs +0 -66
  2100. package/node_modules/@sinclair/typebox/build/esm/type/promise/index.d.mts +0 -1
  2101. package/node_modules/@sinclair/typebox/build/esm/type/promise/index.mjs +0 -1
  2102. package/node_modules/@sinclair/typebox/build/esm/type/promise/promise.d.mts +0 -11
  2103. package/node_modules/@sinclair/typebox/build/esm/type/promise/promise.mjs +0 -6
  2104. package/node_modules/@sinclair/typebox/build/esm/type/readonly/index.d.mts +0 -2
  2105. package/node_modules/@sinclair/typebox/build/esm/type/readonly/index.mjs +0 -2
  2106. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.d.mts +0 -10
  2107. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly-from-mapped-result.mjs +0 -18
  2108. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.d.mts +0 -20
  2109. package/node_modules/@sinclair/typebox/build/esm/type/readonly/readonly.mjs +0 -22
  2110. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.d.mts +0 -1
  2111. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/index.mjs +0 -1
  2112. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.d.mts +0 -6
  2113. package/node_modules/@sinclair/typebox/build/esm/type/readonly-optional/readonly-optional.mjs +0 -6
  2114. package/node_modules/@sinclair/typebox/build/esm/type/record/index.d.mts +0 -1
  2115. package/node_modules/@sinclair/typebox/build/esm/type/record/index.mjs +0 -1
  2116. package/node_modules/@sinclair/typebox/build/esm/type/record/record.d.mts +0 -71
  2117. package/node_modules/@sinclair/typebox/build/esm/type/record/record.mjs +0 -116
  2118. package/node_modules/@sinclair/typebox/build/esm/type/recursive/index.d.mts +0 -1
  2119. package/node_modules/@sinclair/typebox/build/esm/type/recursive/index.mjs +0 -1
  2120. package/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.d.mts +0 -16
  2121. package/node_modules/@sinclair/typebox/build/esm/type/recursive/recursive.mjs +0 -15
  2122. package/node_modules/@sinclair/typebox/build/esm/type/ref/index.d.mts +0 -1
  2123. package/node_modules/@sinclair/typebox/build/esm/type/ref/index.mjs +0 -1
  2124. package/node_modules/@sinclair/typebox/build/esm/type/ref/ref.d.mts +0 -41
  2125. package/node_modules/@sinclair/typebox/build/esm/type/ref/ref.mjs +0 -10
  2126. package/node_modules/@sinclair/typebox/build/esm/type/regexp/index.d.mts +0 -1
  2127. package/node_modules/@sinclair/typebox/build/esm/type/regexp/index.mjs +0 -1
  2128. package/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.d.mts +0 -20
  2129. package/node_modules/@sinclair/typebox/build/esm/type/regexp/regexp.mjs +0 -8
  2130. package/node_modules/@sinclair/typebox/build/esm/type/registry/format.d.mts +0 -13
  2131. package/node_modules/@sinclair/typebox/build/esm/type/registry/format.mjs +0 -26
  2132. package/node_modules/@sinclair/typebox/build/esm/type/registry/index.d.mts +0 -2
  2133. package/node_modules/@sinclair/typebox/build/esm/type/registry/index.mjs +0 -2
  2134. package/node_modules/@sinclair/typebox/build/esm/type/registry/type.d.mts +0 -13
  2135. package/node_modules/@sinclair/typebox/build/esm/type/registry/type.mjs +0 -26
  2136. package/node_modules/@sinclair/typebox/build/esm/type/required/index.d.mts +0 -2
  2137. package/node_modules/@sinclair/typebox/build/esm/type/required/index.mjs +0 -2
  2138. package/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.d.mts +0 -12
  2139. package/node_modules/@sinclair/typebox/build/esm/type/required/required-from-mapped-result.mjs +0 -18
  2140. package/node_modules/@sinclair/typebox/build/esm/type/required/required.d.mts +0 -35
  2141. package/node_modules/@sinclair/typebox/build/esm/type/required/required.mjs +0 -73
  2142. package/node_modules/@sinclair/typebox/build/esm/type/rest/index.d.mts +0 -1
  2143. package/node_modules/@sinclair/typebox/build/esm/type/rest/index.mjs +0 -1
  2144. package/node_modules/@sinclair/typebox/build/esm/type/rest/rest.d.mts +0 -10
  2145. package/node_modules/@sinclair/typebox/build/esm/type/rest/rest.mjs +0 -15
  2146. package/node_modules/@sinclair/typebox/build/esm/type/return-type/index.d.mts +0 -1
  2147. package/node_modules/@sinclair/typebox/build/esm/type/return-type/index.mjs +0 -1
  2148. package/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.d.mts +0 -6
  2149. package/node_modules/@sinclair/typebox/build/esm/type/return-type/return-type.mjs +0 -7
  2150. package/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.d.mts +0 -33
  2151. package/node_modules/@sinclair/typebox/build/esm/type/schema/anyschema.mjs +0 -1
  2152. package/node_modules/@sinclair/typebox/build/esm/type/schema/index.d.mts +0 -2
  2153. package/node_modules/@sinclair/typebox/build/esm/type/schema/index.mjs +0 -2
  2154. package/node_modules/@sinclair/typebox/build/esm/type/schema/schema.d.mts +0 -29
  2155. package/node_modules/@sinclair/typebox/build/esm/type/schema/schema.mjs +0 -1
  2156. package/node_modules/@sinclair/typebox/build/esm/type/sets/index.d.mts +0 -1
  2157. package/node_modules/@sinclair/typebox/build/esm/type/sets/index.mjs +0 -1
  2158. package/node_modules/@sinclair/typebox/build/esm/type/sets/set.d.mts +0 -28
  2159. package/node_modules/@sinclair/typebox/build/esm/type/sets/set.mjs +0 -48
  2160. package/node_modules/@sinclair/typebox/build/esm/type/static/index.d.mts +0 -1
  2161. package/node_modules/@sinclair/typebox/build/esm/type/static/index.mjs +0 -1
  2162. package/node_modules/@sinclair/typebox/build/esm/type/static/static.d.mts +0 -39
  2163. package/node_modules/@sinclair/typebox/build/esm/type/static/static.mjs +0 -1
  2164. package/node_modules/@sinclair/typebox/build/esm/type/string/index.d.mts +0 -1
  2165. package/node_modules/@sinclair/typebox/build/esm/type/string/index.mjs +0 -1
  2166. package/node_modules/@sinclair/typebox/build/esm/type/string/string.d.mts +0 -25
  2167. package/node_modules/@sinclair/typebox/build/esm/type/string/string.mjs +0 -6
  2168. package/node_modules/@sinclair/typebox/build/esm/type/symbol/index.d.mts +0 -1
  2169. package/node_modules/@sinclair/typebox/build/esm/type/symbol/index.mjs +0 -1
  2170. package/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.d.mts +0 -10
  2171. package/node_modules/@sinclair/typebox/build/esm/type/symbol/symbol.mjs +0 -6
  2172. package/node_modules/@sinclair/typebox/build/esm/type/symbols/index.d.mts +0 -1
  2173. package/node_modules/@sinclair/typebox/build/esm/type/symbols/index.mjs +0 -1
  2174. package/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.d.mts +0 -10
  2175. package/node_modules/@sinclair/typebox/build/esm/type/symbols/symbols.mjs +0 -10
  2176. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.d.mts +0 -19
  2177. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/finite.mjs +0 -49
  2178. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.d.mts +0 -21
  2179. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/generate.mjs +0 -53
  2180. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.d.mts +0 -7
  2181. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/index.mjs +0 -7
  2182. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.d.mts +0 -20
  2183. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/parse.mjs +0 -167
  2184. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.d.mts +0 -5
  2185. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/pattern.mjs +0 -33
  2186. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.d.mts +0 -20
  2187. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/syntax.mjs +0 -55
  2188. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.d.mts +0 -30
  2189. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/template-literal.mjs +0 -13
  2190. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.d.mts +0 -9
  2191. package/node_modules/@sinclair/typebox/build/esm/type/template-literal/union.mjs +0 -9
  2192. package/node_modules/@sinclair/typebox/build/esm/type/transform/index.d.mts +0 -1
  2193. package/node_modules/@sinclair/typebox/build/esm/type/transform/index.mjs +0 -1
  2194. package/node_modules/@sinclair/typebox/build/esm/type/transform/transform.d.mts +0 -30
  2195. package/node_modules/@sinclair/typebox/build/esm/type/transform/transform.mjs +0 -40
  2196. package/node_modules/@sinclair/typebox/build/esm/type/tuple/index.d.mts +0 -1
  2197. package/node_modules/@sinclair/typebox/build/esm/type/tuple/index.mjs +0 -1
  2198. package/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.d.mts +0 -16
  2199. package/node_modules/@sinclair/typebox/build/esm/type/tuple/tuple.mjs +0 -9
  2200. package/node_modules/@sinclair/typebox/build/esm/type/type/index.d.mts +0 -6
  2201. package/node_modules/@sinclair/typebox/build/esm/type/type/index.mjs +0 -13
  2202. package/node_modules/@sinclair/typebox/build/esm/type/type/javascript.d.mts +0 -64
  2203. package/node_modules/@sinclair/typebox/build/esm/type/type/javascript.mjs +0 -99
  2204. package/node_modules/@sinclair/typebox/build/esm/type/type/json.d.mts +0 -208
  2205. package/node_modules/@sinclair/typebox/build/esm/type/type/json.mjs +0 -221
  2206. package/node_modules/@sinclair/typebox/build/esm/type/type/type.d.mts +0 -59
  2207. package/node_modules/@sinclair/typebox/build/esm/type/type/type.mjs +0 -62
  2208. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.d.mts +0 -1
  2209. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/index.mjs +0 -1
  2210. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.d.mts +0 -13
  2211. package/node_modules/@sinclair/typebox/build/esm/type/uint8array/uint8array.mjs +0 -6
  2212. package/node_modules/@sinclair/typebox/build/esm/type/undefined/index.d.mts +0 -1
  2213. package/node_modules/@sinclair/typebox/build/esm/type/undefined/index.mjs +0 -1
  2214. package/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.d.mts +0 -9
  2215. package/node_modules/@sinclair/typebox/build/esm/type/undefined/undefined.mjs +0 -6
  2216. package/node_modules/@sinclair/typebox/build/esm/type/union/index.d.mts +0 -3
  2217. package/node_modules/@sinclair/typebox/build/esm/type/union/index.mjs +0 -3
  2218. package/node_modules/@sinclair/typebox/build/esm/type/union/union-create.d.mts +0 -3
  2219. package/node_modules/@sinclair/typebox/build/esm/type/union/union-create.mjs +0 -5
  2220. package/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.d.mts +0 -13
  2221. package/node_modules/@sinclair/typebox/build/esm/type/union/union-evaluated.mjs +0 -36
  2222. package/node_modules/@sinclair/typebox/build/esm/type/union/union-type.d.mts +0 -12
  2223. package/node_modules/@sinclair/typebox/build/esm/type/union/union-type.mjs +0 -1
  2224. package/node_modules/@sinclair/typebox/build/esm/type/union/union.d.mts +0 -6
  2225. package/node_modules/@sinclair/typebox/build/esm/type/union/union.mjs +0 -10
  2226. package/node_modules/@sinclair/typebox/build/esm/type/unknown/index.d.mts +0 -1
  2227. package/node_modules/@sinclair/typebox/build/esm/type/unknown/index.mjs +0 -1
  2228. package/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.d.mts +0 -8
  2229. package/node_modules/@sinclair/typebox/build/esm/type/unknown/unknown.mjs +0 -6
  2230. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.d.mts +0 -1
  2231. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/index.mjs +0 -1
  2232. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.d.mts +0 -11
  2233. package/node_modules/@sinclair/typebox/build/esm/type/unsafe/unsafe.mjs +0 -6
  2234. package/node_modules/@sinclair/typebox/build/esm/type/void/index.d.mts +0 -1
  2235. package/node_modules/@sinclair/typebox/build/esm/type/void/index.mjs +0 -1
  2236. package/node_modules/@sinclair/typebox/build/esm/type/void/void.d.mts +0 -9
  2237. package/node_modules/@sinclair/typebox/build/esm/type/void/void.mjs +0 -6
  2238. package/node_modules/@sinclair/typebox/build/esm/value/assert/assert.d.mts +0 -15
  2239. package/node_modules/@sinclair/typebox/build/esm/value/assert/assert.mjs +0 -49
  2240. package/node_modules/@sinclair/typebox/build/esm/value/assert/index.d.mts +0 -1
  2241. package/node_modules/@sinclair/typebox/build/esm/value/assert/index.mjs +0 -1
  2242. package/node_modules/@sinclair/typebox/build/esm/value/cast/cast.d.mts +0 -11
  2243. package/node_modules/@sinclair/typebox/build/esm/value/cast/cast.mjs +0 -235
  2244. package/node_modules/@sinclair/typebox/build/esm/value/cast/index.d.mts +0 -1
  2245. package/node_modules/@sinclair/typebox/build/esm/value/cast/index.mjs +0 -1
  2246. package/node_modules/@sinclair/typebox/build/esm/value/check/check.d.mts +0 -11
  2247. package/node_modules/@sinclair/typebox/build/esm/value/check/check.mjs +0 -470
  2248. package/node_modules/@sinclair/typebox/build/esm/value/check/index.d.mts +0 -1
  2249. package/node_modules/@sinclair/typebox/build/esm/value/check/index.mjs +0 -1
  2250. package/node_modules/@sinclair/typebox/build/esm/value/clean/clean.d.mts +0 -5
  2251. package/node_modules/@sinclair/typebox/build/esm/value/clean/clean.mjs +0 -145
  2252. package/node_modules/@sinclair/typebox/build/esm/value/clean/index.d.mts +0 -1
  2253. package/node_modules/@sinclair/typebox/build/esm/value/clean/index.mjs +0 -1
  2254. package/node_modules/@sinclair/typebox/build/esm/value/clone/clone.d.mts +0 -2
  2255. package/node_modules/@sinclair/typebox/build/esm/value/clone/clone.mjs +0 -56
  2256. package/node_modules/@sinclair/typebox/build/esm/value/clone/index.d.mts +0 -1
  2257. package/node_modules/@sinclair/typebox/build/esm/value/clone/index.mjs +0 -1
  2258. package/node_modules/@sinclair/typebox/build/esm/value/convert/convert.d.mts +0 -5
  2259. package/node_modules/@sinclair/typebox/build/esm/value/convert/convert.mjs +0 -260
  2260. package/node_modules/@sinclair/typebox/build/esm/value/convert/index.d.mts +0 -1
  2261. package/node_modules/@sinclair/typebox/build/esm/value/convert/index.mjs +0 -1
  2262. package/node_modules/@sinclair/typebox/build/esm/value/create/create.d.mts +0 -11
  2263. package/node_modules/@sinclair/typebox/build/esm/value/create/create.mjs +0 -468
  2264. package/node_modules/@sinclair/typebox/build/esm/value/create/index.d.mts +0 -1
  2265. package/node_modules/@sinclair/typebox/build/esm/value/create/index.mjs +0 -1
  2266. package/node_modules/@sinclair/typebox/build/esm/value/decode/decode.d.mts +0 -6
  2267. package/node_modules/@sinclair/typebox/build/esm/value/decode/decode.mjs +0 -10
  2268. package/node_modules/@sinclair/typebox/build/esm/value/decode/index.d.mts +0 -1
  2269. package/node_modules/@sinclair/typebox/build/esm/value/decode/index.mjs +0 -1
  2270. package/node_modules/@sinclair/typebox/build/esm/value/default/default.d.mts +0 -5
  2271. package/node_modules/@sinclair/typebox/build/esm/value/default/default.mjs +0 -172
  2272. package/node_modules/@sinclair/typebox/build/esm/value/default/index.d.mts +0 -1
  2273. package/node_modules/@sinclair/typebox/build/esm/value/default/index.mjs +0 -1
  2274. package/node_modules/@sinclair/typebox/build/esm/value/delta/delta.d.mts +0 -32
  2275. package/node_modules/@sinclair/typebox/build/esm/value/delta/delta.mjs +0 -171
  2276. package/node_modules/@sinclair/typebox/build/esm/value/delta/index.d.mts +0 -1
  2277. package/node_modules/@sinclair/typebox/build/esm/value/delta/index.mjs +0 -1
  2278. package/node_modules/@sinclair/typebox/build/esm/value/deref/deref.d.mts +0 -12
  2279. package/node_modules/@sinclair/typebox/build/esm/value/deref/deref.mjs +0 -29
  2280. package/node_modules/@sinclair/typebox/build/esm/value/deref/index.d.mts +0 -1
  2281. package/node_modules/@sinclair/typebox/build/esm/value/deref/index.mjs +0 -1
  2282. package/node_modules/@sinclair/typebox/build/esm/value/encode/encode.d.mts +0 -6
  2283. package/node_modules/@sinclair/typebox/build/esm/value/encode/encode.mjs +0 -11
  2284. package/node_modules/@sinclair/typebox/build/esm/value/encode/index.d.mts +0 -1
  2285. package/node_modules/@sinclair/typebox/build/esm/value/encode/index.mjs +0 -1
  2286. package/node_modules/@sinclair/typebox/build/esm/value/equal/equal.d.mts +0 -2
  2287. package/node_modules/@sinclair/typebox/build/esm/value/equal/equal.mjs +0 -46
  2288. package/node_modules/@sinclair/typebox/build/esm/value/equal/index.d.mts +0 -1
  2289. package/node_modules/@sinclair/typebox/build/esm/value/equal/index.mjs +0 -1
  2290. package/node_modules/@sinclair/typebox/build/esm/value/guard/guard.d.mts +0 -74
  2291. package/node_modules/@sinclair/typebox/build/esm/value/guard/guard.mjs +0 -158
  2292. package/node_modules/@sinclair/typebox/build/esm/value/guard/index.d.mts +0 -1
  2293. package/node_modules/@sinclair/typebox/build/esm/value/guard/index.mjs +0 -1
  2294. package/node_modules/@sinclair/typebox/build/esm/value/hash/hash.d.mts +0 -7
  2295. package/node_modules/@sinclair/typebox/build/esm/value/hash/hash.mjs +0 -146
  2296. package/node_modules/@sinclair/typebox/build/esm/value/hash/index.d.mts +0 -1
  2297. package/node_modules/@sinclair/typebox/build/esm/value/hash/index.mjs +0 -1
  2298. package/node_modules/@sinclair/typebox/build/esm/value/index.d.mts +0 -20
  2299. package/node_modules/@sinclair/typebox/build/esm/value/index.mjs +0 -32
  2300. package/node_modules/@sinclair/typebox/build/esm/value/mutate/index.d.mts +0 -1
  2301. package/node_modules/@sinclair/typebox/build/esm/value/mutate/index.mjs +0 -1
  2302. package/node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.d.mts +0 -9
  2303. package/node_modules/@sinclair/typebox/build/esm/value/mutate/mutate.mjs +0 -98
  2304. package/node_modules/@sinclair/typebox/build/esm/value/parse/index.d.mts +0 -1
  2305. package/node_modules/@sinclair/typebox/build/esm/value/parse/index.mjs +0 -1
  2306. package/node_modules/@sinclair/typebox/build/esm/value/parse/parse.d.mts +0 -22
  2307. package/node_modules/@sinclair/typebox/build/esm/value/parse/parse.mjs +0 -81
  2308. package/node_modules/@sinclair/typebox/build/esm/value/pointer/index.d.mts +0 -1
  2309. package/node_modules/@sinclair/typebox/build/esm/value/pointer/index.mjs +0 -1
  2310. package/node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.d.mts +0 -22
  2311. package/node_modules/@sinclair/typebox/build/esm/value/pointer/pointer.mjs +0 -115
  2312. package/node_modules/@sinclair/typebox/build/esm/value/transform/decode.d.mts +0 -22
  2313. package/node_modules/@sinclair/typebox/build/esm/value/transform/decode.mjs +0 -207
  2314. package/node_modules/@sinclair/typebox/build/esm/value/transform/encode.d.mts +0 -23
  2315. package/node_modules/@sinclair/typebox/build/esm/value/transform/encode.mjs +0 -218
  2316. package/node_modules/@sinclair/typebox/build/esm/value/transform/has.d.mts +0 -3
  2317. package/node_modules/@sinclair/typebox/build/esm/value/transform/has.mjs +0 -129
  2318. package/node_modules/@sinclair/typebox/build/esm/value/transform/index.d.mts +0 -3
  2319. package/node_modules/@sinclair/typebox/build/esm/value/transform/index.mjs +0 -3
  2320. package/node_modules/@sinclair/typebox/build/esm/value/value/index.d.mts +0 -1
  2321. package/node_modules/@sinclair/typebox/build/esm/value/value/index.mjs +0 -1
  2322. package/node_modules/@sinclair/typebox/build/esm/value/value/value.d.mts +0 -16
  2323. package/node_modules/@sinclair/typebox/build/esm/value/value/value.mjs +0 -16
  2324. package/node_modules/@sinclair/typebox/compiler/package.json +0 -4
  2325. package/node_modules/@sinclair/typebox/errors/package.json +0 -4
  2326. package/node_modules/@sinclair/typebox/license +0 -25
  2327. package/node_modules/@sinclair/typebox/package.json +0 -116
  2328. package/node_modules/@sinclair/typebox/parser/package.json +0 -4
  2329. package/node_modules/@sinclair/typebox/readme.md +0 -1865
  2330. package/node_modules/@sinclair/typebox/syntax/package.json +0 -4
  2331. package/node_modules/@sinclair/typebox/system/package.json +0 -4
  2332. package/node_modules/@sinclair/typebox/type/package.json +0 -4
  2333. package/node_modules/@sinclair/typebox/value/package.json +0 -4
  2334. package/node_modules/ansi-regex/index.d.ts +0 -33
  2335. package/node_modules/ansi-regex/index.js +0 -14
  2336. package/node_modules/ansi-regex/license +0 -9
  2337. package/node_modules/ansi-regex/package.json +0 -61
  2338. package/node_modules/ansi-regex/readme.md +0 -66
  2339. package/node_modules/chalk/license +0 -9
  2340. package/node_modules/chalk/package.json +0 -83
  2341. package/node_modules/chalk/readme.md +0 -297
  2342. package/node_modules/chalk/source/index.d.ts +0 -325
  2343. package/node_modules/chalk/source/index.js +0 -225
  2344. package/node_modules/chalk/source/utilities.js +0 -33
  2345. package/node_modules/chalk/source/vendor/ansi-styles/index.d.ts +0 -236
  2346. package/node_modules/chalk/source/vendor/ansi-styles/index.js +0 -223
  2347. package/node_modules/chalk/source/vendor/supports-color/browser.d.ts +0 -1
  2348. package/node_modules/chalk/source/vendor/supports-color/browser.js +0 -34
  2349. package/node_modules/chalk/source/vendor/supports-color/index.d.ts +0 -55
  2350. package/node_modules/chalk/source/vendor/supports-color/index.js +0 -190
  2351. package/node_modules/get-east-asian-width/index.d.ts +0 -60
  2352. package/node_modules/get-east-asian-width/index.js +0 -30
  2353. package/node_modules/get-east-asian-width/license +0 -9
  2354. package/node_modules/get-east-asian-width/lookup-data.js +0 -18
  2355. package/node_modules/get-east-asian-width/lookup.js +0 -135
  2356. package/node_modules/get-east-asian-width/package.json +0 -71
  2357. package/node_modules/get-east-asian-width/readme.md +0 -65
  2358. package/node_modules/get-east-asian-width/utilities.js +0 -24
  2359. package/node_modules/marked/LICENSE.md +0 -44
  2360. package/node_modules/marked/README.md +0 -107
  2361. package/node_modules/marked/bin/main.js +0 -284
  2362. package/node_modules/marked/bin/marked.js +0 -16
  2363. package/node_modules/marked/lib/marked.d.ts +0 -759
  2364. package/node_modules/marked/lib/marked.esm.js +0 -72
  2365. package/node_modules/marked/lib/marked.esm.js.map +0 -7
  2366. package/node_modules/marked/lib/marked.umd.js +0 -74
  2367. package/node_modules/marked/lib/marked.umd.js.map +0 -7
  2368. package/node_modules/marked/man/marked.1 +0 -113
  2369. package/node_modules/marked/man/marked.1.md +0 -93
  2370. package/node_modules/marked/package.json +0 -103
  2371. package/node_modules/string-width/index.d.ts +0 -39
  2372. package/node_modules/string-width/index.js +0 -203
  2373. package/node_modules/string-width/license +0 -9
  2374. package/node_modules/string-width/package.json +0 -65
  2375. package/node_modules/string-width/readme.md +0 -66
  2376. package/node_modules/strip-ansi/index.d.ts +0 -15
  2377. package/node_modules/strip-ansi/index.js +0 -19
  2378. package/node_modules/strip-ansi/license +0 -9
  2379. package/node_modules/strip-ansi/package.json +0 -59
  2380. package/node_modules/strip-ansi/readme.md +0 -37
  2381. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/key-value-tokens.d.ts +0 -0
  2382. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/key-value-tokens.d.ts.map +0 -0
  2383. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/key-value-tokens.js +0 -0
  2384. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/key-value-tokens.js.map +0 -0
  2385. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/mcp-settings.d.ts +0 -0
  2386. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/mcp-settings.d.ts.map +0 -0
  2387. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/mcp-settings.js +0 -0
  2388. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/mcp-settings.js.map +0 -0
  2389. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory-utils.d.ts +0 -0
  2390. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory-utils.d.ts.map +0 -0
  2391. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory-utils.js +0 -0
  2392. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory-utils.js.map +0 -0
  2393. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory.d.ts +0 -0
  2394. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory.d.ts.map +0 -0
  2395. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory.js +0 -0
  2396. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/memory.js.map +0 -0
  2397. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/onboarding-utils.d.ts +0 -0
  2398. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/onboarding-utils.d.ts.map +0 -0
  2399. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/onboarding-utils.js +0 -0
  2400. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/onboarding-utils.js.map +0 -0
  2401. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/runtime-app-server.js +0 -0
  2402. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/runtime-app-server.js.map +0 -0
  2403. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/typebox-utils.d.ts +0 -0
  2404. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/typebox-utils.d.ts.map +0 -0
  2405. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/typebox-utils.js +0 -0
  2406. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/typebox-utils.js.map +0 -0
  2407. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/validators.d.ts +0 -0
  2408. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/validators.d.ts.map +0 -0
  2409. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/validators.js +0 -0
  2410. /package/{node_modules → dist/node_modules}/@evalops/contracts/dist/validators.js.map +0 -0
  2411. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/autocomplete.d.ts +0 -0
  2412. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/autocomplete.d.ts.map +0 -0
  2413. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/autocomplete.js +0 -0
  2414. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/autocomplete.js.map +0 -0
  2415. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/editor.d.ts +0 -0
  2416. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/editor.d.ts.map +0 -0
  2417. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/editor.js +0 -0
  2418. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/editor.js.map +0 -0
  2419. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/input.d.ts +0 -0
  2420. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/input.d.ts.map +0 -0
  2421. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/input.js +0 -0
  2422. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/input.js.map +0 -0
  2423. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/layout.d.ts +0 -0
  2424. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/layout.d.ts.map +0 -0
  2425. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/layout.js +0 -0
  2426. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/layout.js.map +0 -0
  2427. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/loader.d.ts +0 -0
  2428. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/loader.d.ts.map +0 -0
  2429. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/loader.js +0 -0
  2430. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/loader.js.map +0 -0
  2431. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/markdown.d.ts +0 -0
  2432. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/markdown.d.ts.map +0 -0
  2433. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/markdown.js +0 -0
  2434. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/markdown.js.map +0 -0
  2435. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/scroll-container.d.ts +0 -0
  2436. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/scroll-container.d.ts.map +0 -0
  2437. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/scroll-container.js +0 -0
  2438. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/scroll-container.js.map +0 -0
  2439. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/select-list.d.ts +0 -0
  2440. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/select-list.d.ts.map +0 -0
  2441. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/select-list.js +0 -0
  2442. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/select-list.js.map +0 -0
  2443. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/spacer.d.ts +0 -0
  2444. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/spacer.d.ts.map +0 -0
  2445. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/spacer.js +0 -0
  2446. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/spacer.js.map +0 -0
  2447. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/status-bar.d.ts +0 -0
  2448. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/status-bar.d.ts.map +0 -0
  2449. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/status-bar.js +0 -0
  2450. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/status-bar.js.map +0 -0
  2451. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/text.d.ts +0 -0
  2452. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/text.d.ts.map +0 -0
  2453. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/text.js +0 -0
  2454. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/text.js.map +0 -0
  2455. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/truncated-text.d.ts +0 -0
  2456. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/truncated-text.d.ts.map +0 -0
  2457. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/truncated-text.js +0 -0
  2458. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/components/truncated-text.js.map +0 -0
  2459. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/index.d.ts +0 -0
  2460. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/index.d.ts.map +0 -0
  2461. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/index.js +0 -0
  2462. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/index.js.map +0 -0
  2463. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/keymap.d.ts +0 -0
  2464. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/keymap.d.ts.map +0 -0
  2465. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/keymap.js +0 -0
  2466. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/keymap.js.map +0 -0
  2467. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/mermaid-renderer.d.ts +0 -0
  2468. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/mermaid-renderer.d.ts.map +0 -0
  2469. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/mermaid-renderer.js +0 -0
  2470. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/mermaid-renderer.js.map +0 -0
  2471. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/style/code-highlighter.d.ts +0 -0
  2472. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/style/code-highlighter.d.ts.map +0 -0
  2473. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/style/code-highlighter.js +0 -0
  2474. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/style/code-highlighter.js.map +0 -0
  2475. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/terminal.d.ts +0 -0
  2476. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/terminal.d.ts.map +0 -0
  2477. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/terminal.js +0 -0
  2478. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/terminal.js.map +0 -0
  2479. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/tui.d.ts +0 -0
  2480. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/tui.d.ts.map +0 -0
  2481. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/tui.js +0 -0
  2482. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/tui.js.map +0 -0
  2483. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils/terminal-features.d.ts +0 -0
  2484. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils/terminal-features.d.ts.map +0 -0
  2485. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils/terminal-features.js +0 -0
  2486. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils/terminal-features.js.map +0 -0
  2487. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils.d.ts +0 -0
  2488. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils.d.ts.map +0 -0
  2489. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils.js +0 -0
  2490. /package/{node_modules → dist/node_modules}/@evalops/tui/dist/utils.js.map +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/agent/compaction.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Context Compaction - Pure Functions for Long Session Management\n *\n * This module provides pure functions for context compaction logic. Context\n * compaction summarizes older conversation history when approaching token limits,\n * allowing conversations to continue indefinitely while preserving important context.\n *\n * ## Architecture\n *\n * The compaction system follows a separation of concerns:\n * - **This module**: Pure functions for token calculation, cut point detection, and\n * determining when compaction should trigger. No I/O or side effects.\n * - **SessionManager**: Handles persistence of compaction entries to session files.\n * - **ConversationCompactor**: Orchestrates the compaction process with TUI integration.\n *\n * ## Token-Based Cut Point Detection\n *\n * Instead of using a fixed message count, cut point detection uses actual token usage\n * from assistant messages. The algorithm walks backwards from the newest message,\n * calculating cumulative token differences until `keepRecentTokens` is exceeded.\n *\n * This approach:\n * - Preserves more context when messages are small\n * - Compacts more aggressively when messages are large\n * - Respects turn boundaries (never splits user/assistant/toolResult groups)\n *\n * ## Summarization Strategy\n *\n * When compacting, older messages are summarized using the LLM with a handoff-style\n * prompt. If a previous compaction exists, its summary is included as context for\n * the new summarization (cascading summaries).\n *\n * @module agent/compaction\n */\n\nimport { realpathSync } from \"node:fs\";\nimport { resolve as resolvePath } from \"node:path\";\nimport {\n\tresolveLoadedAppendSystemPromptPath,\n\tresolvePromptLoadedProjectDocPaths,\n} from \"../config/index.js\";\nimport type { SessionEntry } from \"../session/types.js\";\nimport { getSkillArtifactMetadataFromDetails } from \"../skills/artifact-metadata.js\";\nimport { readTool } from \"../tools/read.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { expandUserPath } from \"../utils/path-validation.js\";\nimport { runPostCompactionCleanup } from \"./compaction-cleanup.js\";\nimport {\n\ttype CompactionHookContext,\n\ttype CompactionHookService,\n\tcreateCompactionHookService,\n} from \"./compaction-hooks.js\";\nimport {\n\tBACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE,\n\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE,\n\tMCP_SERVERS_COMPACTION_CUSTOM_TYPE,\n\tPLAN_FILE_COMPACTION_CUSTOM_TYPE,\n\tPLAN_MODE_COMPACTION_CUSTOM_TYPE,\n} from \"./compaction-restoration.js\";\nimport {\n\tisContextOverflow as isCompactionOverflowMessage,\n\tisOverflowErrorMessage,\n\tparseOverflowDetails,\n} from \"./context-overflow.js\";\nimport {\n\tconvertAppMessageToLlm,\n\tcreateHookMessage,\n} from \"./custom-messages.js\";\nimport { getPlanFilePathForCompactionRestore } from \"./plan-mode.js\";\nimport { SESSION_START_INITIAL_USER_METADATA_KIND } from \"./session-start-metadata.js\";\nimport type {\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tHookMessage,\n\tImageContent,\n\tTextContent,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent:compaction\");\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Configuration for compaction behavior.\n */\nexport interface CompactionSettings {\n\t/** Whether auto-compaction is enabled */\n\tenabled: boolean;\n\t/**\n\t * Tokens to reserve for summary generation and safety margin.\n\t * Default: 16384 (~13k for summary + ~3k safety margin)\n\t */\n\treserveTokens: number;\n\t/**\n\t * Approximate number of recent tokens to preserve verbatim.\n\t * Default: 20000 (recent context preserved without summarization)\n\t */\n\tkeepRecentTokens: number;\n}\n\n/**\n * Default compaction settings based on research into Claude Code, Codex, and OpenCode.\n */\nexport const DEFAULT_COMPACTION_SETTINGS: CompactionSettings = {\n\tenabled: true,\n\treserveTokens: 16384,\n\tkeepRecentTokens: 20000,\n};\n\n/**\n * Internal user prompt appended after compaction so the model resumes from the\n * summarized context on the next turn.\n */\nexport const COMPACTION_RESUME_PROMPT =\n\t\"Use the above summary to resume the plan from where we left off.\";\n\nconst MAX_COMPACTION_OVERFLOW_RETRIES = 3;\nconst PREVIOUS_SUMMARY_PREFIX = \"Previous session summary:\\n\";\nconst COMPACTION_OVERFLOW_RETRY_MARKER =\n\t\"[earlier conversation truncated for compaction retry]\";\nconst READ_RESTORE_COMPACTION_CUSTOM_TYPE = \"read-file\";\nconst MAX_READ_RESTORE_MESSAGES = 5;\nconst READ_RESTORE_TOKEN_BUDGET = 50_000;\nconst READ_RESTORE_MAX_TOKENS_PER_FILE = 5_000;\nconst READ_RESTORE_TRUNCATION_MARKER =\n\t\"\\n\\n[... restored read result truncated for compaction; use `read` on the path again if you need the full contents]\";\nconst SKILL_RESTORE_TOKEN_BUDGET = 25_000;\nconst SKILL_RESTORE_MAX_TOKENS_PER_SKILL = 5_000;\nconst SKILL_RESTORE_TRUNCATION_MARKER =\n\t\"\\n\\n[... restored skill truncated for compaction; use the `Skill` tool again if you need the full instructions]\";\n\n/**\n * Result of a compaction operation, ready to be persisted.\n */\nexport interface CompactionResult {\n\t/** Generated summary of compacted messages */\n\tsummary: string;\n\t/** Index of first entry to keep (entries before this are summarized) */\n\tfirstKeptEntryIndex: number;\n\t/** Token count before compaction (for metrics) */\n\ttokensBefore: number;\n\t/** Messages that were summarized */\n\tsummarizedMessages: AppMessage[];\n\t/** Messages to keep verbatim */\n\tkeptMessages: AppMessage[];\n}\n\n// ============================================================================\n// Token Calculation\n// ============================================================================\n\n/**\n * Calculate total context tokens from usage metadata.\n *\n * This includes all token types that contribute to context window consumption:\n * - input: Tokens from user/system messages\n * - output: Tokens generated by the model\n * - cacheRead: Tokens read from prompt cache\n * - cacheWrite: Tokens written to prompt cache\n *\n * @param usage - Usage metadata from an assistant message\n * @returns Total context token count\n */\nexport function calculateContextTokens(usage: Usage): number {\n\treturn usage.input + usage.output + usage.cacheRead + usage.cacheWrite;\n}\n\n/**\n * Extract usage metadata from a message if it's a non-aborted assistant message.\n *\n * @param msg - Any application message\n * @returns Usage metadata or null if not available/applicable\n */\nfunction getAssistantUsage(msg: AppMessage): Usage | null {\n\tif (msg.role === \"assistant\") {\n\t\tconst assistantMsg = msg as AssistantMessage;\n\t\tif (\n\t\t\tassistantMsg.stopReason !== \"aborted\" &&\n\t\t\tassistantMsg.stopReason !== \"error\" &&\n\t\t\tassistantMsg.usage\n\t\t) {\n\t\t\treturn assistantMsg.usage;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction shouldSkipAssistantCompactionMessage(message: AppMessage): boolean {\n\treturn (\n\t\tmessage.role === \"assistant\" &&\n\t\t(message.stopReason === \"aborted\" || message.stopReason === \"error\")\n\t);\n}\n\nfunction shouldSkipReinjectedCompactionMessage(message: AppMessage): boolean {\n\treturn (\n\t\t(message.role === \"hookMessage\" &&\n\t\t\t((message.customType === \"skill\" && message.display === false) ||\n\t\t\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === PLAN_FILE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === BACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType ===\n\t\t\t\t\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === MCP_SERVERS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === \"PostCompact\" ||\n\t\t\t\tmessage.customType === \"SessionStart\" ||\n\t\t\t\tmessage.customType === PLAN_MODE_COMPACTION_CUSTOM_TYPE)) ||\n\t\tisSessionStartInitialUserMessage(message)\n\t);\n}\n\nfunction isSessionStartInitialUserMessage(message: AppMessage): boolean {\n\treturn (\n\t\tmessage.role === \"user\" &&\n\t\ttypeof message.metadata === \"object\" &&\n\t\tmessage.metadata !== null &&\n\t\tmessage.metadata.kind === SESSION_START_INITIAL_USER_METADATA_KIND\n\t);\n}\n\nfunction stripRuntimeRestoreMessages(messages: AppMessage[]): AppMessage[] {\n\treturn messages.filter(\n\t\t(message) =>\n\t\t\t(message.role !== \"hookMessage\" ||\n\t\t\t\t(message.customType !== BACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !==\n\t\t\t\t\t\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !== MCP_SERVERS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !== \"SessionStart\")) &&\n\t\t\t!isSessionStartInitialUserMessage(message),\n\t);\n}\n\nfunction normalizeReadPath(path: string): string {\n\treturn resolvePath(expandUserPath(path));\n}\n\nfunction normalizeComparableReadPath(path: string): string {\n\tconst normalizedPath = normalizeReadPath(path);\n\ttry {\n\t\treturn realpathSync.native(normalizedPath);\n\t} catch {\n\t\treturn normalizedPath;\n\t}\n}\n\nfunction getExcludedReadRestorePaths(\n\tadditionalPaths: string[] = [],\n): Set<string> {\n\tconst loadedAppendSystemPromptPath = resolveLoadedAppendSystemPromptPath(\n\t\tprocess.cwd(),\n\t);\n\tconst trackedPlanFilePath = getPlanFilePathForCompactionRestore();\n\treturn new Set(\n\t\t[\n\t\t\t...resolvePromptLoadedProjectDocPaths(process.cwd()),\n\t\t\t...(loadedAppendSystemPromptPath ? [loadedAppendSystemPromptPath] : []),\n\t\t\t...(trackedPlanFilePath ? [trackedPlanFilePath] : []),\n\t\t\t...additionalPaths,\n\t\t].map((path) => normalizeComparableReadPath(path)),\n\t);\n}\n\nfunction shouldExcludeReadRestorePath(\n\tfilePath: string,\n\texcludedPaths: Set<string>,\n): boolean {\n\treturn excludedPaths.has(normalizeComparableReadPath(filePath));\n}\n\ntype ReadRestoreRequest = {\n\tpath: string;\n\toffset?: number;\n\tlimit?: number;\n\tmode?: \"normal\" | \"head\" | \"tail\";\n\tlineNumbers?: boolean;\n\twrapInCodeFence?: boolean;\n\tlanguage?: string;\n\tencoding?: \"utf-8\" | \"utf-16le\" | \"latin1\" | \"ascii\";\n};\n\ntype ReadRestoreExecutor = typeof readTool.execute;\n\nfunction parseOptionalInteger(value: unknown, minimum = 1): number | undefined {\n\treturn typeof value === \"number\" &&\n\t\tNumber.isInteger(value) &&\n\t\tvalue >= minimum\n\t\t? value\n\t\t: undefined;\n}\n\nfunction parseReadRestoreRequest(\n\targuments_: Record<string, unknown>,\n): ReadRestoreRequest | null {\n\tconst rawPath = arguments_.path;\n\tif (typeof rawPath !== \"string\") {\n\t\treturn null;\n\t}\n\n\tconst mode =\n\t\targuments_.mode === \"normal\" ||\n\t\targuments_.mode === \"head\" ||\n\t\targuments_.mode === \"tail\"\n\t\t\t? arguments_.mode\n\t\t\t: undefined;\n\tconst lineNumbers =\n\t\ttypeof arguments_.lineNumbers === \"boolean\"\n\t\t\t? arguments_.lineNumbers\n\t\t\t: undefined;\n\tconst wrapInCodeFence =\n\t\ttypeof arguments_.wrapInCodeFence === \"boolean\"\n\t\t\t? arguments_.wrapInCodeFence\n\t\t\t: undefined;\n\tconst language =\n\t\ttypeof arguments_.language === \"string\" ? arguments_.language : undefined;\n\tconst encoding =\n\t\targuments_.encoding === \"utf-8\" ||\n\t\targuments_.encoding === \"utf-16le\" ||\n\t\targuments_.encoding === \"latin1\" ||\n\t\targuments_.encoding === \"ascii\"\n\t\t\t? arguments_.encoding\n\t\t\t: undefined;\n\n\treturn {\n\t\tpath: normalizeReadPath(rawPath),\n\t\toffset: parseOptionalInteger(arguments_.offset),\n\t\tlimit: parseOptionalInteger(arguments_.limit),\n\t\tmode,\n\t\tlineNumbers,\n\t\twrapInCodeFence,\n\t\tlanguage,\n\t\tencoding,\n\t};\n}\n\nfunction collectReadRestoreRequestsByCallId(\n\tmessages: AppMessage[],\n): Map<string, ReadRestoreRequest> {\n\tconst requestsByCallId = new Map<string, ReadRestoreRequest>();\n\tfor (const message of messages) {\n\t\tif (message.role !== \"assistant\") {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const part of message.content) {\n\t\t\tif (part.type !== \"toolCall\" || part.name !== \"read\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst request = parseReadRestoreRequest(part.arguments);\n\t\t\tif (!request) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trequestsByCallId.set(part.id, request);\n\t\t}\n\t}\n\treturn requestsByCallId;\n}\n\nfunction collectVisibleReadPaths(messages: AppMessage[]): Set<string> {\n\tconst requestsByCallId = collectReadRestoreRequestsByCallId(messages);\n\tconst visiblePaths = new Set<string>();\n\tfor (const message of messages) {\n\t\tif (\n\t\t\tmessage.role !== \"toolResult\" ||\n\t\t\tmessage.toolName !== \"read\" ||\n\t\t\tmessage.isError\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst request = requestsByCallId.get(message.toolCallId);\n\t\tif (request) {\n\t\t\tvisiblePaths.add(request.path);\n\t\t}\n\t}\n\treturn visiblePaths;\n}\n\nfunction collectRestoredReadPaths(messages: AppMessage[]): Set<string> {\n\tconst restoredPaths = new Set<string>();\n\tfor (const message of messages) {\n\t\tconst filePath = getReadRestoreFilePath(message);\n\t\tif (filePath) {\n\t\t\trestoredPaths.add(normalizeReadPath(filePath));\n\t\t}\n\t}\n\treturn restoredPaths;\n}\n\nfunction extractSkillRestoreName(\n\tcontent: string | (TextContent | ImageContent)[],\n): string | null {\n\tconst text =\n\t\ttypeof content === \"string\"\n\t\t\t? content\n\t\t\t: content\n\t\t\t\t\t.filter((block): block is TextContent => block.type === \"text\")\n\t\t\t\t\t.map((block) => block.text)\n\t\t\t\t\t.join(\"\\n\");\n\tconst match = text.match(/^# Skill:\\s+(.+)$/m);\n\treturn match?.[1]?.trim() || null;\n}\n\nfunction normalizeSkillRestoreContent(\n\tcontent: string | (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\treturn typeof content === \"string\"\n\t\t? [{ type: \"text\", text: content }]\n\t\t: content;\n}\n\nfunction getSkillRestoreNameFromMessage(message: AppMessage): string | null {\n\tif (\n\t\tmessage.role === \"toolResult\" &&\n\t\tmessage.toolName === \"Skill\" &&\n\t\t!message.isError\n\t) {\n\t\treturn extractSkillRestoreName(message.content);\n\t}\n\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\tif (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"name\" in details &&\n\t\ttypeof details.name === \"string\"\n\t) {\n\t\treturn details.name;\n\t}\n\n\treturn extractSkillRestoreName(message.content);\n}\n\nfunction collectSuccessfulSkillToolCallIds(\n\tmessages: AppMessage[],\n): Set<string> {\n\tconst toolCallIds = new Set<string>();\n\tfor (const message of messages) {\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\ttoolCallIds.add(message.toolCallId);\n\t\t}\n\t}\n\treturn toolCallIds;\n}\n\nfunction stripSuccessfulSkillToolCallsForCompactionSummary(\n\tmessage: AssistantMessage,\n\tsuccessfulSkillToolCallIds: ReadonlySet<string>,\n): AppMessage[] {\n\tif (successfulSkillToolCallIds.size === 0) {\n\t\treturn [message];\n\t}\n\n\tconst filteredContent = message.content.filter(\n\t\t(part) =>\n\t\t\tpart.type !== \"toolCall\" ||\n\t\t\tpart.name !== \"Skill\" ||\n\t\t\t!successfulSkillToolCallIds.has(part.id),\n\t);\n\tif (filteredContent.length === message.content.length) {\n\t\treturn [message];\n\t}\n\tif (filteredContent.length === 0) {\n\t\treturn [];\n\t}\n\treturn [{ ...message, content: filteredContent }];\n}\n\nfunction isToolSkillRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\tconst details = message.details;\n\treturn (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"source\" in details &&\n\t\tdetails.source === \"tool\"\n\t);\n}\n\nfunction isActiveSkillHookMessage(message: AppMessage): message is HookMessage {\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\tconst details = message.details;\n\treturn (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"action\" in details &&\n\t\tdetails.action === \"activate\"\n\t);\n}\n\nfunction hasMatchingSkillRestoreContent(\n\tmessage: AppMessage,\n\texpectedContent: (TextContent | ImageContent)[],\n): boolean {\n\tif (\n\t\tmessage.role === \"toolResult\" &&\n\t\tmessage.toolName === \"Skill\" &&\n\t\t!message.isError\n\t) {\n\t\treturn (\n\t\t\tJSON.stringify(normalizeSkillRestoreContent(message.content)) ===\n\t\t\tJSON.stringify(expectedContent)\n\t\t);\n\t}\n\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\tJSON.stringify(normalizeSkillRestoreContent(message.content)) ===\n\t\tJSON.stringify(expectedContent)\n\t);\n}\n\nfunction getPreservedSkillRestoreState(\n\tmessages: AppMessage[],\n\tskillName: string,\n\tcontent: (TextContent | ImageContent)[],\n): \"visible\" | \"replace\" | \"absent\" {\n\tlet hasStaleToolSkillHook = false;\n\n\tfor (const message of messages) {\n\t\tconst visibleSkillName = getSkillRestoreNameFromMessage(message);\n\t\tif (visibleSkillName !== skillName) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\treturn \"visible\";\n\t\t}\n\n\t\tif (hasMatchingSkillRestoreContent(message, content)) {\n\t\t\treturn \"visible\";\n\t\t}\n\n\t\tif (isToolSkillRestoreHookMessage(message)) {\n\t\t\thasStaleToolSkillHook = true;\n\t\t}\n\t}\n\n\treturn hasStaleToolSkillHook ? \"replace\" : \"absent\";\n}\n\nasync function refreshReadRestoreContent(\n\trequest: ReadRestoreRequest,\n\ttoolCallId: string,\n\treadRestoreExecute: ReadRestoreExecutor,\n): Promise<(TextContent | ImageContent)[] | null> {\n\ttry {\n\t\tconst result = await readRestoreExecute(toolCallId, {\n\t\t\tpath: request.path,\n\t\t\toffset: request.offset,\n\t\t\tlimit: request.limit,\n\t\t\tmode: request.mode,\n\t\t\tlineNumbers: request.lineNumbers,\n\t\t\twrapInCodeFence: request.wrapInCodeFence,\n\t\t\tlanguage: request.language,\n\t\t\tencoding: request.encoding,\n\t\t\twithDiagnostics: false,\n\t\t});\n\t\tif (result.isError) {\n\t\t\treturn null;\n\t\t}\n\t\treturn result.content.filter(\n\t\t\t(\n\t\t\t\tblock,\n\t\t\t): block is\n\t\t\t\t| { type: \"text\"; text: string }\n\t\t\t\t| { type: \"image\"; data: string; mimeType: string } =>\n\t\t\t\tblock.type === \"text\" || block.type === \"image\",\n\t\t);\n\t} catch (error) {\n\t\tlogger.warn(\"Failed to refresh read restore content during compaction\", {\n\t\t\tfilePath: request.path,\n\t\t\ttoolCallId,\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t});\n\t\treturn null;\n\t}\n}\n\nfunction buildReadRestoreContent(\n\tfilePath: string,\n\tcontent: (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\tconst header: TextContent = {\n\t\ttype: \"text\",\n\t\ttext: [\n\t\t\t\"# Recently read file restored after compaction\",\n\t\t\t\"\",\n\t\t\t`File: ${filePath}`,\n\t\t\t\"\",\n\t\t\t\"Last read result:\",\n\t\t].join(\"\\n\"),\n\t};\n\tconst remainingTokens = Math.max(\n\t\t0,\n\t\tREAD_RESTORE_MAX_TOKENS_PER_FILE - estimateHookContentTokens([header]),\n\t);\n\n\treturn [header, ...truncateReadRestoreBlocks(content, remainingTokens)];\n}\n\nfunction hasReadRestoreMessage(\n\tmessages: AppMessage[],\n\tfilePath: string,\n\tcontent: (TextContent | ImageContent)[],\n): boolean {\n\tconst expectedContent = JSON.stringify(content);\n\treturn messages.some((message) => {\n\t\tif (\n\t\t\tmessage.role !== \"hookMessage\" ||\n\t\t\tmessage.customType !== READ_RESTORE_COMPACTION_CUSTOM_TYPE\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst details = message.details;\n\t\tif (\n\t\t\ttypeof details === \"object\" &&\n\t\t\tdetails !== null &&\n\t\t\t\"filePath\" in details &&\n\t\t\ttypeof details.filePath === \"string\" &&\n\t\t\tdetails.filePath !== filePath\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn JSON.stringify(message.content) === expectedContent;\n\t});\n}\n\nfunction isReadRestoreHookMessage(message: AppMessage): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getReadRestoreFilePath(message: AppMessage): string | null {\n\tif (!isReadRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction collectReadRestorePathsToReplace(\n\tpreservedMessages: AppMessage[],\n\trestoredMessages: AppMessage[],\n): Set<string> {\n\tconst filePathsToReplace = new Set<string>();\n\n\tfor (const message of restoredMessages) {\n\t\tif (!isReadRestoreHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst filePath = getReadRestoreFilePath(message);\n\t\tif (!filePath || !Array.isArray(message.content)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (getReadRestoreFilePath(preservedMessage) !== filePath) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!hasReadRestoreMessage([preservedMessage], filePath, message.content)\n\t\t\t) {\n\t\t\t\tfilePathsToReplace.add(filePath);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn filePathsToReplace;\n}\n\nfunction shouldReplacePreservedReadRestoreMessage(\n\tmessage: AppMessage,\n\treplacedFilePaths: Set<string>,\n): boolean {\n\tconst filePath = getReadRestoreFilePath(message);\n\treturn filePath !== null && replacedFilePaths.has(filePath);\n}\n\nfunction isPlanFileRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === PLAN_FILE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getPlanFileRestorePath(message: AppMessage): string | null {\n\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction isPlanModeRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === PLAN_MODE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getPlanModeRestorePath(message: AppMessage): string | null {\n\tif (!isPlanModeRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction collectPlanRestorePaths(\n\trestoredMessages: AppMessage[],\n\tgetPath: (message: AppMessage) => string | null,\n): Set<string> {\n\tconst filePaths = new Set<string>();\n\tfor (const message of restoredMessages) {\n\t\tconst filePath = getPath(message);\n\t\tif (filePath) {\n\t\t\tfilePaths.add(filePath);\n\t\t}\n\t}\n\treturn filePaths;\n}\n\nfunction hasPlanFileRestoreMessage(\n\tmessages: AppMessage[],\n\tfilePath: string,\n\tcontent: string | (TextContent | ImageContent)[],\n): boolean {\n\tconst expectedContent = JSON.stringify(content);\n\treturn messages.some((message) => {\n\t\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (getPlanFileRestorePath(message) !== filePath) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn JSON.stringify(message.content) === expectedContent;\n\t});\n}\n\nfunction collectPlanFilePathsToReplace(\n\tpreservedMessages: AppMessage[],\n\trestoredMessages: AppMessage[],\n): Set<string> {\n\tconst filePathsToReplace = new Set<string>();\n\n\tfor (const message of restoredMessages) {\n\t\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst filePath = getPlanFileRestorePath(message);\n\t\tif (!filePath) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (getPlanFileRestorePath(preservedMessage) !== filePath) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!hasPlanFileRestoreMessage(\n\t\t\t\t\t[preservedMessage],\n\t\t\t\t\tfilePath,\n\t\t\t\t\tmessage.content,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfilePathsToReplace.add(filePath);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn filePathsToReplace;\n}\n\nfunction shouldReplacePreservedPlanFileMessage(\n\tmessage: AppMessage,\n\treplacedFilePaths: Set<string>,\n\tcurrentPlanFilePaths: Set<string>,\n): boolean {\n\tconst filePath = getPlanFileRestorePath(message);\n\treturn (\n\t\tfilePath !== null &&\n\t\t(replacedFilePaths.has(filePath) ||\n\t\t\t(currentPlanFilePaths.size > 0 && !currentPlanFilePaths.has(filePath)))\n\t);\n}\n\nfunction shouldReplacePreservedPlanModeMessage(\n\tmessage: AppMessage,\n\tcurrentPlanModePaths: Set<string>,\n): boolean {\n\tconst filePath = getPlanModeRestorePath(message);\n\treturn (\n\t\tfilePath !== null &&\n\t\tcurrentPlanModePaths.size > 0 &&\n\t\t!currentPlanModePaths.has(filePath)\n\t);\n}\n\nfunction estimateHookContentTokens(\n\tcontent: string | (TextContent | ImageContent)[],\n): number {\n\treturn Math.max(1, Math.ceil(JSON.stringify(content).length / 4));\n}\n\nfunction buildRestoreTruncationBlock(text: string): TextContent | null {\n\treturn estimateHookContentTokens([{ type: \"text\", text }]) > 0\n\t\t? { type: \"text\", text }\n\t\t: null;\n}\n\nfunction truncateRestoredHookBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n\toptions: {\n\t\ttextMarker: string;\n\t\timageMarker: string;\n\t},\n): (TextContent | ImageContent)[] {\n\tconst restored: (TextContent | ImageContent)[] = [];\n\tlet usedTokens = 0;\n\n\tfor (const block of content) {\n\t\tconst blockTokens = estimateHookContentTokens([block]);\n\t\tif (usedTokens + blockTokens <= maxTokens) {\n\t\t\trestored.push(block);\n\t\t\tusedTokens += blockTokens;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst remainingTokens = maxTokens - usedTokens;\n\t\tif (remainingTokens <= 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (block.type === \"text\") {\n\t\t\tconst charBudget = Math.max(\n\t\t\t\t0,\n\t\t\t\tremainingTokens * 4 - options.textMarker.length,\n\t\t\t);\n\t\t\tconst truncatedText =\n\t\t\t\tcharBudget > 0\n\t\t\t\t\t? `${block.text.slice(0, charBudget)}${options.textMarker}`\n\t\t\t\t\t: options.textMarker;\n\t\t\tconst truncationBlock = buildRestoreTruncationBlock(truncatedText);\n\t\t\tif (truncationBlock) {\n\t\t\t\trestored.push(truncationBlock);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tconst imageMarker = buildRestoreTruncationBlock(options.imageMarker);\n\t\tif (imageMarker) {\n\t\t\trestored.push(imageMarker);\n\t\t}\n\t\tbreak;\n\t}\n\n\treturn restored;\n}\n\nfunction truncateReadRestoreBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n): (TextContent | ImageContent)[] {\n\treturn truncateRestoredHookBlocks(content, maxTokens, {\n\t\ttextMarker: READ_RESTORE_TRUNCATION_MARKER,\n\t\timageMarker:\n\t\t\t\"[image omitted from restored read result due to compaction budget; use `read` on the path again if needed]\",\n\t});\n}\n\nfunction truncateSkillRestoreBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n): (TextContent | ImageContent)[] {\n\treturn truncateRestoredHookBlocks(content, maxTokens, {\n\t\ttextMarker: SKILL_RESTORE_TRUNCATION_MARKER,\n\t\timageMarker:\n\t\t\t\"[image omitted from restored skill due to compaction budget; use the `Skill` tool again if needed]\",\n\t});\n}\n\nasync function collectRecentReadRestoreMessages(\n\tcompactedMessages: AppMessage[],\n\tpreservedMessages: AppMessage[],\n\tadditionalExcludedPaths: string[] = [],\n\treadRestoreExecute: ReadRestoreExecutor = readTool.execute,\n): Promise<AppMessage[]> {\n\tconst visiblePaths = collectVisibleReadPaths(preservedMessages);\n\tconst requestsByCallId =\n\t\tcollectReadRestoreRequestsByCallId(compactedMessages);\n\tconst excludedPaths = getExcludedReadRestorePaths(additionalExcludedPaths);\n\tconst restoredMessages: AppMessage[] = [];\n\tconst seenPaths = new Set<string>();\n\tlet usedTokens = 0;\n\n\tfor (let i = compactedMessages.length - 1; i >= 0; i -= 1) {\n\t\tif (restoredMessages.length >= MAX_READ_RESTORE_MESSAGES) {\n\t\t\tbreak;\n\t\t}\n\n\t\tconst message = compactedMessages[i];\n\t\tif (!message) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet filePath: string | null = null;\n\t\tlet content: (TextContent | ImageContent)[] | null = null;\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"read\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tconst request = requestsByCallId.get(message.toolCallId);\n\t\t\tfilePath = request?.path ?? null;\n\t\t\tconst refreshedContent = request\n\t\t\t\t? await refreshReadRestoreContent(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\t`compaction-read-restore-${message.toolCallId}`,\n\t\t\t\t\t\treadRestoreExecute,\n\t\t\t\t\t)\n\t\t\t\t: null;\n\t\t\tcontent = buildReadRestoreContent(\n\t\t\t\tfilePath ?? \"\",\n\t\t\t\trefreshedContent ?? message.content,\n\t\t\t);\n\t\t} else if (\n\t\t\tmessage.role === \"hookMessage\" &&\n\t\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE &&\n\t\t\tArray.isArray(message.content)\n\t\t) {\n\t\t\tconst details = message.details;\n\t\t\tfilePath =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"filePath\" in details &&\n\t\t\t\ttypeof details.filePath === \"string\"\n\t\t\t\t\t? normalizeReadPath(details.filePath)\n\t\t\t\t\t: null;\n\t\t\tcontent = message.content;\n\t\t}\n\n\t\tif (\n\t\t\t!filePath ||\n\t\t\t!content ||\n\t\t\tvisiblePaths.has(filePath) ||\n\t\t\tseenPaths.has(filePath) ||\n\t\t\tshouldExcludeReadRestorePath(filePath, excludedPaths)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst dedupeMessages = [...preservedMessages, ...restoredMessages];\n\t\tif (hasReadRestoreMessage(dedupeMessages, filePath, content)) {\n\t\t\tseenPaths.add(filePath);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst estimatedTokens = estimateHookContentTokens(content);\n\t\tif (usedTokens + estimatedTokens > READ_RESTORE_TOKEN_BUDGET) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tusedTokens += estimatedTokens;\n\t\tseenPaths.add(filePath);\n\t\trestoredMessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\tREAD_RESTORE_COMPACTION_CUSTOM_TYPE,\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\t{ filePath },\n\t\t\t\tnew Date().toISOString(),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn restoredMessages;\n}\n\ntype SkillRestoreCollectionResult = {\n\treplacedPreservedToolSkillNames: Set<string>;\n\trestoredMessages: AppMessage[];\n};\n\nasync function collectRecentSkillRestoreMessages(\n\tcompactedMessages: AppMessage[],\n\tpreservedMessages: AppMessage[],\n): Promise<SkillRestoreCollectionResult> {\n\tconst restoredMessages: AppMessage[] = [];\n\tconst seenSkillNames = new Set<string>();\n\tconst replacedPreservedToolSkillNames = new Set<string>();\n\tlet usedTokens = 0;\n\n\tfor (let i = compactedMessages.length - 1; i >= 0; i -= 1) {\n\t\tconst message = compactedMessages[i];\n\t\tif (!message) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet skillName: string | null = null;\n\t\tlet content: (TextContent | ImageContent)[] | null = null;\n\t\tlet skillMetadata: ReturnType<typeof getSkillArtifactMetadataFromDetails>;\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tskillName = extractSkillRestoreName(message.content);\n\t\t\tcontent = truncateSkillRestoreBlocks(\n\t\t\t\tmessage.content,\n\t\t\t\tSKILL_RESTORE_MAX_TOKENS_PER_SKILL,\n\t\t\t);\n\t\t\tskillMetadata = getSkillArtifactMetadataFromDetails(message.details);\n\t\t} else if (\n\t\t\tmessage.role === \"hookMessage\" &&\n\t\t\tmessage.customType === \"skill\" &&\n\t\t\tmessage.display === false &&\n\t\t\tArray.isArray(message.content)\n\t\t) {\n\t\t\tconst details = message.details;\n\t\t\tconst sourcedFromTool =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"source\" in details &&\n\t\t\t\tdetails.source === \"tool\";\n\t\t\tif (!sourcedFromTool) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tskillName =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"name\" in details &&\n\t\t\t\ttypeof details.name === \"string\"\n\t\t\t\t\t? details.name\n\t\t\t\t\t: extractSkillRestoreName(message.content);\n\t\t\tcontent = message.content;\n\t\t\tskillMetadata = getSkillArtifactMetadataFromDetails(details);\n\t\t}\n\n\t\tif (!skillName || !content || seenSkillNames.has(skillName)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst preservedState = getPreservedSkillRestoreState(\n\t\t\tpreservedMessages,\n\t\t\tskillName,\n\t\t\tcontent,\n\t\t);\n\t\tif (preservedState === \"visible\") {\n\t\t\tseenSkillNames.add(skillName);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst estimatedTokens = estimateHookContentTokens(content);\n\t\tif (usedTokens + estimatedTokens > SKILL_RESTORE_TOKEN_BUDGET) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tusedTokens += estimatedTokens;\n\t\tseenSkillNames.add(skillName);\n\t\tif (preservedState === \"replace\") {\n\t\t\treplacedPreservedToolSkillNames.add(skillName);\n\t\t}\n\t\trestoredMessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"skill\",\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\t{\n\t\t\t\t\tname: skillName,\n\t\t\t\t\tsource: \"tool\",\n\t\t\t\t\tskillMetadata,\n\t\t\t\t},\n\t\t\t\tnew Date().toISOString(),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn { replacedPreservedToolSkillNames, restoredMessages };\n}\n\nfunction shouldReplacePreservedToolSkillMessage(\n\tmessage: AppMessage,\n\treplacedSkillNames: Set<string>,\n): boolean {\n\tif (!isToolSkillRestoreHookMessage(message)) {\n\t\treturn false;\n\t}\n\n\tconst skillName = getSkillRestoreNameFromMessage(message);\n\treturn skillName !== null && replacedSkillNames.has(skillName);\n}\n\nfunction collectActiveSkillNamesToReplace(\n\tpreservedMessages: AppMessage[],\n\tpostKeepMessages: AppMessage[],\n): Set<string> {\n\tconst activeSkillNamesToReplace = new Set<string>();\n\n\tfor (const message of postKeepMessages) {\n\t\tif (!isActiveSkillHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst skillName = getSkillRestoreNameFromMessage(message);\n\t\tif (!skillName) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst expectedContent = normalizeSkillRestoreContent(message.content);\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (!isActiveSkillHookMessage(preservedMessage)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (getSkillRestoreNameFromMessage(preservedMessage) !== skillName) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!hasMatchingSkillRestoreContent(preservedMessage, expectedContent)) {\n\t\t\t\tactiveSkillNamesToReplace.add(skillName);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn activeSkillNamesToReplace;\n}\n\nfunction shouldReplacePreservedActiveSkillMessage(\n\tmessage: AppMessage,\n\treplacedSkillNames: Set<string>,\n): boolean {\n\tif (!isActiveSkillHookMessage(message)) {\n\t\treturn false;\n\t}\n\n\tconst skillName = getSkillRestoreNameFromMessage(message);\n\treturn skillName !== null && replacedSkillNames.has(skillName);\n}\n\nfunction buildAttachmentMarkers(message: UserMessageWithAttachments): string[] {\n\tif (!Array.isArray(message.attachments) || message.attachments.length === 0) {\n\t\treturn [];\n\t}\n\treturn message.attachments.map((attachment) =>\n\t\tattachment.type === \"document\" ? \"[document]\" : \"[image]\",\n\t);\n}\n\nfunction replaceImageBlocksWithMarkers(\n\tcontent: (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\treturn content.map((block) =>\n\t\tblock.type === \"image\" ? { type: \"text\", text: \"[image]\" } : block,\n\t);\n}\n\nfunction stripInlineImagesForCompactionSummary<\n\tT extends\n\t\t| UserMessage\n\t\t| UserMessageWithAttachments\n\t\t| HookMessage\n\t\t| ToolResultMessage,\n>(message: T): T {\n\tif (!Array.isArray(message.content)) {\n\t\treturn message;\n\t}\n\n\tlet hasImage = false;\n\tfor (const block of message.content) {\n\t\tif (block.type === \"image\") {\n\t\t\thasImage = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!hasImage) {\n\t\treturn message;\n\t}\n\n\treturn {\n\t\t...message,\n\t\tcontent: replaceImageBlocksWithMarkers(message.content),\n\t} as T;\n}\n\nfunction stripAttachmentsForCompactionSummary(\n\tmessage: UserMessageWithAttachments,\n): AppMessage {\n\tconst attachmentMarkers = buildAttachmentMarkers(message);\n\tif (attachmentMarkers.length === 0) {\n\t\treturn message;\n\t}\n\n\tconst { attachments: _attachments, ...rest } = message;\n\tconst markerText = attachmentMarkers.join(\"\\n\");\n\tif (typeof rest.content === \"string\") {\n\t\treturn {\n\t\t\t...rest,\n\t\t\tcontent: `${rest.content}\\n\\n${markerText}`,\n\t\t};\n\t}\n\n\treturn {\n\t\t...rest,\n\t\tcontent: [\n\t\t\t...rest.content,\n\t\t\t{\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: markerText,\n\t\t\t},\n\t\t],\n\t};\n}\n\nfunction prepareMessagesForCompactionSummary(\n\tmessages: AppMessage[],\n\treadPathsRestoredAfterCompaction: ReadonlySet<string> = new Set(),\n): AppMessage[] {\n\tconst readRequestsByCallId =\n\t\treadPathsRestoredAfterCompaction.size > 0\n\t\t\t? collectReadRestoreRequestsByCallId(messages)\n\t\t\t: new Map<string, ReadRestoreRequest>();\n\tconst successfulSkillToolCallIds =\n\t\tcollectSuccessfulSkillToolCallIds(messages);\n\treturn messages.flatMap((message) => {\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"read\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tconst request = readRequestsByCallId.get(message.toolCallId);\n\t\t\tif (request && readPathsRestoredAfterCompaction.has(request.path)) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tif (\n\t\t\tshouldSkipAssistantCompactionMessage(message) ||\n\t\t\tshouldSkipReinjectedCompactionMessage(message)\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tif (message.role === \"assistant\") {\n\t\t\treturn stripSuccessfulSkillToolCallsForCompactionSummary(\n\t\t\t\tmessage,\n\t\t\t\tsuccessfulSkillToolCallIds,\n\t\t\t);\n\t\t}\n\t\tif (message.role === \"user\") {\n\t\t\tconst sanitizedMessage = stripInlineImagesForCompactionSummary(message);\n\t\t\tif (\"attachments\" in sanitizedMessage) {\n\t\t\t\treturn [stripAttachmentsForCompactionSummary(sanitizedMessage)];\n\t\t\t}\n\t\t\treturn [sanitizedMessage];\n\t\t}\n\t\tif (message.role === \"toolResult\" || message.role === \"hookMessage\") {\n\t\t\treturn [stripInlineImagesForCompactionSummary(message)];\n\t\t}\n\t\treturn [message];\n\t});\n}\n\nfunction isPreviousSummaryPreamble(message: AppMessage | undefined): boolean {\n\treturn (\n\t\tmessage?.role === \"user\" &&\n\t\ttypeof message.content === \"string\" &&\n\t\tmessage.content.startsWith(PREVIOUS_SUMMARY_PREFIX)\n\t);\n}\n\nfunction isOverflowRetryMarker(message: AppMessage | undefined): boolean {\n\treturn (\n\t\tmessage?.role === \"user\" &&\n\t\ttypeof message.content === \"string\" &&\n\t\tmessage.content === COMPACTION_OVERFLOW_RETRY_MARKER\n\t);\n}\n\nfunction stripRedundantPreviousCompactionMessages(\n\tmessages: AppMessage[],\n\tpreviousSummary: string | undefined,\n): AppMessage[] {\n\tif (!previousSummary) {\n\t\treturn messages;\n\t}\n\n\treturn messages.filter(\n\t\t(message) =>\n\t\t\t!isDecoratedCompactionSummaryMessage(message) &&\n\t\t\t!isCompactionResumePromptMessage(message),\n\t);\n}\n\nfunction getOverflowTokenGap(errorMessage: string): number | undefined {\n\tconst parsed = parseOverflowDetails(errorMessage);\n\tif (parsed?.requestedTokens === undefined || parsed.maxTokens === undefined) {\n\t\treturn undefined;\n\t}\n\tconst gap = parsed.requestedTokens - parsed.maxTokens;\n\treturn gap > 0 ? gap : undefined;\n}\n\nfunction estimateRetryMessageTokens(message: AppMessage): number {\n\tconst llmMessage = convertAppMessageToLlm(message);\n\tif (!llmMessage) {\n\t\treturn 0;\n\t}\n\treturn Math.max(1, Math.ceil(JSON.stringify(llmMessage).length / 4));\n}\n\nfunction truncateSummaryInputForOverflowRetry(\n\tmessages: AppMessage[],\n\toverflowErrorMessage?: string,\n): AppMessage[] | null {\n\tif (messages.length < 2) {\n\t\treturn null;\n\t}\n\n\tconst preamble = isPreviousSummaryPreamble(messages[0]) ? messages[0] : null;\n\tconst bodyWithMarker = preamble ? messages.slice(1) : messages;\n\tconst body = isOverflowRetryMarker(bodyWithMarker[0])\n\t\t? bodyWithMarker.slice(1)\n\t\t: bodyWithMarker;\n\tif (body.length < 2) {\n\t\treturn null;\n\t}\n\n\tconst turnBoundaries = findTurnBoundaries(body, 0, body.length).filter(\n\t\t(index) => index > 0,\n\t);\n\tconst approximateDropCount = Math.max(1, Math.floor(body.length * 0.2));\n\tconst fallbackBoundary =\n\t\tturnBoundaries.find((index) => index >= approximateDropCount) ??\n\t\tapproximateDropCount;\n\tconst tokenGap = overflowErrorMessage\n\t\t? getOverflowTokenGap(overflowErrorMessage)\n\t\t: undefined;\n\tlet boundary = 0;\n\tif (tokenGap !== undefined) {\n\t\tlet coveredTokens = 0;\n\t\tconst segmentEnds = [...turnBoundaries, body.length];\n\t\tfor (const segmentEnd of segmentEnds) {\n\t\t\tif (segmentEnd <= boundary) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcoveredTokens += body\n\t\t\t\t.slice(boundary, segmentEnd)\n\t\t\t\t.reduce(\n\t\t\t\t\t(total, message) => total + estimateRetryMessageTokens(message),\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\tboundary = segmentEnd;\n\t\t\tif (coveredTokens >= tokenGap) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tboundary = fallbackBoundary;\n\t}\n\tif (boundary >= body.length) {\n\t\tboundary = fallbackBoundary;\n\t}\n\tboundary = adjustBoundaryForToolResults(body, boundary);\n\tif (boundary >= body.length) {\n\t\treturn null;\n\t}\n\n\tconst truncatedBody = body.slice(boundary);\n\tif (truncatedBody.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst markerMessage: AppMessage = {\n\t\trole: \"user\",\n\t\tcontent: COMPACTION_OVERFLOW_RETRY_MARKER,\n\t\ttimestamp: Date.now(),\n\t};\n\treturn preamble\n\t\t? [preamble, markerMessage, ...truncatedBody]\n\t\t: [markerMessage, ...truncatedBody];\n}\n\n/**\n * Find the last non-aborted assistant message usage from a message array.\n *\n * Used to determine current context window consumption. Walks backwards\n * to find the most recent valid usage metadata.\n *\n * @param messages - Array of application messages\n * @returns Usage metadata from the last assistant message, or null\n */\nexport function getLastAssistantUsage(messages: AppMessage[]): Usage | null {\n\tfor (let i = messages.length - 1; i >= 0; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) return usage;\n\t}\n\treturn null;\n}\n\n/**\n * Find the last non-aborted assistant message usage from session entries.\n *\n * @param entries - Array of session entries\n * @returns Usage metadata from the last assistant message, or null\n */\nexport function getLastAssistantUsageFromEntries(\n\tentries: SessionEntry[],\n): Usage | null {\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tif (!entry) continue;\n\t\tif (entry.type === \"message\") {\n\t\t\tconst usage = getAssistantUsage(entry.message as AppMessage);\n\t\t\tif (usage) return usage;\n\t\t}\n\t}\n\treturn null;\n}\n\n// ============================================================================\n// Compaction Trigger Detection\n// ============================================================================\n\n/**\n * Determine if compaction should trigger based on current context usage.\n *\n * Compaction triggers when context usage exceeds `contextWindow - reserveTokens`,\n * leaving enough room for summary generation plus a safety margin.\n *\n * @param contextTokens - Current context window usage in tokens\n * @param contextWindow - Model's total context window size\n * @param settings - Compaction configuration\n * @returns true if compaction should trigger\n */\nexport function shouldCompact(\n\tcontextTokens: number,\n\tcontextWindow: number,\n\tsettings: CompactionSettings,\n): boolean {\n\tif (!settings.enabled) return false;\n\treturn contextTokens > contextWindow - settings.reserveTokens;\n}\n\n/**\n * Calculate context usage percentage.\n *\n * @param contextTokens - Current context window usage in tokens\n * @param contextWindow - Model's total context window size\n * @returns Percentage of context window used (0-100)\n */\nexport function calculateUsagePercent(\n\tcontextTokens: number,\n\tcontextWindow: number,\n): number {\n\tif (contextWindow <= 0) return 0;\n\treturn (contextTokens / contextWindow) * 100;\n}\n\n// ============================================================================\n// Cut Point Detection\n// ============================================================================\n\n/**\n * Result of finding a cut point, including split turn information.\n */\nexport interface CutPointResult {\n\t/** Index of first message to keep (messages before this are summarized) */\n\tfirstKeptIndex: number;\n\t/** Index of user message that starts the turn being split, or -1 if not splitting */\n\tturnStartIndex: number;\n\t/** Whether this cut splits a turn (cut point is not a user message) */\n\tisSplitTurn: boolean;\n}\n\n/**\n * Find indices of user messages (turn boundaries) in a message array.\n *\n * Turn boundaries are important because we never want to split a turn\n * (user message + assistant response + tool results). Cutting at a user\n * message ensures turn integrity.\n *\n * @param messages - Array of messages to scan\n * @param startIndex - First index to consider (inclusive)\n * @param endIndex - Last index to consider (exclusive)\n * @returns Array of indices where user messages appear\n */\nfunction findTurnBoundaries(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n): number[] {\n\tconst boundaries: number[] = [];\n\tfor (let i = startIndex; i < endIndex; i++) {\n\t\tif (messages[i]!.role === \"user\") {\n\t\t\tboundaries.push(i);\n\t\t}\n\t}\n\treturn boundaries;\n}\n\n/**\n * Find the user message that starts the turn containing the given index.\n *\n * @param messages - Array of messages\n * @param entryIndex - Index of the message to find the turn start for\n * @param startIndex - First index to consider (inclusive)\n * @returns Index of the user message that starts this turn, or -1 if not found\n */\nexport function findTurnStartIndex(\n\tmessages: AppMessage[],\n\tentryIndex: number,\n\tstartIndex: number,\n): number {\n\tfor (let i = entryIndex; i >= startIndex; i--) {\n\t\tif (messages[i]!.role === \"user\") {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n * Find the optimal cut point in messages that preserves `keepRecentTokens`.\n *\n * The algorithm:\n * 1. Find all turn boundaries (user message indices)\n * 2. Walk backwards collecting assistant token usage\n * 3. Find where cumulative token difference exceeds keepRecentTokens\n * 4. Return the nearest turn boundary at or before that point\n *\n * This ensures:\n * - Recent context is preserved based on actual token usage, not message count\n * - Turn integrity is maintained (user/assistant/toolResult groups stay together)\n * - More context is kept when messages are small, less when large\n *\n * @param messages - Array of messages to analyze\n * @param startIndex - First index to consider for cutting\n * @param endIndex - Last index to consider (exclusive)\n * @param keepRecentTokens - Approximate tokens to preserve\n * @returns Index of first message to keep (messages before this are summarized)\n */\nexport function findCutPoint(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n\tkeepRecentTokens: number,\n): number {\n\tconst boundaries = findTurnBoundaries(messages, startIndex, endIndex);\n\n\tif (boundaries.length === 0) {\n\t\treturn startIndex; // No user messages, keep everything in range\n\t}\n\n\t// Collect assistant usages walking backwards from endIndex\n\tconst assistantUsages: Array<{ index: number; tokens: number }> = [];\n\tfor (let i = endIndex - 1; i >= startIndex; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) {\n\t\t\tassistantUsages.push({\n\t\t\t\tindex: i,\n\t\t\t\ttokens: calculateContextTokens(usage),\n\t\t\t});\n\t\t}\n\t}\n\n\tif (assistantUsages.length === 0) {\n\t\t// No usage info, keep last turn only\n\t\treturn boundaries[boundaries.length - 1]!;\n\t}\n\n\t// Walk through and find where cumulative token difference exceeds keepRecentTokens\n\tconst newestTokens = assistantUsages[0]!.tokens;\n\tlet cutIndex = startIndex; // Default: keep everything in range\n\n\tfor (let i = 1; i < assistantUsages.length; i++) {\n\t\tconst tokenDiff = newestTokens - assistantUsages[i]!.tokens;\n\t\tif (tokenDiff >= keepRecentTokens) {\n\t\t\t// Find the turn boundary at or before the assistant we want to keep\n\t\t\tconst lastKeptAssistantIndex = assistantUsages[i - 1]!.index;\n\n\t\t\tfor (let b = boundaries.length - 1; b >= 0; b--) {\n\t\t\t\tconst boundary = boundaries[b];\n\t\t\t\tif (boundary !== undefined && boundary <= lastKeptAssistantIndex) {\n\t\t\t\t\tcutIndex = boundary;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn cutIndex;\n}\n\n/**\n * Find valid cut points (user or assistant messages, not tool results).\n * Tool results must stay with their preceding tool call.\n *\n * @param messages - Array of messages to scan\n * @param startIndex - First index to consider (inclusive)\n * @param endIndex - Last index to consider (exclusive)\n * @returns Array of indices where valid cut points exist\n */\nfunction findValidCutPoints(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n): number[] {\n\tconst cutPoints: number[] = [];\n\tfor (let i = startIndex; i < endIndex; i++) {\n\t\tconst role = messages[i]!.role;\n\t\t// user and assistant are valid cut points\n\t\t// toolResult must stay with its preceding tool call\n\t\tif (role === \"user\" || role === \"assistant\") {\n\t\t\tcutPoints.push(i);\n\t\t}\n\t}\n\treturn cutPoints;\n}\n\n/**\n * Find the optimal cut point with split turn information.\n *\n * Similar to findCutPoint but:\n * - Can cut at assistant messages (not just user messages)\n * - Returns information about whether we're splitting a turn\n *\n * This allows for more aggressive compaction when turns are very large,\n * while providing the context needed to summarize the split turn prefix.\n *\n * @param messages - Array of messages to analyze\n * @param startIndex - First index to consider for cutting\n * @param endIndex - Last index to consider (exclusive)\n * @param keepRecentTokens - Approximate tokens to preserve\n * @returns CutPointResult with index and split turn information\n */\nexport function findCutPointWithSplitInfo(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n\tkeepRecentTokens: number,\n): CutPointResult {\n\tconst cutPoints = findValidCutPoints(messages, startIndex, endIndex);\n\n\tif (cutPoints.length === 0) {\n\t\treturn {\n\t\t\tfirstKeptIndex: startIndex,\n\t\t\tturnStartIndex: -1,\n\t\t\tisSplitTurn: false,\n\t\t};\n\t}\n\n\t// Estimate message sizes for token-based cutting\n\tlet accumulatedTokens = 0;\n\tlet cutIndex = startIndex;\n\n\tfor (let i = endIndex - 1; i >= startIndex; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) {\n\t\t\taccumulatedTokens = calculateContextTokens(usage);\n\t\t\t// Using cumulative tokens from the last assistant message\n\t\t\tif (accumulatedTokens >= keepRecentTokens) {\n\t\t\t\t// Find the closest valid cut point at or after this index\n\t\t\t\tfor (const cp of cutPoints) {\n\t\t\t\t\tif (cp >= i) {\n\t\t\t\t\t\tcutIndex = cp;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// If no cut point found via tokens, use last assistant's token-based cut\n\tif (cutIndex === startIndex) {\n\t\t// Fall back to original algorithm\n\t\tcutIndex = findCutPoint(messages, startIndex, endIndex, keepRecentTokens);\n\t}\n\n\t// Determine if this is a split turn\n\tconst isUserMessage = messages[cutIndex]?.role === \"user\";\n\tconst turnStartIndex = isUserMessage\n\t\t? -1\n\t\t: findTurnStartIndex(messages, cutIndex, startIndex);\n\n\treturn {\n\t\tfirstKeptIndex: cutIndex,\n\t\tturnStartIndex,\n\t\tisSplitTurn: !isUserMessage && turnStartIndex !== -1,\n\t};\n}\n\n/**\n * Adjust a cut boundary to preserve tool call/result integrity.\n *\n * Tool results must stay paired with their originating assistant message.\n * If a toolResult would be kept but its toolCall would be cut, this\n * moves the boundary back to include the toolCall.\n *\n * @param messages - Array of messages\n * @param boundary - Initial cut point\n * @returns Adjusted boundary that preserves tool integrity\n */\nexport function adjustBoundaryForToolResults(\n\tmessages: AppMessage[],\n\tboundary: number,\n): number {\n\tlet adjusted = boundary;\n\tconst seenToolCalls = new Set<string>();\n\tconst missingToolCalls = new Set<string>();\n\n\t// Process assistant message to collect tool calls\n\tconst processAssistantMessage = (message: AppMessage) => {\n\t\tif (message.role !== \"assistant\") return;\n\t\tconst content = (message as AssistantMessage).content;\n\t\tif (!content) return;\n\t\tfor (const part of content) {\n\t\t\tif (part?.type === \"toolCall\") {\n\t\t\t\tseenToolCalls.add(part.id);\n\t\t\t\tif (missingToolCalls.has(part.id)) {\n\t\t\t\t\tmissingToolCalls.delete(part.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Process tool result to check for missing tool calls\n\tconst processToolResultMessage = (message: AppMessage) => {\n\t\tif (message.role !== \"toolResult\") return;\n\t\tconst toolCallId = (message as { toolCallId: string }).toolCallId;\n\t\tif (!seenToolCalls.has(toolCallId)) {\n\t\t\tmissingToolCalls.add(toolCallId);\n\t\t}\n\t};\n\n\t// First pass: process messages we're keeping\n\tfor (const message of messages.slice(adjusted)) {\n\t\tprocessAssistantMessage(message);\n\t\tprocessToolResultMessage(message);\n\t}\n\n\t// Walk backwards to find missing tool calls\n\twhile (missingToolCalls.size > 0 && adjusted > 0) {\n\t\tadjusted -= 1;\n\t\tconst candidate = messages[adjusted]!;\n\t\tprocessAssistantMessage(candidate);\n\t\tprocessToolResultMessage(candidate);\n\t}\n\n\treturn adjusted;\n}\n\n// ============================================================================\n// Summarization\n// ============================================================================\n\n/**\n * Default prompt for generating compaction summaries.\n *\n * Based on research into Claude Code, Codex (OpenAI), and OpenCode (SST).\n * Focused on creating actionable handoff summaries for the resuming LLM.\n */\nexport const SUMMARIZATION_PROMPT = `You are performing a CONTEXT CHECKPOINT COMPACTION. Create a handoff summary for another LLM that will resume the task.\n\nInclude:\n- Current progress and key decisions made\n- Important context, constraints, or user preferences\n- Absolute file paths of any relevant files that were read or modified\n- What remains to be done (clear next steps)\n- Any critical data, examples, or references needed to continue\n\nBe concise, structured, and focused on helping the next LLM seamlessly continue the work.`;\n\n/**\n * Prompt for summarizing the prefix of a split turn.\n *\n * Used when compaction cuts in the middle of a turn (at an assistant message\n * rather than a user message). The prefix of the turn needs summarization\n * to provide context for the kept suffix.\n */\nexport const TURN_PREFIX_SUMMARIZATION_PROMPT = `You are performing a CONTEXT CHECKPOINT COMPACTION for a split turn.\nThis is the PREFIX of a turn that was too large to keep in full. The SUFFIX (recent work) is being kept.\n\nCreate a handoff summary that captures:\n- What the user originally asked for in this turn\n- Key decisions and progress made early in this turn\n- Important context needed to understand the kept suffix\n\nBe concise. Focus on information needed to understand the retained recent work.`;\n\n/**\n * Build the turn prefix summarization prompt.\n *\n * @returns Complete turn prefix summarization prompt\n */\nexport function buildTurnPrefixSummarizationPrompt(): string {\n\treturn TURN_PREFIX_SUMMARIZATION_PROMPT;\n}\n\n/**\n * Build the summarization prompt, optionally with custom instructions.\n *\n * @param customInstructions - Optional additional focus for the summary\n * @returns Complete summarization prompt\n */\nexport function buildSummarizationPrompt(customInstructions?: string): string {\n\tif (customInstructions) {\n\t\treturn `${SUMMARIZATION_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t}\n\treturn SUMMARIZATION_PROMPT;\n}\n\n/**\n * Decorate a summary with handoff context.\n *\n * Adds a prefix that instructs the resuming LLM to build on existing work,\n * and a footer with compaction metadata.\n *\n * @param summaryText - The generated summary content\n * @param compactedCount - Number of messages that were compacted\n * @param fromModel - Whether the summary was generated by the LLM (vs local fallback)\n * @returns Decorated summary text\n */\nexport function decorateSummaryText(\n\tsummaryText: string,\n\tcompactedCount: number,\n\tfromModel: boolean,\n): string {\n\t// OAI-style handoff prefix that tells the resuming model it's continuing work\n\tconst handoffPrefix = fromModel\n\t\t? \"Another language model started to solve this problem and produced a summary of its thinking process. You also have access to the state of the tools that were used by that language model. Use this to build on the work that has already been done and avoid duplicating work. Here is the summary produced by the other language model, use the information in this summary to assist with your own analysis:\\n\\n\"\n\t\t: \"_Local summary of prior discussion (model unavailable)._\\n\\n\";\n\n\treturn `${handoffPrefix}${summaryText}\\n\\n(Compacted ${compactedCount} messages on ${new Date().toLocaleString()})`;\n}\n\n/**\n * Check whether text matches the decorated compaction summary format.\n */\nexport function isDecoratedCompactionSummaryText(text: string): boolean {\n\tconst normalized = text.trim();\n\tif (!normalized) return false;\n\treturn (\n\t\tnormalized.includes(\n\t\t\t\"Another language model started to solve this problem\",\n\t\t) ||\n\t\tnormalized.includes(\"(Compacted\") ||\n\t\tnormalized.includes(\"_Local summary of prior discussion\")\n\t);\n}\n\n/**\n * Check whether a message is a decorated assistant compaction summary.\n */\nexport function isDecoratedCompactionSummaryMessage(\n\tmessage: AppMessage,\n): boolean {\n\tif (message.role !== \"assistant\") return false;\n\treturn isDecoratedCompactionSummaryText(extractMessageText(message));\n}\n\n/**\n * Check whether text matches the internal post-compaction resume prompt.\n */\nexport function isCompactionResumePromptText(text: string): boolean {\n\treturn text.trim() === COMPACTION_RESUME_PROMPT;\n}\n\n/**\n * Check whether a message is the internal post-compaction resume prompt.\n */\nexport function isCompactionResumePromptMessage(message: AppMessage): boolean {\n\tif (message.role !== \"user\") return false;\n\treturn isCompactionResumePromptText(extractMessageText(message));\n}\n\n/**\n * Merge a history summary with a turn prefix summary for split turn compaction.\n *\n * When compaction splits a turn, we generate two summaries:\n * 1. History summary: everything before the split turn\n * 2. Turn prefix summary: the beginning of the split turn\n *\n * This function combines them into a single coherent summary.\n *\n * @param historySummary - Summary of messages before the split turn\n * @param turnPrefixSummary - Summary of the prefix of the split turn\n * @returns Combined summary text\n */\nexport function mergeSplitTurnSummaries(\n\thistorySummary: string,\n\tturnPrefixSummary: string,\n): string {\n\treturn `${historySummary}\\n\\n---\\n\\n**Turn Context (split turn):**\\n\\n${turnPrefixSummary}`;\n}\n\n/**\n * Build a simple local summary when LLM summarization fails.\n *\n * Creates a bullet-point summary of user/assistant exchanges without\n * calling the LLM. Used as fallback when the model is unavailable.\n *\n * @param messages - Messages to summarize\n * @param maxExchanges - Maximum number of exchanges to include\n * @returns Local summary text\n */\nexport function buildLocalSummary(\n\tmessages: AppMessage[],\n\tmaxExchanges = 32,\n): string {\n\tconst lines: string[] = [];\n\tlet exchange = 1;\n\n\tfor (const message of messages) {\n\t\tif (lines.length >= maxExchanges) break;\n\t\tif (shouldSkipAssistantCompactionMessage(message)) continue;\n\n\t\tconst content = extractMessageText(message);\n\t\tif (!content) continue;\n\n\t\tconst truncated = truncateText(content, 180);\n\t\tif (message.role === \"user\") {\n\t\t\tlines.push(`• User ${exchange}: ${truncated}`);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tlines.push(` ↳ Assistant: ${truncated}`);\n\t\t\texchange += 1;\n\t\t} else if (message.role === \"toolResult\") {\n\t\t\tconst toolName = (message as { toolName?: string }).toolName || \"unknown\";\n\t\t\tlines.push(` ↳ Tool ${toolName}: ${truncateText(content, 160)}`);\n\t\t}\n\t}\n\n\tif (!lines.length) {\n\t\treturn \"(conversation summary placeholder: no textual content to compact)\";\n\t}\n\n\treturn `Conversation summary generated at ${new Date().toLocaleString()}\\n${lines.join(\"\\n\")}`;\n}\n\n/**\n * Extract text content from a message.\n *\n * @param message - Message to extract text from\n * @returns Combined text content or empty string\n */\nfunction extractMessageText(message: AppMessage): string {\n\tconst llmMessage = convertAppMessageToLlm(message);\n\tif (!llmMessage) {\n\t\treturn \"\";\n\t}\n\tif (typeof llmMessage.content === \"string\") {\n\t\treturn llmMessage.content;\n\t}\n\tif (Array.isArray(llmMessage.content)) {\n\t\treturn llmMessage.content\n\t\t\t.map((part) => {\n\t\t\t\tif (part.type === \"text\") return part.text;\n\t\t\t\tif (part.type === \"thinking\") return part.thinking;\n\t\t\t\treturn \"\";\n\t\t\t})\n\t\t\t.filter((part): part is string => Boolean(part))\n\t\t\t.join(\" \");\n\t}\n\treturn \"\";\n}\n\n/**\n * Truncate text to a maximum length with ellipsis.\n *\n * @param text - Text to truncate\n * @param limit - Maximum length\n * @returns Truncated text with ellipsis if needed\n */\nfunction truncateText(text: string, limit = 160): string {\n\tif (text.length <= limit) return text;\n\treturn `${text.slice(0, limit - 1).trim()}…`;\n}\n\n// ============================================================================\n// Compaction Preparation\n// ============================================================================\n\n/**\n * Prepare messages for compaction by finding the cut point and splitting.\n *\n * This is a pure function that determines what should be summarized vs kept,\n * without actually performing the summarization or I/O.\n *\n * @param messages - All messages in the conversation\n * @param settings - Compaction settings\n * @param previousSummary - Optional summary from a previous compaction (for cascading)\n * @returns Object with messages to summarize and messages to keep, or null if not enough history\n */\nexport function prepareCompaction(\n\tmessages: AppMessage[],\n\tsettings: CompactionSettings,\n\tpreviousSummary?: string,\n): {\n\tmessagesToSummarize: AppMessage[];\n\tkeptMessages: AppMessage[];\n\tcutIndex: number;\n} | null {\n\tconst keepCount = 6; // Minimum messages to always keep\n\tif (messages.length <= keepCount + 1) {\n\t\treturn null; // Not enough history to compact\n\t}\n\n\t// Find initial boundary\n\tlet boundary = Math.max(0, messages.length - keepCount);\n\n\t// Use token-based cut point if we have usage data\n\tconst lastUsage = getLastAssistantUsage(messages);\n\tif (lastUsage) {\n\t\tconst tokenBasedCut = findCutPoint(\n\t\t\tmessages,\n\t\t\t0,\n\t\t\tmessages.length,\n\t\t\tsettings.keepRecentTokens,\n\t\t);\n\t\t// Use the more conservative of the two (keep more messages)\n\t\tboundary = Math.max(boundary, tokenBasedCut);\n\t}\n\n\t// Adjust for tool result integrity\n\tboundary = adjustBoundaryForToolResults(messages, boundary);\n\n\tconst older = messages.slice(0, boundary);\n\tif (!older.length) {\n\t\treturn null; // No earlier messages to compact\n\t}\n\n\t// Prepare messages for summarization\n\tconst messagesToSummarize: AppMessage[] = [];\n\n\t// Include previous summary if cascading\n\tif (previousSummary) {\n\t\tmessagesToSummarize.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: `Previous session summary:\\n${previousSummary}`,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\n\t// Add older messages (limit to most recent 40 for summarization efficiency)\n\tconst sliceSize = Math.min(40, older.length);\n\tconst summaryTail = stripRedundantPreviousCompactionMessages(\n\t\tprepareMessagesForCompactionSummary(older.slice(-sliceSize)),\n\t\tpreviousSummary,\n\t);\n\tmessagesToSummarize.push(...summaryTail);\n\n\treturn {\n\t\tmessagesToSummarize,\n\t\tkeptMessages: messages.slice(boundary),\n\t\tcutIndex: boundary,\n\t};\n}\n\n/**\n * Extract the most recent compaction summary from messages.\n *\n * Looks for a message that appears to be a compaction summary (contains\n * the characteristic handoff prefix or compaction footer).\n *\n * @param messages - Messages to search\n * @returns Previous summary text or undefined\n */\nexport function findPreviousSummary(\n\tmessages: AppMessage[],\n): string | undefined {\n\tfor (const message of messages) {\n\t\tif (isDecoratedCompactionSummaryMessage(message)) {\n\t\t\tconst text = extractMessageText(message);\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n}\n\n// ============================================================================\n// Orchestrated Compaction\n// ============================================================================\n\n/**\n * Minimal agent interface required by performCompaction.\n * Avoids depending on the full Agent class to keep this module leaf-level.\n */\nexport interface CompactionAgent {\n\tstate: {\n\t\tmessages: AppMessage[];\n\t\tmodel: { api: Api; provider: string; id: string };\n\t\tsystemPromptSourcePaths?: string[];\n\t};\n\tgenerateSummary(\n\t\thistory: AppMessage[],\n\t\tprompt: string,\n\t\tsystemPrompt: string,\n\t): Promise<AssistantMessage>;\n\treplaceMessages(messages: AppMessage[]): void;\n\tappendMessage?(message: AppMessage): void;\n\tclearTransientRunState?(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void;\n}\n\n/**\n * Minimal session manager interface required by performCompaction.\n */\nexport interface CompactionSessionManager {\n\tbuildSessionContext(): { messageEntries: Array<{ id?: string }> };\n\tsaveCompaction(\n\t\tsummary: string,\n\t\tfirstKeptEntryIndex: number,\n\t\ttokensBefore: number,\n\t\toptions?: {\n\t\t\tauto?: boolean;\n\t\t\tcustomInstructions?: string;\n\t\t\tfirstKeptEntryId?: string;\n\t\t},\n\t): void;\n\tsaveMessage(message: AppMessage): void;\n}\n\n/**\n * Result of a performCompaction() call.\n */\nexport interface PerformCompactionResult {\n\tsuccess: boolean;\n\tcompactedCount?: number;\n\tsummary?: string;\n\tfirstKeptEntryIndex?: number;\n\ttokensBefore?: number;\n\terror?: string;\n}\n\nfunction buildEffectiveCustomInstructions(\n\tcustomInstructions: string | undefined,\n\thookResult?: {\n\t\tsystemMessage?: string;\n\t\tadditionalContext?: string;\n\t},\n): string | undefined {\n\tconst trimmedCustomInstructions = customInstructions?.trim();\n\tconst hookSections = [\n\t\thookResult?.systemMessage?.trim()\n\t\t\t? `Hook system guidance:\\n${hookResult.systemMessage.trim()}`\n\t\t\t: null,\n\t\thookResult?.additionalContext?.trim()\n\t\t\t? `Hook context:\\n${hookResult.additionalContext.trim()}`\n\t\t\t: null,\n\t].filter((section): section is string => Boolean(section));\n\n\tif (hookSections.length === 0) {\n\t\treturn trimmedCustomInstructions || undefined;\n\t}\n\n\tif (!trimmedCustomInstructions) {\n\t\treturn hookSections.join(\"\\n\\n\");\n\t}\n\n\treturn `${trimmedCustomInstructions}\\n\\n${hookSections.join(\"\\n\\n\")}`;\n}\n\nfunction buildPostCompactHookMessages(hookResult: {\n\tsystemMessage?: string;\n\tadditionalContext?: string;\n}): AppMessage[] {\n\tconst timestamp = new Date().toISOString();\n\tconst messages: AppMessage[] = [];\n\tconst systemMessage = hookResult.systemMessage?.trim();\n\tif (systemMessage) {\n\t\tmessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"PostCompact\",\n\t\t\t\t`PostCompact hook system guidance:\\n${systemMessage}`,\n\t\t\t\ttrue,\n\t\t\t\tundefined,\n\t\t\t\ttimestamp,\n\t\t\t),\n\t\t);\n\t}\n\n\tconst additionalContext = hookResult.additionalContext?.trim();\n\tif (additionalContext) {\n\t\tmessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"PostCompact\",\n\t\t\t\tadditionalContext,\n\t\t\t\ttrue,\n\t\t\t\tundefined,\n\t\t\t\ttimestamp,\n\t\t\t),\n\t\t);\n\t}\n\n\treturn messages;\n}\n\n/**\n * Perform context compaction end-to-end: calculate boundary, generate summary,\n * replace messages, and persist to session.\n *\n * This function consolidates the compaction logic previously duplicated across\n * main.ts (auto-compact + RPC compact) and ConversationCompactor.\n *\n * @param params.agent - Agent instance (or compatible interface)\n * @param params.sessionManager - Session persistence manager\n * @param params.auto - Whether this is an auto-triggered compaction\n * @param params.customInstructions - Optional focus instructions for summary\n * @param params.renderSummaryText - Optional callback to render an AssistantMessage to plain text.\n * When omitted, performCompaction uses a JSON-based fallback extractor.\n * @returns Result indicating success or failure\n */\nexport async function performCompaction(params: {\n\tagent: CompactionAgent;\n\tsessionManager: CompactionSessionManager;\n\tauto?: boolean;\n\ttrigger?: \"auto\" | \"manual\" | \"token_limit\";\n\tcustomInstructions?: string;\n\tpersistCustomInstructions?: boolean;\n\thookContext?: CompactionHookContext;\n\thookService?: CompactionHookService;\n\tgetPostKeepMessages?: (\n\t\tpreservedMessages: AppMessage[],\n\t) => Promise<AppMessage[]>;\n\trenderSummaryText?: (message: AssistantMessage) => string;\n\treadRestoreExecute?: ReadRestoreExecutor;\n}): Promise<PerformCompactionResult> {\n\tconst {\n\t\tagent,\n\t\tsessionManager,\n\t\tauto,\n\t\ttrigger,\n\t\tcustomInstructions,\n\t\tpersistCustomInstructions = true,\n\t\thookContext,\n\t\thookService,\n\t\tgetPostKeepMessages,\n\t\trenderSummaryText,\n\t\treadRestoreExecute = readTool.execute,\n\t} = params;\n\tconst messages = [...agent.state.messages];\n\tconst keepCount = 6;\n\n\tif (messages.length <= keepCount + 1) {\n\t\treturn { success: false, error: \"Not enough history to compact\" };\n\t}\n\n\t// Calculate boundary using token-based cut point detection\n\tlet boundary = Math.max(0, messages.length - keepCount);\n\tconst lastUsage = getLastAssistantUsage(messages);\n\tif (lastUsage) {\n\t\tconst tokenBasedCut = findCutPoint(\n\t\t\tmessages,\n\t\t\t0,\n\t\t\tmessages.length,\n\t\t\tDEFAULT_COMPACTION_SETTINGS.keepRecentTokens,\n\t\t);\n\t\tboundary = Math.max(boundary, tokenBasedCut);\n\t}\n\tboundary = adjustBoundaryForToolResults(messages, boundary);\n\n\tconst older = messages.slice(0, boundary);\n\tif (!older.length) {\n\t\treturn { success: false, error: \"No earlier messages to compact\" };\n\t}\n\tconst keep = stripRuntimeRestoreMessages(messages.slice(boundary));\n\tconst restoredReadMessages = await collectRecentReadRestoreMessages(\n\t\tolder,\n\t\tkeep,\n\t\tagent.state.systemPromptSourcePaths,\n\t\treadRestoreExecute,\n\t);\n\tconst readPathsRestoredAfterCompaction =\n\t\tcollectRestoredReadPaths(restoredReadMessages);\n\n\tconst tokensBefore = lastUsage ? calculateContextTokens(lastUsage) : 0;\n\tlet effectiveCustomInstructions = customInstructions;\n\n\tconst effectiveHookService =\n\t\thookService ??\n\t\t(hookContext ? createCompactionHookService(hookContext) : undefined);\n\n\tif (effectiveHookService) {\n\t\tif (\n\t\t\t!effectiveHookService.hasHooks ||\n\t\t\teffectiveHookService.hasHooks(\"PreCompact\")\n\t\t) {\n\t\t\tconst hookResult = await effectiveHookService.runPreCompactHooks(\n\t\t\t\ttrigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\ttokensBefore,\n\t\t\t\tDEFAULT_COMPACTION_SETTINGS.keepRecentTokens,\n\t\t\t\thookContext?.signal,\n\t\t\t);\n\n\t\t\tif (hookResult.blocked) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror:\n\t\t\t\t\t\thookResult.blockReason ?? \"Compaction blocked by PreCompact hook\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (hookResult.preventContinuation) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror:\n\t\t\t\t\t\thookResult.stopReason ?? \"Compaction prevented by PreCompact hook\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\teffectiveCustomInstructions = buildEffectiveCustomInstructions(\n\t\t\t\tcustomInstructions,\n\t\t\t\thookResult,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Look for previous summary (cascading)\n\tconst previousSummary = findPreviousSummary(messages);\n\tconst sliceSize = Math.min(40, older.length);\n\tconst olderForSummary = stripRedundantPreviousCompactionMessages(\n\t\tprepareMessagesForCompactionSummary(\n\t\t\tolder.slice(-sliceSize),\n\t\t\treadPathsRestoredAfterCompaction,\n\t\t),\n\t\tpreviousSummary,\n\t);\n\tconst summaryInput: AppMessage[] = [];\n\tif (previousSummary) {\n\t\tsummaryInput.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: `Previous session summary:\\n${previousSummary}`,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\tsummaryInput.push(...olderForSummary);\n\n\tlet summaryText = \"\";\n\tlet usedModel = false;\n\tlet summaryInputForAttempt = summaryInput;\n\tlet overflowAttempts = 0;\n\n\tfor (;;) {\n\t\tconst prompt = buildSummarizationPrompt(effectiveCustomInstructions);\n\t\ttry {\n\t\t\tconst summary = await agent.generateSummary(\n\t\t\t\tsummaryInputForAttempt,\n\t\t\t\tprompt,\n\t\t\t\t\"You are a careful note-taker that distills coding conversations into actionable summaries.\",\n\t\t\t);\n\t\t\tif (isCompactionOverflowMessage(summary)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsummary.errorMessage ||\n\t\t\t\t\t\textractMessageText(summary) ||\n\t\t\t\t\t\t\"Prompt too long\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst llmText = renderSummaryText\n\t\t\t\t? renderSummaryText(summary)\n\t\t\t\t: extractMessageText(summary);\n\t\t\tsummaryText = llmText.trim() || buildLocalSummary(olderForSummary, 32);\n\t\t\tusedModel = true;\n\t\t\tbreak;\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof Error &&\n\t\t\t\tisOverflowErrorMessage(error.message) &&\n\t\t\t\toverflowAttempts < MAX_COMPACTION_OVERFLOW_RETRIES\n\t\t\t) {\n\t\t\t\tconst truncated = truncateSummaryInputForOverflowRetry(\n\t\t\t\t\tsummaryInputForAttempt,\n\t\t\t\t\terror.message,\n\t\t\t\t);\n\t\t\t\tif (truncated) {\n\t\t\t\t\tsummaryInputForAttempt = truncated;\n\t\t\t\t\toverflowAttempts += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsummaryText = buildLocalSummary(olderForSummary, 32);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst decorated = decorateSummaryText(summaryText, older.length, usedModel);\n\n\t// Build summary and resume messages\n\tconst summaryMessage: AssistantMessage = {\n\t\trole: \"assistant\",\n\t\tcontent: [{ type: \"text\", text: decorated }],\n\t\tapi: agent.state.model.api,\n\t\tprovider: agent.state.model.provider,\n\t\tmodel: agent.state.model.id,\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\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n\n\tconst resumeMessage: AppMessage = {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: COMPACTION_RESUME_PROMPT,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n\n\tconst sessionContext = sessionManager.buildSessionContext();\n\tconst firstKeptEntryId = sessionContext.messageEntries[boundary]?.id;\n\n\t// Persist compaction to session\n\tsessionManager.saveCompaction(summaryText, boundary, tokensBefore, {\n\t\tauto,\n\t\tcustomInstructions: persistCustomInstructions\n\t\t\t? customInstructions\n\t\t\t: undefined,\n\t\tfirstKeptEntryId,\n\t});\n\n\tconst callerPostKeepMessages = (await getPostKeepMessages?.(keep)) ?? [];\n\tconst preservedTailMessages = [...keep, ...callerPostKeepMessages];\n\tconst dedupedRestoredReadMessages = restoredReadMessages.filter((message) => {\n\t\tif (\n\t\t\tmessage.role !== \"hookMessage\" ||\n\t\t\tmessage.customType !== READ_RESTORE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t!Array.isArray(message.content)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst details = message.details;\n\t\tconst filePath =\n\t\t\ttypeof details === \"object\" &&\n\t\t\tdetails !== null &&\n\t\t\t\"filePath\" in details &&\n\t\t\ttypeof details.filePath === \"string\"\n\t\t\t\t? details.filePath\n\t\t\t\t: null;\n\t\treturn (\n\t\t\tfilePath !== null &&\n\t\t\t!hasReadRestoreMessage(preservedTailMessages, filePath, message.content)\n\t\t);\n\t});\n\tconst skillRestoreResult = await collectRecentSkillRestoreMessages(\n\t\tolder,\n\t\tpreservedTailMessages,\n\t);\n\tconst readRestorePathsToReplace = collectReadRestorePathsToReplace(\n\t\tkeep,\n\t\tdedupedRestoredReadMessages,\n\t);\n\tconst planFilePathsToReplace = collectPlanFilePathsToReplace(\n\t\tkeep,\n\t\tcallerPostKeepMessages,\n\t);\n\tconst currentPlanFilePaths = collectPlanRestorePaths(\n\t\tcallerPostKeepMessages,\n\t\tgetPlanFileRestorePath,\n\t);\n\tconst currentPlanModePaths = collectPlanRestorePaths(\n\t\tcallerPostKeepMessages,\n\t\tgetPlanModeRestorePath,\n\t);\n\tconst activeSkillNamesToReplace = collectActiveSkillNamesToReplace(\n\t\tkeep,\n\t\tcallerPostKeepMessages,\n\t);\n\tconst filteredKeep = keep.filter(\n\t\t(message) =>\n\t\t\t!shouldReplacePreservedReadRestoreMessage(\n\t\t\t\tmessage,\n\t\t\t\treadRestorePathsToReplace,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedPlanFileMessage(\n\t\t\t\tmessage,\n\t\t\t\tplanFilePathsToReplace,\n\t\t\t\tcurrentPlanFilePaths,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedPlanModeMessage(message, currentPlanModePaths) &&\n\t\t\t!shouldReplacePreservedToolSkillMessage(\n\t\t\t\tmessage,\n\t\t\t\tskillRestoreResult.replacedPreservedToolSkillNames,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedActiveSkillMessage(\n\t\t\t\tmessage,\n\t\t\t\tactiveSkillNamesToReplace,\n\t\t\t),\n\t);\n\n\t// Replace agent messages\n\tconst newMessages = [\n\t\tsummaryMessage as AppMessage,\n\t\tresumeMessage,\n\t\t...filteredKeep,\n\t];\n\tagent.replaceMessages(newMessages);\n\tagent.clearTransientRunState?.({ clearSessionContextCache: true });\n\tsessionManager.saveMessage(summaryMessage);\n\tsessionManager.saveMessage(resumeMessage);\n\tawait runPostCompactionCleanup({\n\t\tauto,\n\t\tcustomInstructions,\n\t\tcompactedCount: older.length,\n\t\tfirstKeptEntryIndex: boundary,\n\t});\n\n\tconst appendedTailMessages: AppMessage[] = [];\n\tconst persistTailMessages = (messagesToPersist: AppMessage[]) => {\n\t\tif (messagesToPersist.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tappendedTailMessages.push(...messagesToPersist);\n\t\tif (typeof agent.appendMessage === \"function\") {\n\t\t\tfor (const message of messagesToPersist) {\n\t\t\t\tagent.appendMessage(message);\n\t\t\t\tsessionManager.saveMessage(message);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tagent.replaceMessages([\n\t\t\tsummaryMessage as AppMessage,\n\t\t\tresumeMessage,\n\t\t\t...filteredKeep,\n\t\t\t...appendedTailMessages,\n\t\t]);\n\t\tfor (const message of messagesToPersist) {\n\t\t\tsessionManager.saveMessage(message);\n\t\t}\n\t};\n\tconst postKeepMessages = [\n\t\t...dedupedRestoredReadMessages,\n\t\t...skillRestoreResult.restoredMessages,\n\t\t...callerPostKeepMessages,\n\t];\n\tpersistTailMessages(postKeepMessages);\n\n\tlet postCompactHookMessages: AppMessage[] = [];\n\n\tif (\n\t\teffectiveHookService?.runPostCompactHooks &&\n\t\t(!effectiveHookService.hasHooks ||\n\t\t\teffectiveHookService.hasHooks(\"PostCompact\"))\n\t) {\n\t\tconst postCompactHookResult =\n\t\t\tawait effectiveHookService.runPostCompactHooks(\n\t\t\t\ttrigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\tsummaryText,\n\t\t\t\thookContext?.signal,\n\t\t\t);\n\t\tif (\n\t\t\tpostCompactHookResult.blocked ||\n\t\t\tpostCompactHookResult.preventContinuation\n\t\t) {\n\t\t\tlogger.warn(\n\t\t\t\t\"PostCompact hook returned unsupported control flow request; ignoring\",\n\t\t\t\t{\n\t\t\t\t\ttrigger: trigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\t\tblocked: postCompactHookResult.blocked,\n\t\t\t\t\tpreventContinuation: postCompactHookResult.preventContinuation,\n\t\t\t\t\treason:\n\t\t\t\t\t\tpostCompactHookResult.blockReason ??\n\t\t\t\t\t\tpostCompactHookResult.stopReason,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tpostCompactHookMessages = buildPostCompactHookMessages(\n\t\t\tpostCompactHookResult,\n\t\t);\n\t\tpersistTailMessages(postCompactHookMessages);\n\t}\n\n\treturn {\n\t\tsuccess: true,\n\t\tcompactedCount: older.length,\n\t\tsummary: summaryText,\n\t\tfirstKeptEntryIndex: boundary,\n\t\ttokensBefore,\n\t};\n}\n"]}
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/agent/compaction.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Context Compaction - Pure Functions for Long Session Management\n *\n * This module provides pure functions for context compaction logic. Context\n * compaction summarizes older conversation history when approaching token limits,\n * allowing conversations to continue indefinitely while preserving important context.\n *\n * ## Architecture\n *\n * The compaction system follows a separation of concerns:\n * - **This module**: Pure functions for token calculation, cut point detection, and\n * determining when compaction should trigger. No I/O or side effects.\n * - **SessionManager**: Handles persistence of compaction entries to session files.\n * - **ConversationCompactor**: Orchestrates the compaction process with TUI integration.\n *\n * ## Token-Based Cut Point Detection\n *\n * Instead of using a fixed message count, cut point detection uses actual token usage\n * from assistant messages. The algorithm walks backwards from the newest message,\n * calculating cumulative token differences until `keepRecentTokens` is exceeded.\n *\n * This approach:\n * - Preserves more context when messages are small\n * - Compacts more aggressively when messages are large\n * - Respects turn boundaries (never splits user/assistant/toolResult groups)\n *\n * ## Summarization Strategy\n *\n * When compacting, older messages are summarized using the LLM with a handoff-style\n * prompt. If a previous compaction exists, its summary is included as context for\n * the new summarization (cascading summaries).\n *\n * @module agent/compaction\n */\n\nimport { realpathSync } from \"node:fs\";\nimport { resolve as resolvePath } from \"node:path\";\nimport {\n\tresolveLoadedAppendSystemPromptPath,\n\tresolvePromptLoadedProjectDocPaths,\n} from \"../config/index.js\";\nimport type { PromptProjectDocManifest } from \"../config/index.js\";\nimport type { SessionEntry } from \"../session/types.js\";\nimport { getSkillArtifactMetadataFromDetails } from \"../skills/artifact-metadata.js\";\nimport { readTool } from \"../tools/read.js\";\nimport { createLogger } from \"../utils/logger.js\";\nimport { expandUserPath } from \"../utils/path-validation.js\";\nimport { runPostCompactionCleanup } from \"./compaction-cleanup.js\";\nimport {\n\ttype CompactionHookContext,\n\ttype CompactionHookService,\n\tcreateCompactionHookService,\n} from \"./compaction-hooks.js\";\nimport {\n\tBACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE,\n\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE,\n\tMCP_SERVERS_COMPACTION_CUSTOM_TYPE,\n\tPLAN_FILE_COMPACTION_CUSTOM_TYPE,\n\tPLAN_MODE_COMPACTION_CUSTOM_TYPE,\n} from \"./compaction-restoration.js\";\nimport {\n\tisContextOverflow as isCompactionOverflowMessage,\n\tisOverflowErrorMessage,\n\tparseOverflowDetails,\n} from \"./context-overflow.js\";\nimport {\n\tconvertAppMessageToLlm,\n\tcreateHookMessage,\n} from \"./custom-messages.js\";\nimport { getPlanFilePathForCompactionRestore } from \"./plan-mode.js\";\nimport { SESSION_START_INITIAL_USER_METADATA_KIND } from \"./session-start-metadata.js\";\nimport type {\n\tApi,\n\tAppMessage,\n\tAssistantMessage,\n\tHookMessage,\n\tImageContent,\n\tTextContent,\n\tToolResultMessage,\n\tUsage,\n\tUserMessage,\n\tUserMessageWithAttachments,\n} from \"./types.js\";\n\nconst logger = createLogger(\"agent:compaction\");\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Configuration for compaction behavior.\n */\nexport interface CompactionSettings {\n\t/** Whether auto-compaction is enabled */\n\tenabled: boolean;\n\t/**\n\t * Tokens to reserve for summary generation and safety margin.\n\t * Default: 16384 (~13k for summary + ~3k safety margin)\n\t */\n\treserveTokens: number;\n\t/**\n\t * Approximate number of recent tokens to preserve verbatim.\n\t * Default: 20000 (recent context preserved without summarization)\n\t */\n\tkeepRecentTokens: number;\n}\n\n/**\n * Default compaction settings based on research into Claude Code, Codex, and OpenCode.\n */\nexport const DEFAULT_COMPACTION_SETTINGS: CompactionSettings = {\n\tenabled: true,\n\treserveTokens: 16384,\n\tkeepRecentTokens: 20000,\n};\n\n/**\n * Internal user prompt appended after compaction so the model resumes from the\n * summarized context on the next turn.\n */\nexport const COMPACTION_RESUME_PROMPT =\n\t\"Use the above summary to resume the plan from where we left off.\";\n\nconst MAX_COMPACTION_OVERFLOW_RETRIES = 3;\nconst PREVIOUS_SUMMARY_PREFIX = \"Previous session summary:\\n\";\nconst COMPACTION_OVERFLOW_RETRY_MARKER =\n\t\"[earlier conversation truncated for compaction retry]\";\nconst READ_RESTORE_COMPACTION_CUSTOM_TYPE = \"read-file\";\nconst MAX_READ_RESTORE_MESSAGES = 5;\nconst READ_RESTORE_TOKEN_BUDGET = 50_000;\nconst READ_RESTORE_MAX_TOKENS_PER_FILE = 5_000;\nconst READ_RESTORE_TRUNCATION_MARKER =\n\t\"\\n\\n[... restored read result truncated for compaction; use `read` on the path again if you need the full contents]\";\nconst SKILL_RESTORE_TOKEN_BUDGET = 25_000;\nconst SKILL_RESTORE_MAX_TOKENS_PER_SKILL = 5_000;\nconst SKILL_RESTORE_TRUNCATION_MARKER =\n\t\"\\n\\n[... restored skill truncated for compaction; use the `Skill` tool again if you need the full instructions]\";\n\n/**\n * Result of a compaction operation, ready to be persisted.\n */\nexport interface CompactionResult {\n\t/** Generated summary of compacted messages */\n\tsummary: string;\n\t/** Index of first entry to keep (entries before this are summarized) */\n\tfirstKeptEntryIndex: number;\n\t/** Token count before compaction (for metrics) */\n\ttokensBefore: number;\n\t/** Messages that were summarized */\n\tsummarizedMessages: AppMessage[];\n\t/** Messages to keep verbatim */\n\tkeptMessages: AppMessage[];\n}\n\n// ============================================================================\n// Token Calculation\n// ============================================================================\n\n/**\n * Calculate total context tokens from usage metadata.\n *\n * This includes all token types that contribute to context window consumption:\n * - input: Tokens from user/system messages\n * - output: Tokens generated by the model\n * - cacheRead: Tokens read from prompt cache\n * - cacheWrite: Tokens written to prompt cache\n *\n * @param usage - Usage metadata from an assistant message\n * @returns Total context token count\n */\nexport function calculateContextTokens(usage: Usage): number {\n\treturn usage.input + usage.output + usage.cacheRead + usage.cacheWrite;\n}\n\n/**\n * Extract usage metadata from a message if it's a non-aborted assistant message.\n *\n * @param msg - Any application message\n * @returns Usage metadata or null if not available/applicable\n */\nfunction getAssistantUsage(msg: AppMessage): Usage | null {\n\tif (msg.role === \"assistant\") {\n\t\tconst assistantMsg = msg as AssistantMessage;\n\t\tif (\n\t\t\tassistantMsg.stopReason !== \"aborted\" &&\n\t\t\tassistantMsg.stopReason !== \"error\" &&\n\t\t\tassistantMsg.usage\n\t\t) {\n\t\t\treturn assistantMsg.usage;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction shouldSkipAssistantCompactionMessage(message: AppMessage): boolean {\n\treturn (\n\t\tmessage.role === \"assistant\" &&\n\t\t(message.stopReason === \"aborted\" || message.stopReason === \"error\")\n\t);\n}\n\nfunction shouldSkipReinjectedCompactionMessage(message: AppMessage): boolean {\n\treturn (\n\t\t(message.role === \"hookMessage\" &&\n\t\t\t((message.customType === \"skill\" && message.display === false) ||\n\t\t\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === PLAN_FILE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === BACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType ===\n\t\t\t\t\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === MCP_SERVERS_COMPACTION_CUSTOM_TYPE ||\n\t\t\t\tmessage.customType === \"PostCompact\" ||\n\t\t\t\tmessage.customType === \"SessionStart\" ||\n\t\t\t\tmessage.customType === PLAN_MODE_COMPACTION_CUSTOM_TYPE)) ||\n\t\tisSessionStartInitialUserMessage(message)\n\t);\n}\n\nfunction isSessionStartInitialUserMessage(message: AppMessage): boolean {\n\treturn (\n\t\tmessage.role === \"user\" &&\n\t\ttypeof message.metadata === \"object\" &&\n\t\tmessage.metadata !== null &&\n\t\tmessage.metadata.kind === SESSION_START_INITIAL_USER_METADATA_KIND\n\t);\n}\n\nfunction stripRuntimeRestoreMessages(messages: AppMessage[]): AppMessage[] {\n\treturn messages.filter(\n\t\t(message) =>\n\t\t\t(message.role !== \"hookMessage\" ||\n\t\t\t\t(message.customType !== BACKGROUND_TASKS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !==\n\t\t\t\t\t\tHEADLESS_CLIENT_REQUESTS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !== MCP_SERVERS_COMPACTION_CUSTOM_TYPE &&\n\t\t\t\t\tmessage.customType !== \"SessionStart\")) &&\n\t\t\t!isSessionStartInitialUserMessage(message),\n\t);\n}\n\nfunction normalizeReadPath(path: string): string {\n\treturn resolvePath(expandUserPath(path));\n}\n\nfunction normalizeComparableReadPath(path: string): string {\n\tconst normalizedPath = normalizeReadPath(path);\n\ttry {\n\t\treturn realpathSync.native(normalizedPath);\n\t} catch {\n\t\treturn normalizedPath;\n\t}\n}\n\nfunction getExcludedReadRestorePaths(\n\tadditionalPaths: string[] = [],\n): Set<string> {\n\tconst loadedAppendSystemPromptPath = resolveLoadedAppendSystemPromptPath(\n\t\tprocess.cwd(),\n\t);\n\tconst trackedPlanFilePath = getPlanFilePathForCompactionRestore();\n\treturn new Set(\n\t\t[\n\t\t\t...(loadedAppendSystemPromptPath ? [loadedAppendSystemPromptPath] : []),\n\t\t\t...(trackedPlanFilePath ? [trackedPlanFilePath] : []),\n\t\t\t...additionalPaths,\n\t\t].map((path) => normalizeComparableReadPath(path)),\n\t);\n}\n\nfunction shouldExcludeReadRestorePath(\n\tfilePath: string,\n\texcludedPaths: Set<string>,\n): boolean {\n\treturn excludedPaths.has(normalizeComparableReadPath(filePath));\n}\n\ntype ReadRestoreRequest = {\n\tpath: string;\n\toffset?: number;\n\tlimit?: number;\n\tmode?: \"normal\" | \"head\" | \"tail\";\n\tlineNumbers?: boolean;\n\twrapInCodeFence?: boolean;\n\tlanguage?: string;\n\tencoding?: \"utf-8\" | \"utf-16le\" | \"latin1\" | \"ascii\";\n};\n\ntype ReadRestoreExecutor = typeof readTool.execute;\n\nfunction parseOptionalInteger(value: unknown, minimum = 1): number | undefined {\n\treturn typeof value === \"number\" &&\n\t\tNumber.isInteger(value) &&\n\t\tvalue >= minimum\n\t\t? value\n\t\t: undefined;\n}\n\nfunction parseReadRestoreRequest(\n\targuments_: Record<string, unknown>,\n): ReadRestoreRequest | null {\n\tconst rawPath = arguments_.path;\n\tif (typeof rawPath !== \"string\") {\n\t\treturn null;\n\t}\n\n\tconst mode =\n\t\targuments_.mode === \"normal\" ||\n\t\targuments_.mode === \"head\" ||\n\t\targuments_.mode === \"tail\"\n\t\t\t? arguments_.mode\n\t\t\t: undefined;\n\tconst lineNumbers =\n\t\ttypeof arguments_.lineNumbers === \"boolean\"\n\t\t\t? arguments_.lineNumbers\n\t\t\t: undefined;\n\tconst wrapInCodeFence =\n\t\ttypeof arguments_.wrapInCodeFence === \"boolean\"\n\t\t\t? arguments_.wrapInCodeFence\n\t\t\t: undefined;\n\tconst language =\n\t\ttypeof arguments_.language === \"string\" ? arguments_.language : undefined;\n\tconst encoding =\n\t\targuments_.encoding === \"utf-8\" ||\n\t\targuments_.encoding === \"utf-16le\" ||\n\t\targuments_.encoding === \"latin1\" ||\n\t\targuments_.encoding === \"ascii\"\n\t\t\t? arguments_.encoding\n\t\t\t: undefined;\n\n\treturn {\n\t\tpath: normalizeReadPath(rawPath),\n\t\toffset: parseOptionalInteger(arguments_.offset),\n\t\tlimit: parseOptionalInteger(arguments_.limit),\n\t\tmode,\n\t\tlineNumbers,\n\t\twrapInCodeFence,\n\t\tlanguage,\n\t\tencoding,\n\t};\n}\n\nfunction collectReadRestoreRequestsByCallId(\n\tmessages: AppMessage[],\n): Map<string, ReadRestoreRequest> {\n\tconst requestsByCallId = new Map<string, ReadRestoreRequest>();\n\tfor (const message of messages) {\n\t\tif (message.role !== \"assistant\") {\n\t\t\tcontinue;\n\t\t}\n\t\tfor (const part of message.content) {\n\t\t\tif (part.type !== \"toolCall\" || part.name !== \"read\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst request = parseReadRestoreRequest(part.arguments);\n\t\t\tif (!request) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\trequestsByCallId.set(part.id, request);\n\t\t}\n\t}\n\treturn requestsByCallId;\n}\n\nfunction collectVisibleReadPaths(messages: AppMessage[]): Set<string> {\n\tconst requestsByCallId = collectReadRestoreRequestsByCallId(messages);\n\tconst visiblePaths = new Set<string>();\n\tfor (const message of messages) {\n\t\tif (\n\t\t\tmessage.role !== \"toolResult\" ||\n\t\t\tmessage.toolName !== \"read\" ||\n\t\t\tmessage.isError\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst request = requestsByCallId.get(message.toolCallId);\n\t\tif (request) {\n\t\t\tvisiblePaths.add(request.path);\n\t\t}\n\t}\n\treturn visiblePaths;\n}\n\nfunction collectRestoredReadPaths(messages: AppMessage[]): Set<string> {\n\tconst restoredPaths = new Set<string>();\n\tfor (const message of messages) {\n\t\tconst filePath = getReadRestoreFilePath(message);\n\t\tif (filePath) {\n\t\t\trestoredPaths.add(normalizeReadPath(filePath));\n\t\t}\n\t}\n\treturn restoredPaths;\n}\n\nfunction extractSkillRestoreName(\n\tcontent: string | (TextContent | ImageContent)[],\n): string | null {\n\tconst text =\n\t\ttypeof content === \"string\"\n\t\t\t? content\n\t\t\t: content\n\t\t\t\t\t.filter((block): block is TextContent => block.type === \"text\")\n\t\t\t\t\t.map((block) => block.text)\n\t\t\t\t\t.join(\"\\n\");\n\tconst match = text.match(/^# Skill:\\s+(.+)$/m);\n\treturn match?.[1]?.trim() || null;\n}\n\nfunction normalizeSkillRestoreContent(\n\tcontent: string | (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\treturn typeof content === \"string\"\n\t\t? [{ type: \"text\", text: content }]\n\t\t: content;\n}\n\nfunction getSkillRestoreNameFromMessage(message: AppMessage): string | null {\n\tif (\n\t\tmessage.role === \"toolResult\" &&\n\t\tmessage.toolName === \"Skill\" &&\n\t\t!message.isError\n\t) {\n\t\treturn extractSkillRestoreName(message.content);\n\t}\n\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\tif (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"name\" in details &&\n\t\ttypeof details.name === \"string\"\n\t) {\n\t\treturn details.name;\n\t}\n\n\treturn extractSkillRestoreName(message.content);\n}\n\nfunction collectSuccessfulSkillToolCallIds(\n\tmessages: AppMessage[],\n): Set<string> {\n\tconst toolCallIds = new Set<string>();\n\tfor (const message of messages) {\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\ttoolCallIds.add(message.toolCallId);\n\t\t}\n\t}\n\treturn toolCallIds;\n}\n\nfunction stripSuccessfulSkillToolCallsForCompactionSummary(\n\tmessage: AssistantMessage,\n\tsuccessfulSkillToolCallIds: ReadonlySet<string>,\n): AppMessage[] {\n\tif (successfulSkillToolCallIds.size === 0) {\n\t\treturn [message];\n\t}\n\n\tconst filteredContent = message.content.filter(\n\t\t(part) =>\n\t\t\tpart.type !== \"toolCall\" ||\n\t\t\tpart.name !== \"Skill\" ||\n\t\t\t!successfulSkillToolCallIds.has(part.id),\n\t);\n\tif (filteredContent.length === message.content.length) {\n\t\treturn [message];\n\t}\n\tif (filteredContent.length === 0) {\n\t\treturn [];\n\t}\n\treturn [{ ...message, content: filteredContent }];\n}\n\nfunction isToolSkillRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\tconst details = message.details;\n\treturn (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"source\" in details &&\n\t\tdetails.source === \"tool\"\n\t);\n}\n\nfunction isActiveSkillHookMessage(message: AppMessage): message is HookMessage {\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\tconst details = message.details;\n\treturn (\n\t\ttypeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"action\" in details &&\n\t\tdetails.action === \"activate\"\n\t);\n}\n\nfunction hasMatchingSkillRestoreContent(\n\tmessage: AppMessage,\n\texpectedContent: (TextContent | ImageContent)[],\n): boolean {\n\tif (\n\t\tmessage.role === \"toolResult\" &&\n\t\tmessage.toolName === \"Skill\" &&\n\t\t!message.isError\n\t) {\n\t\treturn (\n\t\t\tJSON.stringify(normalizeSkillRestoreContent(message.content)) ===\n\t\t\tJSON.stringify(expectedContent)\n\t\t);\n\t}\n\n\tif (message.role !== \"hookMessage\" || message.customType !== \"skill\") {\n\t\treturn false;\n\t}\n\n\treturn (\n\t\tJSON.stringify(normalizeSkillRestoreContent(message.content)) ===\n\t\tJSON.stringify(expectedContent)\n\t);\n}\n\nfunction getPreservedSkillRestoreState(\n\tmessages: AppMessage[],\n\tskillName: string,\n\tcontent: (TextContent | ImageContent)[],\n): \"visible\" | \"replace\" | \"absent\" {\n\tlet hasStaleToolSkillHook = false;\n\n\tfor (const message of messages) {\n\t\tconst visibleSkillName = getSkillRestoreNameFromMessage(message);\n\t\tif (visibleSkillName !== skillName) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\treturn \"visible\";\n\t\t}\n\n\t\tif (hasMatchingSkillRestoreContent(message, content)) {\n\t\t\treturn \"visible\";\n\t\t}\n\n\t\tif (isToolSkillRestoreHookMessage(message)) {\n\t\t\thasStaleToolSkillHook = true;\n\t\t}\n\t}\n\n\treturn hasStaleToolSkillHook ? \"replace\" : \"absent\";\n}\n\nasync function refreshReadRestoreContent(\n\trequest: ReadRestoreRequest,\n\ttoolCallId: string,\n\treadRestoreExecute: ReadRestoreExecutor,\n): Promise<(TextContent | ImageContent)[] | null> {\n\ttry {\n\t\tconst result = await readRestoreExecute(toolCallId, {\n\t\t\tpath: request.path,\n\t\t\toffset: request.offset,\n\t\t\tlimit: request.limit,\n\t\t\tmode: request.mode,\n\t\t\tlineNumbers: request.lineNumbers,\n\t\t\twrapInCodeFence: request.wrapInCodeFence,\n\t\t\tlanguage: request.language,\n\t\t\tencoding: request.encoding,\n\t\t\twithDiagnostics: false,\n\t\t});\n\t\tif (result.isError) {\n\t\t\treturn null;\n\t\t}\n\t\treturn result.content.filter(\n\t\t\t(\n\t\t\t\tblock,\n\t\t\t): block is\n\t\t\t\t| { type: \"text\"; text: string }\n\t\t\t\t| { type: \"image\"; data: string; mimeType: string } =>\n\t\t\t\tblock.type === \"text\" || block.type === \"image\",\n\t\t);\n\t} catch (error) {\n\t\tlogger.warn(\"Failed to refresh read restore content during compaction\", {\n\t\t\tfilePath: request.path,\n\t\t\ttoolCallId,\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t});\n\t\treturn null;\n\t}\n}\n\nfunction buildReadRestoreContent(\n\tfilePath: string,\n\tcontent: (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\tconst header: TextContent = {\n\t\ttype: \"text\",\n\t\ttext: [\n\t\t\t\"# Recently read file restored after compaction\",\n\t\t\t\"\",\n\t\t\t`File: ${filePath}`,\n\t\t\t\"\",\n\t\t\t\"Last read result:\",\n\t\t].join(\"\\n\"),\n\t};\n\tconst remainingTokens = Math.max(\n\t\t0,\n\t\tREAD_RESTORE_MAX_TOKENS_PER_FILE - estimateHookContentTokens([header]),\n\t);\n\n\treturn [header, ...truncateReadRestoreBlocks(content, remainingTokens)];\n}\n\nfunction hasReadRestoreMessage(\n\tmessages: AppMessage[],\n\tfilePath: string,\n\tcontent: (TextContent | ImageContent)[],\n): boolean {\n\tconst expectedContent = JSON.stringify(content);\n\treturn messages.some((message) => {\n\t\tif (\n\t\t\tmessage.role !== \"hookMessage\" ||\n\t\t\tmessage.customType !== READ_RESTORE_COMPACTION_CUSTOM_TYPE\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst details = message.details;\n\t\tif (\n\t\t\ttypeof details === \"object\" &&\n\t\t\tdetails !== null &&\n\t\t\t\"filePath\" in details &&\n\t\t\ttypeof details.filePath === \"string\" &&\n\t\t\tdetails.filePath !== filePath\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn JSON.stringify(message.content) === expectedContent;\n\t});\n}\n\nfunction isReadRestoreHookMessage(message: AppMessage): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getReadRestoreFilePath(message: AppMessage): string | null {\n\tif (!isReadRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction collectReadRestorePathsToReplace(\n\tpreservedMessages: AppMessage[],\n\trestoredMessages: AppMessage[],\n): Set<string> {\n\tconst filePathsToReplace = new Set<string>();\n\n\tfor (const message of restoredMessages) {\n\t\tif (!isReadRestoreHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst filePath = getReadRestoreFilePath(message);\n\t\tif (!filePath || !Array.isArray(message.content)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (getReadRestoreFilePath(preservedMessage) !== filePath) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!hasReadRestoreMessage([preservedMessage], filePath, message.content)\n\t\t\t) {\n\t\t\t\tfilePathsToReplace.add(filePath);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn filePathsToReplace;\n}\n\nfunction shouldReplacePreservedReadRestoreMessage(\n\tmessage: AppMessage,\n\treplacedFilePaths: Set<string>,\n): boolean {\n\tconst filePath = getReadRestoreFilePath(message);\n\treturn filePath !== null && replacedFilePaths.has(filePath);\n}\n\nfunction isPlanFileRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === PLAN_FILE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getPlanFileRestorePath(message: AppMessage): string | null {\n\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction isPlanModeRestoreHookMessage(\n\tmessage: AppMessage,\n): message is HookMessage {\n\treturn (\n\t\tmessage.role === \"hookMessage\" &&\n\t\tmessage.customType === PLAN_MODE_COMPACTION_CUSTOM_TYPE\n\t);\n}\n\nfunction getPlanModeRestorePath(message: AppMessage): string | null {\n\tif (!isPlanModeRestoreHookMessage(message)) {\n\t\treturn null;\n\t}\n\n\tconst details = message.details;\n\treturn typeof details === \"object\" &&\n\t\tdetails !== null &&\n\t\t\"filePath\" in details &&\n\t\ttypeof details.filePath === \"string\"\n\t\t? details.filePath\n\t\t: null;\n}\n\nfunction collectPlanRestorePaths(\n\trestoredMessages: AppMessage[],\n\tgetPath: (message: AppMessage) => string | null,\n): Set<string> {\n\tconst filePaths = new Set<string>();\n\tfor (const message of restoredMessages) {\n\t\tconst filePath = getPath(message);\n\t\tif (filePath) {\n\t\t\tfilePaths.add(filePath);\n\t\t}\n\t}\n\treturn filePaths;\n}\n\nfunction hasPlanFileRestoreMessage(\n\tmessages: AppMessage[],\n\tfilePath: string,\n\tcontent: string | (TextContent | ImageContent)[],\n): boolean {\n\tconst expectedContent = JSON.stringify(content);\n\treturn messages.some((message) => {\n\t\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (getPlanFileRestorePath(message) !== filePath) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn JSON.stringify(message.content) === expectedContent;\n\t});\n}\n\nfunction collectPlanFilePathsToReplace(\n\tpreservedMessages: AppMessage[],\n\trestoredMessages: AppMessage[],\n): Set<string> {\n\tconst filePathsToReplace = new Set<string>();\n\n\tfor (const message of restoredMessages) {\n\t\tif (!isPlanFileRestoreHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst filePath = getPlanFileRestorePath(message);\n\t\tif (!filePath) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (getPlanFileRestorePath(preservedMessage) !== filePath) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!hasPlanFileRestoreMessage(\n\t\t\t\t\t[preservedMessage],\n\t\t\t\t\tfilePath,\n\t\t\t\t\tmessage.content,\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tfilePathsToReplace.add(filePath);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn filePathsToReplace;\n}\n\nfunction shouldReplacePreservedPlanFileMessage(\n\tmessage: AppMessage,\n\treplacedFilePaths: Set<string>,\n\tcurrentPlanFilePaths: Set<string>,\n): boolean {\n\tconst filePath = getPlanFileRestorePath(message);\n\treturn (\n\t\tfilePath !== null &&\n\t\t(replacedFilePaths.has(filePath) ||\n\t\t\t(currentPlanFilePaths.size > 0 && !currentPlanFilePaths.has(filePath)))\n\t);\n}\n\nfunction shouldReplacePreservedPlanModeMessage(\n\tmessage: AppMessage,\n\tcurrentPlanModePaths: Set<string>,\n): boolean {\n\tconst filePath = getPlanModeRestorePath(message);\n\treturn (\n\t\tfilePath !== null &&\n\t\tcurrentPlanModePaths.size > 0 &&\n\t\t!currentPlanModePaths.has(filePath)\n\t);\n}\n\nfunction estimateHookContentTokens(\n\tcontent: string | (TextContent | ImageContent)[],\n): number {\n\treturn Math.max(1, Math.ceil(JSON.stringify(content).length / 4));\n}\n\nfunction buildRestoreTruncationBlock(text: string): TextContent | null {\n\treturn estimateHookContentTokens([{ type: \"text\", text }]) > 0\n\t\t? { type: \"text\", text }\n\t\t: null;\n}\n\nfunction truncateRestoredHookBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n\toptions: {\n\t\ttextMarker: string;\n\t\timageMarker: string;\n\t},\n): (TextContent | ImageContent)[] {\n\tconst restored: (TextContent | ImageContent)[] = [];\n\tlet usedTokens = 0;\n\n\tfor (const block of content) {\n\t\tconst blockTokens = estimateHookContentTokens([block]);\n\t\tif (usedTokens + blockTokens <= maxTokens) {\n\t\t\trestored.push(block);\n\t\t\tusedTokens += blockTokens;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst remainingTokens = maxTokens - usedTokens;\n\t\tif (remainingTokens <= 0) {\n\t\t\tbreak;\n\t\t}\n\n\t\tif (block.type === \"text\") {\n\t\t\tconst charBudget = Math.max(\n\t\t\t\t0,\n\t\t\t\tremainingTokens * 4 - options.textMarker.length,\n\t\t\t);\n\t\t\tconst truncatedText =\n\t\t\t\tcharBudget > 0\n\t\t\t\t\t? `${block.text.slice(0, charBudget)}${options.textMarker}`\n\t\t\t\t\t: options.textMarker;\n\t\t\tconst truncationBlock = buildRestoreTruncationBlock(truncatedText);\n\t\t\tif (truncationBlock) {\n\t\t\t\trestored.push(truncationBlock);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tconst imageMarker = buildRestoreTruncationBlock(options.imageMarker);\n\t\tif (imageMarker) {\n\t\t\trestored.push(imageMarker);\n\t\t}\n\t\tbreak;\n\t}\n\n\treturn restored;\n}\n\nfunction truncateReadRestoreBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n): (TextContent | ImageContent)[] {\n\treturn truncateRestoredHookBlocks(content, maxTokens, {\n\t\ttextMarker: READ_RESTORE_TRUNCATION_MARKER,\n\t\timageMarker:\n\t\t\t\"[image omitted from restored read result due to compaction budget; use `read` on the path again if needed]\",\n\t});\n}\n\nfunction truncateSkillRestoreBlocks(\n\tcontent: (TextContent | ImageContent)[],\n\tmaxTokens: number,\n): (TextContent | ImageContent)[] {\n\treturn truncateRestoredHookBlocks(content, maxTokens, {\n\t\ttextMarker: SKILL_RESTORE_TRUNCATION_MARKER,\n\t\timageMarker:\n\t\t\t\"[image omitted from restored skill due to compaction budget; use the `Skill` tool again if needed]\",\n\t});\n}\n\nasync function collectRecentReadRestoreMessages(\n\tcompactedMessages: AppMessage[],\n\tpreservedMessages: AppMessage[],\n\tadditionalExcludedPaths: string[] = [],\n\treadRestoreExecute: ReadRestoreExecutor = readTool.execute,\n): Promise<AppMessage[]> {\n\tconst visiblePaths = collectVisibleReadPaths(preservedMessages);\n\tconst requestsByCallId =\n\t\tcollectReadRestoreRequestsByCallId(compactedMessages);\n\tconst excludedPaths = getExcludedReadRestorePaths(additionalExcludedPaths);\n\tconst restoredMessages: AppMessage[] = [];\n\tconst seenPaths = new Set<string>();\n\tlet usedTokens = 0;\n\n\tfor (let i = compactedMessages.length - 1; i >= 0; i -= 1) {\n\t\tif (restoredMessages.length >= MAX_READ_RESTORE_MESSAGES) {\n\t\t\tbreak;\n\t\t}\n\n\t\tconst message = compactedMessages[i];\n\t\tif (!message) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet filePath: string | null = null;\n\t\tlet content: (TextContent | ImageContent)[] | null = null;\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"read\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tconst request = requestsByCallId.get(message.toolCallId);\n\t\t\tfilePath = request?.path ?? null;\n\t\t\tconst refreshedContent = request\n\t\t\t\t? await refreshReadRestoreContent(\n\t\t\t\t\t\trequest,\n\t\t\t\t\t\t`compaction-read-restore-${message.toolCallId}`,\n\t\t\t\t\t\treadRestoreExecute,\n\t\t\t\t\t)\n\t\t\t\t: null;\n\t\t\tcontent = buildReadRestoreContent(\n\t\t\t\tfilePath ?? \"\",\n\t\t\t\trefreshedContent ?? message.content,\n\t\t\t);\n\t\t} else if (\n\t\t\tmessage.role === \"hookMessage\" &&\n\t\t\tmessage.customType === READ_RESTORE_COMPACTION_CUSTOM_TYPE &&\n\t\t\tArray.isArray(message.content)\n\t\t) {\n\t\t\tconst details = message.details;\n\t\t\tfilePath =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"filePath\" in details &&\n\t\t\t\ttypeof details.filePath === \"string\"\n\t\t\t\t\t? normalizeReadPath(details.filePath)\n\t\t\t\t\t: null;\n\t\t\tcontent = message.content;\n\t\t}\n\n\t\tif (\n\t\t\t!filePath ||\n\t\t\t!content ||\n\t\t\tvisiblePaths.has(filePath) ||\n\t\t\tseenPaths.has(filePath) ||\n\t\t\tshouldExcludeReadRestorePath(filePath, excludedPaths)\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\t\tconst dedupeMessages = [...preservedMessages, ...restoredMessages];\n\t\tif (hasReadRestoreMessage(dedupeMessages, filePath, content)) {\n\t\t\tseenPaths.add(filePath);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst estimatedTokens = estimateHookContentTokens(content);\n\t\tif (usedTokens + estimatedTokens > READ_RESTORE_TOKEN_BUDGET) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tusedTokens += estimatedTokens;\n\t\tseenPaths.add(filePath);\n\t\trestoredMessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\tREAD_RESTORE_COMPACTION_CUSTOM_TYPE,\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\t{ filePath },\n\t\t\t\tnew Date().toISOString(),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn restoredMessages;\n}\n\ntype SkillRestoreCollectionResult = {\n\treplacedPreservedToolSkillNames: Set<string>;\n\trestoredMessages: AppMessage[];\n};\n\nasync function collectRecentSkillRestoreMessages(\n\tcompactedMessages: AppMessage[],\n\tpreservedMessages: AppMessage[],\n): Promise<SkillRestoreCollectionResult> {\n\tconst restoredMessages: AppMessage[] = [];\n\tconst seenSkillNames = new Set<string>();\n\tconst replacedPreservedToolSkillNames = new Set<string>();\n\tlet usedTokens = 0;\n\n\tfor (let i = compactedMessages.length - 1; i >= 0; i -= 1) {\n\t\tconst message = compactedMessages[i];\n\t\tif (!message) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet skillName: string | null = null;\n\t\tlet content: (TextContent | ImageContent)[] | null = null;\n\t\tlet skillMetadata: ReturnType<typeof getSkillArtifactMetadataFromDetails>;\n\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tskillName = extractSkillRestoreName(message.content);\n\t\t\tcontent = truncateSkillRestoreBlocks(\n\t\t\t\tmessage.content,\n\t\t\t\tSKILL_RESTORE_MAX_TOKENS_PER_SKILL,\n\t\t\t);\n\t\t\tskillMetadata = getSkillArtifactMetadataFromDetails(message.details);\n\t\t} else if (\n\t\t\tmessage.role === \"hookMessage\" &&\n\t\t\tmessage.customType === \"skill\" &&\n\t\t\tmessage.display === false &&\n\t\t\tArray.isArray(message.content)\n\t\t) {\n\t\t\tconst details = message.details;\n\t\t\tconst sourcedFromTool =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"source\" in details &&\n\t\t\t\tdetails.source === \"tool\";\n\t\t\tif (!sourcedFromTool) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tskillName =\n\t\t\t\ttypeof details === \"object\" &&\n\t\t\t\tdetails !== null &&\n\t\t\t\t\"name\" in details &&\n\t\t\t\ttypeof details.name === \"string\"\n\t\t\t\t\t? details.name\n\t\t\t\t\t: extractSkillRestoreName(message.content);\n\t\t\tcontent = message.content;\n\t\t\tskillMetadata = getSkillArtifactMetadataFromDetails(details);\n\t\t}\n\n\t\tif (!skillName || !content || seenSkillNames.has(skillName)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst preservedState = getPreservedSkillRestoreState(\n\t\t\tpreservedMessages,\n\t\t\tskillName,\n\t\t\tcontent,\n\t\t);\n\t\tif (preservedState === \"visible\") {\n\t\t\tseenSkillNames.add(skillName);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst estimatedTokens = estimateHookContentTokens(content);\n\t\tif (usedTokens + estimatedTokens > SKILL_RESTORE_TOKEN_BUDGET) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tusedTokens += estimatedTokens;\n\t\tseenSkillNames.add(skillName);\n\t\tif (preservedState === \"replace\") {\n\t\t\treplacedPreservedToolSkillNames.add(skillName);\n\t\t}\n\t\trestoredMessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"skill\",\n\t\t\t\tcontent,\n\t\t\t\tfalse,\n\t\t\t\t{\n\t\t\t\t\tname: skillName,\n\t\t\t\t\tsource: \"tool\",\n\t\t\t\t\tskillMetadata,\n\t\t\t\t},\n\t\t\t\tnew Date().toISOString(),\n\t\t\t),\n\t\t);\n\t}\n\n\treturn { replacedPreservedToolSkillNames, restoredMessages };\n}\n\nfunction shouldReplacePreservedToolSkillMessage(\n\tmessage: AppMessage,\n\treplacedSkillNames: Set<string>,\n): boolean {\n\tif (!isToolSkillRestoreHookMessage(message)) {\n\t\treturn false;\n\t}\n\n\tconst skillName = getSkillRestoreNameFromMessage(message);\n\treturn skillName !== null && replacedSkillNames.has(skillName);\n}\n\nfunction collectActiveSkillNamesToReplace(\n\tpreservedMessages: AppMessage[],\n\tpostKeepMessages: AppMessage[],\n): Set<string> {\n\tconst activeSkillNamesToReplace = new Set<string>();\n\n\tfor (const message of postKeepMessages) {\n\t\tif (!isActiveSkillHookMessage(message)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst skillName = getSkillRestoreNameFromMessage(message);\n\t\tif (!skillName) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst expectedContent = normalizeSkillRestoreContent(message.content);\n\t\tfor (const preservedMessage of preservedMessages) {\n\t\t\tif (!isActiveSkillHookMessage(preservedMessage)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (getSkillRestoreNameFromMessage(preservedMessage) !== skillName) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!hasMatchingSkillRestoreContent(preservedMessage, expectedContent)) {\n\t\t\t\tactiveSkillNamesToReplace.add(skillName);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn activeSkillNamesToReplace;\n}\n\nfunction shouldReplacePreservedActiveSkillMessage(\n\tmessage: AppMessage,\n\treplacedSkillNames: Set<string>,\n): boolean {\n\tif (!isActiveSkillHookMessage(message)) {\n\t\treturn false;\n\t}\n\n\tconst skillName = getSkillRestoreNameFromMessage(message);\n\treturn skillName !== null && replacedSkillNames.has(skillName);\n}\n\nfunction buildAttachmentMarkers(message: UserMessageWithAttachments): string[] {\n\tif (!Array.isArray(message.attachments) || message.attachments.length === 0) {\n\t\treturn [];\n\t}\n\treturn message.attachments.map((attachment) =>\n\t\tattachment.type === \"document\" ? \"[document]\" : \"[image]\",\n\t);\n}\n\nfunction replaceImageBlocksWithMarkers(\n\tcontent: (TextContent | ImageContent)[],\n): (TextContent | ImageContent)[] {\n\treturn content.map((block) =>\n\t\tblock.type === \"image\" ? { type: \"text\", text: \"[image]\" } : block,\n\t);\n}\n\nfunction stripInlineImagesForCompactionSummary<\n\tT extends\n\t\t| UserMessage\n\t\t| UserMessageWithAttachments\n\t\t| HookMessage\n\t\t| ToolResultMessage,\n>(message: T): T {\n\tif (!Array.isArray(message.content)) {\n\t\treturn message;\n\t}\n\n\tlet hasImage = false;\n\tfor (const block of message.content) {\n\t\tif (block.type === \"image\") {\n\t\t\thasImage = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tif (!hasImage) {\n\t\treturn message;\n\t}\n\n\treturn {\n\t\t...message,\n\t\tcontent: replaceImageBlocksWithMarkers(message.content),\n\t} as T;\n}\n\nfunction stripAttachmentsForCompactionSummary(\n\tmessage: UserMessageWithAttachments,\n): AppMessage {\n\tconst attachmentMarkers = buildAttachmentMarkers(message);\n\tif (attachmentMarkers.length === 0) {\n\t\treturn message;\n\t}\n\n\tconst { attachments: _attachments, ...rest } = message;\n\tconst markerText = attachmentMarkers.join(\"\\n\");\n\tif (typeof rest.content === \"string\") {\n\t\treturn {\n\t\t\t...rest,\n\t\t\tcontent: `${rest.content}\\n\\n${markerText}`,\n\t\t};\n\t}\n\n\treturn {\n\t\t...rest,\n\t\tcontent: [\n\t\t\t...rest.content,\n\t\t\t{\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: markerText,\n\t\t\t},\n\t\t],\n\t};\n}\n\nfunction prepareMessagesForCompactionSummary(\n\tmessages: AppMessage[],\n\treadPathsRestoredAfterCompaction: ReadonlySet<string> = new Set(),\n): AppMessage[] {\n\tconst readRequestsByCallId =\n\t\treadPathsRestoredAfterCompaction.size > 0\n\t\t\t? collectReadRestoreRequestsByCallId(messages)\n\t\t\t: new Map<string, ReadRestoreRequest>();\n\tconst successfulSkillToolCallIds =\n\t\tcollectSuccessfulSkillToolCallIds(messages);\n\treturn messages.flatMap((message) => {\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"read\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\tconst request = readRequestsByCallId.get(message.toolCallId);\n\t\t\tif (request && readPathsRestoredAfterCompaction.has(request.path)) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tmessage.role === \"toolResult\" &&\n\t\t\tmessage.toolName === \"Skill\" &&\n\t\t\t!message.isError\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tif (\n\t\t\tshouldSkipAssistantCompactionMessage(message) ||\n\t\t\tshouldSkipReinjectedCompactionMessage(message)\n\t\t) {\n\t\t\treturn [];\n\t\t}\n\t\tif (message.role === \"assistant\") {\n\t\t\treturn stripSuccessfulSkillToolCallsForCompactionSummary(\n\t\t\t\tmessage,\n\t\t\t\tsuccessfulSkillToolCallIds,\n\t\t\t);\n\t\t}\n\t\tif (message.role === \"user\") {\n\t\t\tconst sanitizedMessage = stripInlineImagesForCompactionSummary(message);\n\t\t\tif (\"attachments\" in sanitizedMessage) {\n\t\t\t\treturn [stripAttachmentsForCompactionSummary(sanitizedMessage)];\n\t\t\t}\n\t\t\treturn [sanitizedMessage];\n\t\t}\n\t\tif (message.role === \"toolResult\" || message.role === \"hookMessage\") {\n\t\t\treturn [stripInlineImagesForCompactionSummary(message)];\n\t\t}\n\t\treturn [message];\n\t});\n}\n\nfunction isPreviousSummaryPreamble(message: AppMessage | undefined): boolean {\n\treturn (\n\t\tmessage?.role === \"user\" &&\n\t\ttypeof message.content === \"string\" &&\n\t\tmessage.content.startsWith(PREVIOUS_SUMMARY_PREFIX)\n\t);\n}\n\nfunction isOverflowRetryMarker(message: AppMessage | undefined): boolean {\n\treturn (\n\t\tmessage?.role === \"user\" &&\n\t\ttypeof message.content === \"string\" &&\n\t\tmessage.content === COMPACTION_OVERFLOW_RETRY_MARKER\n\t);\n}\n\nfunction stripRedundantPreviousCompactionMessages(\n\tmessages: AppMessage[],\n\tpreviousSummary: string | undefined,\n): AppMessage[] {\n\tif (!previousSummary) {\n\t\treturn messages;\n\t}\n\n\treturn messages.filter(\n\t\t(message) =>\n\t\t\t!isDecoratedCompactionSummaryMessage(message) &&\n\t\t\t!isCompactionResumePromptMessage(message),\n\t);\n}\n\nfunction getOverflowTokenGap(errorMessage: string): number | undefined {\n\tconst parsed = parseOverflowDetails(errorMessage);\n\tif (parsed?.requestedTokens === undefined || parsed.maxTokens === undefined) {\n\t\treturn undefined;\n\t}\n\tconst gap = parsed.requestedTokens - parsed.maxTokens;\n\treturn gap > 0 ? gap : undefined;\n}\n\nfunction estimateRetryMessageTokens(message: AppMessage): number {\n\tconst llmMessage = convertAppMessageToLlm(message);\n\tif (!llmMessage) {\n\t\treturn 0;\n\t}\n\treturn Math.max(1, Math.ceil(JSON.stringify(llmMessage).length / 4));\n}\n\nfunction truncateSummaryInputForOverflowRetry(\n\tmessages: AppMessage[],\n\toverflowErrorMessage?: string,\n): AppMessage[] | null {\n\tif (messages.length < 2) {\n\t\treturn null;\n\t}\n\n\tconst preamble = isPreviousSummaryPreamble(messages[0]) ? messages[0] : null;\n\tconst bodyWithMarker = preamble ? messages.slice(1) : messages;\n\tconst body = isOverflowRetryMarker(bodyWithMarker[0])\n\t\t? bodyWithMarker.slice(1)\n\t\t: bodyWithMarker;\n\tif (body.length < 2) {\n\t\treturn null;\n\t}\n\n\tconst turnBoundaries = findTurnBoundaries(body, 0, body.length).filter(\n\t\t(index) => index > 0,\n\t);\n\tconst approximateDropCount = Math.max(1, Math.floor(body.length * 0.2));\n\tconst fallbackBoundary =\n\t\tturnBoundaries.find((index) => index >= approximateDropCount) ??\n\t\tapproximateDropCount;\n\tconst tokenGap = overflowErrorMessage\n\t\t? getOverflowTokenGap(overflowErrorMessage)\n\t\t: undefined;\n\tlet boundary = 0;\n\tif (tokenGap !== undefined) {\n\t\tlet coveredTokens = 0;\n\t\tconst segmentEnds = [...turnBoundaries, body.length];\n\t\tfor (const segmentEnd of segmentEnds) {\n\t\t\tif (segmentEnd <= boundary) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tcoveredTokens += body\n\t\t\t\t.slice(boundary, segmentEnd)\n\t\t\t\t.reduce(\n\t\t\t\t\t(total, message) => total + estimateRetryMessageTokens(message),\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\tboundary = segmentEnd;\n\t\t\tif (coveredTokens >= tokenGap) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tboundary = fallbackBoundary;\n\t}\n\tif (boundary >= body.length) {\n\t\tboundary = fallbackBoundary;\n\t}\n\tboundary = adjustBoundaryForToolResults(body, boundary);\n\tif (boundary >= body.length) {\n\t\treturn null;\n\t}\n\n\tconst truncatedBody = body.slice(boundary);\n\tif (truncatedBody.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst markerMessage: AppMessage = {\n\t\trole: \"user\",\n\t\tcontent: COMPACTION_OVERFLOW_RETRY_MARKER,\n\t\ttimestamp: Date.now(),\n\t};\n\treturn preamble\n\t\t? [preamble, markerMessage, ...truncatedBody]\n\t\t: [markerMessage, ...truncatedBody];\n}\n\n/**\n * Find the last non-aborted assistant message usage from a message array.\n *\n * Used to determine current context window consumption. Walks backwards\n * to find the most recent valid usage metadata.\n *\n * @param messages - Array of application messages\n * @returns Usage metadata from the last assistant message, or null\n */\nexport function getLastAssistantUsage(messages: AppMessage[]): Usage | null {\n\tfor (let i = messages.length - 1; i >= 0; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) return usage;\n\t}\n\treturn null;\n}\n\n/**\n * Find the last non-aborted assistant message usage from session entries.\n *\n * @param entries - Array of session entries\n * @returns Usage metadata from the last assistant message, or null\n */\nexport function getLastAssistantUsageFromEntries(\n\tentries: SessionEntry[],\n): Usage | null {\n\tfor (let i = entries.length - 1; i >= 0; i--) {\n\t\tconst entry = entries[i];\n\t\tif (!entry) continue;\n\t\tif (entry.type === \"message\") {\n\t\t\tconst usage = getAssistantUsage(entry.message as AppMessage);\n\t\t\tif (usage) return usage;\n\t\t}\n\t}\n\treturn null;\n}\n\n// ============================================================================\n// Compaction Trigger Detection\n// ============================================================================\n\n/**\n * Determine if compaction should trigger based on current context usage.\n *\n * Compaction triggers when context usage exceeds `contextWindow - reserveTokens`,\n * leaving enough room for summary generation plus a safety margin.\n *\n * @param contextTokens - Current context window usage in tokens\n * @param contextWindow - Model's total context window size\n * @param settings - Compaction configuration\n * @returns true if compaction should trigger\n */\nexport function shouldCompact(\n\tcontextTokens: number,\n\tcontextWindow: number,\n\tsettings: CompactionSettings,\n): boolean {\n\tif (!settings.enabled) return false;\n\treturn contextTokens > contextWindow - settings.reserveTokens;\n}\n\n/**\n * Calculate context usage percentage.\n *\n * @param contextTokens - Current context window usage in tokens\n * @param contextWindow - Model's total context window size\n * @returns Percentage of context window used (0-100)\n */\nexport function calculateUsagePercent(\n\tcontextTokens: number,\n\tcontextWindow: number,\n): number {\n\tif (contextWindow <= 0) return 0;\n\treturn (contextTokens / contextWindow) * 100;\n}\n\n// ============================================================================\n// Cut Point Detection\n// ============================================================================\n\n/**\n * Result of finding a cut point, including split turn information.\n */\nexport interface CutPointResult {\n\t/** Index of first message to keep (messages before this are summarized) */\n\tfirstKeptIndex: number;\n\t/** Index of user message that starts the turn being split, or -1 if not splitting */\n\tturnStartIndex: number;\n\t/** Whether this cut splits a turn (cut point is not a user message) */\n\tisSplitTurn: boolean;\n}\n\n/**\n * Find indices of user messages (turn boundaries) in a message array.\n *\n * Turn boundaries are important because we never want to split a turn\n * (user message + assistant response + tool results). Cutting at a user\n * message ensures turn integrity.\n *\n * @param messages - Array of messages to scan\n * @param startIndex - First index to consider (inclusive)\n * @param endIndex - Last index to consider (exclusive)\n * @returns Array of indices where user messages appear\n */\nfunction findTurnBoundaries(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n): number[] {\n\tconst boundaries: number[] = [];\n\tfor (let i = startIndex; i < endIndex; i++) {\n\t\tif (messages[i]!.role === \"user\") {\n\t\t\tboundaries.push(i);\n\t\t}\n\t}\n\treturn boundaries;\n}\n\n/**\n * Find the user message that starts the turn containing the given index.\n *\n * @param messages - Array of messages\n * @param entryIndex - Index of the message to find the turn start for\n * @param startIndex - First index to consider (inclusive)\n * @returns Index of the user message that starts this turn, or -1 if not found\n */\nexport function findTurnStartIndex(\n\tmessages: AppMessage[],\n\tentryIndex: number,\n\tstartIndex: number,\n): number {\n\tfor (let i = entryIndex; i >= startIndex; i--) {\n\t\tif (messages[i]!.role === \"user\") {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\n/**\n * Find the optimal cut point in messages that preserves `keepRecentTokens`.\n *\n * The algorithm:\n * 1. Find all turn boundaries (user message indices)\n * 2. Walk backwards collecting assistant token usage\n * 3. Find where cumulative token difference exceeds keepRecentTokens\n * 4. Return the nearest turn boundary at or before that point\n *\n * This ensures:\n * - Recent context is preserved based on actual token usage, not message count\n * - Turn integrity is maintained (user/assistant/toolResult groups stay together)\n * - More context is kept when messages are small, less when large\n *\n * @param messages - Array of messages to analyze\n * @param startIndex - First index to consider for cutting\n * @param endIndex - Last index to consider (exclusive)\n * @param keepRecentTokens - Approximate tokens to preserve\n * @returns Index of first message to keep (messages before this are summarized)\n */\nexport function findCutPoint(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n\tkeepRecentTokens: number,\n): number {\n\tconst boundaries = findTurnBoundaries(messages, startIndex, endIndex);\n\n\tif (boundaries.length === 0) {\n\t\treturn startIndex; // No user messages, keep everything in range\n\t}\n\n\t// Collect assistant usages walking backwards from endIndex\n\tconst assistantUsages: Array<{ index: number; tokens: number }> = [];\n\tfor (let i = endIndex - 1; i >= startIndex; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) {\n\t\t\tassistantUsages.push({\n\t\t\t\tindex: i,\n\t\t\t\ttokens: calculateContextTokens(usage),\n\t\t\t});\n\t\t}\n\t}\n\n\tif (assistantUsages.length === 0) {\n\t\t// No usage info, keep last turn only\n\t\treturn boundaries[boundaries.length - 1]!;\n\t}\n\n\t// Walk through and find where cumulative token difference exceeds keepRecentTokens\n\tconst newestTokens = assistantUsages[0]!.tokens;\n\tlet cutIndex = startIndex; // Default: keep everything in range\n\n\tfor (let i = 1; i < assistantUsages.length; i++) {\n\t\tconst tokenDiff = newestTokens - assistantUsages[i]!.tokens;\n\t\tif (tokenDiff >= keepRecentTokens) {\n\t\t\t// Find the turn boundary at or before the assistant we want to keep\n\t\t\tconst lastKeptAssistantIndex = assistantUsages[i - 1]!.index;\n\n\t\t\tfor (let b = boundaries.length - 1; b >= 0; b--) {\n\t\t\t\tconst boundary = boundaries[b];\n\t\t\t\tif (boundary !== undefined && boundary <= lastKeptAssistantIndex) {\n\t\t\t\t\tcutIndex = boundary;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn cutIndex;\n}\n\n/**\n * Find valid cut points (user or assistant messages, not tool results).\n * Tool results must stay with their preceding tool call.\n *\n * @param messages - Array of messages to scan\n * @param startIndex - First index to consider (inclusive)\n * @param endIndex - Last index to consider (exclusive)\n * @returns Array of indices where valid cut points exist\n */\nfunction findValidCutPoints(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n): number[] {\n\tconst cutPoints: number[] = [];\n\tfor (let i = startIndex; i < endIndex; i++) {\n\t\tconst role = messages[i]!.role;\n\t\t// user and assistant are valid cut points\n\t\t// toolResult must stay with its preceding tool call\n\t\tif (role === \"user\" || role === \"assistant\") {\n\t\t\tcutPoints.push(i);\n\t\t}\n\t}\n\treturn cutPoints;\n}\n\n/**\n * Find the optimal cut point with split turn information.\n *\n * Similar to findCutPoint but:\n * - Can cut at assistant messages (not just user messages)\n * - Returns information about whether we're splitting a turn\n *\n * This allows for more aggressive compaction when turns are very large,\n * while providing the context needed to summarize the split turn prefix.\n *\n * @param messages - Array of messages to analyze\n * @param startIndex - First index to consider for cutting\n * @param endIndex - Last index to consider (exclusive)\n * @param keepRecentTokens - Approximate tokens to preserve\n * @returns CutPointResult with index and split turn information\n */\nexport function findCutPointWithSplitInfo(\n\tmessages: AppMessage[],\n\tstartIndex: number,\n\tendIndex: number,\n\tkeepRecentTokens: number,\n): CutPointResult {\n\tconst cutPoints = findValidCutPoints(messages, startIndex, endIndex);\n\n\tif (cutPoints.length === 0) {\n\t\treturn {\n\t\t\tfirstKeptIndex: startIndex,\n\t\t\tturnStartIndex: -1,\n\t\t\tisSplitTurn: false,\n\t\t};\n\t}\n\n\t// Estimate message sizes for token-based cutting\n\tlet accumulatedTokens = 0;\n\tlet cutIndex = startIndex;\n\n\tfor (let i = endIndex - 1; i >= startIndex; i--) {\n\t\tconst usage = getAssistantUsage(messages[i]!);\n\t\tif (usage) {\n\t\t\taccumulatedTokens = calculateContextTokens(usage);\n\t\t\t// Using cumulative tokens from the last assistant message\n\t\t\tif (accumulatedTokens >= keepRecentTokens) {\n\t\t\t\t// Find the closest valid cut point at or after this index\n\t\t\t\tfor (const cp of cutPoints) {\n\t\t\t\t\tif (cp >= i) {\n\t\t\t\t\t\tcutIndex = cp;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// If no cut point found via tokens, use last assistant's token-based cut\n\tif (cutIndex === startIndex) {\n\t\t// Fall back to original algorithm\n\t\tcutIndex = findCutPoint(messages, startIndex, endIndex, keepRecentTokens);\n\t}\n\n\t// Determine if this is a split turn\n\tconst isUserMessage = messages[cutIndex]?.role === \"user\";\n\tconst turnStartIndex = isUserMessage\n\t\t? -1\n\t\t: findTurnStartIndex(messages, cutIndex, startIndex);\n\n\treturn {\n\t\tfirstKeptIndex: cutIndex,\n\t\tturnStartIndex,\n\t\tisSplitTurn: !isUserMessage && turnStartIndex !== -1,\n\t};\n}\n\n/**\n * Adjust a cut boundary to preserve tool call/result integrity.\n *\n * Tool results must stay paired with their originating assistant message.\n * If a toolResult would be kept but its toolCall would be cut, this\n * moves the boundary back to include the toolCall.\n *\n * @param messages - Array of messages\n * @param boundary - Initial cut point\n * @returns Adjusted boundary that preserves tool integrity\n */\nexport function adjustBoundaryForToolResults(\n\tmessages: AppMessage[],\n\tboundary: number,\n): number {\n\tlet adjusted = boundary;\n\tconst seenToolCalls = new Set<string>();\n\tconst missingToolCalls = new Set<string>();\n\n\t// Process assistant message to collect tool calls\n\tconst processAssistantMessage = (message: AppMessage) => {\n\t\tif (message.role !== \"assistant\") return;\n\t\tconst content = (message as AssistantMessage).content;\n\t\tif (!content) return;\n\t\tfor (const part of content) {\n\t\t\tif (part?.type === \"toolCall\") {\n\t\t\t\tseenToolCalls.add(part.id);\n\t\t\t\tif (missingToolCalls.has(part.id)) {\n\t\t\t\t\tmissingToolCalls.delete(part.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Process tool result to check for missing tool calls\n\tconst processToolResultMessage = (message: AppMessage) => {\n\t\tif (message.role !== \"toolResult\") return;\n\t\tconst toolCallId = (message as { toolCallId: string }).toolCallId;\n\t\tif (!seenToolCalls.has(toolCallId)) {\n\t\t\tmissingToolCalls.add(toolCallId);\n\t\t}\n\t};\n\n\t// First pass: process messages we're keeping\n\tfor (const message of messages.slice(adjusted)) {\n\t\tprocessAssistantMessage(message);\n\t\tprocessToolResultMessage(message);\n\t}\n\n\t// Walk backwards to find missing tool calls\n\twhile (missingToolCalls.size > 0 && adjusted > 0) {\n\t\tadjusted -= 1;\n\t\tconst candidate = messages[adjusted]!;\n\t\tprocessAssistantMessage(candidate);\n\t\tprocessToolResultMessage(candidate);\n\t}\n\n\treturn adjusted;\n}\n\n// ============================================================================\n// Summarization\n// ============================================================================\n\n/**\n * Default prompt for generating compaction summaries.\n *\n * Based on research into Claude Code, Codex (OpenAI), and OpenCode (SST).\n * Focused on creating actionable handoff summaries for the resuming LLM.\n */\nexport const SUMMARIZATION_PROMPT = `You are performing a CONTEXT CHECKPOINT COMPACTION. Create a handoff summary for another LLM that will resume the task.\n\nInclude:\n- Current progress and key decisions made\n- Important context, constraints, or user preferences\n- Absolute file paths of any relevant files that were read or modified\n- What remains to be done (clear next steps)\n- Any critical data, examples, or references needed to continue\n\nBe concise, structured, and focused on helping the next LLM seamlessly continue the work.`;\n\n/**\n * Prompt for summarizing the prefix of a split turn.\n *\n * Used when compaction cuts in the middle of a turn (at an assistant message\n * rather than a user message). The prefix of the turn needs summarization\n * to provide context for the kept suffix.\n */\nexport const TURN_PREFIX_SUMMARIZATION_PROMPT = `You are performing a CONTEXT CHECKPOINT COMPACTION for a split turn.\nThis is the PREFIX of a turn that was too large to keep in full. The SUFFIX (recent work) is being kept.\n\nCreate a handoff summary that captures:\n- What the user originally asked for in this turn\n- Key decisions and progress made early in this turn\n- Important context needed to understand the kept suffix\n\nBe concise. Focus on information needed to understand the retained recent work.`;\n\n/**\n * Build the turn prefix summarization prompt.\n *\n * @returns Complete turn prefix summarization prompt\n */\nexport function buildTurnPrefixSummarizationPrompt(): string {\n\treturn TURN_PREFIX_SUMMARIZATION_PROMPT;\n}\n\n/**\n * Build the summarization prompt, optionally with custom instructions.\n *\n * @param customInstructions - Optional additional focus for the summary\n * @returns Complete summarization prompt\n */\nexport function buildSummarizationPrompt(customInstructions?: string): string {\n\tif (customInstructions) {\n\t\treturn `${SUMMARIZATION_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t}\n\treturn SUMMARIZATION_PROMPT;\n}\n\n/**\n * Decorate a summary with handoff context.\n *\n * Adds a prefix that instructs the resuming LLM to build on existing work,\n * and a footer with compaction metadata.\n *\n * @param summaryText - The generated summary content\n * @param compactedCount - Number of messages that were compacted\n * @param fromModel - Whether the summary was generated by the LLM (vs local fallback)\n * @returns Decorated summary text\n */\nexport function decorateSummaryText(\n\tsummaryText: string,\n\tcompactedCount: number,\n\tfromModel: boolean,\n): string {\n\t// OAI-style handoff prefix that tells the resuming model it's continuing work\n\tconst handoffPrefix = fromModel\n\t\t? \"Another language model started to solve this problem and produced a summary of its thinking process. You also have access to the state of the tools that were used by that language model. Use this to build on the work that has already been done and avoid duplicating work. Here is the summary produced by the other language model, use the information in this summary to assist with your own analysis:\\n\\n\"\n\t\t: \"_Local summary of prior discussion (model unavailable)._\\n\\n\";\n\n\treturn `${handoffPrefix}${summaryText}\\n\\n(Compacted ${compactedCount} messages on ${new Date().toLocaleString()})`;\n}\n\n/**\n * Check whether text matches the decorated compaction summary format.\n */\nexport function isDecoratedCompactionSummaryText(text: string): boolean {\n\tconst normalized = text.trim();\n\tif (!normalized) return false;\n\treturn (\n\t\tnormalized.includes(\n\t\t\t\"Another language model started to solve this problem\",\n\t\t) ||\n\t\tnormalized.includes(\"(Compacted\") ||\n\t\tnormalized.includes(\"_Local summary of prior discussion\")\n\t);\n}\n\n/**\n * Check whether a message is a decorated assistant compaction summary.\n */\nexport function isDecoratedCompactionSummaryMessage(\n\tmessage: AppMessage,\n): boolean {\n\tif (message.role !== \"assistant\") return false;\n\treturn isDecoratedCompactionSummaryText(extractMessageText(message));\n}\n\n/**\n * Check whether text matches the internal post-compaction resume prompt.\n */\nexport function isCompactionResumePromptText(text: string): boolean {\n\treturn text.trim() === COMPACTION_RESUME_PROMPT;\n}\n\n/**\n * Check whether a message is the internal post-compaction resume prompt.\n */\nexport function isCompactionResumePromptMessage(message: AppMessage): boolean {\n\tif (message.role !== \"user\") return false;\n\treturn isCompactionResumePromptText(extractMessageText(message));\n}\n\n/**\n * Merge a history summary with a turn prefix summary for split turn compaction.\n *\n * When compaction splits a turn, we generate two summaries:\n * 1. History summary: everything before the split turn\n * 2. Turn prefix summary: the beginning of the split turn\n *\n * This function combines them into a single coherent summary.\n *\n * @param historySummary - Summary of messages before the split turn\n * @param turnPrefixSummary - Summary of the prefix of the split turn\n * @returns Combined summary text\n */\nexport function mergeSplitTurnSummaries(\n\thistorySummary: string,\n\tturnPrefixSummary: string,\n): string {\n\treturn `${historySummary}\\n\\n---\\n\\n**Turn Context (split turn):**\\n\\n${turnPrefixSummary}`;\n}\n\n/**\n * Build a simple local summary when LLM summarization fails.\n *\n * Creates a bullet-point summary of user/assistant exchanges without\n * calling the LLM. Used as fallback when the model is unavailable.\n *\n * @param messages - Messages to summarize\n * @param maxExchanges - Maximum number of exchanges to include\n * @returns Local summary text\n */\nexport function buildLocalSummary(\n\tmessages: AppMessage[],\n\tmaxExchanges = 32,\n): string {\n\tconst lines: string[] = [];\n\tlet exchange = 1;\n\n\tfor (const message of messages) {\n\t\tif (lines.length >= maxExchanges) break;\n\t\tif (shouldSkipAssistantCompactionMessage(message)) continue;\n\n\t\tconst content = extractMessageText(message);\n\t\tif (!content) continue;\n\n\t\tconst truncated = truncateText(content, 180);\n\t\tif (message.role === \"user\") {\n\t\t\tlines.push(`• User ${exchange}: ${truncated}`);\n\t\t} else if (message.role === \"assistant\") {\n\t\t\tlines.push(` ↳ Assistant: ${truncated}`);\n\t\t\texchange += 1;\n\t\t} else if (message.role === \"toolResult\") {\n\t\t\tconst toolName = (message as { toolName?: string }).toolName || \"unknown\";\n\t\t\tlines.push(` ↳ Tool ${toolName}: ${truncateText(content, 160)}`);\n\t\t}\n\t}\n\n\tif (!lines.length) {\n\t\treturn \"(conversation summary placeholder: no textual content to compact)\";\n\t}\n\n\treturn `Conversation summary generated at ${new Date().toLocaleString()}\\n${lines.join(\"\\n\")}`;\n}\n\n/**\n * Extract text content from a message.\n *\n * @param message - Message to extract text from\n * @returns Combined text content or empty string\n */\nfunction extractMessageText(message: AppMessage): string {\n\tconst llmMessage = convertAppMessageToLlm(message);\n\tif (!llmMessage) {\n\t\treturn \"\";\n\t}\n\tif (typeof llmMessage.content === \"string\") {\n\t\treturn llmMessage.content;\n\t}\n\tif (Array.isArray(llmMessage.content)) {\n\t\treturn llmMessage.content\n\t\t\t.map((part) => {\n\t\t\t\tif (part.type === \"text\") return part.text;\n\t\t\t\tif (part.type === \"thinking\") return part.thinking;\n\t\t\t\treturn \"\";\n\t\t\t})\n\t\t\t.filter((part): part is string => Boolean(part))\n\t\t\t.join(\" \");\n\t}\n\treturn \"\";\n}\n\n/**\n * Truncate text to a maximum length with ellipsis.\n *\n * @param text - Text to truncate\n * @param limit - Maximum length\n * @returns Truncated text with ellipsis if needed\n */\nfunction truncateText(text: string, limit = 160): string {\n\tif (text.length <= limit) return text;\n\treturn `${text.slice(0, limit - 1).trim()}…`;\n}\n\n// ============================================================================\n// Compaction Preparation\n// ============================================================================\n\n/**\n * Prepare messages for compaction by finding the cut point and splitting.\n *\n * This is a pure function that determines what should be summarized vs kept,\n * without actually performing the summarization or I/O.\n *\n * @param messages - All messages in the conversation\n * @param settings - Compaction settings\n * @param previousSummary - Optional summary from a previous compaction (for cascading)\n * @returns Object with messages to summarize and messages to keep, or null if not enough history\n */\nexport function prepareCompaction(\n\tmessages: AppMessage[],\n\tsettings: CompactionSettings,\n\tpreviousSummary?: string,\n): {\n\tmessagesToSummarize: AppMessage[];\n\tkeptMessages: AppMessage[];\n\tcutIndex: number;\n} | null {\n\tconst keepCount = 6; // Minimum messages to always keep\n\tif (messages.length <= keepCount + 1) {\n\t\treturn null; // Not enough history to compact\n\t}\n\n\t// Find initial boundary\n\tlet boundary = Math.max(0, messages.length - keepCount);\n\n\t// Use token-based cut point if we have usage data\n\tconst lastUsage = getLastAssistantUsage(messages);\n\tif (lastUsage) {\n\t\tconst tokenBasedCut = findCutPoint(\n\t\t\tmessages,\n\t\t\t0,\n\t\t\tmessages.length,\n\t\t\tsettings.keepRecentTokens,\n\t\t);\n\t\t// Use the more conservative of the two (keep more messages)\n\t\tboundary = Math.max(boundary, tokenBasedCut);\n\t}\n\n\t// Adjust for tool result integrity\n\tboundary = adjustBoundaryForToolResults(messages, boundary);\n\n\tconst older = messages.slice(0, boundary);\n\tif (!older.length) {\n\t\treturn null; // No earlier messages to compact\n\t}\n\n\t// Prepare messages for summarization\n\tconst messagesToSummarize: AppMessage[] = [];\n\n\t// Include previous summary if cascading\n\tif (previousSummary) {\n\t\tmessagesToSummarize.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: `Previous session summary:\\n${previousSummary}`,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\n\t// Add older messages (limit to most recent 40 for summarization efficiency)\n\tconst sliceSize = Math.min(40, older.length);\n\tconst summaryTail = stripRedundantPreviousCompactionMessages(\n\t\tprepareMessagesForCompactionSummary(older.slice(-sliceSize)),\n\t\tpreviousSummary,\n\t);\n\tmessagesToSummarize.push(...summaryTail);\n\n\treturn {\n\t\tmessagesToSummarize,\n\t\tkeptMessages: messages.slice(boundary),\n\t\tcutIndex: boundary,\n\t};\n}\n\n/**\n * Extract the most recent compaction summary from messages.\n *\n * Looks for a message that appears to be a compaction summary (contains\n * the characteristic handoff prefix or compaction footer).\n *\n * @param messages - Messages to search\n * @returns Previous summary text or undefined\n */\nexport function findPreviousSummary(\n\tmessages: AppMessage[],\n): string | undefined {\n\tfor (const message of messages) {\n\t\tif (isDecoratedCompactionSummaryMessage(message)) {\n\t\t\tconst text = extractMessageText(message);\n\t\t\tif (text) {\n\t\t\t\treturn text;\n\t\t\t}\n\t\t}\n\t}\n\treturn undefined;\n}\n\n// ============================================================================\n// Orchestrated Compaction\n// ============================================================================\n\n/**\n * Minimal agent interface required by performCompaction.\n * Avoids depending on the full Agent class to keep this module leaf-level.\n */\nexport interface CompactionAgent {\n\tstate: {\n\t\tmessages: AppMessage[];\n\t\tmodel: { api: Api; provider: string; id: string };\n\t\tsystemPromptSourcePaths?: string[];\n\t\tpromptContextManifest?: PromptProjectDocManifest;\n\t};\n\tgenerateSummary(\n\t\thistory: AppMessage[],\n\t\tprompt: string,\n\t\tsystemPrompt: string,\n\t): Promise<AssistantMessage>;\n\treplaceMessages(messages: AppMessage[]): void;\n\tappendMessage?(message: AppMessage): void;\n\tclearTransientRunState?(options?: {\n\t\tclearSessionContextCache?: boolean;\n\t}): void;\n}\n\n/**\n * Minimal session manager interface required by performCompaction.\n */\nexport interface CompactionSessionManager {\n\tbuildSessionContext(): { messageEntries: Array<{ id?: string }> };\n\tsaveCompaction(\n\t\tsummary: string,\n\t\tfirstKeptEntryIndex: number,\n\t\ttokensBefore: number,\n\t\toptions?: {\n\t\t\tauto?: boolean;\n\t\t\tcustomInstructions?: string;\n\t\t\tfirstKeptEntryId?: string;\n\t\t},\n\t): void;\n\tsaveMessage(message: AppMessage): void;\n}\n\n/**\n * Result of a performCompaction() call.\n */\nexport interface PerformCompactionResult {\n\tsuccess: boolean;\n\tcompactedCount?: number;\n\tsummary?: string;\n\tfirstKeptEntryIndex?: number;\n\ttokensBefore?: number;\n\terror?: string;\n}\n\nfunction buildEffectiveCustomInstructions(\n\tcustomInstructions: string | undefined,\n\thookResult?: {\n\t\tsystemMessage?: string;\n\t\tadditionalContext?: string;\n\t},\n): string | undefined {\n\tconst trimmedCustomInstructions = customInstructions?.trim();\n\tconst hookSections = [\n\t\thookResult?.systemMessage?.trim()\n\t\t\t? `Hook system guidance:\\n${hookResult.systemMessage.trim()}`\n\t\t\t: null,\n\t\thookResult?.additionalContext?.trim()\n\t\t\t? `Hook context:\\n${hookResult.additionalContext.trim()}`\n\t\t\t: null,\n\t].filter((section): section is string => Boolean(section));\n\n\tif (hookSections.length === 0) {\n\t\treturn trimmedCustomInstructions || undefined;\n\t}\n\n\tif (!trimmedCustomInstructions) {\n\t\treturn hookSections.join(\"\\n\\n\");\n\t}\n\n\treturn `${trimmedCustomInstructions}\\n\\n${hookSections.join(\"\\n\\n\")}`;\n}\n\nfunction buildPostCompactHookMessages(hookResult: {\n\tsystemMessage?: string;\n\tadditionalContext?: string;\n}): AppMessage[] {\n\tconst timestamp = new Date().toISOString();\n\tconst messages: AppMessage[] = [];\n\tconst systemMessage = hookResult.systemMessage?.trim();\n\tif (systemMessage) {\n\t\tmessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"PostCompact\",\n\t\t\t\t`PostCompact hook system guidance:\\n${systemMessage}`,\n\t\t\t\ttrue,\n\t\t\t\tundefined,\n\t\t\t\ttimestamp,\n\t\t\t),\n\t\t);\n\t}\n\n\tconst additionalContext = hookResult.additionalContext?.trim();\n\tif (additionalContext) {\n\t\tmessages.push(\n\t\t\tcreateHookMessage(\n\t\t\t\t\"PostCompact\",\n\t\t\t\tadditionalContext,\n\t\t\t\ttrue,\n\t\t\t\tundefined,\n\t\t\t\ttimestamp,\n\t\t\t),\n\t\t);\n\t}\n\n\treturn messages;\n}\n\n/**\n * Perform context compaction end-to-end: calculate boundary, generate summary,\n * replace messages, and persist to session.\n *\n * This function consolidates the compaction logic previously duplicated across\n * main.ts (auto-compact + RPC compact) and ConversationCompactor.\n *\n * @param params.agent - Agent instance (or compatible interface)\n * @param params.sessionManager - Session persistence manager\n * @param params.auto - Whether this is an auto-triggered compaction\n * @param params.customInstructions - Optional focus instructions for summary\n * @param params.renderSummaryText - Optional callback to render an AssistantMessage to plain text.\n * When omitted, performCompaction uses a JSON-based fallback extractor.\n * @returns Result indicating success or failure\n */\nexport async function performCompaction(params: {\n\tagent: CompactionAgent;\n\tsessionManager: CompactionSessionManager;\n\tauto?: boolean;\n\ttrigger?: \"auto\" | \"manual\" | \"token_limit\";\n\tcustomInstructions?: string;\n\tpersistCustomInstructions?: boolean;\n\thookContext?: CompactionHookContext;\n\thookService?: CompactionHookService;\n\tgetPostKeepMessages?: (\n\t\tpreservedMessages: AppMessage[],\n\t) => Promise<AppMessage[]>;\n\trenderSummaryText?: (message: AssistantMessage) => string;\n\treadRestoreExecute?: ReadRestoreExecutor;\n}): Promise<PerformCompactionResult> {\n\tconst {\n\t\tagent,\n\t\tsessionManager,\n\t\tauto,\n\t\ttrigger,\n\t\tcustomInstructions,\n\t\tpersistCustomInstructions = true,\n\t\thookContext,\n\t\thookService,\n\t\tgetPostKeepMessages,\n\t\trenderSummaryText,\n\t\treadRestoreExecute = readTool.execute,\n\t} = params;\n\tconst messages = [...agent.state.messages];\n\tconst keepCount = 6;\n\n\tif (messages.length <= keepCount + 1) {\n\t\treturn { success: false, error: \"Not enough history to compact\" };\n\t}\n\n\t// Calculate boundary using token-based cut point detection\n\tlet boundary = Math.max(0, messages.length - keepCount);\n\tconst lastUsage = getLastAssistantUsage(messages);\n\tif (lastUsage) {\n\t\tconst tokenBasedCut = findCutPoint(\n\t\t\tmessages,\n\t\t\t0,\n\t\t\tmessages.length,\n\t\t\tDEFAULT_COMPACTION_SETTINGS.keepRecentTokens,\n\t\t);\n\t\tboundary = Math.max(boundary, tokenBasedCut);\n\t}\n\tboundary = adjustBoundaryForToolResults(messages, boundary);\n\n\tconst older = messages.slice(0, boundary);\n\tif (!older.length) {\n\t\treturn { success: false, error: \"No earlier messages to compact\" };\n\t}\n\tconst keep = stripRuntimeRestoreMessages(messages.slice(boundary));\n\tconst promptContextPaths = agent.state.promptContextManifest\n\t\t? agent.state.promptContextManifest.entries.map((entry) => entry.path)\n\t\t: resolvePromptLoadedProjectDocPaths(process.cwd());\n\tconst restoredReadMessages = await collectRecentReadRestoreMessages(\n\t\tolder,\n\t\tkeep,\n\t\t[...promptContextPaths, ...(agent.state.systemPromptSourcePaths ?? [])],\n\t\treadRestoreExecute,\n\t);\n\tconst readPathsRestoredAfterCompaction =\n\t\tcollectRestoredReadPaths(restoredReadMessages);\n\n\tconst tokensBefore = lastUsage ? calculateContextTokens(lastUsage) : 0;\n\tlet effectiveCustomInstructions = customInstructions;\n\n\tconst effectiveHookService =\n\t\thookService ??\n\t\t(hookContext ? createCompactionHookService(hookContext) : undefined);\n\n\tif (effectiveHookService) {\n\t\tif (\n\t\t\t!effectiveHookService.hasHooks ||\n\t\t\teffectiveHookService.hasHooks(\"PreCompact\")\n\t\t) {\n\t\t\tconst hookResult = await effectiveHookService.runPreCompactHooks(\n\t\t\t\ttrigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\ttokensBefore,\n\t\t\t\tDEFAULT_COMPACTION_SETTINGS.keepRecentTokens,\n\t\t\t\thookContext?.signal,\n\t\t\t);\n\n\t\t\tif (hookResult.blocked) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror:\n\t\t\t\t\t\thookResult.blockReason ?? \"Compaction blocked by PreCompact hook\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (hookResult.preventContinuation) {\n\t\t\t\treturn {\n\t\t\t\t\tsuccess: false,\n\t\t\t\t\terror:\n\t\t\t\t\t\thookResult.stopReason ?? \"Compaction prevented by PreCompact hook\",\n\t\t\t\t};\n\t\t\t}\n\n\t\t\teffectiveCustomInstructions = buildEffectiveCustomInstructions(\n\t\t\t\tcustomInstructions,\n\t\t\t\thookResult,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Look for previous summary (cascading)\n\tconst previousSummary = findPreviousSummary(messages);\n\tconst sliceSize = Math.min(40, older.length);\n\tconst olderForSummary = stripRedundantPreviousCompactionMessages(\n\t\tprepareMessagesForCompactionSummary(\n\t\t\tolder.slice(-sliceSize),\n\t\t\treadPathsRestoredAfterCompaction,\n\t\t),\n\t\tpreviousSummary,\n\t);\n\tconst summaryInput: AppMessage[] = [];\n\tif (previousSummary) {\n\t\tsummaryInput.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: `Previous session summary:\\n${previousSummary}`,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\t}\n\tsummaryInput.push(...olderForSummary);\n\n\tlet summaryText = \"\";\n\tlet usedModel = false;\n\tlet summaryInputForAttempt = summaryInput;\n\tlet overflowAttempts = 0;\n\n\tfor (;;) {\n\t\tconst prompt = buildSummarizationPrompt(effectiveCustomInstructions);\n\t\ttry {\n\t\t\tconst summary = await agent.generateSummary(\n\t\t\t\tsummaryInputForAttempt,\n\t\t\t\tprompt,\n\t\t\t\t\"You are a careful note-taker that distills coding conversations into actionable summaries.\",\n\t\t\t);\n\t\t\tif (isCompactionOverflowMessage(summary)) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\tsummary.errorMessage ||\n\t\t\t\t\t\textractMessageText(summary) ||\n\t\t\t\t\t\t\"Prompt too long\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tconst llmText = renderSummaryText\n\t\t\t\t? renderSummaryText(summary)\n\t\t\t\t: extractMessageText(summary);\n\t\t\tsummaryText = llmText.trim() || buildLocalSummary(olderForSummary, 32);\n\t\t\tusedModel = true;\n\t\t\tbreak;\n\t\t} catch (error) {\n\t\t\tif (\n\t\t\t\terror instanceof Error &&\n\t\t\t\tisOverflowErrorMessage(error.message) &&\n\t\t\t\toverflowAttempts < MAX_COMPACTION_OVERFLOW_RETRIES\n\t\t\t) {\n\t\t\t\tconst truncated = truncateSummaryInputForOverflowRetry(\n\t\t\t\t\tsummaryInputForAttempt,\n\t\t\t\t\terror.message,\n\t\t\t\t);\n\t\t\t\tif (truncated) {\n\t\t\t\t\tsummaryInputForAttempt = truncated;\n\t\t\t\t\toverflowAttempts += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsummaryText = buildLocalSummary(olderForSummary, 32);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tconst decorated = decorateSummaryText(summaryText, older.length, usedModel);\n\n\t// Build summary and resume messages\n\tconst summaryMessage: AssistantMessage = {\n\t\trole: \"assistant\",\n\t\tcontent: [{ type: \"text\", text: decorated }],\n\t\tapi: agent.state.model.api,\n\t\tprovider: agent.state.model.provider,\n\t\tmodel: agent.state.model.id,\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\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n\n\tconst resumeMessage: AppMessage = {\n\t\trole: \"user\",\n\t\tcontent: [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: COMPACTION_RESUME_PROMPT,\n\t\t\t},\n\t\t],\n\t\ttimestamp: Date.now(),\n\t};\n\n\tconst sessionContext = sessionManager.buildSessionContext();\n\tconst firstKeptEntryId = sessionContext.messageEntries[boundary]?.id;\n\n\t// Persist compaction to session\n\tsessionManager.saveCompaction(summaryText, boundary, tokensBefore, {\n\t\tauto,\n\t\tcustomInstructions: persistCustomInstructions\n\t\t\t? customInstructions\n\t\t\t: undefined,\n\t\tfirstKeptEntryId,\n\t});\n\n\tconst callerPostKeepMessages = (await getPostKeepMessages?.(keep)) ?? [];\n\tconst preservedTailMessages = [...keep, ...callerPostKeepMessages];\n\tconst dedupedRestoredReadMessages = restoredReadMessages.filter((message) => {\n\t\tif (\n\t\t\tmessage.role !== \"hookMessage\" ||\n\t\t\tmessage.customType !== READ_RESTORE_COMPACTION_CUSTOM_TYPE ||\n\t\t\t!Array.isArray(message.content)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst details = message.details;\n\t\tconst filePath =\n\t\t\ttypeof details === \"object\" &&\n\t\t\tdetails !== null &&\n\t\t\t\"filePath\" in details &&\n\t\t\ttypeof details.filePath === \"string\"\n\t\t\t\t? details.filePath\n\t\t\t\t: null;\n\t\treturn (\n\t\t\tfilePath !== null &&\n\t\t\t!hasReadRestoreMessage(preservedTailMessages, filePath, message.content)\n\t\t);\n\t});\n\tconst skillRestoreResult = await collectRecentSkillRestoreMessages(\n\t\tolder,\n\t\tpreservedTailMessages,\n\t);\n\tconst readRestorePathsToReplace = collectReadRestorePathsToReplace(\n\t\tkeep,\n\t\tdedupedRestoredReadMessages,\n\t);\n\tconst planFilePathsToReplace = collectPlanFilePathsToReplace(\n\t\tkeep,\n\t\tcallerPostKeepMessages,\n\t);\n\tconst currentPlanFilePaths = collectPlanRestorePaths(\n\t\tcallerPostKeepMessages,\n\t\tgetPlanFileRestorePath,\n\t);\n\tconst currentPlanModePaths = collectPlanRestorePaths(\n\t\tcallerPostKeepMessages,\n\t\tgetPlanModeRestorePath,\n\t);\n\tconst activeSkillNamesToReplace = collectActiveSkillNamesToReplace(\n\t\tkeep,\n\t\tcallerPostKeepMessages,\n\t);\n\tconst filteredKeep = keep.filter(\n\t\t(message) =>\n\t\t\t!shouldReplacePreservedReadRestoreMessage(\n\t\t\t\tmessage,\n\t\t\t\treadRestorePathsToReplace,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedPlanFileMessage(\n\t\t\t\tmessage,\n\t\t\t\tplanFilePathsToReplace,\n\t\t\t\tcurrentPlanFilePaths,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedPlanModeMessage(message, currentPlanModePaths) &&\n\t\t\t!shouldReplacePreservedToolSkillMessage(\n\t\t\t\tmessage,\n\t\t\t\tskillRestoreResult.replacedPreservedToolSkillNames,\n\t\t\t) &&\n\t\t\t!shouldReplacePreservedActiveSkillMessage(\n\t\t\t\tmessage,\n\t\t\t\tactiveSkillNamesToReplace,\n\t\t\t),\n\t);\n\n\t// Replace agent messages\n\tconst newMessages = [\n\t\tsummaryMessage as AppMessage,\n\t\tresumeMessage,\n\t\t...filteredKeep,\n\t];\n\tagent.replaceMessages(newMessages);\n\tagent.clearTransientRunState?.({ clearSessionContextCache: true });\n\tsessionManager.saveMessage(summaryMessage);\n\tsessionManager.saveMessage(resumeMessage);\n\tawait runPostCompactionCleanup({\n\t\tauto,\n\t\tcustomInstructions,\n\t\tcompactedCount: older.length,\n\t\tfirstKeptEntryIndex: boundary,\n\t});\n\n\tconst appendedTailMessages: AppMessage[] = [];\n\tconst persistTailMessages = (messagesToPersist: AppMessage[]) => {\n\t\tif (messagesToPersist.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tappendedTailMessages.push(...messagesToPersist);\n\t\tif (typeof agent.appendMessage === \"function\") {\n\t\t\tfor (const message of messagesToPersist) {\n\t\t\t\tagent.appendMessage(message);\n\t\t\t\tsessionManager.saveMessage(message);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tagent.replaceMessages([\n\t\t\tsummaryMessage as AppMessage,\n\t\t\tresumeMessage,\n\t\t\t...filteredKeep,\n\t\t\t...appendedTailMessages,\n\t\t]);\n\t\tfor (const message of messagesToPersist) {\n\t\t\tsessionManager.saveMessage(message);\n\t\t}\n\t};\n\tconst postKeepMessages = [\n\t\t...dedupedRestoredReadMessages,\n\t\t...skillRestoreResult.restoredMessages,\n\t\t...callerPostKeepMessages,\n\t];\n\tpersistTailMessages(postKeepMessages);\n\n\tlet postCompactHookMessages: AppMessage[] = [];\n\n\tif (\n\t\teffectiveHookService?.runPostCompactHooks &&\n\t\t(!effectiveHookService.hasHooks ||\n\t\t\teffectiveHookService.hasHooks(\"PostCompact\"))\n\t) {\n\t\tconst postCompactHookResult =\n\t\t\tawait effectiveHookService.runPostCompactHooks(\n\t\t\t\ttrigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\tsummaryText,\n\t\t\t\thookContext?.signal,\n\t\t\t);\n\t\tif (\n\t\t\tpostCompactHookResult.blocked ||\n\t\t\tpostCompactHookResult.preventContinuation\n\t\t) {\n\t\t\tlogger.warn(\n\t\t\t\t\"PostCompact hook returned unsupported control flow request; ignoring\",\n\t\t\t\t{\n\t\t\t\t\ttrigger: trigger ?? (auto ? \"auto\" : \"manual\"),\n\t\t\t\t\tblocked: postCompactHookResult.blocked,\n\t\t\t\t\tpreventContinuation: postCompactHookResult.preventContinuation,\n\t\t\t\t\treason:\n\t\t\t\t\t\tpostCompactHookResult.blockReason ??\n\t\t\t\t\t\tpostCompactHookResult.stopReason,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\tpostCompactHookMessages = buildPostCompactHookMessages(\n\t\t\tpostCompactHookResult,\n\t\t);\n\t\tpersistTailMessages(postCompactHookMessages);\n\t}\n\n\treturn {\n\t\tsuccess: true,\n\t\tcompactedCount: older.length,\n\t\tsummary: summaryText,\n\t\tfirstKeptEntryIndex: boundary,\n\t\ttokensBefore,\n\t};\n}\n"]}