@bastani/atomic 0.8.31-alpha.5 → 0.9.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1357) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/dist/builtin/cursor/CHANGELOG.md +4 -1
  3. package/dist/builtin/cursor/package.json +2 -2
  4. package/dist/builtin/cursor/src/proto/protobuf-codec-json.ts +44 -0
  5. package/dist/builtin/cursor/src/proto/protobuf-codec-request.ts +271 -0
  6. package/dist/builtin/cursor/src/proto/protobuf-codec-wire.ts +231 -0
  7. package/dist/builtin/cursor/src/proto/protobuf-codec.ts +5 -523
  8. package/dist/builtin/cursor/src/stream.ts +6 -70
  9. package/dist/builtin/cursor/src/transport-errors.ts +74 -0
  10. package/dist/builtin/cursor/src/transport-frame.ts +56 -0
  11. package/dist/builtin/cursor/src/transport-http2.ts +122 -0
  12. package/dist/builtin/cursor/src/transport-native-client.ts +161 -0
  13. package/dist/builtin/cursor/src/transport-run-stream.ts +188 -0
  14. package/dist/builtin/cursor/src/transport-timeouts.ts +87 -0
  15. package/dist/builtin/cursor/src/transport-types.ts +140 -0
  16. package/dist/builtin/cursor/src/transport.ts +24 -790
  17. package/dist/builtin/intercom/CHANGELOG.md +3 -0
  18. package/dist/builtin/intercom/broker/client.ts +0 -35
  19. package/dist/builtin/intercom/contact-supervisor-tool.ts +289 -0
  20. package/dist/builtin/intercom/index-heavy.ts +77 -1336
  21. package/dist/builtin/intercom/intercom-tool.ts +409 -0
  22. package/dist/builtin/intercom/intercom-utils.ts +401 -0
  23. package/dist/builtin/intercom/lifecycle.ts +133 -0
  24. package/dist/builtin/intercom/overlay.ts +96 -0
  25. package/dist/builtin/intercom/package.json +1 -1
  26. package/dist/builtin/intercom/subagent-relay.ts +137 -0
  27. package/dist/builtin/mcp/CHANGELOG.md +3 -0
  28. package/dist/builtin/mcp/config-write-utils.ts +104 -0
  29. package/dist/builtin/mcp/config.ts +4 -180
  30. package/dist/builtin/mcp/mcp-panel-renderer.ts +243 -0
  31. package/dist/builtin/mcp/mcp-panel-state.ts +227 -0
  32. package/dist/builtin/mcp/mcp-panel-types.ts +86 -0
  33. package/dist/builtin/mcp/mcp-panel.ts +145 -579
  34. package/dist/builtin/mcp/mcp-setup-panel.ts +4 -81
  35. package/dist/builtin/mcp/package.json +1 -1
  36. package/dist/builtin/mcp/proxy-auth.ts +61 -0
  37. package/dist/builtin/mcp/proxy-call.ts +373 -0
  38. package/dist/builtin/mcp/proxy-connect.ts +58 -0
  39. package/dist/builtin/mcp/proxy-info-modes.ts +326 -0
  40. package/dist/builtin/mcp/proxy-modes.ts +3 -805
  41. package/dist/builtin/mcp/proxy-types.ts +3 -0
  42. package/dist/builtin/mcp/ui-server-http.ts +81 -0
  43. package/dist/builtin/mcp/ui-server.ts +2 -127
  44. package/dist/builtin/subagents/CHANGELOG.md +3 -0
  45. package/dist/builtin/subagents/package.json +1 -1
  46. package/dist/builtin/subagents/src/agents/agent-discovery.ts +127 -0
  47. package/dist/builtin/subagents/src/agents/agent-loaders.ts +175 -0
  48. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +310 -0
  49. package/dist/builtin/subagents/src/agents/agent-management.ts +3 -309
  50. package/dist/builtin/subagents/src/agents/agent-overrides.ts +397 -0
  51. package/dist/builtin/subagents/src/agents/agent-paths.ts +88 -0
  52. package/dist/builtin/subagents/src/agents/agent-types.ts +136 -0
  53. package/dist/builtin/subagents/src/agents/agents.ts +22 -895
  54. package/dist/builtin/subagents/src/agents/skills-paths.ts +333 -0
  55. package/dist/builtin/subagents/src/agents/skills.ts +3 -326
  56. package/dist/builtin/subagents/src/extension/index.ts +4 -118
  57. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +13 -0
  58. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +401 -0
  59. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +131 -0
  60. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +213 -0
  61. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +84 -0
  62. package/dist/builtin/subagents/src/runs/background/async-execution.ts +13 -795
  63. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +215 -0
  64. package/dist/builtin/subagents/src/runs/background/subagent-runner-finalize.ts +136 -0
  65. package/dist/builtin/subagents/src/runs/background/subagent-runner-output.ts +105 -0
  66. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel-helpers.ts +112 -0
  67. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +159 -0
  68. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +127 -0
  69. package/dist/builtin/subagents/src/runs/background/subagent-runner-state.ts +427 -0
  70. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +273 -0
  71. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +269 -0
  72. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +196 -0
  73. package/dist/builtin/subagents/src/runs/background/subagent-runner-utils.ts +70 -0
  74. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +44 -2233
  75. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-behavior.ts +75 -0
  76. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-component.ts +202 -0
  77. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-edit.ts +97 -0
  78. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-editor.ts +160 -0
  79. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-frame.ts +72 -0
  80. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-modes.ts +161 -0
  81. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-render-selectors.ts +203 -0
  82. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-selectors.ts +234 -0
  83. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-state.ts +103 -0
  84. package/dist/builtin/subagents/src/runs/foreground/chain-clarify-types.ts +29 -0
  85. package/dist/builtin/subagents/src/runs/foreground/chain-clarify.ts +4 -1328
  86. package/dist/builtin/subagents/src/runs/foreground/chain-execution-clarify.ts +117 -0
  87. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +35 -0
  88. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +194 -0
  89. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +183 -0
  90. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +185 -0
  91. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +229 -0
  92. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +194 -0
  93. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +94 -1043
  94. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-control.ts +135 -0
  95. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +107 -0
  96. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-types.ts +17 -0
  97. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +454 -0
  98. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +219 -0
  99. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +77 -0
  100. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +34 -0
  101. package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +56 -0
  102. package/dist/builtin/subagents/src/runs/foreground/execution.ts +6 -1082
  103. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +207 -0
  104. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +140 -0
  105. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +266 -0
  106. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +270 -0
  107. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +157 -0
  108. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +375 -0
  109. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +463 -0
  110. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +17 -0
  111. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +320 -0
  112. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +207 -0
  113. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +121 -0
  114. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +113 -0
  115. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +150 -2522
  116. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +0 -16
  117. package/dist/builtin/subagents/src/runs/shared/nested-events-control.ts +167 -0
  118. package/dist/builtin/subagents/src/runs/shared/nested-events-core.ts +219 -0
  119. package/dist/builtin/subagents/src/runs/shared/nested-events-projection.ts +121 -0
  120. package/dist/builtin/subagents/src/runs/shared/nested-events-registry.ts +289 -0
  121. package/dist/builtin/subagents/src/runs/shared/nested-events-sanitize.ts +201 -0
  122. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +50 -935
  123. package/dist/builtin/subagents/src/runs/shared/worktree.ts +0 -78
  124. package/dist/builtin/subagents/src/shared/types-async.ts +265 -0
  125. package/dist/builtin/subagents/src/shared/types-config.ts +125 -0
  126. package/dist/builtin/subagents/src/shared/types-depth.ts +121 -0
  127. package/dist/builtin/subagents/src/shared/types-output.ts +63 -0
  128. package/dist/builtin/subagents/src/shared/types-results.ts +318 -0
  129. package/dist/builtin/subagents/src/shared/types-runtime.ts +136 -0
  130. package/dist/builtin/subagents/src/shared/types.ts +10 -975
  131. package/dist/builtin/subagents/src/slash/slash-commands.ts +0 -12
  132. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +247 -0
  133. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +259 -0
  134. package/dist/builtin/subagents/src/tui/render-layout.ts +120 -0
  135. package/dist/builtin/subagents/src/tui/render-result-animation.ts +56 -0
  136. package/dist/builtin/subagents/src/tui/render-result-compact.ts +154 -0
  137. package/dist/builtin/subagents/src/tui/render-result.ts +390 -0
  138. package/dist/builtin/subagents/src/tui/render-stable-output.ts +83 -0
  139. package/dist/builtin/subagents/src/tui/render-status-progress.ts +133 -0
  140. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +166 -0
  141. package/dist/builtin/subagents/src/tui/render-widget.ts +273 -0
  142. package/dist/builtin/subagents/src/tui/render.ts +14 -1801
  143. package/dist/builtin/web-access/CHANGELOG.md +3 -0
  144. package/dist/builtin/web-access/content-tools.ts +348 -0
  145. package/dist/builtin/web-access/curator-page-assets/script-1.ts +400 -0
  146. package/dist/builtin/web-access/curator-page-assets/script-2.ts +400 -0
  147. package/dist/builtin/web-access/curator-page-assets/script-3.ts +400 -0
  148. package/dist/builtin/web-access/curator-page-assets/script-4.ts +400 -0
  149. package/dist/builtin/web-access/curator-page-assets/script-5.ts +398 -0
  150. package/dist/builtin/web-access/curator-page-assets/styles-1.ts +394 -0
  151. package/dist/builtin/web-access/curator-page-assets/styles-2.ts +394 -0
  152. package/dist/builtin/web-access/curator-page-assets/styles-3.ts +393 -0
  153. package/dist/builtin/web-access/curator-page.ts +17 -3180
  154. package/dist/builtin/web-access/curator-server-helpers.ts +115 -0
  155. package/dist/builtin/web-access/curator-server.ts +2 -113
  156. package/dist/builtin/web-access/exa-mcp.ts +218 -0
  157. package/dist/builtin/web-access/exa.ts +2 -207
  158. package/dist/builtin/web-access/extract-frames.ts +228 -0
  159. package/dist/builtin/web-access/extract.ts +13 -214
  160. package/dist/builtin/web-access/github-config.ts +156 -0
  161. package/dist/builtin/web-access/github-extract.ts +3 -154
  162. package/dist/builtin/web-access/index-heavy.ts +8 -1904
  163. package/dist/builtin/web-access/package.json +2 -1
  164. package/dist/builtin/web-access/web-search-activity.ts +102 -0
  165. package/dist/builtin/web-access/web-search-browser.ts +116 -0
  166. package/dist/builtin/web-access/web-search-command.ts +242 -0
  167. package/dist/builtin/web-access/web-search-config.ts +163 -0
  168. package/dist/builtin/web-access/web-search-curator.ts +214 -0
  169. package/dist/builtin/web-access/web-search-features.ts +165 -0
  170. package/dist/builtin/web-access/web-search-formatting.ts +117 -0
  171. package/dist/builtin/web-access/web-search-return.ts +136 -0
  172. package/dist/builtin/web-access/web-search-summary.ts +170 -0
  173. package/dist/builtin/web-access/web-search-tool.ts +290 -0
  174. package/dist/builtin/web-access/web-search-types.ts +50 -0
  175. package/dist/builtin/workflows/CHANGELOG.md +4 -1
  176. package/dist/builtin/workflows/builtin/deep-research-codebase-runner.ts +492 -0
  177. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +346 -0
  178. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +6 -822
  179. package/dist/builtin/workflows/builtin/goal-artifacts.ts +43 -0
  180. package/dist/builtin/workflows/builtin/goal-ledger.ts +54 -0
  181. package/dist/builtin/workflows/builtin/goal-prompts.ts +360 -0
  182. package/dist/builtin/workflows/builtin/goal-reducer.ts +141 -0
  183. package/dist/builtin/workflows/builtin/goal-reports.ts +56 -0
  184. package/dist/builtin/workflows/builtin/goal-review.ts +84 -0
  185. package/dist/builtin/workflows/builtin/goal-runner.ts +343 -0
  186. package/dist/builtin/workflows/builtin/goal-schemas.ts +60 -0
  187. package/dist/builtin/workflows/builtin/goal-types.ts +132 -0
  188. package/dist/builtin/workflows/builtin/goal.ts +4 -1160
  189. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +432 -0
  190. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +477 -0
  191. package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +312 -0
  192. package/dist/builtin/workflows/builtin/open-claude-design.ts +7 -1083
  193. package/dist/builtin/workflows/builtin/ralph-core.ts +408 -0
  194. package/dist/builtin/workflows/builtin/ralph-models.ts +123 -0
  195. package/dist/builtin/workflows/builtin/ralph-runner.ts +499 -0
  196. package/dist/builtin/workflows/builtin/ralph.ts +7 -979
  197. package/dist/builtin/workflows/package.json +1 -1
  198. package/dist/builtin/workflows/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +2 -2
  199. package/dist/builtin/workflows/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +2 -2
  200. package/dist/builtin/workflows/skills/impeccable/scripts/detector/rules/checks.mjs +2 -2
  201. package/dist/builtin/workflows/skills/impeccable/scripts/detector/shared/page.mjs +8 -1
  202. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +13 -15
  203. package/dist/builtin/workflows/skills/impeccable/scripts/live-manual-edit-evidence.mjs +2 -2
  204. package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +9 -0
  205. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +186 -0
  206. package/dist/builtin/workflows/src/extension/config-file-loader.ts +152 -0
  207. package/dist/builtin/workflows/src/extension/config-loader.ts +2 -167
  208. package/dist/builtin/workflows/src/extension/discovery-loaders.ts +115 -0
  209. package/dist/builtin/workflows/src/extension/discovery.ts +3 -117
  210. package/dist/builtin/workflows/src/extension/extension-factory.ts +120 -0
  211. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +109 -0
  212. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +270 -0
  213. package/dist/builtin/workflows/src/extension/index.ts +42 -4166
  214. package/dist/builtin/workflows/src/extension/public-types.ts +295 -0
  215. package/dist/builtin/workflows/src/extension/render-component.ts +14 -0
  216. package/dist/builtin/workflows/src/extension/runtime-direct.ts +96 -0
  217. package/dist/builtin/workflows/src/extension/runtime.ts +1 -92
  218. package/dist/builtin/workflows/src/extension/ui-surface.ts +286 -0
  219. package/dist/builtin/workflows/src/extension/wiring.ts +6 -475
  220. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +111 -0
  221. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +213 -0
  222. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +81 -0
  223. package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +181 -0
  224. package/dist/builtin/workflows/src/extension/workflow-policy.ts +15 -0
  225. package/dist/builtin/workflows/src/extension/workflow-ports.ts +41 -0
  226. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +23 -0
  227. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +286 -0
  228. package/dist/builtin/workflows/src/extension/workflow-schema.ts +1 -1
  229. package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +264 -0
  230. package/dist/builtin/workflows/src/extension/workflow-targets.ts +181 -0
  231. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +175 -0
  232. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +205 -0
  233. package/dist/builtin/workflows/src/extension/workflow-tool-helpers.ts +66 -0
  234. package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +164 -0
  235. package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +54 -0
  236. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +164 -0
  237. package/dist/builtin/workflows/src/extension/workflow-tool.ts +102 -0
  238. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +431 -0
  239. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +232 -0
  240. package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +74 -0
  241. package/dist/builtin/workflows/src/runs/foreground/executor-child-workflow.ts +158 -0
  242. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +167 -0
  243. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +450 -0
  244. package/dist/builtin/workflows/src/runs/foreground/executor-direct.ts +233 -0
  245. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +195 -0
  246. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +368 -0
  247. package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +83 -0
  248. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +441 -0
  249. package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +160 -0
  250. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +274 -0
  251. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +122 -0
  252. package/dist/builtin/workflows/src/runs/foreground/executor-run.ts +359 -0
  253. package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +204 -0
  254. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +197 -0
  255. package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +120 -0
  256. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +126 -0
  257. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +351 -0
  258. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +134 -0
  259. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +54 -0
  260. package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +132 -0
  261. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +293 -0
  262. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +109 -0
  263. package/dist/builtin/workflows/src/runs/foreground/executor.ts +19 -5354
  264. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +219 -0
  265. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +500 -0
  266. package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +129 -0
  267. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +53 -0
  268. package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +146 -0
  269. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +55 -0
  270. package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +82 -0
  271. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +141 -0
  272. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +13 -1355
  273. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +453 -0
  274. package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +442 -0
  275. package/dist/builtin/workflows/src/runs/shared/model-fallback.ts +2 -836
  276. package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +165 -0
  277. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +220 -0
  278. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +335 -0
  279. package/dist/builtin/workflows/src/runs/shared/worktree-types.ts +92 -0
  280. package/dist/builtin/workflows/src/runs/shared/worktree.ts +18 -791
  281. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +365 -0
  282. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +425 -0
  283. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +236 -0
  284. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +354 -0
  285. package/dist/builtin/workflows/src/shared/authoring-contract.d.ts +5 -598
  286. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +428 -0
  287. package/dist/builtin/workflows/src/shared/persistence-restore.ts +9 -431
  288. package/dist/builtin/workflows/src/shared/store-factory.ts +16 -0
  289. package/dist/builtin/workflows/src/shared/store-internal.ts +219 -0
  290. package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +219 -0
  291. package/dist/builtin/workflows/src/shared/store-public-types.ts +215 -0
  292. package/dist/builtin/workflows/src/shared/store-run-methods.ts +223 -0
  293. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +305 -0
  294. package/dist/builtin/workflows/src/shared/store.ts +11 -1138
  295. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +266 -0
  296. package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +75 -0
  297. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +477 -0
  298. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +248 -0
  299. package/dist/builtin/workflows/src/shared/workflow-failures.ts +13 -1001
  300. package/dist/builtin/workflows/src/tui/chat-surface.ts +0 -66
  301. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +45 -0
  302. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +161 -0
  303. package/dist/builtin/workflows/src/tui/graph-view-input.ts +333 -0
  304. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +336 -0
  305. package/dist/builtin/workflows/src/tui/graph-view-render.ts +194 -0
  306. package/dist/builtin/workflows/src/tui/graph-view-state.ts +306 -0
  307. package/dist/builtin/workflows/src/tui/graph-view-types.ts +70 -0
  308. package/dist/builtin/workflows/src/tui/graph-view.ts +4 -1386
  309. package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +121 -0
  310. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +11 -223
  311. package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +151 -0
  312. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +305 -0
  313. package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +300 -0
  314. package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +190 -0
  315. package/dist/builtin/workflows/src/tui/inputs-picker.ts +19 -997
  316. package/dist/builtin/workflows/src/tui/prompt-card-input.ts +226 -0
  317. package/dist/builtin/workflows/src/tui/prompt-card-render.ts +373 -0
  318. package/dist/builtin/workflows/src/tui/prompt-card-select.ts +116 -0
  319. package/dist/builtin/workflows/src/tui/prompt-card-state.ts +61 -0
  320. package/dist/builtin/workflows/src/tui/prompt-card-text.ts +129 -0
  321. package/dist/builtin/workflows/src/tui/prompt-card.ts +8 -910
  322. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +315 -0
  323. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +127 -0
  324. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +187 -0
  325. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +222 -0
  326. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +152 -0
  327. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +464 -0
  328. package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +242 -0
  329. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +151 -0
  330. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +141 -1777
  331. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +85 -0
  332. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +1 -129
  333. package/dist/config-self-update.d.ts +21 -0
  334. package/dist/config-self-update.d.ts.map +1 -0
  335. package/dist/config-self-update.js +265 -0
  336. package/dist/config-self-update.js.map +1 -0
  337. package/dist/config.d.ts +3 -12
  338. package/dist/config.d.ts.map +1 -1
  339. package/dist/config.js +15 -252
  340. package/dist/config.js.map +1 -1
  341. package/dist/core/agent-session-accessors.d.ts +3 -0
  342. package/dist/core/agent-session-accessors.d.ts.map +1 -0
  343. package/dist/core/agent-session-accessors.js +36 -0
  344. package/dist/core/agent-session-accessors.js.map +1 -0
  345. package/dist/core/agent-session-auto-compaction.d.ts +32 -0
  346. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -0
  347. package/dist/core/agent-session-auto-compaction.js +214 -0
  348. package/dist/core/agent-session-auto-compaction.js.map +1 -0
  349. package/dist/core/agent-session-bash.d.ts +30 -0
  350. package/dist/core/agent-session-bash.d.ts.map +1 -0
  351. package/dist/core/agent-session-bash.js +84 -0
  352. package/dist/core/agent-session-bash.js.map +1 -0
  353. package/dist/core/agent-session-compaction.d.ts +44 -0
  354. package/dist/core/agent-session-compaction.d.ts.map +1 -0
  355. package/dist/core/agent-session-compaction.js +282 -0
  356. package/dist/core/agent-session-compaction.js.map +1 -0
  357. package/dist/core/agent-session-events.d.ts +65 -0
  358. package/dist/core/agent-session-events.d.ts.map +1 -0
  359. package/dist/core/agent-session-events.js +373 -0
  360. package/dist/core/agent-session-events.js.map +1 -0
  361. package/dist/core/agent-session-export.d.ts +42 -0
  362. package/dist/core/agent-session-export.d.ts.map +1 -0
  363. package/dist/core/agent-session-export.js +199 -0
  364. package/dist/core/agent-session-export.js.map +1 -0
  365. package/dist/core/agent-session-extension-bindings.d.ts +37 -0
  366. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -0
  367. package/dist/core/agent-session-extension-bindings.js +231 -0
  368. package/dist/core/agent-session-extension-bindings.js.map +1 -0
  369. package/dist/core/agent-session-message-queue.d.ts +85 -0
  370. package/dist/core/agent-session-message-queue.d.ts.map +1 -0
  371. package/dist/core/agent-session-message-queue.js +264 -0
  372. package/dist/core/agent-session-message-queue.js.map +1 -0
  373. package/dist/core/agent-session-methods.d.ts +302 -0
  374. package/dist/core/agent-session-methods.d.ts.map +1 -0
  375. package/dist/core/agent-session-methods.js +2 -0
  376. package/dist/core/agent-session-methods.js.map +1 -0
  377. package/dist/core/agent-session-models.d.ts +111 -0
  378. package/dist/core/agent-session-models.d.ts.map +1 -0
  379. package/dist/core/agent-session-models.js +368 -0
  380. package/dist/core/agent-session-models.js.map +1 -0
  381. package/dist/core/agent-session-prompt.d.ts +61 -0
  382. package/dist/core/agent-session-prompt.d.ts.map +1 -0
  383. package/dist/core/agent-session-prompt.js +330 -0
  384. package/dist/core/agent-session-prompt.js.map +1 -0
  385. package/dist/core/agent-session-retry.d.ts +62 -0
  386. package/dist/core/agent-session-retry.d.ts.map +1 -0
  387. package/dist/core/agent-session-retry.js +202 -0
  388. package/dist/core/agent-session-retry.js.map +1 -0
  389. package/dist/core/agent-session-skill-block.d.ts +13 -0
  390. package/dist/core/agent-session-skill-block.d.ts.map +1 -0
  391. package/dist/core/agent-session-skill-block.js +37 -0
  392. package/dist/core/agent-session-skill-block.js.map +1 -0
  393. package/dist/core/agent-session-state.d.ts +48 -0
  394. package/dist/core/agent-session-state.d.ts.map +1 -0
  395. package/dist/core/agent-session-state.js +129 -0
  396. package/dist/core/agent-session-state.js.map +1 -0
  397. package/dist/core/agent-session-tool-hooks.d.ts +7 -0
  398. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -0
  399. package/dist/core/agent-session-tool-hooks.js +72 -0
  400. package/dist/core/agent-session-tool-hooks.js.map +1 -0
  401. package/dist/core/agent-session-tool-registry.d.ts +15 -0
  402. package/dist/core/agent-session-tool-registry.d.ts.map +1 -0
  403. package/dist/core/agent-session-tool-registry.js +151 -0
  404. package/dist/core/agent-session-tool-registry.js.map +1 -0
  405. package/dist/core/agent-session-tree.d.ts +46 -0
  406. package/dist/core/agent-session-tree.d.ts.map +1 -0
  407. package/dist/core/agent-session-tree.js +217 -0
  408. package/dist/core/agent-session-tree.js.map +1 -0
  409. package/dist/core/agent-session-types.d.ts +159 -0
  410. package/dist/core/agent-session-types.d.ts.map +1 -0
  411. package/dist/core/agent-session-types.js +41 -0
  412. package/dist/core/agent-session-types.js.map +1 -0
  413. package/dist/core/agent-session.d.ts +68 -688
  414. package/dist/core/agent-session.d.ts.map +1 -1
  415. package/dist/core/agent-session.js +26 -3152
  416. package/dist/core/agent-session.js.map +1 -1
  417. package/dist/core/auth-storage-backends.d.ts +49 -0
  418. package/dist/core/auth-storage-backends.d.ts.map +1 -0
  419. package/dist/core/auth-storage-backends.js +185 -0
  420. package/dist/core/auth-storage-backends.js.map +1 -0
  421. package/dist/core/auth-storage.d.ts +2 -49
  422. package/dist/core/auth-storage.d.ts.map +1 -1
  423. package/dist/core/auth-storage.js +3 -183
  424. package/dist/core/auth-storage.js.map +1 -1
  425. package/dist/core/compaction/context-compaction-metrics.d.ts +16 -0
  426. package/dist/core/compaction/context-compaction-metrics.d.ts.map +1 -0
  427. package/dist/core/compaction/context-compaction-metrics.js +58 -0
  428. package/dist/core/compaction/context-compaction-metrics.js.map +1 -0
  429. package/dist/core/compaction/context-compaction-prompt.d.ts +9 -0
  430. package/dist/core/compaction/context-compaction-prompt.d.ts.map +1 -0
  431. package/dist/core/compaction/context-compaction-prompt.js +161 -0
  432. package/dist/core/compaction/context-compaction-prompt.js.map +1 -0
  433. package/dist/core/compaction/context-compaction-runner.d.ts +5 -0
  434. package/dist/core/compaction/context-compaction-runner.d.ts.map +1 -0
  435. package/dist/core/compaction/context-compaction-runner.js +181 -0
  436. package/dist/core/compaction/context-compaction-runner.js.map +1 -0
  437. package/dist/core/compaction/context-compaction-strategy.d.ts +5 -0
  438. package/dist/core/compaction/context-compaction-strategy.d.ts.map +1 -0
  439. package/dist/core/compaction/context-compaction-strategy.js +27 -0
  440. package/dist/core/compaction/context-compaction-strategy.js.map +1 -0
  441. package/dist/core/compaction/context-compaction-types.d.ts +73 -0
  442. package/dist/core/compaction/context-compaction-types.d.ts.map +1 -0
  443. package/dist/core/compaction/context-compaction-types.js +6 -0
  444. package/dist/core/compaction/context-compaction-types.js.map +1 -0
  445. package/dist/core/compaction/context-compaction.d.ts +9 -200
  446. package/dist/core/compaction/context-compaction.d.ts.map +1 -1
  447. package/dist/core/compaction/context-compaction.js +7 -1943
  448. package/dist/core/compaction/context-compaction.js.map +1 -1
  449. package/dist/core/compaction/context-deletion-application.d.ts +13 -0
  450. package/dist/core/compaction/context-deletion-application.d.ts.map +1 -0
  451. package/dist/core/compaction/context-deletion-application.js +259 -0
  452. package/dist/core/compaction/context-deletion-application.js.map +1 -0
  453. package/dist/core/compaction/context-deletion-store.d.ts +78 -0
  454. package/dist/core/compaction/context-deletion-store.d.ts.map +1 -0
  455. package/dist/core/compaction/context-deletion-store.js +162 -0
  456. package/dist/core/compaction/context-deletion-store.js.map +1 -0
  457. package/dist/core/compaction/context-deletion-targets.d.ts +40 -0
  458. package/dist/core/compaction/context-deletion-targets.d.ts.map +1 -0
  459. package/dist/core/compaction/context-deletion-targets.js +267 -0
  460. package/dist/core/compaction/context-deletion-targets.js.map +1 -0
  461. package/dist/core/compaction/context-deletion-tool-definitions.d.ts +187 -0
  462. package/dist/core/compaction/context-deletion-tool-definitions.d.ts.map +1 -0
  463. package/dist/core/compaction/context-deletion-tool-definitions.js +98 -0
  464. package/dist/core/compaction/context-deletion-tool-definitions.js.map +1 -0
  465. package/dist/core/compaction/context-deletion-tool-helpers.d.ts +19 -0
  466. package/dist/core/compaction/context-deletion-tool-helpers.d.ts.map +1 -0
  467. package/dist/core/compaction/context-deletion-tool-helpers.js +137 -0
  468. package/dist/core/compaction/context-deletion-tool-helpers.js.map +1 -0
  469. package/dist/core/compaction/context-deletion-tools.d.ts +4 -0
  470. package/dist/core/compaction/context-deletion-tools.d.ts.map +1 -0
  471. package/dist/core/compaction/context-deletion-tools.js +395 -0
  472. package/dist/core/compaction/context-deletion-tools.js.map +1 -0
  473. package/dist/core/compaction/context-transcript-analysis.d.ts +9 -0
  474. package/dist/core/compaction/context-transcript-analysis.d.ts.map +1 -0
  475. package/dist/core/compaction/context-transcript-analysis.js +234 -0
  476. package/dist/core/compaction/context-transcript-analysis.js.map +1 -0
  477. package/dist/core/export-html/index.d.ts.map +1 -1
  478. package/dist/core/export-html/index.js +2 -1
  479. package/dist/core/export-html/index.js.map +1 -1
  480. package/dist/core/export-html/template-js/data-tree.js +287 -0
  481. package/dist/core/export-html/template-js/entries-navigation.js +424 -0
  482. package/dist/core/export-html/template-js/initialization.js +312 -0
  483. package/dist/core/export-html/template-js/message-tools.js +415 -0
  484. package/dist/core/export-html/template-js/tree-filter-render.js +421 -0
  485. package/dist/core/export-html/template-script.d.ts +3 -0
  486. package/dist/core/export-html/template-script.d.ts.map +1 -0
  487. package/dist/core/export-html/template-script.js +13 -0
  488. package/dist/core/export-html/template-script.js.map +1 -0
  489. package/dist/core/export-html/template.js +3 -1
  490. package/dist/core/extensions/agent-events.d.ts +159 -0
  491. package/dist/core/extensions/agent-events.d.ts.map +1 -0
  492. package/dist/core/extensions/agent-events.js +2 -0
  493. package/dist/core/extensions/agent-events.js.map +1 -0
  494. package/dist/core/extensions/api-types.d.ts +189 -0
  495. package/dist/core/extensions/api-types.d.ts.map +1 -0
  496. package/dist/core/extensions/api-types.js +2 -0
  497. package/dist/core/extensions/api-types.js.map +1 -0
  498. package/dist/core/extensions/command-types.d.ts +14 -0
  499. package/dist/core/extensions/command-types.d.ts.map +1 -0
  500. package/dist/core/extensions/command-types.js +2 -0
  501. package/dist/core/extensions/command-types.js.map +1 -0
  502. package/dist/core/extensions/context-types.d.ts +130 -0
  503. package/dist/core/extensions/context-types.d.ts.map +1 -0
  504. package/dist/core/extensions/context-types.js +2 -0
  505. package/dist/core/extensions/context-types.js.map +1 -0
  506. package/dist/core/extensions/event-results.d.ts +61 -0
  507. package/dist/core/extensions/event-results.d.ts.map +1 -0
  508. package/dist/core/extensions/event-results.js +2 -0
  509. package/dist/core/extensions/event-results.js.map +1 -0
  510. package/dist/core/extensions/event-types.d.ts +6 -0
  511. package/dist/core/extensions/event-types.d.ts.map +1 -0
  512. package/dist/core/extensions/event-types.js +2 -0
  513. package/dist/core/extensions/event-types.js.map +1 -0
  514. package/dist/core/extensions/loader-api.d.ts +10 -0
  515. package/dist/core/extensions/loader-api.d.ts.map +1 -0
  516. package/dist/core/extensions/loader-api.js +143 -0
  517. package/dist/core/extensions/loader-api.js.map +1 -0
  518. package/dist/core/extensions/loader-core.d.ts +12 -0
  519. package/dist/core/extensions/loader-core.d.ts.map +1 -0
  520. package/dist/core/extensions/loader-core.js +91 -0
  521. package/dist/core/extensions/loader-core.js.map +1 -0
  522. package/dist/core/extensions/loader-discovery.d.ts +7 -0
  523. package/dist/core/extensions/loader-discovery.d.ts.map +1 -0
  524. package/dist/core/extensions/loader-discovery.js +139 -0
  525. package/dist/core/extensions/loader-discovery.js.map +1 -0
  526. package/dist/core/extensions/loader-resources.d.ts +11 -0
  527. package/dist/core/extensions/loader-resources.d.ts.map +1 -0
  528. package/dist/core/extensions/loader-resources.js +10 -0
  529. package/dist/core/extensions/loader-resources.js.map +1 -0
  530. package/dist/core/extensions/loader-runtime.d.ts +7 -0
  531. package/dist/core/extensions/loader-runtime.d.ts.map +1 -0
  532. package/dist/core/extensions/loader-runtime.js +51 -0
  533. package/dist/core/extensions/loader-runtime.js.map +1 -0
  534. package/dist/core/extensions/loader-virtual-modules.d.ts +3 -0
  535. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -0
  536. package/dist/core/extensions/loader-virtual-modules.js +92 -0
  537. package/dist/core/extensions/loader-virtual-modules.js.map +1 -0
  538. package/dist/core/extensions/loader.d.ts +4 -28
  539. package/dist/core/extensions/loader.d.ts.map +1 -1
  540. package/dist/core/extensions/loader.js +3 -542
  541. package/dist/core/extensions/loader.js.map +1 -1
  542. package/dist/core/extensions/message-types.d.ts +34 -0
  543. package/dist/core/extensions/message-types.d.ts.map +1 -0
  544. package/dist/core/extensions/message-types.js +2 -0
  545. package/dist/core/extensions/message-types.js.map +1 -0
  546. package/dist/core/extensions/provider-types.d.ts +71 -0
  547. package/dist/core/extensions/provider-types.d.ts.map +1 -0
  548. package/dist/core/extensions/provider-types.js +2 -0
  549. package/dist/core/extensions/provider-types.js.map +1 -0
  550. package/dist/core/extensions/runner-context.d.ts +42 -0
  551. package/dist/core/extensions/runner-context.d.ts.map +1 -0
  552. package/dist/core/extensions/runner-context.js +112 -0
  553. package/dist/core/extensions/runner-context.js.map +1 -0
  554. package/dist/core/extensions/runner-events.d.ts +47 -0
  555. package/dist/core/extensions/runner-events.d.ts.map +1 -0
  556. package/dist/core/extensions/runner-events.js +280 -0
  557. package/dist/core/extensions/runner-events.js.map +1 -0
  558. package/dist/core/extensions/runner-handlers.d.ts +32 -0
  559. package/dist/core/extensions/runner-handlers.d.ts.map +1 -0
  560. package/dist/core/extensions/runner-handlers.js +2 -0
  561. package/dist/core/extensions/runner-handlers.js.map +1 -0
  562. package/dist/core/extensions/runner-project-trust.d.ts +6 -0
  563. package/dist/core/extensions/runner-project-trust.d.ts.map +1 -0
  564. package/dist/core/extensions/runner-project-trust.js +27 -0
  565. package/dist/core/extensions/runner-project-trust.js.map +1 -0
  566. package/dist/core/extensions/runner-registries.d.ts +8 -0
  567. package/dist/core/extensions/runner-registries.d.ts.map +1 -0
  568. package/dist/core/extensions/runner-registries.js +76 -0
  569. package/dist/core/extensions/runner-registries.js.map +1 -0
  570. package/dist/core/extensions/runner-shortcuts.d.ts +10 -0
  571. package/dist/core/extensions/runner-shortcuts.d.ts.map +1 -0
  572. package/dist/core/extensions/runner-shortcuts.js +71 -0
  573. package/dist/core/extensions/runner-shortcuts.js.map +1 -0
  574. package/dist/core/extensions/runner-ui.d.ts +3 -0
  575. package/dist/core/extensions/runner-ui.d.ts.map +1 -0
  576. package/dist/core/extensions/runner-ui.js +50 -0
  577. package/dist/core/extensions/runner-ui.js.map +1 -0
  578. package/dist/core/extensions/runner.d.ts +7 -74
  579. package/dist/core/extensions/runner.d.ts.map +1 -1
  580. package/dist/core/extensions/runner.js +67 -673
  581. package/dist/core/extensions/runner.js.map +1 -1
  582. package/dist/core/extensions/runtime-types.d.ts +179 -0
  583. package/dist/core/extensions/runtime-types.d.ts.map +1 -0
  584. package/dist/core/extensions/runtime-types.js +2 -0
  585. package/dist/core/extensions/runtime-types.js.map +1 -0
  586. package/dist/core/extensions/session-events.d.ts +89 -0
  587. package/dist/core/extensions/session-events.d.ts.map +1 -0
  588. package/dist/core/extensions/session-events.js +2 -0
  589. package/dist/core/extensions/session-events.js.map +1 -0
  590. package/dist/core/extensions/tool-events.d.ts +127 -0
  591. package/dist/core/extensions/tool-events.d.ts.map +1 -0
  592. package/dist/core/extensions/tool-events.js +26 -0
  593. package/dist/core/extensions/tool-events.js.map +1 -0
  594. package/dist/core/extensions/tool-types.d.ts +100 -0
  595. package/dist/core/extensions/tool-types.d.ts.map +1 -0
  596. package/dist/core/extensions/tool-types.js +11 -0
  597. package/dist/core/extensions/tool-types.js.map +1 -0
  598. package/dist/core/extensions/types.d.ts +20 -1288
  599. package/dist/core/extensions/types.d.ts.map +1 -1
  600. package/dist/core/extensions/types.js +4 -34
  601. package/dist/core/extensions/types.js.map +1 -1
  602. package/dist/core/extensions/ui-types.d.ts +200 -0
  603. package/dist/core/extensions/ui-types.d.ts.map +1 -0
  604. package/dist/core/extensions/ui-types.js +2 -0
  605. package/dist/core/extensions/ui-types.js.map +1 -0
  606. package/dist/core/model-registry-auth.d.ts +7 -0
  607. package/dist/core/model-registry-auth.d.ts.map +1 -0
  608. package/dist/core/model-registry-auth.js +64 -0
  609. package/dist/core/model-registry-auth.js.map +1 -0
  610. package/dist/core/model-registry-builtins.d.ts +9 -0
  611. package/dist/core/model-registry-builtins.d.ts.map +1 -0
  612. package/dist/core/model-registry-builtins.js +120 -0
  613. package/dist/core/model-registry-builtins.js.map +1 -0
  614. package/dist/core/model-registry-custom-loader.d.ts +3 -0
  615. package/dist/core/model-registry-custom-loader.d.ts.map +1 -0
  616. package/dist/core/model-registry-custom-loader.js +213 -0
  617. package/dist/core/model-registry-custom-loader.js.map +1 -0
  618. package/dist/core/model-registry-dynamic.d.ts +6 -0
  619. package/dist/core/model-registry-dynamic.d.ts.map +1 -0
  620. package/dist/core/model-registry-dynamic.js +155 -0
  621. package/dist/core/model-registry-dynamic.js.map +1 -0
  622. package/dist/core/model-registry-loader.d.ts +4 -0
  623. package/dist/core/model-registry-loader.d.ts.map +1 -0
  624. package/dist/core/model-registry-loader.js +20 -0
  625. package/dist/core/model-registry-loader.js.map +1 -0
  626. package/dist/core/model-registry-schemas.d.ts +1084 -0
  627. package/dist/core/model-registry-schemas.d.ts.map +1 -0
  628. package/dist/core/model-registry-schemas.js +161 -0
  629. package/dist/core/model-registry-schemas.js.map +1 -0
  630. package/dist/core/model-registry-types.d.ts +74 -0
  631. package/dist/core/model-registry-types.d.ts.map +1 -0
  632. package/dist/core/model-registry-types.js +2 -0
  633. package/dist/core/model-registry-types.js.map +1 -0
  634. package/dist/core/model-registry.d.ts +3 -76
  635. package/dist/core/model-registry.d.ts.map +1 -1
  636. package/dist/core/model-registry.js +24 -733
  637. package/dist/core/model-registry.js.map +1 -1
  638. package/dist/core/model-resolver-cli.d.ts +19 -0
  639. package/dist/core/model-resolver-cli.d.ts.map +1 -0
  640. package/dist/core/model-resolver-cli.js +118 -0
  641. package/dist/core/model-resolver-cli.js.map +1 -0
  642. package/dist/core/model-resolver-defaults.d.ts +5 -0
  643. package/dist/core/model-resolver-defaults.d.ts.map +1 -0
  644. package/dist/core/model-resolver-defaults.js +47 -0
  645. package/dist/core/model-resolver-defaults.js.map +1 -0
  646. package/dist/core/model-resolver-initial.d.ts +31 -0
  647. package/dist/core/model-resolver-initial.d.ts.map +1 -0
  648. package/dist/core/model-resolver-initial.js +116 -0
  649. package/dist/core/model-resolver-initial.js.map +1 -0
  650. package/dist/core/model-resolver-patterns.d.ts +26 -0
  651. package/dist/core/model-resolver-patterns.d.ts.map +1 -0
  652. package/dist/core/model-resolver-patterns.js +139 -0
  653. package/dist/core/model-resolver-patterns.js.map +1 -0
  654. package/dist/core/model-resolver-scope.d.ts +15 -0
  655. package/dist/core/model-resolver-scope.d.ts.map +1 -0
  656. package/dist/core/model-resolver-scope.js +66 -0
  657. package/dist/core/model-resolver-scope.js.map +1 -0
  658. package/dist/core/model-resolver-types.d.ts +29 -0
  659. package/dist/core/model-resolver-types.d.ts.map +1 -0
  660. package/dist/core/model-resolver-types.js +2 -0
  661. package/dist/core/model-resolver-types.js.map +1 -0
  662. package/dist/core/model-resolver.d.ts +6 -107
  663. package/dist/core/model-resolver.d.ts.map +1 -1
  664. package/dist/core/model-resolver.js +5 -549
  665. package/dist/core/model-resolver.js.map +1 -1
  666. package/dist/core/package-manager-auto-resources.d.ts +5 -0
  667. package/dist/core/package-manager-auto-resources.d.ts.map +1 -0
  668. package/dist/core/package-manager-auto-resources.js +109 -0
  669. package/dist/core/package-manager-auto-resources.js.map +1 -0
  670. package/dist/core/package-manager-command.d.ts +11 -0
  671. package/dist/core/package-manager-command.d.ts.map +1 -0
  672. package/dist/core/package-manager-command.js +102 -0
  673. package/dist/core/package-manager-command.js.map +1 -0
  674. package/dist/core/package-manager-constants.d.ts +4 -0
  675. package/dist/core/package-manager-constants.d.ts.map +1 -0
  676. package/dist/core/package-manager-constants.js +4 -0
  677. package/dist/core/package-manager-constants.js.map +1 -0
  678. package/dist/core/package-manager-env.d.ts +4 -0
  679. package/dist/core/package-manager-env.d.ts.map +1 -0
  680. package/dist/core/package-manager-env.js +40 -0
  681. package/dist/core/package-manager-env.js.map +1 -0
  682. package/dist/core/package-manager-git.d.ts +10 -0
  683. package/dist/core/package-manager-git.d.ts.map +1 -0
  684. package/dist/core/package-manager-git.js +271 -0
  685. package/dist/core/package-manager-git.js.map +1 -0
  686. package/dist/core/package-manager-manifest.d.ts +7 -0
  687. package/dist/core/package-manager-manifest.d.ts.map +1 -0
  688. package/dist/core/package-manager-manifest.js +45 -0
  689. package/dist/core/package-manager-manifest.js.map +1 -0
  690. package/dist/core/package-manager-npm.d.ts +25 -0
  691. package/dist/core/package-manager-npm.d.ts.map +1 -0
  692. package/dist/core/package-manager-npm.js +252 -0
  693. package/dist/core/package-manager-npm.js.map +1 -0
  694. package/dist/core/package-manager-operations.d.ts +11 -0
  695. package/dist/core/package-manager-operations.d.ts.map +1 -0
  696. package/dist/core/package-manager-operations.js +196 -0
  697. package/dist/core/package-manager-operations.js.map +1 -0
  698. package/dist/core/package-manager-paths.d.ts +14 -0
  699. package/dist/core/package-manager-paths.d.ts.map +1 -0
  700. package/dist/core/package-manager-paths.js +61 -0
  701. package/dist/core/package-manager-paths.js.map +1 -0
  702. package/dist/core/package-manager-progress.d.ts +4 -0
  703. package/dist/core/package-manager-progress.d.ts.map +1 -0
  704. package/dist/core/package-manager-progress.js +16 -0
  705. package/dist/core/package-manager-progress.js.map +1 -0
  706. package/dist/core/package-manager-resolver.d.ts +5 -0
  707. package/dist/core/package-manager-resolver.d.ts.map +1 -0
  708. package/dist/core/package-manager-resolver.js +149 -0
  709. package/dist/core/package-manager-resolver.js.map +1 -0
  710. package/dist/core/package-manager-resource-accumulator.d.ts +6 -0
  711. package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -0
  712. package/dist/core/package-manager-resource-accumulator.js +67 -0
  713. package/dist/core/package-manager-resource-accumulator.js.map +1 -0
  714. package/dist/core/package-manager-resource-collector.d.ts +5 -0
  715. package/dist/core/package-manager-resource-collector.d.ts.map +1 -0
  716. package/dist/core/package-manager-resource-collector.js +148 -0
  717. package/dist/core/package-manager-resource-collector.js.map +1 -0
  718. package/dist/core/package-manager-resource-files.d.ts +14 -0
  719. package/dist/core/package-manager-resource-files.d.ts.map +1 -0
  720. package/dist/core/package-manager-resource-files.js +265 -0
  721. package/dist/core/package-manager-resource-files.js.map +1 -0
  722. package/dist/core/package-manager-resource-patterns.d.ts +12 -0
  723. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -0
  724. package/dist/core/package-manager-resource-patterns.js +136 -0
  725. package/dist/core/package-manager-resource-patterns.js.map +1 -0
  726. package/dist/core/package-manager-settings.d.ts +10 -0
  727. package/dist/core/package-manager-settings.d.ts.map +1 -0
  728. package/dist/core/package-manager-settings.js +91 -0
  729. package/dist/core/package-manager-settings.js.map +1 -0
  730. package/dist/core/package-manager-source.d.ts +21 -0
  731. package/dist/core/package-manager-source.d.ts.map +1 -0
  732. package/dist/core/package-manager-source.js +146 -0
  733. package/dist/core/package-manager-source.js.map +1 -0
  734. package/dist/core/package-manager-types.d.ts +169 -0
  735. package/dist/core/package-manager-types.d.ts.map +1 -0
  736. package/dist/core/package-manager-types.js +9 -0
  737. package/dist/core/package-manager-types.js.map +1 -0
  738. package/dist/core/package-manager.d.ts +9 -174
  739. package/dist/core/package-manager.d.ts.map +1 -1
  740. package/dist/core/package-manager.js +56 -2100
  741. package/dist/core/package-manager.js.map +1 -1
  742. package/dist/core/resource-loader-assets.d.ts +6 -0
  743. package/dist/core/resource-loader-assets.d.ts.map +1 -0
  744. package/dist/core/resource-loader-assets.js +209 -0
  745. package/dist/core/resource-loader-assets.js.map +1 -0
  746. package/dist/core/resource-loader-context-files.d.ts +10 -0
  747. package/dist/core/resource-loader-context-files.d.ts.map +1 -0
  748. package/dist/core/resource-loader-context-files.js +74 -0
  749. package/dist/core/resource-loader-context-files.js.map +1 -0
  750. package/dist/core/resource-loader-core.d.ts +82 -0
  751. package/dist/core/resource-loader-core.d.ts.map +1 -0
  752. package/dist/core/resource-loader-core.js +168 -0
  753. package/dist/core/resource-loader-core.js.map +1 -0
  754. package/dist/core/resource-loader-discovery.d.ts +4 -0
  755. package/dist/core/resource-loader-discovery.d.ts.map +1 -0
  756. package/dist/core/resource-loader-discovery.js +28 -0
  757. package/dist/core/resource-loader-discovery.js.map +1 -0
  758. package/dist/core/resource-loader-extensions.d.ts +13 -0
  759. package/dist/core/resource-loader-extensions.d.ts.map +1 -0
  760. package/dist/core/resource-loader-extensions.js +110 -0
  761. package/dist/core/resource-loader-extensions.js.map +1 -0
  762. package/dist/core/resource-loader-helpers.d.ts +4 -0
  763. package/dist/core/resource-loader-helpers.d.ts.map +1 -0
  764. package/dist/core/resource-loader-helpers.js +23 -0
  765. package/dist/core/resource-loader-helpers.js.map +1 -0
  766. package/dist/core/resource-loader-internals.d.ts +96 -0
  767. package/dist/core/resource-loader-internals.d.ts.map +1 -0
  768. package/dist/core/resource-loader-internals.js +4 -0
  769. package/dist/core/resource-loader-internals.js.map +1 -0
  770. package/dist/core/resource-loader-package-resources.d.ts +31 -0
  771. package/dist/core/resource-loader-package-resources.d.ts.map +1 -0
  772. package/dist/core/resource-loader-package-resources.js +112 -0
  773. package/dist/core/resource-loader-package-resources.js.map +1 -0
  774. package/dist/core/resource-loader-paths.d.ts +4 -0
  775. package/dist/core/resource-loader-paths.d.ts.map +1 -0
  776. package/dist/core/resource-loader-paths.js +22 -0
  777. package/dist/core/resource-loader-paths.js.map +1 -0
  778. package/dist/core/resource-loader-reload.d.ts +6 -0
  779. package/dist/core/resource-loader-reload.d.ts.map +1 -0
  780. package/dist/core/resource-loader-reload.js +226 -0
  781. package/dist/core/resource-loader-reload.js.map +1 -0
  782. package/dist/core/resource-loader-source-info.d.ts +9 -0
  783. package/dist/core/resource-loader-source-info.d.ts.map +1 -0
  784. package/dist/core/resource-loader-source-info.js +101 -0
  785. package/dist/core/resource-loader-source-info.js.map +1 -0
  786. package/dist/core/resource-loader-types.d.ts +130 -0
  787. package/dist/core/resource-loader-types.d.ts.map +1 -0
  788. package/dist/core/resource-loader-types.js +2 -0
  789. package/dist/core/resource-loader-types.js.map +1 -0
  790. package/dist/core/resource-loader.d.ts +3 -242
  791. package/dist/core/resource-loader.d.ts.map +1 -1
  792. package/dist/core/resource-loader.js +2 -976
  793. package/dist/core/resource-loader.js.map +1 -1
  794. package/dist/core/sdk-exports.d.ts +7 -0
  795. package/dist/core/sdk-exports.d.ts.map +1 -0
  796. package/dist/core/sdk-exports.js +5 -0
  797. package/dist/core/sdk-exports.js.map +1 -0
  798. package/dist/core/sdk-types.d.ts +86 -0
  799. package/dist/core/sdk-types.d.ts.map +1 -0
  800. package/dist/core/sdk-types.js +2 -0
  801. package/dist/core/sdk-types.js.map +1 -0
  802. package/dist/core/sdk.d.ts +3 -91
  803. package/dist/core/sdk.d.ts.map +1 -1
  804. package/dist/core/sdk.js +2 -6
  805. package/dist/core/sdk.js.map +1 -1
  806. package/dist/core/session-manager-archive.d.ts +27 -0
  807. package/dist/core/session-manager-archive.d.ts.map +1 -0
  808. package/dist/core/session-manager-archive.js +114 -0
  809. package/dist/core/session-manager-archive.js.map +1 -0
  810. package/dist/core/session-manager-core.d.ts +104 -0
  811. package/dist/core/session-manager-core.d.ts.map +1 -0
  812. package/dist/core/session-manager-core.js +346 -0
  813. package/dist/core/session-manager-core.js.map +1 -0
  814. package/dist/core/session-manager-entries.d.ts +38 -0
  815. package/dist/core/session-manager-entries.d.ts.map +1 -0
  816. package/dist/core/session-manager-entries.js +124 -0
  817. package/dist/core/session-manager-entries.js.map +1 -0
  818. package/dist/core/session-manager-history.d.ts +38 -0
  819. package/dist/core/session-manager-history.d.ts.map +1 -0
  820. package/dist/core/session-manager-history.js +378 -0
  821. package/dist/core/session-manager-history.js.map +1 -0
  822. package/dist/core/session-manager-list.d.ts +5 -0
  823. package/dist/core/session-manager-list.d.ts.map +1 -0
  824. package/dist/core/session-manager-list.js +196 -0
  825. package/dist/core/session-manager-list.js.map +1 -0
  826. package/dist/core/session-manager-migrations.d.ts +11 -0
  827. package/dist/core/session-manager-migrations.d.ts.map +1 -0
  828. package/dist/core/session-manager-migrations.js +80 -0
  829. package/dist/core/session-manager-migrations.js.map +1 -0
  830. package/dist/core/session-manager-paths.d.ts +7 -0
  831. package/dist/core/session-manager-paths.d.ts.map +1 -0
  832. package/dist/core/session-manager-paths.js +22 -0
  833. package/dist/core/session-manager-paths.js.map +1 -0
  834. package/dist/core/session-manager-storage.d.ts +15 -0
  835. package/dist/core/session-manager-storage.d.ts.map +1 -0
  836. package/dist/core/session-manager-storage.js +127 -0
  837. package/dist/core/session-manager-storage.js.map +1 -0
  838. package/dist/core/session-manager-types.d.ts +172 -0
  839. package/dist/core/session-manager-types.d.ts.map +1 -0
  840. package/dist/core/session-manager-types.js +2 -0
  841. package/dist/core/session-manager-types.js.map +1 -0
  842. package/dist/core/session-manager-validation.d.ts +7 -0
  843. package/dist/core/session-manager-validation.d.ts.map +1 -0
  844. package/dist/core/session-manager-validation.js +34 -0
  845. package/dist/core/session-manager-validation.js.map +1 -0
  846. package/dist/core/session-manager.d.ts +8 -390
  847. package/dist/core/session-manager.d.ts.map +1 -1
  848. package/dist/core/session-manager.js +7 -1418
  849. package/dist/core/session-manager.js.map +1 -1
  850. package/dist/core/settings-manager-basic-accessors.d.ts +65 -0
  851. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -0
  852. package/dist/core/settings-manager-basic-accessors.js +253 -0
  853. package/dist/core/settings-manager-basic-accessors.js.map +1 -0
  854. package/dist/core/settings-manager-core.d.ts +57 -0
  855. package/dist/core/settings-manager-core.d.ts.map +1 -0
  856. package/dist/core/settings-manager-core.js +387 -0
  857. package/dist/core/settings-manager-core.js.map +1 -0
  858. package/dist/core/settings-manager-internals.d.ts +13 -0
  859. package/dist/core/settings-manager-internals.d.ts.map +1 -0
  860. package/dist/core/settings-manager-internals.js +4 -0
  861. package/dist/core/settings-manager-internals.js.map +1 -0
  862. package/dist/core/settings-manager-resource-accessors.d.ts +43 -0
  863. package/dist/core/settings-manager-resource-accessors.d.ts.map +1 -0
  864. package/dist/core/settings-manager-resource-accessors.js +172 -0
  865. package/dist/core/settings-manager-resource-accessors.js.map +1 -0
  866. package/dist/core/settings-manager-ui-accessors.d.ts +44 -0
  867. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -0
  868. package/dist/core/settings-manager-ui-accessors.js +208 -0
  869. package/dist/core/settings-manager-ui-accessors.js.map +1 -0
  870. package/dist/core/settings-manager.d.ts +6 -321
  871. package/dist/core/settings-manager.d.ts.map +1 -1
  872. package/dist/core/settings-manager.js +5 -1060
  873. package/dist/core/settings-manager.js.map +1 -1
  874. package/dist/core/settings-merge.d.ts +4 -0
  875. package/dist/core/settings-merge.d.ts.map +1 -0
  876. package/dist/core/settings-merge.js +26 -0
  877. package/dist/core/settings-merge.js.map +1 -0
  878. package/dist/core/settings-storage.d.ts +20 -0
  879. package/dist/core/settings-storage.d.ts.map +1 -0
  880. package/dist/core/settings-storage.js +100 -0
  881. package/dist/core/settings-storage.js.map +1 -0
  882. package/dist/core/settings-types.d.ts +123 -0
  883. package/dist/core/settings-types.d.ts.map +1 -0
  884. package/dist/core/settings-types.js +2 -0
  885. package/dist/core/settings-types.js.map +1 -0
  886. package/dist/core/system-prompt.d.ts.map +1 -1
  887. package/dist/core/system-prompt.js +7 -0
  888. package/dist/core/system-prompt.js.map +1 -1
  889. package/dist/core/tools/bash-policy-compile.d.ts +5 -0
  890. package/dist/core/tools/bash-policy-compile.d.ts.map +1 -0
  891. package/dist/core/tools/bash-policy-compile.js +241 -0
  892. package/dist/core/tools/bash-policy-compile.js.map +1 -0
  893. package/dist/core/tools/bash-policy-evaluate.d.ts +3 -0
  894. package/dist/core/tools/bash-policy-evaluate.d.ts.map +1 -0
  895. package/dist/core/tools/bash-policy-evaluate.js +92 -0
  896. package/dist/core/tools/bash-policy-evaluate.js.map +1 -0
  897. package/dist/core/tools/bash-policy-format.d.ts +5 -0
  898. package/dist/core/tools/bash-policy-format.d.ts.map +1 -0
  899. package/dist/core/tools/bash-policy-format.js +49 -0
  900. package/dist/core/tools/bash-policy-format.js.map +1 -0
  901. package/dist/core/tools/bash-policy-parser.d.ts +4 -0
  902. package/dist/core/tools/bash-policy-parser.d.ts.map +1 -0
  903. package/dist/core/tools/bash-policy-parser.js +155 -0
  904. package/dist/core/tools/bash-policy-parser.js.map +1 -0
  905. package/dist/core/tools/bash-policy-segment.d.ts +3 -0
  906. package/dist/core/tools/bash-policy-segment.d.ts.map +1 -0
  907. package/dist/core/tools/bash-policy-segment.js +275 -0
  908. package/dist/core/tools/bash-policy-segment.js.map +1 -0
  909. package/dist/core/tools/bash-policy-shell.d.ts +11 -0
  910. package/dist/core/tools/bash-policy-shell.d.ts.map +1 -0
  911. package/dist/core/tools/bash-policy-shell.js +267 -0
  912. package/dist/core/tools/bash-policy-shell.js.map +1 -0
  913. package/dist/core/tools/bash-policy-types.d.ts +146 -0
  914. package/dist/core/tools/bash-policy-types.d.ts.map +1 -0
  915. package/dist/core/tools/bash-policy-types.js +2 -0
  916. package/dist/core/tools/bash-policy-types.js.map +1 -0
  917. package/dist/core/tools/bash-policy.d.ts +5 -61
  918. package/dist/core/tools/bash-policy.d.ts.map +1 -1
  919. package/dist/core/tools/bash-policy.js +4 -1068
  920. package/dist/core/tools/bash-policy.js.map +1 -1
  921. package/dist/core/tools/todos-execute.d.ts +5 -0
  922. package/dist/core/tools/todos-execute.d.ts.map +1 -0
  923. package/dist/core/tools/todos-execute.js +200 -0
  924. package/dist/core/tools/todos-execute.js.map +1 -0
  925. package/dist/core/tools/todos-locks.d.ts +4 -0
  926. package/dist/core/tools/todos-locks.d.ts.map +1 -0
  927. package/dist/core/tools/todos-locks.js +80 -0
  928. package/dist/core/tools/todos-locks.js.map +1 -0
  929. package/dist/core/tools/todos-model.d.ts +21 -0
  930. package/dist/core/tools/todos-model.d.ts.map +1 -0
  931. package/dist/core/tools/todos-model.js +71 -0
  932. package/dist/core/tools/todos-model.js.map +1 -0
  933. package/dist/core/tools/todos-mutations.d.ts +6 -0
  934. package/dist/core/tools/todos-mutations.d.ts.map +1 -0
  935. package/dist/core/tools/todos-mutations.js +85 -0
  936. package/dist/core/tools/todos-mutations.js.map +1 -0
  937. package/dist/core/tools/todos-paths.d.ts +5 -0
  938. package/dist/core/tools/todos-paths.d.ts.map +1 -0
  939. package/dist/core/tools/todos-paths.js +25 -0
  940. package/dist/core/tools/todos-paths.js.map +1 -0
  941. package/dist/core/tools/todos-render.d.ts +10 -0
  942. package/dist/core/tools/todos-render.d.ts.map +1 -0
  943. package/dist/core/tools/todos-render.js +159 -0
  944. package/dist/core/tools/todos-render.js.map +1 -0
  945. package/dist/core/tools/todos-storage.d.ts +9 -0
  946. package/dist/core/tools/todos-storage.d.ts.map +1 -0
  947. package/dist/core/tools/todos-storage.js +183 -0
  948. package/dist/core/tools/todos-storage.js.map +1 -0
  949. package/dist/core/tools/todos-types.d.ts +46 -0
  950. package/dist/core/tools/todos-types.d.ts.map +1 -0
  951. package/dist/core/tools/todos-types.js +27 -0
  952. package/dist/core/tools/todos-types.js.map +1 -0
  953. package/dist/core/tools/todos.d.ts +12 -32
  954. package/dist/core/tools/todos.d.ts.map +1 -1
  955. package/dist/core/tools/todos.js +7 -893
  956. package/dist/core/tools/todos.js.map +1 -1
  957. package/dist/index-extensions.d.ts +3 -0
  958. package/dist/index-extensions.d.ts.map +1 -0
  959. package/dist/index-extensions.js +2 -0
  960. package/dist/index-extensions.js.map +1 -0
  961. package/dist/index.d.ts +1 -2
  962. package/dist/index.d.ts.map +1 -1
  963. package/dist/index.js +1 -1
  964. package/dist/index.js.map +1 -1
  965. package/dist/main-app-mode.d.ts +15 -0
  966. package/dist/main-app-mode.d.ts.map +1 -0
  967. package/dist/main-app-mode.js +51 -0
  968. package/dist/main-app-mode.js.map +1 -0
  969. package/dist/main-session-options.d.ts +12 -0
  970. package/dist/main-session-options.d.ts.map +1 -0
  971. package/dist/main-session-options.js +87 -0
  972. package/dist/main-session-options.js.map +1 -0
  973. package/dist/main-session.d.ts +9 -0
  974. package/dist/main-session.d.ts.map +1 -0
  975. package/dist/main-session.js +188 -0
  976. package/dist/main-session.js.map +1 -0
  977. package/dist/main-stdio.d.ts +12 -0
  978. package/dist/main-stdio.d.ts.map +1 -0
  979. package/dist/main-stdio.js +68 -0
  980. package/dist/main-stdio.js.map +1 -0
  981. package/dist/main.d.ts +2 -3
  982. package/dist/main.d.ts.map +1 -1
  983. package/dist/main.js +11 -388
  984. package/dist/main.js.map +1 -1
  985. package/dist/migrations-config-values.d.ts +9 -0
  986. package/dist/migrations-config-values.d.ts.map +1 -0
  987. package/dist/migrations-config-values.js +298 -0
  988. package/dist/migrations-config-values.js.map +1 -0
  989. package/dist/migrations.d.ts.map +1 -1
  990. package/dist/migrations.js +2 -296
  991. package/dist/migrations.js.map +1 -1
  992. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  993. package/dist/modes/interactive/components/chat-message-renderer.js +0 -7
  994. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  995. package/dist/modes/interactive/components/chat-session-host-actions.d.ts +9 -0
  996. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -0
  997. package/dist/modes/interactive/components/chat-session-host-actions.js +244 -0
  998. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -0
  999. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +18 -0
  1000. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -0
  1001. package/dist/modes/interactive/components/chat-session-host-editor.js +165 -0
  1002. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -0
  1003. package/dist/modes/interactive/components/chat-session-host-events.d.ts +5 -0
  1004. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -0
  1005. package/dist/modes/interactive/components/chat-session-host-events.js +200 -0
  1006. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -0
  1007. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +13 -0
  1008. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -0
  1009. package/dist/modes/interactive/components/chat-session-host-rendering.js +185 -0
  1010. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -0
  1011. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +13 -0
  1012. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -0
  1013. package/dist/modes/interactive/components/chat-session-host-runtime.js +101 -0
  1014. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -0
  1015. package/dist/modes/interactive/components/chat-session-host-state.d.ts +53 -0
  1016. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -0
  1017. package/dist/modes/interactive/components/chat-session-host-state.js +42 -0
  1018. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -0
  1019. package/dist/modes/interactive/components/chat-session-host-types.d.ts +63 -0
  1020. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -0
  1021. package/dist/modes/interactive/components/chat-session-host-types.js +2 -0
  1022. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -0
  1023. package/dist/modes/interactive/components/chat-session-host-utils.d.ts +28 -0
  1024. package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -0
  1025. package/dist/modes/interactive/components/chat-session-host-utils.js +103 -0
  1026. package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -0
  1027. package/dist/modes/interactive/components/chat-session-host.d.ts +6 -129
  1028. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  1029. package/dist/modes/interactive/components/chat-session-host.js +50 -1022
  1030. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  1031. package/dist/modes/interactive/components/config-selector-list.d.ts +65 -0
  1032. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -0
  1033. package/dist/modes/interactive/components/config-selector-list.js +458 -0
  1034. package/dist/modes/interactive/components/config-selector-list.js.map +1 -0
  1035. package/dist/modes/interactive/components/config-selector.d.ts +3 -58
  1036. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1037. package/dist/modes/interactive/components/config-selector.js +2 -457
  1038. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1039. package/dist/modes/interactive/components/session-selector-delete.d.ts +10 -0
  1040. package/dist/modes/interactive/components/session-selector-delete.d.ts.map +1 -0
  1041. package/dist/modes/interactive/components/session-selector-delete.js +40 -0
  1042. package/dist/modes/interactive/components/session-selector-delete.js.map +1 -0
  1043. package/dist/modes/interactive/components/session-selector-header.d.ts +33 -0
  1044. package/dist/modes/interactive/components/session-selector-header.d.ts.map +1 -0
  1045. package/dist/modes/interactive/components/session-selector-header.js +117 -0
  1046. package/dist/modes/interactive/components/session-selector-header.js.map +1 -0
  1047. package/dist/modes/interactive/components/session-selector-list.d.ts +49 -0
  1048. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -0
  1049. package/dist/modes/interactive/components/session-selector-list.js +307 -0
  1050. package/dist/modes/interactive/components/session-selector-list.js.map +1 -0
  1051. package/dist/modes/interactive/components/session-selector-tree.d.ts +25 -0
  1052. package/dist/modes/interactive/components/session-selector-tree.d.ts.map +1 -0
  1053. package/dist/modes/interactive/components/session-selector-tree.js +53 -0
  1054. package/dist/modes/interactive/components/session-selector-tree.js.map +1 -0
  1055. package/dist/modes/interactive/components/session-selector-types.d.ts +4 -0
  1056. package/dist/modes/interactive/components/session-selector-types.d.ts.map +1 -0
  1057. package/dist/modes/interactive/components/session-selector-types.js +2 -0
  1058. package/dist/modes/interactive/components/session-selector-types.js.map +1 -0
  1059. package/dist/modes/interactive/components/session-selector-utils.d.ts +4 -0
  1060. package/dist/modes/interactive/components/session-selector-utils.d.ts.map +1 -0
  1061. package/dist/modes/interactive/components/session-selector-utils.js +37 -0
  1062. package/dist/modes/interactive/components/session-selector-utils.js.map +1 -0
  1063. package/dist/modes/interactive/components/session-selector.d.ts +3 -49
  1064. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1065. package/dist/modes/interactive/components/session-selector.js +5 -542
  1066. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1067. package/dist/modes/interactive/components/settings-selector-handlers.d.ts +3 -0
  1068. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -0
  1069. package/dist/modes/interactive/components/settings-selector-handlers.js +84 -0
  1070. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -0
  1071. package/dist/modes/interactive/components/settings-selector-items.d.ts +4 -0
  1072. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -0
  1073. package/dist/modes/interactive/components/settings-selector-items.js +211 -0
  1074. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -0
  1075. package/dist/modes/interactive/components/settings-selector-options.d.ts +6 -0
  1076. package/dist/modes/interactive/components/settings-selector-options.d.ts.map +1 -0
  1077. package/dist/modes/interactive/components/settings-selector-options.js +14 -0
  1078. package/dist/modes/interactive/components/settings-selector-options.js.map +1 -0
  1079. package/dist/modes/interactive/components/settings-selector-submenus.d.ts +44 -0
  1080. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -0
  1081. package/dist/modes/interactive/components/settings-selector-submenus.js +228 -0
  1082. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -0
  1083. package/dist/modes/interactive/components/settings-selector-types.d.ts +67 -0
  1084. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -0
  1085. package/dist/modes/interactive/components/settings-selector-types.js +2 -0
  1086. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -0
  1087. package/dist/modes/interactive/components/settings-selector.d.ts +2 -63
  1088. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1089. package/dist/modes/interactive/components/settings-selector.js +5 -538
  1090. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1091. package/dist/modes/interactive/components/tree-selector-component.d.ts +21 -0
  1092. package/dist/modes/interactive/components/tree-selector-component.d.ts.map +1 -0
  1093. package/dist/modes/interactive/components/tree-selector-component.js +80 -0
  1094. package/dist/modes/interactive/components/tree-selector-component.js.map +1 -0
  1095. package/dist/modes/interactive/components/tree-selector-content.d.ts +8 -0
  1096. package/dist/modes/interactive/components/tree-selector-content.d.ts.map +1 -0
  1097. package/dist/modes/interactive/components/tree-selector-content.js +263 -0
  1098. package/dist/modes/interactive/components/tree-selector-content.js.map +1 -0
  1099. package/dist/modes/interactive/components/tree-selector-help.d.ts +16 -0
  1100. package/dist/modes/interactive/components/tree-selector-help.d.ts.map +1 -0
  1101. package/dist/modes/interactive/components/tree-selector-help.js +103 -0
  1102. package/dist/modes/interactive/components/tree-selector-help.js.map +1 -0
  1103. package/dist/modes/interactive/components/tree-selector-label-input.d.ts +16 -0
  1104. package/dist/modes/interactive/components/tree-selector-label-input.d.ts.map +1 -0
  1105. package/dist/modes/interactive/components/tree-selector-label-input.js +46 -0
  1106. package/dist/modes/interactive/components/tree-selector-label-input.js.map +1 -0
  1107. package/dist/modes/interactive/components/tree-selector-list.d.ts +33 -0
  1108. package/dist/modes/interactive/components/tree-selector-list.d.ts.map +1 -0
  1109. package/dist/modes/interactive/components/tree-selector-list.js +336 -0
  1110. package/dist/modes/interactive/components/tree-selector-list.js.map +1 -0
  1111. package/dist/modes/interactive/components/tree-selector-model.d.ts +7 -0
  1112. package/dist/modes/interactive/components/tree-selector-model.d.ts.map +1 -0
  1113. package/dist/modes/interactive/components/tree-selector-model.js +358 -0
  1114. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -0
  1115. package/dist/modes/interactive/components/tree-selector-types.d.ts +57 -0
  1116. package/dist/modes/interactive/components/tree-selector-types.d.ts.map +1 -0
  1117. package/dist/modes/interactive/components/tree-selector-types.js +6 -0
  1118. package/dist/modes/interactive/components/tree-selector-types.js.map +1 -0
  1119. package/dist/modes/interactive/components/tree-selector-viewport.d.ts +10 -0
  1120. package/dist/modes/interactive/components/tree-selector-viewport.d.ts.map +1 -0
  1121. package/dist/modes/interactive/components/tree-selector-viewport.js +32 -0
  1122. package/dist/modes/interactive/components/tree-selector-viewport.js.map +1 -0
  1123. package/dist/modes/interactive/components/tree-selector.d.ts +2 -88
  1124. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1125. package/dist/modes/interactive/components/tree-selector.js +1 -1200
  1126. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1127. package/dist/modes/interactive/interactive-agent-events.d.ts +2 -0
  1128. package/dist/modes/interactive/interactive-agent-events.d.ts.map +1 -0
  1129. package/dist/modes/interactive/interactive-agent-events.js +370 -0
  1130. package/dist/modes/interactive/interactive-agent-events.js.map +1 -0
  1131. package/dist/modes/interactive/interactive-auth-login.d.ts +2 -0
  1132. package/dist/modes/interactive/interactive-auth-login.d.ts.map +1 -0
  1133. package/dist/modes/interactive/interactive-auth-login.js +214 -0
  1134. package/dist/modes/interactive/interactive-auth-login.js.map +1 -0
  1135. package/dist/modes/interactive/interactive-auth-routing.d.ts +2 -0
  1136. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -0
  1137. package/dist/modes/interactive/interactive-auth-routing.js +128 -0
  1138. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -0
  1139. package/dist/modes/interactive/interactive-autocomplete.d.ts +2 -0
  1140. package/dist/modes/interactive/interactive-autocomplete.d.ts.map +1 -0
  1141. package/dist/modes/interactive/interactive-autocomplete.js +140 -0
  1142. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -0
  1143. package/dist/modes/interactive/interactive-bash-compact.d.ts +2 -0
  1144. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -0
  1145. package/dist/modes/interactive/interactive-bash-compact.js +112 -0
  1146. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -0
  1147. package/dist/modes/interactive/interactive-editor-actions.d.ts +2 -0
  1148. package/dist/modes/interactive/interactive-editor-actions.d.ts.map +1 -0
  1149. package/dist/modes/interactive/interactive-editor-actions.js +131 -0
  1150. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -0
  1151. package/dist/modes/interactive/interactive-extension-context.d.ts +2 -0
  1152. package/dist/modes/interactive/interactive-extension-context.d.ts.map +1 -0
  1153. package/dist/modes/interactive/interactive-extension-context.js +159 -0
  1154. package/dist/modes/interactive/interactive-extension-context.js.map +1 -0
  1155. package/dist/modes/interactive/interactive-extension-custom-ui.d.ts +2 -0
  1156. package/dist/modes/interactive/interactive-extension-custom-ui.d.ts.map +1 -0
  1157. package/dist/modes/interactive/interactive-extension-custom-ui.js +208 -0
  1158. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -0
  1159. package/dist/modes/interactive/interactive-extension-dialogs.d.ts +2 -0
  1160. package/dist/modes/interactive/interactive-extension-dialogs.d.ts.map +1 -0
  1161. package/dist/modes/interactive/interactive-extension-dialogs.js +162 -0
  1162. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -0
  1163. package/dist/modes/interactive/interactive-extension-runtime.d.ts +2 -0
  1164. package/dist/modes/interactive/interactive-extension-runtime.d.ts.map +1 -0
  1165. package/dist/modes/interactive/interactive-extension-runtime.js +179 -0
  1166. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -0
  1167. package/dist/modes/interactive/interactive-extension-widgets.d.ts +2 -0
  1168. package/dist/modes/interactive/interactive-extension-widgets.d.ts.map +1 -0
  1169. package/dist/modes/interactive/interactive-extension-widgets.js +113 -0
  1170. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -0
  1171. package/dist/modes/interactive/interactive-hotkeys-debug.d.ts +2 -0
  1172. package/dist/modes/interactive/interactive-hotkeys-debug.d.ts.map +1 -0
  1173. package/dist/modes/interactive/interactive-hotkeys-debug.js +186 -0
  1174. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -0
  1175. package/dist/modes/interactive/interactive-input-handling.d.ts +2 -0
  1176. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -0
  1177. package/dist/modes/interactive/interactive-input-handling.js +275 -0
  1178. package/dist/modes/interactive/interactive-input-handling.js.map +1 -0
  1179. package/dist/modes/interactive/interactive-mode-base.d.ts +103 -0
  1180. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -0
  1181. package/dist/modes/interactive/interactive-mode-base.js +130 -0
  1182. package/dist/modes/interactive/interactive-mode-base.js.map +1 -0
  1183. package/dist/modes/interactive/interactive-mode-deps.d.ts +81 -0
  1184. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -0
  1185. package/dist/modes/interactive/interactive-mode-deps.js +74 -0
  1186. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -0
  1187. package/dist/modes/interactive/interactive-mode-helpers.d.ts +21 -0
  1188. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -0
  1189. package/dist/modes/interactive/interactive-mode-helpers.js +77 -0
  1190. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -0
  1191. package/dist/modes/interactive/interactive-mode-surface.d.ts +313 -0
  1192. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -0
  1193. package/dist/modes/interactive/interactive-mode-surface.js +2 -0
  1194. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -0
  1195. package/dist/modes/interactive/interactive-mode-types.d.ts +29 -0
  1196. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -0
  1197. package/dist/modes/interactive/interactive-mode-types.js +2 -0
  1198. package/dist/modes/interactive/interactive-mode-types.js.map +1 -0
  1199. package/dist/modes/interactive/interactive-mode.d.ts +30 -404
  1200. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1201. package/dist/modes/interactive/interactive-mode.js +29 -5260
  1202. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1203. package/dist/modes/interactive/interactive-model-routing.d.ts +2 -0
  1204. package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -0
  1205. package/dist/modes/interactive/interactive-model-routing.js +269 -0
  1206. package/dist/modes/interactive/interactive-model-routing.js.map +1 -0
  1207. package/dist/modes/interactive/interactive-process-lifecycle.d.ts +2 -0
  1208. package/dist/modes/interactive/interactive-process-lifecycle.d.ts.map +1 -0
  1209. package/dist/modes/interactive/interactive-process-lifecycle.js +189 -0
  1210. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -0
  1211. package/dist/modes/interactive/interactive-queueing.d.ts +2 -0
  1212. package/dist/modes/interactive/interactive-queueing.d.ts.map +1 -0
  1213. package/dist/modes/interactive/interactive-queueing.js +163 -0
  1214. package/dist/modes/interactive/interactive-queueing.js.map +1 -0
  1215. package/dist/modes/interactive/interactive-render-chat.d.ts +2 -0
  1216. package/dist/modes/interactive/interactive-render-chat.d.ts.map +1 -0
  1217. package/dist/modes/interactive/interactive-render-chat.js +170 -0
  1218. package/dist/modes/interactive/interactive-render-chat.js.map +1 -0
  1219. package/dist/modes/interactive/interactive-resource-disclosure.d.ts +2 -0
  1220. package/dist/modes/interactive/interactive-resource-disclosure.d.ts.map +1 -0
  1221. package/dist/modes/interactive/interactive-resource-disclosure.js +101 -0
  1222. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -0
  1223. package/dist/modes/interactive/interactive-resource-paths.d.ts +2 -0
  1224. package/dist/modes/interactive/interactive-resource-paths.d.ts.map +1 -0
  1225. package/dist/modes/interactive/interactive-resource-paths.js +228 -0
  1226. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -0
  1227. package/dist/modes/interactive/interactive-resource-rendering.d.ts +2 -0
  1228. package/dist/modes/interactive/interactive-resource-rendering.d.ts.map +1 -0
  1229. package/dist/modes/interactive/interactive-resource-rendering.js +181 -0
  1230. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -0
  1231. package/dist/modes/interactive/interactive-selectors.d.ts +2 -0
  1232. package/dist/modes/interactive/interactive-selectors.d.ts.map +1 -0
  1233. package/dist/modes/interactive/interactive-selectors.js +198 -0
  1234. package/dist/modes/interactive/interactive-selectors.js.map +1 -0
  1235. package/dist/modes/interactive/interactive-session-routing.d.ts +2 -0
  1236. package/dist/modes/interactive/interactive-session-routing.d.ts.map +1 -0
  1237. package/dist/modes/interactive/interactive-session-routing.js +232 -0
  1238. package/dist/modes/interactive/interactive-session-routing.js.map +1 -0
  1239. package/dist/modes/interactive/interactive-session-runtime.d.ts +2 -0
  1240. package/dist/modes/interactive/interactive-session-runtime.d.ts.map +1 -0
  1241. package/dist/modes/interactive/interactive-session-runtime.js +131 -0
  1242. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -0
  1243. package/dist/modes/interactive/interactive-slash-commands.d.ts +2 -0
  1244. package/dist/modes/interactive/interactive-slash-commands.d.ts.map +1 -0
  1245. package/dist/modes/interactive/interactive-slash-commands.js +338 -0
  1246. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -0
  1247. package/dist/modes/interactive/interactive-startup.d.ts +2 -0
  1248. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -0
  1249. package/dist/modes/interactive/interactive-startup.js +348 -0
  1250. package/dist/modes/interactive/interactive-startup.js.map +1 -0
  1251. package/dist/modes/interactive/theme/color-utils.d.ts +20 -0
  1252. package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -0
  1253. package/dist/modes/interactive/theme/color-utils.js +204 -0
  1254. package/dist/modes/interactive/theme/color-utils.js.map +1 -0
  1255. package/dist/modes/interactive/theme/export-colors.d.ts +19 -0
  1256. package/dist/modes/interactive/theme/export-colors.d.ts.map +1 -0
  1257. package/dist/modes/interactive/theme/export-colors.js +69 -0
  1258. package/dist/modes/interactive/theme/export-colors.js.map +1 -0
  1259. package/dist/modes/interactive/theme/global-theme.d.ts +12 -0
  1260. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -0
  1261. package/dist/modes/interactive/theme/global-theme.js +150 -0
  1262. package/dist/modes/interactive/theme/global-theme.js.map +1 -0
  1263. package/dist/modes/interactive/theme/terminal-detection.d.ts +30 -0
  1264. package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -0
  1265. package/dist/modes/interactive/theme/terminal-detection.js +89 -0
  1266. package/dist/modes/interactive/theme/terminal-detection.js.map +1 -0
  1267. package/dist/modes/interactive/theme/theme-class.d.ts +30 -0
  1268. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -0
  1269. package/dist/modes/interactive/theme/theme-class.js +83 -0
  1270. package/dist/modes/interactive/theme/theme-class.js.map +1 -0
  1271. package/dist/modes/interactive/theme/theme-loading.d.ts +17 -0
  1272. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -0
  1273. package/dist/modes/interactive/theme/theme-loading.js +155 -0
  1274. package/dist/modes/interactive/theme/theme-loading.js.map +1 -0
  1275. package/dist/modes/interactive/theme/theme-parse.d.ts +5 -0
  1276. package/dist/modes/interactive/theme/theme-parse.d.ts.map +1 -0
  1277. package/dist/modes/interactive/theme/theme-parse.js +52 -0
  1278. package/dist/modes/interactive/theme/theme-parse.js.map +1 -0
  1279. package/dist/modes/interactive/theme/theme-schema.d.ts +255 -0
  1280. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  1281. package/dist/modes/interactive/theme/theme-schema.js +78 -0
  1282. package/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  1283. package/dist/modes/interactive/theme/theme.d.ts +6 -108
  1284. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1285. package/dist/modes/interactive/theme/theme.js +6 -1065
  1286. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1287. package/dist/modes/interactive/theme/tui-theme.d.ts +15 -0
  1288. package/dist/modes/interactive/theme/tui-theme.d.ts.map +1 -0
  1289. package/dist/modes/interactive/theme/tui-theme.js +199 -0
  1290. package/dist/modes/interactive/theme/tui-theme.js.map +1 -0
  1291. package/dist/modes/rpc/rpc-client.d.ts +1 -61
  1292. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1293. package/dist/modes/rpc/rpc-client.js +1 -72
  1294. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1295. package/dist/modes/rpc/rpc-command-handler.d.ts +14 -0
  1296. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -0
  1297. package/dist/modes/rpc/rpc-command-handler.js +226 -0
  1298. package/dist/modes/rpc/rpc-command-handler.js.map +1 -0
  1299. package/dist/modes/rpc/rpc-extension-ui.d.ts +15 -0
  1300. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -0
  1301. package/dist/modes/rpc/rpc-extension-ui.js +196 -0
  1302. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -0
  1303. package/dist/modes/rpc/rpc-input.d.ts +12 -0
  1304. package/dist/modes/rpc/rpc-input.d.ts.map +1 -0
  1305. package/dist/modes/rpc/rpc-input.js +54 -0
  1306. package/dist/modes/rpc/rpc-input.js.map +1 -0
  1307. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1308. package/dist/modes/rpc/rpc-mode.js +43 -607
  1309. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1310. package/dist/modes/rpc/rpc-responses.d.ts +8 -0
  1311. package/dist/modes/rpc/rpc-responses.d.ts.map +1 -0
  1312. package/dist/modes/rpc/rpc-responses.js +27 -0
  1313. package/dist/modes/rpc/rpc-responses.js.map +1 -0
  1314. package/dist/modes/rpc/rpc-session-binding.d.ts +25 -0
  1315. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -0
  1316. package/dist/modes/rpc/rpc-session-binding.js +70 -0
  1317. package/dist/modes/rpc/rpc-session-binding.js.map +1 -0
  1318. package/dist/package-manager-cli-parser.d.ts +28 -0
  1319. package/dist/package-manager-cli-parser.d.ts.map +1 -0
  1320. package/dist/package-manager-cli-parser.js +269 -0
  1321. package/dist/package-manager-cli-parser.js.map +1 -0
  1322. package/dist/package-manager-cli.d.ts +0 -1
  1323. package/dist/package-manager-cli.d.ts.map +1 -1
  1324. package/dist/package-manager-cli.js +2 -267
  1325. package/dist/package-manager-cli.js.map +1 -1
  1326. package/dist/utils/git.d.ts.map +1 -1
  1327. package/dist/utils/git.js +10 -0
  1328. package/dist/utils/git.js.map +1 -1
  1329. package/dist/utils/version-check.d.ts +1 -0
  1330. package/dist/utils/version-check.d.ts.map +1 -1
  1331. package/dist/utils/version-check.js +17 -0
  1332. package/dist/utils/version-check.js.map +1 -1
  1333. package/docs/development.md +4 -0
  1334. package/docs/workflows.md +8 -6
  1335. package/examples/extensions/custom-provider-anthropic/index.ts +1 -106
  1336. package/examples/extensions/gondolin/index.ts +0 -23
  1337. package/examples/extensions/overlay-qa-animation-components.ts +255 -0
  1338. package/examples/extensions/overlay-qa-focus-components.ts +222 -0
  1339. package/examples/extensions/overlay-qa-position-components.ts +433 -0
  1340. package/examples/extensions/overlay-qa-shared.ts +37 -0
  1341. package/examples/extensions/overlay-qa-streaming-input-components.ts +205 -0
  1342. package/examples/extensions/overlay-qa-tests.ts +17 -1156
  1343. package/examples/extensions/overlay-qa-toggle-passive-components.ts +169 -0
  1344. package/examples/extensions/space-invaders.ts +0 -60
  1345. package/examples/extensions/subagent/display.ts +148 -0
  1346. package/examples/extensions/subagent/index.ts +11 -858
  1347. package/examples/extensions/subagent/render.ts +383 -0
  1348. package/examples/extensions/subagent/runner.ts +252 -0
  1349. package/examples/extensions/subagent/schemas.ts +59 -0
  1350. package/examples/extensions/subagent/types.ts +36 -0
  1351. package/examples/extensions/tic-tac-toe-instructions.ts +65 -0
  1352. package/examples/extensions/tic-tac-toe-rendering.ts +414 -0
  1353. package/examples/extensions/tic-tac-toe-state.ts +158 -0
  1354. package/examples/extensions/tic-tac-toe.ts +92 -754
  1355. package/examples/rpc-extension-ui-components.ts +189 -0
  1356. package/examples/rpc-extension-ui.ts +2 -179
  1357. package/package.json +4 -4
@@ -0,0 +1,98 @@
1
+ import { StringEnum } from "@earendil-works/pi-ai";
2
+ import { Type } from "typebox";
3
+ export const CONTEXT_DELETE_TOOL_NAME = "context_delete";
4
+ export const CONTEXT_GREP_DELETE_TOOL_NAME = "context_grep_delete";
5
+ export const CONTEXT_SEARCH_TRANSCRIPT_TOOL_NAME = "context_search_transcript";
6
+ export const CONTEXT_READ_ENTRY_TOOL_NAME = "context_read_entry";
7
+ export const CONTEXT_COMPACTION_BUDGET_TOOL_NAME = "context_compaction_budget";
8
+ export const CONTEXT_GREP_DELETE_DEFAULT_MAX_MATCHES = 50;
9
+ export const CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS = 512;
10
+ export const CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS = 250_000;
11
+ export const CONTEXT_READ_ENTRY_DEFAULT_MAX_CHARS = 4000;
12
+ export const CONTEXT_READ_ENTRY_MAX_CHARS = 12_000;
13
+ export const CONTEXT_SEARCH_DEFAULT_MAX_MATCHES = 20;
14
+ export const CONTEXT_SEARCH_MAX_MATCHES = 100;
15
+ export const CONTEXT_SEARCH_DEFAULT_CONTEXT_CHARS = 160;
16
+ export const CONTEXT_SEARCH_MAX_CONTEXT_CHARS = 500;
17
+ export const ContextDeleteToolParameters = Type.Object({
18
+ deletions: Type.Array(Type.Object({
19
+ kind: StringEnum(["entry", "content_block"], {
20
+ description: "Delete an entire transcript entry or a single content block within one entry.",
21
+ }),
22
+ entryId: Type.String({ minLength: 1, description: "Stable transcript entry id to delete from." }),
23
+ blockIndex: Type.Optional(Type.Integer({
24
+ minimum: 0,
25
+ description: "Required when kind is content_block; omit when kind is entry.",
26
+ })),
27
+ }, { additionalProperties: false }), {
28
+ description: "ID-only deletion targets. Include only kind, entryId, and blockIndex when needed; do not include transcript text, block contents, summaries, or replacement content. Invalid targets are rejected by the tool with correction guidance.",
29
+ }),
30
+ }, { additionalProperties: false });
31
+ export const ContextGrepDeleteToolParameters = Type.Object({
32
+ pattern: Type.String({ minLength: 1, description: "Literal text or regular expression to match in transcript text." }),
33
+ regex: Type.Optional(Type.Boolean({ description: "Treat pattern as a JavaScript regular expression. Defaults to false." })),
34
+ caseSensitive: Type.Optional(Type.Boolean({ description: "Use case-sensitive matching. Defaults to false." })),
35
+ target: Type.Optional(StringEnum(["entry", "content_block"], {
36
+ description: "Delete whole matching entries or matching content blocks. Defaults to entry.",
37
+ })),
38
+ maxMatches: Type.Optional(Type.Integer({
39
+ minimum: 1,
40
+ maximum: 200,
41
+ description: "Per-call safety cap. If more not-yet-deleted candidate targets are found in this tool call, no deletions are applied. Defaults to 50. This is not a cumulative compaction cap; call the tool again for additional batches.",
42
+ })),
43
+ expectedMatchCount: Type.Optional(Type.Integer({
44
+ minimum: 0,
45
+ description: "Optional safety check. If the match count differs, no deletions are applied.",
46
+ })),
47
+ }, { additionalProperties: false });
48
+ export const ContextSearchTranscriptToolParameters = Type.Object({
49
+ pattern: Type.String({ minLength: 1, description: "Literal text or regular expression to search for." }),
50
+ regex: Type.Optional(Type.Boolean({ description: "Treat pattern as a JavaScript regular expression. Defaults to false." })),
51
+ caseSensitive: Type.Optional(Type.Boolean({ description: "Use case-sensitive matching. Defaults to false." })),
52
+ target: Type.Optional(StringEnum(["entry", "content_block"], {
53
+ description: "Search whole entry text or individual content-block text. Defaults to entry.",
54
+ })),
55
+ maxMatches: Type.Optional(Type.Integer({ minimum: 1, maximum: CONTEXT_SEARCH_MAX_MATCHES, description: "Maximum matches to return. Defaults to 20." })),
56
+ contextChars: Type.Optional(Type.Integer({
57
+ minimum: 0,
58
+ maximum: CONTEXT_SEARCH_MAX_CONTEXT_CHARS,
59
+ description: "Characters of context to include before and after each match. Defaults to 160.",
60
+ })),
61
+ }, { additionalProperties: false });
62
+ export const ContextReadEntryToolParameters = Type.Object({
63
+ entryId: Type.String({ minLength: 1, description: "Stable transcript entry id to read." }),
64
+ blockIndex: Type.Optional(Type.Integer({ minimum: 0, description: "Optional content block index to read instead of the whole entry text." })),
65
+ offset: Type.Optional(Type.Integer({ minimum: 0, description: "Character offset to begin reading. Defaults to 0." })),
66
+ maxChars: Type.Optional(Type.Integer({
67
+ minimum: 1,
68
+ maximum: CONTEXT_READ_ENTRY_MAX_CHARS,
69
+ description: "Maximum characters to return. Defaults to 4000; keep reads small to avoid overflowing context.",
70
+ })),
71
+ }, { additionalProperties: false });
72
+ export const ContextCompactionBudgetToolParameters = Type.Object({}, { additionalProperties: false });
73
+ export const CONTEXT_DELETE_TOOL = {
74
+ name: CONTEXT_DELETE_TOOL_NAME,
75
+ description: "Record context compaction deletion targets directly against the transcript.",
76
+ parameters: ContextDeleteToolParameters,
77
+ };
78
+ export const CONTEXT_GREP_DELETE_TOOL = {
79
+ name: CONTEXT_GREP_DELETE_TOOL_NAME,
80
+ description: "Bulk-delete transcript entries or content blocks matching a guarded grep/regex query.",
81
+ parameters: ContextGrepDeleteToolParameters,
82
+ };
83
+ export const CONTEXT_SEARCH_TRANSCRIPT_TOOL = {
84
+ name: CONTEXT_SEARCH_TRANSCRIPT_TOOL_NAME,
85
+ description: "Search the full transcript working copy and return small snippets without mutating deletion state.",
86
+ parameters: ContextSearchTranscriptToolParameters,
87
+ };
88
+ export const CONTEXT_READ_ENTRY_TOOL = {
89
+ name: CONTEXT_READ_ENTRY_TOOL_NAME,
90
+ description: "Read a small slice of one transcript entry or content block from the full transcript working copy.",
91
+ parameters: ContextReadEntryToolParameters,
92
+ };
93
+ export const CONTEXT_COMPACTION_BUDGET_TOOL = {
94
+ name: CONTEXT_COMPACTION_BUDGET_TOOL_NAME,
95
+ description: "Report current context-window fullness and reduction progress for the selected deletion targets without mutating deletion state.",
96
+ parameters: ContextCompactionBudgetToolParameters,
97
+ };
98
+ //# sourceMappingURL=context-deletion-tool-definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-deletion-tool-definitions.js","sourceRoot":"","sources":["../../../src/core/compaction/context-deletion-tool-definitions.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport { StringEnum } from \"@earendil-works/pi-ai\";\nimport { Type } from \"typebox\";\nimport type { ContextCompactionStats, ContextDeletionTarget } from \"../session-manager.ts\";\nimport type { ContextDeletionRequest, ValidatedContextDeletionResult } from \"./context-compaction-types.ts\";\n\nexport const CONTEXT_DELETE_TOOL_NAME = \"context_delete\";\nexport const CONTEXT_GREP_DELETE_TOOL_NAME = \"context_grep_delete\";\nexport const CONTEXT_SEARCH_TRANSCRIPT_TOOL_NAME = \"context_search_transcript\";\nexport const CONTEXT_READ_ENTRY_TOOL_NAME = \"context_read_entry\";\nexport const CONTEXT_COMPACTION_BUDGET_TOOL_NAME = \"context_compaction_budget\";\nexport const CONTEXT_GREP_DELETE_DEFAULT_MAX_MATCHES = 50;\nexport const CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS = 512;\nexport const CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS = 250_000;\nexport const CONTEXT_READ_ENTRY_DEFAULT_MAX_CHARS = 4000;\nexport const CONTEXT_READ_ENTRY_MAX_CHARS = 12_000;\nexport const CONTEXT_SEARCH_DEFAULT_MAX_MATCHES = 20;\nexport const CONTEXT_SEARCH_MAX_MATCHES = 100;\nexport const CONTEXT_SEARCH_DEFAULT_CONTEXT_CHARS = 160;\nexport const CONTEXT_SEARCH_MAX_CONTEXT_CHARS = 500;\n\n\nexport const ContextDeleteToolParameters = Type.Object(\n\t{\n\t\tdeletions: Type.Array(\n\t\t\tType.Object(\n\t\t\t\t{\n\t\t\t\t\tkind: StringEnum([\"entry\", \"content_block\"] as const, {\n\t\t\t\t\t\tdescription: \"Delete an entire transcript entry or a single content block within one entry.\",\n\t\t\t\t\t}),\n\t\t\t\t\tentryId: Type.String({ minLength: 1, description: \"Stable transcript entry id to delete from.\" }),\n\t\t\t\t\tblockIndex: Type.Optional(\n\t\t\t\t\t\tType.Integer({\n\t\t\t\t\t\t\tminimum: 0,\n\t\t\t\t\t\t\tdescription: \"Required when kind is content_block; omit when kind is entry.\",\n\t\t\t\t\t\t}),\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{ additionalProperties: false },\n\t\t\t),\n\t\t\t{\n\t\t\t\tdescription:\n\t\t\t\t\t\"ID-only deletion targets. Include only kind, entryId, and blockIndex when needed; do not include transcript text, block contents, summaries, or replacement content. Invalid targets are rejected by the tool with correction guidance.\",\n\t\t\t},\n\t\t),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const ContextGrepDeleteToolParameters = Type.Object(\n\t{\n\t\tpattern: Type.String({ minLength: 1, description: \"Literal text or regular expression to match in transcript text.\" }),\n\t\tregex: Type.Optional(Type.Boolean({ description: \"Treat pattern as a JavaScript regular expression. Defaults to false.\" })),\n\t\tcaseSensitive: Type.Optional(Type.Boolean({ description: \"Use case-sensitive matching. Defaults to false.\" })),\n\t\ttarget: Type.Optional(\n\t\t\tStringEnum([\"entry\", \"content_block\"] as const, {\n\t\t\t\tdescription: \"Delete whole matching entries or matching content blocks. Defaults to entry.\",\n\t\t\t}),\n\t\t),\n\t\tmaxMatches: Type.Optional(\n\t\t\tType.Integer({\n\t\t\t\tminimum: 1,\n\t\t\t\tmaximum: 200,\n\t\t\t\tdescription:\n\t\t\t\t\t\"Per-call safety cap. If more not-yet-deleted candidate targets are found in this tool call, no deletions are applied. Defaults to 50. This is not a cumulative compaction cap; call the tool again for additional batches.\",\n\t\t\t}),\n\t\t),\n\t\texpectedMatchCount: Type.Optional(\n\t\t\tType.Integer({\n\t\t\t\tminimum: 0,\n\t\t\t\tdescription: \"Optional safety check. If the match count differs, no deletions are applied.\",\n\t\t\t}),\n\t\t),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const ContextSearchTranscriptToolParameters = Type.Object(\n\t{\n\t\tpattern: Type.String({ minLength: 1, description: \"Literal text or regular expression to search for.\" }),\n\t\tregex: Type.Optional(Type.Boolean({ description: \"Treat pattern as a JavaScript regular expression. Defaults to false.\" })),\n\t\tcaseSensitive: Type.Optional(Type.Boolean({ description: \"Use case-sensitive matching. Defaults to false.\" })),\n\t\ttarget: Type.Optional(\n\t\t\tStringEnum([\"entry\", \"content_block\"] as const, {\n\t\t\t\tdescription: \"Search whole entry text or individual content-block text. Defaults to entry.\",\n\t\t\t}),\n\t\t),\n\t\tmaxMatches: Type.Optional(\n\t\t\tType.Integer({ minimum: 1, maximum: CONTEXT_SEARCH_MAX_MATCHES, description: \"Maximum matches to return. Defaults to 20.\" }),\n\t\t),\n\t\tcontextChars: Type.Optional(\n\t\t\tType.Integer({\n\t\t\t\tminimum: 0,\n\t\t\t\tmaximum: CONTEXT_SEARCH_MAX_CONTEXT_CHARS,\n\t\t\t\tdescription: \"Characters of context to include before and after each match. Defaults to 160.\",\n\t\t\t}),\n\t\t),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const ContextReadEntryToolParameters = Type.Object(\n\t{\n\t\tentryId: Type.String({ minLength: 1, description: \"Stable transcript entry id to read.\" }),\n\t\tblockIndex: Type.Optional(\n\t\t\tType.Integer({ minimum: 0, description: \"Optional content block index to read instead of the whole entry text.\" }),\n\t\t),\n\t\toffset: Type.Optional(Type.Integer({ minimum: 0, description: \"Character offset to begin reading. Defaults to 0.\" })),\n\t\tmaxChars: Type.Optional(\n\t\t\tType.Integer({\n\t\t\t\tminimum: 1,\n\t\t\t\tmaximum: CONTEXT_READ_ENTRY_MAX_CHARS,\n\t\t\t\tdescription: \"Maximum characters to return. Defaults to 4000; keep reads small to avoid overflowing context.\",\n\t\t\t}),\n\t\t),\n\t},\n\t{ additionalProperties: false },\n);\n\nexport const ContextCompactionBudgetToolParameters = Type.Object({}, { additionalProperties: false });\n\nexport const CONTEXT_DELETE_TOOL = {\n\tname: CONTEXT_DELETE_TOOL_NAME,\n\tdescription: \"Record context compaction deletion targets directly against the transcript.\",\n\tparameters: ContextDeleteToolParameters,\n} as const;\n\nexport const CONTEXT_GREP_DELETE_TOOL = {\n\tname: CONTEXT_GREP_DELETE_TOOL_NAME,\n\tdescription: \"Bulk-delete transcript entries or content blocks matching a guarded grep/regex query.\",\n\tparameters: ContextGrepDeleteToolParameters,\n} as const;\n\nexport const CONTEXT_SEARCH_TRANSCRIPT_TOOL = {\n\tname: CONTEXT_SEARCH_TRANSCRIPT_TOOL_NAME,\n\tdescription: \"Search the full transcript working copy and return small snippets without mutating deletion state.\",\n\tparameters: ContextSearchTranscriptToolParameters,\n} as const;\n\nexport const CONTEXT_READ_ENTRY_TOOL = {\n\tname: CONTEXT_READ_ENTRY_TOOL_NAME,\n\tdescription: \"Read a small slice of one transcript entry or content block from the full transcript working copy.\",\n\tparameters: ContextReadEntryToolParameters,\n} as const;\n\nexport const CONTEXT_COMPACTION_BUDGET_TOOL = {\n\tname: CONTEXT_COMPACTION_BUDGET_TOOL_NAME,\n\tdescription:\n\t\t\"Report current context-window fullness and reduction progress for the selected deletion targets without mutating deletion state.\",\n\tparameters: ContextCompactionBudgetToolParameters,\n} as const;\n\nexport interface ContextDeletionToolDetails {\n\tdeletions: ContextDeletionRequest[\"deletions\"];\n\tdeletedTargets: ContextDeletionTarget[];\n\tstats: ContextCompactionStats;\n\tcallCount: number;\n\terror?: string;\n}\n\nexport interface ContextGrepDeletionMatch {\n\tentryId: string;\n\ttarget: \"entry\" | \"content_block\";\n\tblockIndex?: number;\n\ttext: string;\n}\n\nexport interface ContextGrepDeletionSkipped {\n\tentryId?: string;\n\ttarget?: \"entry\" | \"content_block\";\n\tblockIndex?: number;\n\treason:\n\t\t| \"protected_entry\"\n\t\t| \"protected_block\"\n\t\t| \"assistant_thinking_entry\"\n\t\t| \"assistant_thinking_block\"\n\t\t| \"already_deleted\"\n\t\t| \"max_matches_exceeded\"\n\t\t| \"expected_match_count_mismatch\";\n\ttext?: string;\n}\n\nexport interface ContextGrepDeletionToolDetails {\n\tpattern: string;\n\tregex: boolean;\n\tcaseSensitive: boolean;\n\ttarget: \"entry\" | \"content_block\";\n\tmatches: ContextGrepDeletionMatch[];\n\tskipped: ContextGrepDeletionSkipped[];\n\tdeletedTargets: ContextDeletionTarget[];\n\tstats: ContextCompactionStats;\n\tcallCount: number;\n\terror?: string;\n}\n\nexport interface ContextTranscriptSearchMatch {\n\tentryId: string;\n\ttarget: \"entry\" | \"content_block\";\n\tblockIndex?: number;\n\tmatchIndex: number;\n\tsnippet: string;\n\tprotected: boolean;\n}\n\nexport interface ContextTranscriptSearchToolDetails {\n\tpattern: string;\n\tregex: boolean;\n\tcaseSensitive: boolean;\n\ttarget: \"entry\" | \"content_block\";\n\tmatches: ContextTranscriptSearchMatch[];\n\ttruncated: boolean;\n\tcallCount: number;\n\terror?: string;\n}\n\nexport interface ContextReadEntryToolDetails {\n\tentryId: string;\n\tblockIndex?: number;\n\toffset: number;\n\tmaxChars: number;\n\ttotalChars: number;\n\ttext: string;\n\ttruncatedBefore: boolean;\n\ttruncatedAfter: boolean;\n\tcallCount: number;\n\terror?: string;\n}\n\nexport interface ContextCompactionBudgetToolDetails {\n\tcontextWindow?: number;\n\tcompression_ratio: number;\n\ttokensBefore: number;\n\tcurrentTokensAfter: number;\n\tdeletedTokens: number;\n\tcurrentReductionPercent: number;\n\ttargetReductionPercent: number;\n\ttargetTokensAfter: number;\n\ttokensToDeleteForTarget: number;\n\tcontextWindowBeforePercent?: number;\n\tcontextWindowAfterPercent?: number;\n\tcallCount: number;\n}\n\nexport interface ContextDeletionToolController {\n\ttool: AgentTool<typeof ContextDeleteToolParameters, ContextDeletionToolDetails>;\n\tgrepTool: AgentTool<typeof ContextGrepDeleteToolParameters, ContextGrepDeletionToolDetails>;\n\tsearchTool: AgentTool<typeof ContextSearchTranscriptToolParameters, ContextTranscriptSearchToolDetails>;\n\treadEntryTool: AgentTool<typeof ContextReadEntryToolParameters, ContextReadEntryToolDetails>;\n\tbudgetTool: AgentTool<typeof ContextCompactionBudgetToolParameters, ContextCompactionBudgetToolDetails>;\n\ttools: AgentTool[];\n\tgetDeletionRequest(): ContextDeletionRequest;\n\tgetValidatedResult(): ValidatedContextDeletionResult | undefined;\n\tgetLastError(): string | undefined;\n\tgetCallCount(): number;\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { ContextDeletionTarget } from "../session-manager.ts";
2
+ import type { CompactableTranscript } from "./context-compaction-types.ts";
3
+ import type { ContextGrepDeletionMatch, ContextGrepDeletionSkipped } from "./context-deletion-tool-definitions.ts";
4
+ export declare function escapeRegExpLiteral(text: string): string;
5
+ export declare function assertSafeRegexPattern(pattern: string): void;
6
+ export declare function createGrepMatcher(pattern: string, regex: boolean, caseSensitive: boolean): RegExp;
7
+ export declare function assertSafeRegexScan(scanChars: number): void;
8
+ export declare function clampInteger(value: number | undefined, defaultValue: number, minimum: number, maximum: number): number;
9
+ export declare function textSlice(text: string, offset: number, maxChars: number): string;
10
+ export declare function findMatchIndex(matcher: RegExp, text: string): number;
11
+ export declare function snippetForMatch(text: string, matchIndex: number, contextChars: number): string;
12
+ export declare function currentTargetDeleted(targets: readonly ContextDeletionTarget[], target: ContextDeletionTarget): boolean;
13
+ export declare function addGrepCandidate(candidates: ContextDeletionTarget[], matches: ContextGrepDeletionMatch[], seenTargets: Set<string>, candidate: ContextDeletionTarget, match: ContextGrepDeletionMatch): void;
14
+ export declare function pushProtectedGrepSkip(skipped: ContextGrepDeletionSkipped[], match: ContextGrepDeletionMatch): void;
15
+ export declare function filterProtectedGrepCandidates(candidates: readonly ContextDeletionTarget[], matches: readonly ContextGrepDeletionMatch[], currentTargets: readonly ContextDeletionTarget[], transcript: CompactableTranscript, skipped: ContextGrepDeletionSkipped[]): {
16
+ candidates: ContextDeletionTarget[];
17
+ matches: ContextGrepDeletionMatch[];
18
+ };
19
+ //# sourceMappingURL=context-deletion-tool-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-deletion-tool-helpers.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/context-deletion-tool-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,KAAK,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAiBnH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AACD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAkB5D;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,GAAG,MAAM,CAUjG;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtH;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAM9F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EAAE,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAKtH;AAED,wBAAgB,gBAAgB,CAC/B,UAAU,EAAE,qBAAqB,EAAE,EACnC,OAAO,EAAE,wBAAwB,EAAE,EACnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,SAAS,EAAE,qBAAqB,EAChC,KAAK,EAAE,wBAAwB,GAC7B,IAAI,CAMN;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,wBAAwB,GAAG,IAAI,CAQlH;AAED,wBAAgB,6BAA6B,CAC5C,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,OAAO,EAAE,SAAS,wBAAwB,EAAE,EAC5C,cAAc,EAAE,SAAS,qBAAqB,EAAE,EAChD,UAAU,EAAE,qBAAqB,EACjC,OAAO,EAAE,0BAA0B,EAAE,GACnC;IAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC;IAAC,OAAO,EAAE,wBAAwB,EAAE,CAAA;CAAE,CAkD9E","sourcesContent":["import type { ContextDeletionTarget } from \"../session-manager.ts\";\nimport type { CompactableTranscript } from \"./context-compaction-types.ts\";\nimport type { ContextGrepDeletionMatch, ContextGrepDeletionSkipped } from \"./context-deletion-tool-definitions.ts\";\nimport {\n\tCONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS,\n\tCONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS,\n} from \"./context-deletion-tool-definitions.ts\";\nimport { formatErrorMessage } from \"./context-compaction-metrics.ts\";\nimport { validateContextDeletionRequest } from \"./context-deletion-application.ts\";\nimport {\n\tdeletionRequestFromTargets,\n\tfindLatestAssistantThinkingDeletionViolation,\n\tgetDeletedContentBlocks,\n\tgetDeletedEntryIds,\n\tisProtectedContextDeletionErrorMessage,\n\tmergeContextDeletionTargets,\n\ttargetKey,\n} from \"./context-deletion-targets.ts\";\n\nexport function escapeRegExpLiteral(text: string): string {\n\treturn text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nexport function assertSafeRegexPattern(pattern: string): void {\n\tif (pattern.length > CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS) {\n\t\tthrow new Error(\n\t\t\t`Regex pattern is too long (${pattern.length} characters); maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS}`,\n\t\t);\n\t}\n\n\t// Heuristic ReDoS guard for common catastrophic-backtracking shapes. JavaScript's RegExp engine\n\t// does not expose a timeout, so reject nested quantified groups and backreferences instead of\n\t// relying only on transcript scan-size caps.\n\tconst hasNestedQuantifiedGroup = /\\((?:[^()\\\\]|\\\\.)*[+*](?:[^()\\\\]|\\\\.)*\\)\\s*(?:[+*]|\\{\\d)/u.test(pattern);\n\tconst hasQuantifiedAlternation = /\\((?:[^()\\\\]|\\\\.)*\\|(?:[^()\\\\]|\\\\.)*\\)\\s*(?:[+*]|\\{\\d)/u.test(pattern);\n\tconst hasBackreference = /\\\\[1-9]/u.test(pattern);\n\tif (hasNestedQuantifiedGroup || hasQuantifiedAlternation || hasBackreference) {\n\t\tthrow new Error(\n\t\t\t\"Regex pattern is not allowed because it may cause excessive backtracking; use a literal pattern or exact deletion targets instead.\",\n\t\t);\n\t}\n}\n\nexport function createGrepMatcher(pattern: string, regex: boolean, caseSensitive: boolean): RegExp {\n\tif (regex) {\n\t\tassertSafeRegexPattern(pattern);\n\t}\n\n\ttry {\n\t\treturn new RegExp(regex ? pattern : escapeRegExpLiteral(pattern), caseSensitive ? \"u\" : \"iu\");\n\t} catch (error) {\n\t\tthrow new Error(`Invalid grep ${regex ? \"regex\" : \"pattern\"}: ${formatErrorMessage(error)}`);\n\t}\n}\n\nexport function assertSafeRegexScan(scanChars: number): void {\n\tif (scanChars <= CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS) return;\n\tthrow new Error(\n\t\t`Regex grep would scan ${scanChars} characters; maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS}. Use a literal pattern or exact deletion targets instead.`,\n\t);\n}\n\nexport function clampInteger(value: number | undefined, defaultValue: number, minimum: number, maximum: number): number {\n\tif (value === undefined) return defaultValue;\n\treturn Math.max(minimum, Math.min(maximum, value));\n}\n\nexport function textSlice(text: string, offset: number, maxChars: number): string {\n\treturn text.slice(offset, Math.min(text.length, offset + maxChars));\n}\n\nexport function findMatchIndex(matcher: RegExp, text: string): number {\n\tconst match = matcher.exec(text);\n\tmatcher.lastIndex = 0;\n\treturn match?.index ?? -1;\n}\n\nexport function snippetForMatch(text: string, matchIndex: number, contextChars: number): string {\n\tconst start = Math.max(0, matchIndex - contextChars);\n\tconst end = Math.min(text.length, matchIndex + contextChars);\n\tconst prefix = start > 0 ? \"…\" : \"\";\n\tconst suffix = end < text.length ? \"…\" : \"\";\n\treturn `${prefix}${text.slice(start, end)}${suffix}`;\n}\n\nexport function currentTargetDeleted(targets: readonly ContextDeletionTarget[], target: ContextDeletionTarget): boolean {\n\tconst deletedEntryIds = getDeletedEntryIds(targets);\n\tif (deletedEntryIds.has(target.entryId)) return true;\n\tif (target.kind === \"entry\") return false;\n\treturn getDeletedContentBlocks(targets).get(target.entryId)?.has(target.blockIndex) === true;\n}\n\nexport function addGrepCandidate(\n\tcandidates: ContextDeletionTarget[],\n\tmatches: ContextGrepDeletionMatch[],\n\tseenTargets: Set<string>,\n\tcandidate: ContextDeletionTarget,\n\tmatch: ContextGrepDeletionMatch,\n): void {\n\tconst key = targetKey(candidate);\n\tif (seenTargets.has(key)) return;\n\tseenTargets.add(key);\n\tcandidates.push(candidate);\n\tmatches.push(match);\n}\n\nexport function pushProtectedGrepSkip(skipped: ContextGrepDeletionSkipped[], match: ContextGrepDeletionMatch): void {\n\tskipped.push({\n\t\tentryId: match.entryId,\n\t\ttarget: match.target,\n\t\t...(match.blockIndex === undefined ? {} : { blockIndex: match.blockIndex }),\n\t\treason: match.target === \"content_block\" ? \"protected_block\" : \"protected_entry\",\n\t\ttext: match.text,\n\t});\n}\n\nexport function filterProtectedGrepCandidates(\n\tcandidates: readonly ContextDeletionTarget[],\n\tmatches: readonly ContextGrepDeletionMatch[],\n\tcurrentTargets: readonly ContextDeletionTarget[],\n\ttranscript: CompactableTranscript,\n\tskipped: ContextGrepDeletionSkipped[],\n): { candidates: ContextDeletionTarget[]; matches: ContextGrepDeletionMatch[] } {\n\tconst eligibleCandidates: ContextDeletionTarget[] = [];\n\tconst eligibleMatches: ContextGrepDeletionMatch[] = [];\n\tfor (let index = 0; index < candidates.length; index++) {\n\t\tconst candidate = candidates[index];\n\t\tconst match = matches[index];\n\t\tif (!candidate || !match) continue;\n\t\ttry {\n\t\t\tconst mergedTargets = mergeContextDeletionTargets(currentTargets, [candidate]);\n\t\t\tvalidateContextDeletionRequest(deletionRequestFromTargets(mergedTargets), transcript);\n\t\t\teligibleCandidates.push(candidate);\n\t\t\teligibleMatches.push(match);\n\t\t} catch (error) {\n\t\t\tconst message = formatErrorMessage(error);\n\t\t\tif (isProtectedContextDeletionErrorMessage(message)) {\n\t\t\t\tpushProtectedGrepSkip(skipped, match);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\teligibleCandidates.push(candidate);\n\t\t\teligibleMatches.push(match);\n\t\t}\n\t}\n\n\t// Some latest-assistant thinking violations only become visible after a grep batch also\n\t// deletes newer assistant entries. Classify the newly-unsafe grep candidates as\n\t// protected/skipped before maxMatches, expectedMatchCount, stats, or removals are computed.\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tconst mergedTargets = mergeContextDeletionTargets(currentTargets, eligibleCandidates);\n\t\tconst violation = findLatestAssistantThinkingDeletionViolation(transcript, mergedTargets);\n\t\tif (!violation) continue;\n\t\tconst violationKey = targetKey(violation);\n\t\tlet violationIndex = eligibleCandidates.findIndex((candidate) => targetKey(candidate) === violationKey);\n\t\tif (violationIndex < 0) {\n\t\t\tviolationIndex = eligibleCandidates.findIndex((_candidate, candidateIndex) => {\n\t\t\t\tconst remainingCandidates = eligibleCandidates.filter((_candidateToKeep, index) => index !== candidateIndex);\n\t\t\t\tconst remainingTargets = mergeContextDeletionTargets(currentTargets, remainingCandidates);\n\t\t\t\tconst remainingViolation = findLatestAssistantThinkingDeletionViolation(transcript, remainingTargets);\n\t\t\t\treturn !remainingViolation || targetKey(remainingViolation) !== violationKey;\n\t\t\t});\n\t\t}\n\t\tif (violationIndex < 0) continue;\n\t\tconst [skippedMatch] = eligibleMatches.splice(violationIndex, 1);\n\t\teligibleCandidates.splice(violationIndex, 1);\n\t\tif (skippedMatch) pushProtectedGrepSkip(skipped, skippedMatch);\n\t\tchanged = true;\n\t}\n\n\treturn { candidates: eligibleCandidates, matches: eligibleMatches };\n}\n"]}
@@ -0,0 +1,137 @@
1
+ import { CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS, CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS, } from "./context-deletion-tool-definitions.js";
2
+ import { formatErrorMessage } from "./context-compaction-metrics.js";
3
+ import { validateContextDeletionRequest } from "./context-deletion-application.js";
4
+ import { deletionRequestFromTargets, findLatestAssistantThinkingDeletionViolation, getDeletedContentBlocks, getDeletedEntryIds, isProtectedContextDeletionErrorMessage, mergeContextDeletionTargets, targetKey, } from "./context-deletion-targets.js";
5
+ export function escapeRegExpLiteral(text) {
6
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
7
+ }
8
+ export function assertSafeRegexPattern(pattern) {
9
+ if (pattern.length > CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS) {
10
+ throw new Error(`Regex pattern is too long (${pattern.length} characters); maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS}`);
11
+ }
12
+ // Heuristic ReDoS guard for common catastrophic-backtracking shapes. JavaScript's RegExp engine
13
+ // does not expose a timeout, so reject nested quantified groups and backreferences instead of
14
+ // relying only on transcript scan-size caps.
15
+ const hasNestedQuantifiedGroup = /\((?:[^()\\]|\\.)*[+*](?:[^()\\]|\\.)*\)\s*(?:[+*]|\{\d)/u.test(pattern);
16
+ const hasQuantifiedAlternation = /\((?:[^()\\]|\\.)*\|(?:[^()\\]|\\.)*\)\s*(?:[+*]|\{\d)/u.test(pattern);
17
+ const hasBackreference = /\\[1-9]/u.test(pattern);
18
+ if (hasNestedQuantifiedGroup || hasQuantifiedAlternation || hasBackreference) {
19
+ throw new Error("Regex pattern is not allowed because it may cause excessive backtracking; use a literal pattern or exact deletion targets instead.");
20
+ }
21
+ }
22
+ export function createGrepMatcher(pattern, regex, caseSensitive) {
23
+ if (regex) {
24
+ assertSafeRegexPattern(pattern);
25
+ }
26
+ try {
27
+ return new RegExp(regex ? pattern : escapeRegExpLiteral(pattern), caseSensitive ? "u" : "iu");
28
+ }
29
+ catch (error) {
30
+ throw new Error(`Invalid grep ${regex ? "regex" : "pattern"}: ${formatErrorMessage(error)}`);
31
+ }
32
+ }
33
+ export function assertSafeRegexScan(scanChars) {
34
+ if (scanChars <= CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS)
35
+ return;
36
+ throw new Error(`Regex grep would scan ${scanChars} characters; maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS}. Use a literal pattern or exact deletion targets instead.`);
37
+ }
38
+ export function clampInteger(value, defaultValue, minimum, maximum) {
39
+ if (value === undefined)
40
+ return defaultValue;
41
+ return Math.max(minimum, Math.min(maximum, value));
42
+ }
43
+ export function textSlice(text, offset, maxChars) {
44
+ return text.slice(offset, Math.min(text.length, offset + maxChars));
45
+ }
46
+ export function findMatchIndex(matcher, text) {
47
+ const match = matcher.exec(text);
48
+ matcher.lastIndex = 0;
49
+ return match?.index ?? -1;
50
+ }
51
+ export function snippetForMatch(text, matchIndex, contextChars) {
52
+ const start = Math.max(0, matchIndex - contextChars);
53
+ const end = Math.min(text.length, matchIndex + contextChars);
54
+ const prefix = start > 0 ? "…" : "";
55
+ const suffix = end < text.length ? "…" : "";
56
+ return `${prefix}${text.slice(start, end)}${suffix}`;
57
+ }
58
+ export function currentTargetDeleted(targets, target) {
59
+ const deletedEntryIds = getDeletedEntryIds(targets);
60
+ if (deletedEntryIds.has(target.entryId))
61
+ return true;
62
+ if (target.kind === "entry")
63
+ return false;
64
+ return getDeletedContentBlocks(targets).get(target.entryId)?.has(target.blockIndex) === true;
65
+ }
66
+ export function addGrepCandidate(candidates, matches, seenTargets, candidate, match) {
67
+ const key = targetKey(candidate);
68
+ if (seenTargets.has(key))
69
+ return;
70
+ seenTargets.add(key);
71
+ candidates.push(candidate);
72
+ matches.push(match);
73
+ }
74
+ export function pushProtectedGrepSkip(skipped, match) {
75
+ skipped.push({
76
+ entryId: match.entryId,
77
+ target: match.target,
78
+ ...(match.blockIndex === undefined ? {} : { blockIndex: match.blockIndex }),
79
+ reason: match.target === "content_block" ? "protected_block" : "protected_entry",
80
+ text: match.text,
81
+ });
82
+ }
83
+ export function filterProtectedGrepCandidates(candidates, matches, currentTargets, transcript, skipped) {
84
+ const eligibleCandidates = [];
85
+ const eligibleMatches = [];
86
+ for (let index = 0; index < candidates.length; index++) {
87
+ const candidate = candidates[index];
88
+ const match = matches[index];
89
+ if (!candidate || !match)
90
+ continue;
91
+ try {
92
+ const mergedTargets = mergeContextDeletionTargets(currentTargets, [candidate]);
93
+ validateContextDeletionRequest(deletionRequestFromTargets(mergedTargets), transcript);
94
+ eligibleCandidates.push(candidate);
95
+ eligibleMatches.push(match);
96
+ }
97
+ catch (error) {
98
+ const message = formatErrorMessage(error);
99
+ if (isProtectedContextDeletionErrorMessage(message)) {
100
+ pushProtectedGrepSkip(skipped, match);
101
+ continue;
102
+ }
103
+ eligibleCandidates.push(candidate);
104
+ eligibleMatches.push(match);
105
+ }
106
+ }
107
+ // Some latest-assistant thinking violations only become visible after a grep batch also
108
+ // deletes newer assistant entries. Classify the newly-unsafe grep candidates as
109
+ // protected/skipped before maxMatches, expectedMatchCount, stats, or removals are computed.
110
+ let changed = true;
111
+ while (changed) {
112
+ changed = false;
113
+ const mergedTargets = mergeContextDeletionTargets(currentTargets, eligibleCandidates);
114
+ const violation = findLatestAssistantThinkingDeletionViolation(transcript, mergedTargets);
115
+ if (!violation)
116
+ continue;
117
+ const violationKey = targetKey(violation);
118
+ let violationIndex = eligibleCandidates.findIndex((candidate) => targetKey(candidate) === violationKey);
119
+ if (violationIndex < 0) {
120
+ violationIndex = eligibleCandidates.findIndex((_candidate, candidateIndex) => {
121
+ const remainingCandidates = eligibleCandidates.filter((_candidateToKeep, index) => index !== candidateIndex);
122
+ const remainingTargets = mergeContextDeletionTargets(currentTargets, remainingCandidates);
123
+ const remainingViolation = findLatestAssistantThinkingDeletionViolation(transcript, remainingTargets);
124
+ return !remainingViolation || targetKey(remainingViolation) !== violationKey;
125
+ });
126
+ }
127
+ if (violationIndex < 0)
128
+ continue;
129
+ const [skippedMatch] = eligibleMatches.splice(violationIndex, 1);
130
+ eligibleCandidates.splice(violationIndex, 1);
131
+ if (skippedMatch)
132
+ pushProtectedGrepSkip(skipped, skippedMatch);
133
+ changed = true;
134
+ }
135
+ return { candidates: eligibleCandidates, matches: eligibleMatches };
136
+ }
137
+ //# sourceMappingURL=context-deletion-tool-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-deletion-tool-helpers.js","sourceRoot":"","sources":["../../../src/core/compaction/context-deletion-tool-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ContextDeletionTarget } from \"../session-manager.ts\";\nimport type { CompactableTranscript } from \"./context-compaction-types.ts\";\nimport type { ContextGrepDeletionMatch, ContextGrepDeletionSkipped } from \"./context-deletion-tool-definitions.ts\";\nimport {\n\tCONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS,\n\tCONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS,\n} from \"./context-deletion-tool-definitions.ts\";\nimport { formatErrorMessage } from \"./context-compaction-metrics.ts\";\nimport { validateContextDeletionRequest } from \"./context-deletion-application.ts\";\nimport {\n\tdeletionRequestFromTargets,\n\tfindLatestAssistantThinkingDeletionViolation,\n\tgetDeletedContentBlocks,\n\tgetDeletedEntryIds,\n\tisProtectedContextDeletionErrorMessage,\n\tmergeContextDeletionTargets,\n\ttargetKey,\n} from \"./context-deletion-targets.ts\";\n\nexport function escapeRegExpLiteral(text: string): string {\n\treturn text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\nexport function assertSafeRegexPattern(pattern: string): void {\n\tif (pattern.length > CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS) {\n\t\tthrow new Error(\n\t\t\t`Regex pattern is too long (${pattern.length} characters); maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_PATTERN_CHARS}`,\n\t\t);\n\t}\n\n\t// Heuristic ReDoS guard for common catastrophic-backtracking shapes. JavaScript's RegExp engine\n\t// does not expose a timeout, so reject nested quantified groups and backreferences instead of\n\t// relying only on transcript scan-size caps.\n\tconst hasNestedQuantifiedGroup = /\\((?:[^()\\\\]|\\\\.)*[+*](?:[^()\\\\]|\\\\.)*\\)\\s*(?:[+*]|\\{\\d)/u.test(pattern);\n\tconst hasQuantifiedAlternation = /\\((?:[^()\\\\]|\\\\.)*\\|(?:[^()\\\\]|\\\\.)*\\)\\s*(?:[+*]|\\{\\d)/u.test(pattern);\n\tconst hasBackreference = /\\\\[1-9]/u.test(pattern);\n\tif (hasNestedQuantifiedGroup || hasQuantifiedAlternation || hasBackreference) {\n\t\tthrow new Error(\n\t\t\t\"Regex pattern is not allowed because it may cause excessive backtracking; use a literal pattern or exact deletion targets instead.\",\n\t\t);\n\t}\n}\n\nexport function createGrepMatcher(pattern: string, regex: boolean, caseSensitive: boolean): RegExp {\n\tif (regex) {\n\t\tassertSafeRegexPattern(pattern);\n\t}\n\n\ttry {\n\t\treturn new RegExp(regex ? pattern : escapeRegExpLiteral(pattern), caseSensitive ? \"u\" : \"iu\");\n\t} catch (error) {\n\t\tthrow new Error(`Invalid grep ${regex ? \"regex\" : \"pattern\"}: ${formatErrorMessage(error)}`);\n\t}\n}\n\nexport function assertSafeRegexScan(scanChars: number): void {\n\tif (scanChars <= CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS) return;\n\tthrow new Error(\n\t\t`Regex grep would scan ${scanChars} characters; maximum is ${CONTEXT_GREP_DELETE_MAX_REGEX_SCAN_CHARS}. Use a literal pattern or exact deletion targets instead.`,\n\t);\n}\n\nexport function clampInteger(value: number | undefined, defaultValue: number, minimum: number, maximum: number): number {\n\tif (value === undefined) return defaultValue;\n\treturn Math.max(minimum, Math.min(maximum, value));\n}\n\nexport function textSlice(text: string, offset: number, maxChars: number): string {\n\treturn text.slice(offset, Math.min(text.length, offset + maxChars));\n}\n\nexport function findMatchIndex(matcher: RegExp, text: string): number {\n\tconst match = matcher.exec(text);\n\tmatcher.lastIndex = 0;\n\treturn match?.index ?? -1;\n}\n\nexport function snippetForMatch(text: string, matchIndex: number, contextChars: number): string {\n\tconst start = Math.max(0, matchIndex - contextChars);\n\tconst end = Math.min(text.length, matchIndex + contextChars);\n\tconst prefix = start > 0 ? \"…\" : \"\";\n\tconst suffix = end < text.length ? \"…\" : \"\";\n\treturn `${prefix}${text.slice(start, end)}${suffix}`;\n}\n\nexport function currentTargetDeleted(targets: readonly ContextDeletionTarget[], target: ContextDeletionTarget): boolean {\n\tconst deletedEntryIds = getDeletedEntryIds(targets);\n\tif (deletedEntryIds.has(target.entryId)) return true;\n\tif (target.kind === \"entry\") return false;\n\treturn getDeletedContentBlocks(targets).get(target.entryId)?.has(target.blockIndex) === true;\n}\n\nexport function addGrepCandidate(\n\tcandidates: ContextDeletionTarget[],\n\tmatches: ContextGrepDeletionMatch[],\n\tseenTargets: Set<string>,\n\tcandidate: ContextDeletionTarget,\n\tmatch: ContextGrepDeletionMatch,\n): void {\n\tconst key = targetKey(candidate);\n\tif (seenTargets.has(key)) return;\n\tseenTargets.add(key);\n\tcandidates.push(candidate);\n\tmatches.push(match);\n}\n\nexport function pushProtectedGrepSkip(skipped: ContextGrepDeletionSkipped[], match: ContextGrepDeletionMatch): void {\n\tskipped.push({\n\t\tentryId: match.entryId,\n\t\ttarget: match.target,\n\t\t...(match.blockIndex === undefined ? {} : { blockIndex: match.blockIndex }),\n\t\treason: match.target === \"content_block\" ? \"protected_block\" : \"protected_entry\",\n\t\ttext: match.text,\n\t});\n}\n\nexport function filterProtectedGrepCandidates(\n\tcandidates: readonly ContextDeletionTarget[],\n\tmatches: readonly ContextGrepDeletionMatch[],\n\tcurrentTargets: readonly ContextDeletionTarget[],\n\ttranscript: CompactableTranscript,\n\tskipped: ContextGrepDeletionSkipped[],\n): { candidates: ContextDeletionTarget[]; matches: ContextGrepDeletionMatch[] } {\n\tconst eligibleCandidates: ContextDeletionTarget[] = [];\n\tconst eligibleMatches: ContextGrepDeletionMatch[] = [];\n\tfor (let index = 0; index < candidates.length; index++) {\n\t\tconst candidate = candidates[index];\n\t\tconst match = matches[index];\n\t\tif (!candidate || !match) continue;\n\t\ttry {\n\t\t\tconst mergedTargets = mergeContextDeletionTargets(currentTargets, [candidate]);\n\t\t\tvalidateContextDeletionRequest(deletionRequestFromTargets(mergedTargets), transcript);\n\t\t\teligibleCandidates.push(candidate);\n\t\t\teligibleMatches.push(match);\n\t\t} catch (error) {\n\t\t\tconst message = formatErrorMessage(error);\n\t\t\tif (isProtectedContextDeletionErrorMessage(message)) {\n\t\t\t\tpushProtectedGrepSkip(skipped, match);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\teligibleCandidates.push(candidate);\n\t\t\teligibleMatches.push(match);\n\t\t}\n\t}\n\n\t// Some latest-assistant thinking violations only become visible after a grep batch also\n\t// deletes newer assistant entries. Classify the newly-unsafe grep candidates as\n\t// protected/skipped before maxMatches, expectedMatchCount, stats, or removals are computed.\n\tlet changed = true;\n\twhile (changed) {\n\t\tchanged = false;\n\t\tconst mergedTargets = mergeContextDeletionTargets(currentTargets, eligibleCandidates);\n\t\tconst violation = findLatestAssistantThinkingDeletionViolation(transcript, mergedTargets);\n\t\tif (!violation) continue;\n\t\tconst violationKey = targetKey(violation);\n\t\tlet violationIndex = eligibleCandidates.findIndex((candidate) => targetKey(candidate) === violationKey);\n\t\tif (violationIndex < 0) {\n\t\t\tviolationIndex = eligibleCandidates.findIndex((_candidate, candidateIndex) => {\n\t\t\t\tconst remainingCandidates = eligibleCandidates.filter((_candidateToKeep, index) => index !== candidateIndex);\n\t\t\t\tconst remainingTargets = mergeContextDeletionTargets(currentTargets, remainingCandidates);\n\t\t\t\tconst remainingViolation = findLatestAssistantThinkingDeletionViolation(transcript, remainingTargets);\n\t\t\t\treturn !remainingViolation || targetKey(remainingViolation) !== violationKey;\n\t\t\t});\n\t\t}\n\t\tif (violationIndex < 0) continue;\n\t\tconst [skippedMatch] = eligibleMatches.splice(violationIndex, 1);\n\t\teligibleCandidates.splice(violationIndex, 1);\n\t\tif (skippedMatch) pushProtectedGrepSkip(skipped, skippedMatch);\n\t\tchanged = true;\n\t}\n\n\treturn { candidates: eligibleCandidates, matches: eligibleMatches };\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { type CompactableTranscript, type ContextCompactionRunOptions } from "./context-compaction-types.ts";
2
+ import { type ContextDeletionToolController } from "./context-deletion-tool-definitions.ts";
3
+ export declare function createContextDeletionTool(inputTranscript: CompactableTranscript, options?: ContextCompactionRunOptions): ContextDeletionToolController;
4
+ //# sourceMappingURL=context-deletion-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-deletion-tools.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/context-deletion-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAEN,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAEhC,MAAM,+BAA+B,CAAC;AAWvC,OAAO,EAiBN,KAAK,6BAA6B,EAalC,MAAM,wCAAwC,CAAC;AAyBhD,wBAAgB,yBAAyB,CACxC,eAAe,EAAE,qBAAqB,EACtC,OAAO,GAAE,2BAAgC,GACvC,6BAA6B,CAoa/B","sourcesContent":["import type { AgentTool } from \"@earendil-works/pi-agent-core\";\nimport type { ContextCompactionStats, ContextDeletionTarget } from \"../session-manager.ts\";\nimport {\n\tCONTEXT_COMPACTION_AUTO_QUERY,\n\ttype CompactableTranscript,\n\ttype ContextCompactionRunOptions,\n\ttype ValidatedContextDeletionResult,\n} from \"./context-compaction-types.ts\";\nimport {\n\tcreateContextCompactionBudgetDetails,\n\tcreateContextDeletionToolResult,\n\tfinitePositiveNumber,\n\tformatErrorMessage,\n} from \"./context-compaction-metrics.ts\";\nimport {\n\tgetTranscriptCompactionParameters,\n\tnormalizeContextCompactionParameters,\n} from \"./context-compaction-strategy.ts\";\nimport {\n\tCONTEXT_COMPACTION_BUDGET_TOOL,\n\tCONTEXT_DELETE_TOOL,\n\tCONTEXT_DELETE_TOOL_NAME,\n\tCONTEXT_GREP_DELETE_DEFAULT_MAX_MATCHES,\n\tCONTEXT_GREP_DELETE_TOOL,\n\tCONTEXT_GREP_DELETE_TOOL_NAME,\n\tCONTEXT_READ_ENTRY_DEFAULT_MAX_CHARS,\n\tCONTEXT_READ_ENTRY_MAX_CHARS,\n\tCONTEXT_READ_ENTRY_TOOL,\n\tCONTEXT_READ_ENTRY_TOOL_NAME,\n\tCONTEXT_SEARCH_DEFAULT_CONTEXT_CHARS,\n\tCONTEXT_SEARCH_DEFAULT_MAX_MATCHES,\n\tCONTEXT_SEARCH_MAX_CONTEXT_CHARS,\n\tCONTEXT_SEARCH_MAX_MATCHES,\n\tCONTEXT_SEARCH_TRANSCRIPT_TOOL,\n\ttype ContextCompactionBudgetToolDetails,\n\ttype ContextDeletionToolController,\n\ttype ContextDeletionToolDetails,\n\ttype ContextGrepDeletionMatch,\n\ttype ContextGrepDeletionSkipped,\n\ttype ContextGrepDeletionToolDetails,\n\ttype ContextReadEntryToolDetails,\n\ttype ContextTranscriptSearchMatch,\n\ttype ContextTranscriptSearchToolDetails,\n\tContextCompactionBudgetToolParameters,\n\tContextDeleteToolParameters,\n\tContextGrepDeleteToolParameters,\n\tContextReadEntryToolParameters,\n\tContextSearchTranscriptToolParameters,\n} from \"./context-deletion-tool-definitions.ts\";\nimport {\n\tcomputeContextCompactionStats,\n\tcontextDeletionRequestFromObject,\n\tvalidateContextDeletionRequest,\n} from \"./context-deletion-application.ts\";\nimport {\n\tcanDeleteTarget,\n\tdeletionRequestFromTargets,\n\tgetRecentContextEntryIds,\n\tmergeContextDeletionTargets,\n} from \"./context-deletion-targets.ts\";\nimport { createContextDeletionStore } from \"./context-deletion-store.ts\";\nimport {\n\taddGrepCandidate,\n\tassertSafeRegexScan,\n\tclampInteger,\n\tcreateGrepMatcher,\n\tcurrentTargetDeleted,\n\tfilterProtectedGrepCandidates,\n\tfindMatchIndex,\n\tsnippetForMatch,\n\ttextSlice,\n} from \"./context-deletion-tool-helpers.ts\";\n\nexport function createContextDeletionTool(\n\tinputTranscript: CompactableTranscript,\n\toptions: ContextCompactionRunOptions = {},\n): ContextDeletionToolController {\n\tconst contextWindow = finitePositiveNumber(options.contextWindow);\n\tconst parameters = normalizeContextCompactionParameters(\n\t\t{ ...getTranscriptCompactionParameters(inputTranscript), ...options },\n\t\tinputTranscript.parameters?.query ?? CONTEXT_COMPACTION_AUTO_QUERY,\n\t);\n\tconst transcript: CompactableTranscript = { ...inputTranscript, parameters };\n\tconst store = createContextDeletionStore(transcript);\n\tlet validatedResult: ValidatedContextDeletionResult | undefined;\n\n\tfunction readTargets(): ContextDeletionTarget[] {\n\t\treturn store.readTargets();\n\t}\n\n\tfunction applyValidatedTargets(additionalTargets: readonly ContextDeletionTarget[]): ValidatedContextDeletionResult {\n\t\tconst mergedTargets = mergeContextDeletionTargets(readTargets(), additionalTargets);\n\t\tvalidatedResult = validateContextDeletionRequest(deletionRequestFromTargets(mergedTargets), transcript);\n\t\tstore.replaceTargets(validatedResult.deletedTargets);\n\t\treturn validatedResult;\n\t}\n\n\tfunction currentStats(): ContextCompactionStats {\n\t\treturn validatedResult?.stats ?? computeContextCompactionStats(transcript, readTargets());\n\t}\n\n\tfunction canDeleteProtectedTarget(target: ContextDeletionTarget): boolean {\n\t\treturn canDeleteTarget(transcript, target);\n\t}\n\n\tconst tool: AgentTool<typeof ContextDeleteToolParameters, ContextDeletionToolDetails> = {\n\t\t...CONTEXT_DELETE_TOOL,\n\t\tlabel: \"context deletion request\",\n\t\texecutionMode: \"parallel\",\n\t\tasync execute(_toolCallId, params) {\n\t\t\treturn store.transaction(() => {\n\t\t\t\tconst callCount = store.incrementCallCount();\n\t\t\t\ttry {\n\t\t\t\t\tconst incomingRequest = contextDeletionRequestFromObject(params, `${CONTEXT_DELETE_TOOL_NAME} arguments`);\n\t\t\t\t\tconst incomingValidated = validateContextDeletionRequest(incomingRequest, transcript);\n\t\t\t\t\tconst applied = applyValidatedTargets(incomingValidated.deletedTargets);\n\t\t\t\t\tstore.clearLastError();\n\t\t\t\t\tconst deletedTargets = readTargets();\n\n\t\t\t\t\tconst details: ContextDeletionToolDetails = {\n\t\t\t\t\t\tdeletions: deletionRequestFromTargets(deletedTargets).deletions,\n\t\t\t\t\t\tdeletedTargets,\n\t\t\t\t\t\tstats: applied.stats,\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t};\n\t\t\t\t\tconst text = `Recorded ${incomingValidated.deletedTargets.length} deletion target(s); ${deletedTargets.length} total validated deletion target(s) are selected. Continue calling ${CONTEXT_DELETE_TOOL_NAME} or ${CONTEXT_GREP_DELETE_TOOL_NAME} for additional deletions, or respond done when finished.`;\n\t\t\t\t\treturn createContextDeletionToolResult(text, details);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = formatErrorMessage(error);\n\t\t\t\t\tstore.setLastError(message);\n\t\t\t\t\tconst deletedTargets = readTargets();\n\t\t\t\t\tconst details: ContextDeletionToolDetails = {\n\t\t\t\t\t\tdeletions: deletionRequestFromTargets(deletedTargets).deletions,\n\t\t\t\t\t\tdeletedTargets,\n\t\t\t\t\t\tstats: currentStats(),\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t};\n\t\t\t\t\treturn createContextDeletionToolResult(\n\t\t\t\t\t\t`Error recording context deletion targets: ${message}. No new deletion targets were applied; continue with a corrected tool call.`,\n\t\t\t\t\t\tdetails,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n\n\tconst grepTool: AgentTool<typeof ContextGrepDeleteToolParameters, ContextGrepDeletionToolDetails> = {\n\t\t...CONTEXT_GREP_DELETE_TOOL,\n\t\tlabel: \"context grep delete\",\n\t\texecutionMode: \"parallel\",\n\t\tasync execute(_toolCallId, params) {\n\t\t\treturn store.transaction(() => {\n\t\t\t\tconst callCount = store.incrementCallCount();\n\t\t\t\tconst pattern = params.pattern;\n\t\t\t\tconst regex = params.regex === true;\n\t\t\t\tconst caseSensitive = params.caseSensitive === true;\n\t\t\t\tconst target = params.target ?? \"entry\";\n\t\t\t\tconst maxMatches = params.maxMatches ?? CONTEXT_GREP_DELETE_DEFAULT_MAX_MATCHES;\n\t\t\t\tconst candidates: ContextDeletionTarget[] = [];\n\t\t\t\tconst matches: ContextGrepDeletionMatch[] = [];\n\t\t\t\tlet reportedMatches: ContextGrepDeletionMatch[] = matches;\n\t\t\t\tconst skipped: ContextGrepDeletionSkipped[] = [];\n\t\t\t\tconst seenTargets = new Set<string>();\n\n\t\t\t\ttry {\n\t\t\t\t\tif (regex) {\n\t\t\t\t\t\tassertSafeRegexScan(store.getGrepScanTextLength(target));\n\t\t\t\t\t}\n\t\t\t\t\tconst matcher = createGrepMatcher(pattern, regex, caseSensitive);\n\t\t\t\t\tconst currentTargets = readTargets();\n\t\t\t\t\tconst recentEntryIds = getRecentContextEntryIds(transcript);\n\n\t\t\t\t\tif (target === \"entry\") {\n\t\t\t\t\t\tfor (const entry of store.listEntriesForGrep()) {\n\t\t\t\t\t\t\tif (!matcher.test(entry.text)) continue;\n\t\t\t\t\t\t\tconst candidate: ContextDeletionTarget = { kind: \"entry\", entryId: entry.entry_id };\n\t\t\t\t\t\t\tif (recentEntryIds.has(candidate.entryId)) {\n\t\t\t\t\t\t\t\tskipped.push({ entryId: entry.entry_id, target, reason: \"protected_entry\", text: entry.text });\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (entry.is_protected === 1 && !canDeleteProtectedTarget(candidate)) {\n\t\t\t\t\t\t\t\tskipped.push({ entryId: entry.entry_id, target, reason: \"protected_entry\", text: entry.text });\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (currentTargetDeleted(currentTargets, candidate)) {\n\t\t\t\t\t\t\t\tskipped.push({ entryId: entry.entry_id, target, reason: \"already_deleted\", text: entry.text });\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taddGrepCandidate(candidates, matches, seenTargets, candidate, {\n\t\t\t\t\t\t\t\tentryId: entry.entry_id,\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\ttext: entry.text,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const block of store.listContentBlocksForGrep()) {\n\t\t\t\t\t\t\tif (!matcher.test(block.text)) continue;\n\t\t\t\t\t\t\tconst candidate: ContextDeletionTarget =\n\t\t\t\t\t\t\t\tblock.block_count <= 1\n\t\t\t\t\t\t\t\t\t? { kind: \"entry\", entryId: block.entry_id }\n\t\t\t\t\t\t\t\t\t: { kind: \"content_block\", entryId: block.entry_id, blockIndex: block.block_index };\n\t\t\t\t\t\t\tif (recentEntryIds.has(candidate.entryId)) {\n\t\t\t\t\t\t\t\tskipped.push({\n\t\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\t\ttarget: candidate.kind,\n\t\t\t\t\t\t\t\t\t...(candidate.kind === \"content_block\" ? { blockIndex: candidate.blockIndex } : {}),\n\t\t\t\t\t\t\t\t\treason: \"protected_entry\",\n\t\t\t\t\t\t\t\t\ttext: block.text,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (block.entry_protected === 1 && !canDeleteProtectedTarget(candidate)) {\n\t\t\t\t\t\t\t\tskipped.push({\n\t\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\t\tblockIndex: block.block_index,\n\t\t\t\t\t\t\t\t\treason: \"protected_entry\",\n\t\t\t\t\t\t\t\t\ttext: block.text,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (block.block_protected === 1 && !canDeleteProtectedTarget(candidate)) {\n\t\t\t\t\t\t\t\tskipped.push({\n\t\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\t\tblockIndex: block.block_index,\n\t\t\t\t\t\t\t\t\treason: \"protected_block\",\n\t\t\t\t\t\t\t\t\ttext: block.text,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (currentTargetDeleted(currentTargets, candidate)) {\n\t\t\t\t\t\t\t\tskipped.push({\n\t\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\t\ttarget: candidate.kind,\n\t\t\t\t\t\t\t\t\t...(candidate.kind === \"content_block\" ? { blockIndex: candidate.blockIndex } : {}),\n\t\t\t\t\t\t\t\t\treason: \"already_deleted\",\n\t\t\t\t\t\t\t\t\ttext: block.text,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taddGrepCandidate(candidates, matches, seenTargets, candidate, {\n\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\ttarget: candidate.kind,\n\t\t\t\t\t\t\t\t...(candidate.kind === \"content_block\" ? { blockIndex: candidate.blockIndex } : {}),\n\t\t\t\t\t\t\t\ttext: block.text,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst eligible = filterProtectedGrepCandidates(candidates, matches, currentTargets, transcript, skipped);\n\t\t\t\t\treportedMatches = eligible.matches;\n\t\t\t\t\tlet applied: ValidatedContextDeletionResult | undefined;\n\t\t\t\t\tif (params.expectedMatchCount !== undefined && eligible.candidates.length !== params.expectedMatchCount) {\n\t\t\t\t\t\tskipped.push({ reason: \"expected_match_count_mismatch\" });\n\t\t\t\t\t} else if (eligible.candidates.length > maxMatches) {\n\t\t\t\t\t\tskipped.push({ reason: \"max_matches_exceeded\" });\n\t\t\t\t\t} else if (eligible.candidates.length > 0) {\n\t\t\t\t\t\tapplied = applyValidatedTargets(eligible.candidates);\n\t\t\t\t\t}\n\t\t\t\t\tstore.clearLastError();\n\t\t\t\t\tconst deletedTargets = readTargets();\n\n\t\t\t\t\tconst details: ContextGrepDeletionToolDetails = {\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\tcaseSensitive,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tmatches: eligible.matches,\n\t\t\t\t\t\tskipped,\n\t\t\t\t\t\tdeletedTargets,\n\t\t\t\t\t\tstats: applied?.stats ?? currentStats(),\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t};\n\t\t\t\t\tconst text = `Matched ${eligible.matches.length} deletion target(s), skipped ${skipped.length}, and ${applied ? \"applied\" : \"did not apply\"} grep deletion for pattern ${JSON.stringify(pattern)}. Total validated deletion target(s): ${deletedTargets.length}.`;\n\t\t\t\t\treturn createContextDeletionToolResult(text, details);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = formatErrorMessage(error);\n\t\t\t\t\tstore.setLastError(message);\n\t\t\t\t\tconst deletedTargets = readTargets();\n\t\t\t\t\tconst details: ContextGrepDeletionToolDetails = {\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\tcaseSensitive,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tmatches: reportedMatches,\n\t\t\t\t\t\tskipped,\n\t\t\t\t\t\tdeletedTargets,\n\t\t\t\t\t\tstats: currentStats(),\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t};\n\t\t\t\t\treturn createContextDeletionToolResult(\n\t\t\t\t\t\t`Error applying grep deletion for pattern ${JSON.stringify(pattern)}: ${message}. No new deletion targets were applied; continue with a corrected tool call.`,\n\t\t\t\t\t\tdetails,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n\n\tconst searchTool: AgentTool<typeof ContextSearchTranscriptToolParameters, ContextTranscriptSearchToolDetails> = {\n\t\t...CONTEXT_SEARCH_TRANSCRIPT_TOOL,\n\t\tlabel: \"context transcript search\",\n\t\texecutionMode: \"parallel\",\n\t\tasync execute(_toolCallId, params) {\n\t\t\treturn store.transaction(() => {\n\t\t\t\tconst callCount = store.incrementCallCount();\n\t\t\t\tconst pattern = params.pattern;\n\t\t\t\tconst regex = params.regex === true;\n\t\t\t\tconst caseSensitive = params.caseSensitive === true;\n\t\t\t\tconst target = params.target ?? \"entry\";\n\t\t\t\tconst maxMatches = clampInteger(params.maxMatches, CONTEXT_SEARCH_DEFAULT_MAX_MATCHES, 1, CONTEXT_SEARCH_MAX_MATCHES);\n\t\t\t\tconst contextChars = clampInteger(\n\t\t\t\t\tparams.contextChars,\n\t\t\t\t\tCONTEXT_SEARCH_DEFAULT_CONTEXT_CHARS,\n\t\t\t\t\t0,\n\t\t\t\t\tCONTEXT_SEARCH_MAX_CONTEXT_CHARS,\n\t\t\t\t);\n\t\t\t\tconst matches: ContextTranscriptSearchMatch[] = [];\n\t\t\t\tlet truncated = false;\n\n\t\t\t\ttry {\n\t\t\t\t\tif (regex) {\n\t\t\t\t\t\tassertSafeRegexScan(store.getGrepScanTextLength(target));\n\t\t\t\t\t}\n\t\t\t\t\tconst matcher = createGrepMatcher(pattern, regex, caseSensitive);\n\t\t\t\t\tif (target === \"entry\") {\n\t\t\t\t\t\tfor (const entry of store.listEntriesForGrep()) {\n\t\t\t\t\t\t\tconst matchIndex = findMatchIndex(matcher, entry.text);\n\t\t\t\t\t\t\tif (matchIndex < 0) continue;\n\t\t\t\t\t\t\tif (matches.length >= maxMatches) {\n\t\t\t\t\t\t\t\ttruncated = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmatches.push({\n\t\t\t\t\t\t\t\tentryId: entry.entry_id,\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tmatchIndex,\n\t\t\t\t\t\t\t\tsnippet: snippetForMatch(entry.text, matchIndex, contextChars),\n\t\t\t\t\t\t\t\tprotected: entry.is_protected === 1,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const block of store.listContentBlocksForGrep()) {\n\t\t\t\t\t\t\tconst matchIndex = findMatchIndex(matcher, block.text);\n\t\t\t\t\t\t\tif (matchIndex < 0) continue;\n\t\t\t\t\t\t\tif (matches.length >= maxMatches) {\n\t\t\t\t\t\t\t\ttruncated = true;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmatches.push({\n\t\t\t\t\t\t\t\tentryId: block.entry_id,\n\t\t\t\t\t\t\t\ttarget,\n\t\t\t\t\t\t\t\tblockIndex: block.block_index,\n\t\t\t\t\t\t\t\tmatchIndex,\n\t\t\t\t\t\t\t\tsnippet: snippetForMatch(block.text, matchIndex, contextChars),\n\t\t\t\t\t\t\t\tprotected: block.entry_protected === 1 || block.block_protected === 1,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tstore.clearLastError();\n\t\t\t\t\tconst details: ContextTranscriptSearchToolDetails = {\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\tcaseSensitive,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tmatches,\n\t\t\t\t\t\ttruncated,\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t};\n\t\t\t\t\tconst text = `Found ${matches.length}${truncated ? \"+\" : \"\"} ${target} match(es) for ${JSON.stringify(pattern)}. Use ${CONTEXT_READ_ENTRY_TOOL_NAME} with small maxChars to inspect exact content before deleting.`;\n\t\t\t\t\treturn createContextDeletionToolResult(text, details);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = formatErrorMessage(error);\n\t\t\t\t\tstore.setLastError(message);\n\t\t\t\t\tconst details: ContextTranscriptSearchToolDetails = {\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\tregex,\n\t\t\t\t\t\tcaseSensitive,\n\t\t\t\t\t\ttarget,\n\t\t\t\t\t\tmatches,\n\t\t\t\t\t\ttruncated,\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t};\n\t\t\t\t\treturn createContextDeletionToolResult(\n\t\t\t\t\t\t`Error searching transcript for ${JSON.stringify(pattern)}: ${message}. Try a literal pattern or narrower query.`,\n\t\t\t\t\t\tdetails,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n\n\tconst readEntryTool: AgentTool<typeof ContextReadEntryToolParameters, ContextReadEntryToolDetails> = {\n\t\t...CONTEXT_READ_ENTRY_TOOL,\n\t\tlabel: \"context read entry\",\n\t\texecutionMode: \"parallel\",\n\t\tasync execute(_toolCallId, params) {\n\t\t\treturn store.transaction(() => {\n\t\t\t\tconst callCount = store.incrementCallCount();\n\t\t\t\tconst offset = clampInteger(params.offset, 0, 0, Number.MAX_SAFE_INTEGER);\n\t\t\t\tconst maxChars = clampInteger(\n\t\t\t\t\tparams.maxChars,\n\t\t\t\t\tCONTEXT_READ_ENTRY_DEFAULT_MAX_CHARS,\n\t\t\t\t\t1,\n\t\t\t\t\tCONTEXT_READ_ENTRY_MAX_CHARS,\n\t\t\t\t);\n\t\t\t\ttry {\n\t\t\t\t\tconst row =\n\t\t\t\t\t\tparams.blockIndex === undefined\n\t\t\t\t\t\t\t? store.getEntryForRead(params.entryId)\n\t\t\t\t\t\t\t: store.getContentBlockForRead(params.entryId, params.blockIndex);\n\t\t\t\t\tif (!row) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\tparams.blockIndex === undefined\n\t\t\t\t\t\t\t\t? `Unknown transcript entry: ${params.entryId}`\n\t\t\t\t\t\t\t\t: `Unknown transcript content block: ${params.entryId}:${params.blockIndex}`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tconst text = row.text;\n\t\t\t\t\tconst slice = textSlice(text, offset, maxChars);\n\t\t\t\t\tstore.clearLastError();\n\t\t\t\t\tconst details: ContextReadEntryToolDetails = {\n\t\t\t\t\t\tentryId: params.entryId,\n\t\t\t\t\t\t...(params.blockIndex === undefined ? {} : { blockIndex: params.blockIndex }),\n\t\t\t\t\t\toffset,\n\t\t\t\t\t\tmaxChars,\n\t\t\t\t\t\ttotalChars: text.length,\n\t\t\t\t\t\ttext: slice,\n\t\t\t\t\t\ttruncatedBefore: offset > 0,\n\t\t\t\t\t\ttruncatedAfter: offset + maxChars < text.length,\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t};\n\t\t\t\t\tconst textResult = `Read ${slice.length} of ${text.length} characters from ${params.blockIndex === undefined ? params.entryId : `${params.entryId}:${params.blockIndex}`}. Keep reads small; increase offset for the next slice if needed.`;\n\t\t\t\t\treturn createContextDeletionToolResult(textResult, details);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst message = formatErrorMessage(error);\n\t\t\t\t\tstore.setLastError(message);\n\t\t\t\t\tconst details: ContextReadEntryToolDetails = {\n\t\t\t\t\t\tentryId: params.entryId,\n\t\t\t\t\t\t...(params.blockIndex === undefined ? {} : { blockIndex: params.blockIndex }),\n\t\t\t\t\t\toffset,\n\t\t\t\t\t\tmaxChars,\n\t\t\t\t\t\ttotalChars: 0,\n\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\ttruncatedBefore: false,\n\t\t\t\t\t\ttruncatedAfter: false,\n\t\t\t\t\t\tcallCount,\n\t\t\t\t\t\terror: message,\n\t\t\t\t\t};\n\t\t\t\t\treturn createContextDeletionToolResult(`Error reading transcript entry: ${message}`, details);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t};\n\n\tconst budgetTool: AgentTool<typeof ContextCompactionBudgetToolParameters, ContextCompactionBudgetToolDetails> = {\n\t\t...CONTEXT_COMPACTION_BUDGET_TOOL,\n\t\tlabel: \"context compaction budget\",\n\t\texecutionMode: \"parallel\",\n\t\tasync execute(_toolCallId) {\n\t\t\treturn store.transaction(() => {\n\t\t\t\tconst callCount = store.incrementCallCount();\n\t\t\t\tstore.clearLastError();\n\t\t\t\tconst details = createContextCompactionBudgetDetails(currentStats(), callCount, contextWindow, parameters);\n\t\t\t\tconst windowText =\n\t\t\t\t\tdetails.contextWindowBeforePercent !== undefined\n\t\t\t\t\t\t? ` Context window fullness: ${details.contextWindowBeforePercent}% before selected deletions, ${details.contextWindowAfterPercent}% after selected deletions.`\n\t\t\t\t\t\t: \" Context window size is unknown for this model, so fullness percentages are unavailable.\";\n\t\t\t\tconst targetText =\n\t\t\t\t\tdetails.tokensToDeleteForTarget > 0\n\t\t\t\t\t\t? ` Delete about ${details.tokensToDeleteForTarget} more token(s) to reach the ${details.targetReductionPercent}% reduction target.`\n\t\t\t\t\t\t: ` The selected deletions meet or exceed the ${details.targetReductionPercent}% reduction target.`;\n\t\t\t\treturn createContextDeletionToolResult(\n\t\t\t\t\t`Current selected deletions reduce context by ${details.currentReductionPercent}% (${details.deletedTokens} token(s)); tokens after selected deletions: ${details.currentTokensAfter}/${details.tokensBefore}.${windowText}${targetText} Keep maximizing useful retained context while aggressively removing low-value blocks.`,\n\t\t\t\t\tdetails,\n\t\t\t\t);\n\t\t\t});\n\t\t},\n\t};\n\n\treturn {\n\t\ttool,\n\t\tgrepTool,\n\t\tsearchTool,\n\t\treadEntryTool,\n\t\tbudgetTool,\n\t\ttools: [tool, grepTool, searchTool, readEntryTool, budgetTool],\n\t\tgetDeletionRequest: () => deletionRequestFromTargets(readTargets()),\n\t\tgetValidatedResult: () => validatedResult,\n\tgetLastError: () => store.getLastError(),\n\tgetCallCount: () => store.getCallCount(),\n};\n}\n"]}