@kenkaiiii/ggcoder 5.49.5 → 5.49.6

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 (950) hide show
  1. package/dist/core/settings-manager.d.ts +2 -2
  2. package/package.json +5 -5
  3. package/dist/app-sidecar-auth-broadcast.test.d.ts +0 -2
  4. package/dist/app-sidecar-auth-broadcast.test.d.ts.map +0 -1
  5. package/dist/app-sidecar-auth-broadcast.test.js +0 -383
  6. package/dist/app-sidecar-auth-broadcast.test.js.map +0 -1
  7. package/dist/app-sidecar-sessions.test.d.ts +0 -2
  8. package/dist/app-sidecar-sessions.test.d.ts.map +0 -1
  9. package/dist/app-sidecar-sessions.test.js +0 -178
  10. package/dist/app-sidecar-sessions.test.js.map +0 -1
  11. package/dist/chat-agents/general.test.d.ts +0 -2
  12. package/dist/chat-agents/general.test.d.ts.map +0 -1
  13. package/dist/chat-agents/general.test.js +0 -53
  14. package/dist/chat-agents/general.test.js.map +0 -1
  15. package/dist/chat-agents/jiwa.test.d.ts +0 -2
  16. package/dist/chat-agents/jiwa.test.d.ts.map +0 -1
  17. package/dist/chat-agents/jiwa.test.js +0 -66
  18. package/dist/chat-agents/jiwa.test.js.map +0 -1
  19. package/dist/chat-agents/memory.test.d.ts +0 -2
  20. package/dist/chat-agents/memory.test.d.ts.map +0 -1
  21. package/dist/chat-agents/memory.test.js +0 -165
  22. package/dist/chat-agents/memory.test.js.map +0 -1
  23. package/dist/chat-agents/specialists.test.d.ts +0 -2
  24. package/dist/chat-agents/specialists.test.d.ts.map +0 -1
  25. package/dist/chat-agents/specialists.test.js +0 -98
  26. package/dist/chat-agents/specialists.test.js.map +0 -1
  27. package/dist/cli/command-routing.test.d.ts +0 -2
  28. package/dist/cli/command-routing.test.d.ts.map +0 -1
  29. package/dist/cli/command-routing.test.js +0 -60
  30. package/dist/cli/command-routing.test.js.map +0 -1
  31. package/dist/config.test.d.ts +0 -2
  32. package/dist/config.test.d.ts.map +0 -1
  33. package/dist/config.test.js +0 -148
  34. package/dist/config.test.js.map +0 -1
  35. package/dist/core/agent-mcp-passthrough.test.d.ts +0 -2
  36. package/dist/core/agent-mcp-passthrough.test.d.ts.map +0 -1
  37. package/dist/core/agent-mcp-passthrough.test.js +0 -61
  38. package/dist/core/agent-mcp-passthrough.test.js.map +0 -1
  39. package/dist/core/agent-notifications.test.d.ts +0 -2
  40. package/dist/core/agent-notifications.test.d.ts.map +0 -1
  41. package/dist/core/agent-notifications.test.js +0 -97
  42. package/dist/core/agent-notifications.test.js.map +0 -1
  43. package/dist/core/agent-session-add-dir.test.d.ts +0 -2
  44. package/dist/core/agent-session-add-dir.test.d.ts.map +0 -1
  45. package/dist/core/agent-session-add-dir.test.js +0 -110
  46. package/dist/core/agent-session-add-dir.test.js.map +0 -1
  47. package/dist/core/agent-session-checkpoint-flush.test.d.ts +0 -2
  48. package/dist/core/agent-session-checkpoint-flush.test.d.ts.map +0 -1
  49. package/dist/core/agent-session-checkpoint-flush.test.js +0 -201
  50. package/dist/core/agent-session-checkpoint-flush.test.js.map +0 -1
  51. package/dist/core/agent-session-compaction.test.d.ts +0 -2
  52. package/dist/core/agent-session-compaction.test.d.ts.map +0 -1
  53. package/dist/core/agent-session-compaction.test.js +0 -1157
  54. package/dist/core/agent-session-compaction.test.js.map +0 -1
  55. package/dist/core/agent-session-crash-durability.test.d.ts +0 -2
  56. package/dist/core/agent-session-crash-durability.test.d.ts.map +0 -1
  57. package/dist/core/agent-session-crash-durability.test.js +0 -102
  58. package/dist/core/agent-session-crash-durability.test.js.map +0 -1
  59. package/dist/core/agent-session-marker-anchors.test.d.ts +0 -2
  60. package/dist/core/agent-session-marker-anchors.test.d.ts.map +0 -1
  61. package/dist/core/agent-session-marker-anchors.test.js +0 -326
  62. package/dist/core/agent-session-marker-anchors.test.js.map +0 -1
  63. package/dist/core/agent-session-memory-tail.test.d.ts +0 -2
  64. package/dist/core/agent-session-memory-tail.test.d.ts.map +0 -1
  65. package/dist/core/agent-session-memory-tail.test.js +0 -119
  66. package/dist/core/agent-session-memory-tail.test.js.map +0 -1
  67. package/dist/core/agent-session-model-switch.test.d.ts +0 -2
  68. package/dist/core/agent-session-model-switch.test.d.ts.map +0 -1
  69. package/dist/core/agent-session-model-switch.test.js +0 -161
  70. package/dist/core/agent-session-model-switch.test.js.map +0 -1
  71. package/dist/core/agent-session-notifications.test.d.ts +0 -2
  72. package/dist/core/agent-session-notifications.test.d.ts.map +0 -1
  73. package/dist/core/agent-session-notifications.test.js +0 -114
  74. package/dist/core/agent-session-notifications.test.js.map +0 -1
  75. package/dist/core/agent-session-pre-init-arming.test.d.ts +0 -2
  76. package/dist/core/agent-session-pre-init-arming.test.d.ts.map +0 -1
  77. package/dist/core/agent-session-pre-init-arming.test.js +0 -60
  78. package/dist/core/agent-session-pre-init-arming.test.js.map +0 -1
  79. package/dist/core/agent-session-process-gate.test.d.ts +0 -2
  80. package/dist/core/agent-session-process-gate.test.d.ts.map +0 -1
  81. package/dist/core/agent-session-process-gate.test.js +0 -98
  82. package/dist/core/agent-session-process-gate.test.js.map +0 -1
  83. package/dist/core/agent-session-queue.test.d.ts +0 -2
  84. package/dist/core/agent-session-queue.test.d.ts.map +0 -1
  85. package/dist/core/agent-session-queue.test.js +0 -184
  86. package/dist/core/agent-session-queue.test.js.map +0 -1
  87. package/dist/core/agent-session-review-coverage.test.d.ts +0 -2
  88. package/dist/core/agent-session-review-coverage.test.d.ts.map +0 -1
  89. package/dist/core/agent-session-review-coverage.test.js +0 -191
  90. package/dist/core/agent-session-review-coverage.test.js.map +0 -1
  91. package/dist/core/agent-session-slash-restore.test.d.ts +0 -2
  92. package/dist/core/agent-session-slash-restore.test.d.ts.map +0 -1
  93. package/dist/core/agent-session-slash-restore.test.js +0 -121
  94. package/dist/core/agent-session-slash-restore.test.js.map +0 -1
  95. package/dist/core/agent-session-subagent-policy.test.d.ts +0 -2
  96. package/dist/core/agent-session-subagent-policy.test.d.ts.map +0 -1
  97. package/dist/core/agent-session-subagent-policy.test.js +0 -40
  98. package/dist/core/agent-session-subagent-policy.test.js.map +0 -1
  99. package/dist/core/agent-session-tool-result-policy.test.d.ts +0 -2
  100. package/dist/core/agent-session-tool-result-policy.test.d.ts.map +0 -1
  101. package/dist/core/agent-session-tool-result-policy.test.js +0 -25
  102. package/dist/core/agent-session-tool-result-policy.test.js.map +0 -1
  103. package/dist/core/agent-session-tool-tiers.test.d.ts +0 -2
  104. package/dist/core/agent-session-tool-tiers.test.d.ts.map +0 -1
  105. package/dist/core/agent-session-tool-tiers.test.js +0 -138
  106. package/dist/core/agent-session-tool-tiers.test.js.map +0 -1
  107. package/dist/core/agent-session-verification-flow.test.d.ts +0 -2
  108. package/dist/core/agent-session-verification-flow.test.d.ts.map +0 -1
  109. package/dist/core/agent-session-verification-flow.test.js +0 -125
  110. package/dist/core/agent-session-verification-flow.test.js.map +0 -1
  111. package/dist/core/agent-session-verification-gate.test.d.ts +0 -2
  112. package/dist/core/agent-session-verification-gate.test.d.ts.map +0 -1
  113. package/dist/core/agent-session-verification-gate.test.js +0 -137
  114. package/dist/core/agent-session-verification-gate.test.js.map +0 -1
  115. package/dist/core/agent-tools-allowlist.test.d.ts +0 -2
  116. package/dist/core/agent-tools-allowlist.test.d.ts.map +0 -1
  117. package/dist/core/agent-tools-allowlist.test.js +0 -74
  118. package/dist/core/agent-tools-allowlist.test.js.map +0 -1
  119. package/dist/core/agents.test.d.ts +0 -2
  120. package/dist/core/agents.test.d.ts.map +0 -1
  121. package/dist/core/agents.test.js +0 -147
  122. package/dist/core/agents.test.js.map +0 -1
  123. package/dist/core/auto-update.test.d.ts +0 -2
  124. package/dist/core/auto-update.test.d.ts.map +0 -1
  125. package/dist/core/auto-update.test.js +0 -204
  126. package/dist/core/auto-update.test.js.map +0 -1
  127. package/dist/core/autopilot-cycle.test.d.ts +0 -2
  128. package/dist/core/autopilot-cycle.test.d.ts.map +0 -1
  129. package/dist/core/autopilot-cycle.test.js +0 -375
  130. package/dist/core/autopilot-cycle.test.js.map +0 -1
  131. package/dist/core/autopilot-gate.test.d.ts +0 -2
  132. package/dist/core/autopilot-gate.test.d.ts.map +0 -1
  133. package/dist/core/autopilot-gate.test.js +0 -298
  134. package/dist/core/autopilot-gate.test.js.map +0 -1
  135. package/dist/core/autopilot-verdict.test.d.ts +0 -2
  136. package/dist/core/autopilot-verdict.test.d.ts.map +0 -1
  137. package/dist/core/autopilot-verdict.test.js +0 -153
  138. package/dist/core/autopilot-verdict.test.js.map +0 -1
  139. package/dist/core/checkpoint-store.test.d.ts +0 -2
  140. package/dist/core/checkpoint-store.test.d.ts.map +0 -1
  141. package/dist/core/checkpoint-store.test.js +0 -111
  142. package/dist/core/checkpoint-store.test.js.map +0 -1
  143. package/dist/core/code-retrieval-chunkers.test.d.ts +0 -2
  144. package/dist/core/code-retrieval-chunkers.test.d.ts.map +0 -1
  145. package/dist/core/code-retrieval-chunkers.test.js +0 -203
  146. package/dist/core/code-retrieval-chunkers.test.js.map +0 -1
  147. package/dist/core/compaction/active-context.test.d.ts +0 -2
  148. package/dist/core/compaction/active-context.test.d.ts.map +0 -1
  149. package/dist/core/compaction/active-context.test.js +0 -57
  150. package/dist/core/compaction/active-context.test.js.map +0 -1
  151. package/dist/core/compaction/compactor.test.d.ts +0 -2
  152. package/dist/core/compaction/compactor.test.d.ts.map +0 -1
  153. package/dist/core/compaction/compactor.test.js +0 -1072
  154. package/dist/core/compaction/compactor.test.js.map +0 -1
  155. package/dist/core/compaction/policy.test.d.ts +0 -2
  156. package/dist/core/compaction/policy.test.d.ts.map +0 -1
  157. package/dist/core/compaction/policy.test.js +0 -35
  158. package/dist/core/compaction/policy.test.js.map +0 -1
  159. package/dist/core/compaction/query-aware-selector.test.d.ts +0 -2
  160. package/dist/core/compaction/query-aware-selector.test.d.ts.map +0 -1
  161. package/dist/core/compaction/query-aware-selector.test.js +0 -96
  162. package/dist/core/compaction/query-aware-selector.test.js.map +0 -1
  163. package/dist/core/compaction/token-estimator.test.d.ts +0 -2
  164. package/dist/core/compaction/token-estimator.test.d.ts.map +0 -1
  165. package/dist/core/compaction/token-estimator.test.js +0 -283
  166. package/dist/core/compaction/token-estimator.test.js.map +0 -1
  167. package/dist/core/compaction/tool-result-pruner.test.d.ts +0 -2
  168. package/dist/core/compaction/tool-result-pruner.test.d.ts.map +0 -1
  169. package/dist/core/compaction/tool-result-pruner.test.js +0 -320
  170. package/dist/core/compaction/tool-result-pruner.test.js.map +0 -1
  171. package/dist/core/context-limits.test.d.ts +0 -2
  172. package/dist/core/context-limits.test.d.ts.map +0 -1
  173. package/dist/core/context-limits.test.js +0 -55
  174. package/dist/core/context-limits.test.js.map +0 -1
  175. package/dist/core/continue-replay-inventory.test.d.ts +0 -2
  176. package/dist/core/continue-replay-inventory.test.d.ts.map +0 -1
  177. package/dist/core/continue-replay-inventory.test.js +0 -42
  178. package/dist/core/continue-replay-inventory.test.js.map +0 -1
  179. package/dist/core/encode-cwd.test.d.ts +0 -2
  180. package/dist/core/encode-cwd.test.d.ts.map +0 -1
  181. package/dist/core/encode-cwd.test.js +0 -80
  182. package/dist/core/encode-cwd.test.js.map +0 -1
  183. package/dist/core/event-bus.test.d.ts +0 -2
  184. package/dist/core/event-bus.test.d.ts.map +0 -1
  185. package/dist/core/event-bus.test.js +0 -33
  186. package/dist/core/event-bus.test.js.map +0 -1
  187. package/dist/core/extensions/plugin-bundles.test.d.ts +0 -2
  188. package/dist/core/extensions/plugin-bundles.test.d.ts.map +0 -1
  189. package/dist/core/extensions/plugin-bundles.test.js +0 -110
  190. package/dist/core/extensions/plugin-bundles.test.js.map +0 -1
  191. package/dist/core/foreign-session-import.test.d.ts +0 -2
  192. package/dist/core/foreign-session-import.test.d.ts.map +0 -1
  193. package/dist/core/foreign-session-import.test.js +0 -220
  194. package/dist/core/foreign-session-import.test.js.map +0 -1
  195. package/dist/core/hashline-edit-benchmark.test.d.ts +0 -2
  196. package/dist/core/hashline-edit-benchmark.test.d.ts.map +0 -1
  197. package/dist/core/hashline-edit-benchmark.test.js +0 -190
  198. package/dist/core/hashline-edit-benchmark.test.js.map +0 -1
  199. package/dist/core/ideal-review.test.d.ts +0 -2
  200. package/dist/core/ideal-review.test.d.ts.map +0 -1
  201. package/dist/core/ideal-review.test.js +0 -242
  202. package/dist/core/ideal-review.test.js.map +0 -1
  203. package/dist/core/input-normalization.test.d.ts +0 -2
  204. package/dist/core/input-normalization.test.d.ts.map +0 -1
  205. package/dist/core/input-normalization.test.js +0 -75
  206. package/dist/core/input-normalization.test.js.map +0 -1
  207. package/dist/core/json-mode-flag-parity.test.d.ts +0 -2
  208. package/dist/core/json-mode-flag-parity.test.d.ts.map +0 -1
  209. package/dist/core/json-mode-flag-parity.test.js +0 -66
  210. package/dist/core/json-mode-flag-parity.test.js.map +0 -1
  211. package/dist/core/ken-context.test.d.ts +0 -2
  212. package/dist/core/ken-context.test.d.ts.map +0 -1
  213. package/dist/core/ken-context.test.js +0 -342
  214. package/dist/core/ken-context.test.js.map +0 -1
  215. package/dist/core/ken-model.test.d.ts +0 -2
  216. package/dist/core/ken-model.test.d.ts.map +0 -1
  217. package/dist/core/ken-model.test.js +0 -51
  218. package/dist/core/ken-model.test.js.map +0 -1
  219. package/dist/core/ken-prompt.test.d.ts +0 -2
  220. package/dist/core/ken-prompt.test.d.ts.map +0 -1
  221. package/dist/core/ken-prompt.test.js +0 -191
  222. package/dist/core/ken-prompt.test.js.map +0 -1
  223. package/dist/core/language-detector.test.d.ts +0 -2
  224. package/dist/core/language-detector.test.d.ts.map +0 -1
  225. package/dist/core/language-detector.test.js +0 -109
  226. package/dist/core/language-detector.test.js.map +0 -1
  227. package/dist/core/local-endpoint-store.test.d.ts +0 -2
  228. package/dist/core/local-endpoint-store.test.d.ts.map +0 -1
  229. package/dist/core/local-endpoint-store.test.js +0 -123
  230. package/dist/core/local-endpoint-store.test.js.map +0 -1
  231. package/dist/core/loop-breaker.test.d.ts +0 -2
  232. package/dist/core/loop-breaker.test.d.ts.map +0 -1
  233. package/dist/core/loop-breaker.test.js +0 -238
  234. package/dist/core/loop-breaker.test.js.map +0 -1
  235. package/dist/core/lsp/client-navigation.test.d.ts +0 -2
  236. package/dist/core/lsp/client-navigation.test.d.ts.map +0 -1
  237. package/dist/core/lsp/client-navigation.test.js +0 -135
  238. package/dist/core/lsp/client-navigation.test.js.map +0 -1
  239. package/dist/core/lsp/format.test.d.ts +0 -2
  240. package/dist/core/lsp/format.test.d.ts.map +0 -1
  241. package/dist/core/lsp/format.test.js +0 -56
  242. package/dist/core/lsp/format.test.js.map +0 -1
  243. package/dist/core/lsp/integration.test.d.ts +0 -2
  244. package/dist/core/lsp/integration.test.d.ts.map +0 -1
  245. package/dist/core/lsp/integration.test.js +0 -60
  246. package/dist/core/lsp/integration.test.js.map +0 -1
  247. package/dist/core/lsp/jsonrpc.test.d.ts +0 -2
  248. package/dist/core/lsp/jsonrpc.test.d.ts.map +0 -1
  249. package/dist/core/lsp/jsonrpc.test.js +0 -127
  250. package/dist/core/lsp/jsonrpc.test.js.map +0 -1
  251. package/dist/core/lsp/manager-navigation.test.d.ts +0 -2
  252. package/dist/core/lsp/manager-navigation.test.d.ts.map +0 -1
  253. package/dist/core/lsp/manager-navigation.test.js +0 -121
  254. package/dist/core/lsp/manager-navigation.test.js.map +0 -1
  255. package/dist/core/lsp/manager.test.d.ts +0 -2
  256. package/dist/core/lsp/manager.test.d.ts.map +0 -1
  257. package/dist/core/lsp/manager.test.js +0 -286
  258. package/dist/core/lsp/manager.test.js.map +0 -1
  259. package/dist/core/lsp/pool.test.d.ts +0 -2
  260. package/dist/core/lsp/pool.test.d.ts.map +0 -1
  261. package/dist/core/lsp/pool.test.js +0 -286
  262. package/dist/core/lsp/pool.test.js.map +0 -1
  263. package/dist/core/lsp/servers.test.d.ts +0 -2
  264. package/dist/core/lsp/servers.test.d.ts.map +0 -1
  265. package/dist/core/lsp/servers.test.js +0 -67
  266. package/dist/core/lsp/servers.test.js.map +0 -1
  267. package/dist/core/lsp/uri.test.d.ts +0 -2
  268. package/dist/core/lsp/uri.test.d.ts.map +0 -1
  269. package/dist/core/lsp/uri.test.js +0 -56
  270. package/dist/core/lsp/uri.test.js.map +0 -1
  271. package/dist/core/lsp/windows.test.d.ts +0 -2
  272. package/dist/core/lsp/windows.test.d.ts.map +0 -1
  273. package/dist/core/lsp/windows.test.js +0 -239
  274. package/dist/core/lsp/windows.test.js.map +0 -1
  275. package/dist/core/mcp/catalog-cache.test.d.ts +0 -2
  276. package/dist/core/mcp/catalog-cache.test.d.ts.map +0 -1
  277. package/dist/core/mcp/catalog-cache.test.js +0 -99
  278. package/dist/core/mcp/catalog-cache.test.js.map +0 -1
  279. package/dist/core/mcp/client-session-recovery.test.d.ts +0 -2
  280. package/dist/core/mcp/client-session-recovery.test.d.ts.map +0 -1
  281. package/dist/core/mcp/client-session-recovery.test.js +0 -231
  282. package/dist/core/mcp/client-session-recovery.test.js.map +0 -1
  283. package/dist/core/mcp/content.test.d.ts +0 -2
  284. package/dist/core/mcp/content.test.d.ts.map +0 -1
  285. package/dist/core/mcp/content.test.js +0 -152
  286. package/dist/core/mcp/content.test.js.map +0 -1
  287. package/dist/core/mcp/defaults.test.d.ts +0 -2
  288. package/dist/core/mcp/defaults.test.d.ts.map +0 -1
  289. package/dist/core/mcp/defaults.test.js +0 -60
  290. package/dist/core/mcp/defaults.test.js.map +0 -1
  291. package/dist/core/mcp/elicitation.test.d.ts +0 -2
  292. package/dist/core/mcp/elicitation.test.d.ts.map +0 -1
  293. package/dist/core/mcp/elicitation.test.js +0 -158
  294. package/dist/core/mcp/elicitation.test.js.map +0 -1
  295. package/dist/core/mcp/legacy-negotiation.test.d.ts +0 -2
  296. package/dist/core/mcp/legacy-negotiation.test.d.ts.map +0 -1
  297. package/dist/core/mcp/legacy-negotiation.test.js +0 -80
  298. package/dist/core/mcp/legacy-negotiation.test.js.map +0 -1
  299. package/dist/core/mcp/loopback.test.d.ts +0 -2
  300. package/dist/core/mcp/loopback.test.d.ts.map +0 -1
  301. package/dist/core/mcp/loopback.test.js +0 -87
  302. package/dist/core/mcp/loopback.test.js.map +0 -1
  303. package/dist/core/mcp/oauth-store.test.d.ts +0 -2
  304. package/dist/core/mcp/oauth-store.test.d.ts.map +0 -1
  305. package/dist/core/mcp/oauth-store.test.js +0 -94
  306. package/dist/core/mcp/oauth-store.test.js.map +0 -1
  307. package/dist/core/mcp/parse-add-command.test.d.ts +0 -2
  308. package/dist/core/mcp/parse-add-command.test.d.ts.map +0 -1
  309. package/dist/core/mcp/parse-add-command.test.js +0 -81
  310. package/dist/core/mcp/parse-add-command.test.js.map +0 -1
  311. package/dist/core/mcp/resolve-stdio.test.d.ts +0 -2
  312. package/dist/core/mcp/resolve-stdio.test.d.ts.map +0 -1
  313. package/dist/core/mcp/resolve-stdio.test.js +0 -239
  314. package/dist/core/mcp/resolve-stdio.test.js.map +0 -1
  315. package/dist/core/mcp/session-elicitation-wiring.test.d.ts +0 -2
  316. package/dist/core/mcp/session-elicitation-wiring.test.d.ts.map +0 -1
  317. package/dist/core/mcp/session-elicitation-wiring.test.js +0 -138
  318. package/dist/core/mcp/session-elicitation-wiring.test.js.map +0 -1
  319. package/dist/core/mcp/shared-pool.test.d.ts +0 -2
  320. package/dist/core/mcp/shared-pool.test.d.ts.map +0 -1
  321. package/dist/core/mcp/shared-pool.test.js +0 -425
  322. package/dist/core/mcp/shared-pool.test.js.map +0 -1
  323. package/dist/core/mcp/store.test.d.ts +0 -2
  324. package/dist/core/mcp/store.test.d.ts.map +0 -1
  325. package/dist/core/mcp/store.test.js +0 -110
  326. package/dist/core/mcp/store.test.js.map +0 -1
  327. package/dist/core/mcp/when-connected.test.d.ts +0 -2
  328. package/dist/core/mcp/when-connected.test.d.ts.map +0 -1
  329. package/dist/core/mcp/when-connected.test.js +0 -46
  330. package/dist/core/mcp/when-connected.test.js.map +0 -1
  331. package/dist/core/message-images.test.d.ts +0 -2
  332. package/dist/core/message-images.test.d.ts.map +0 -1
  333. package/dist/core/message-images.test.js +0 -62
  334. package/dist/core/message-images.test.js.map +0 -1
  335. package/dist/core/network-guard.test.d.ts +0 -2
  336. package/dist/core/network-guard.test.d.ts.map +0 -1
  337. package/dist/core/network-guard.test.js +0 -72
  338. package/dist/core/network-guard.test.js.map +0 -1
  339. package/dist/core/persistent-shell.test.d.ts +0 -2
  340. package/dist/core/persistent-shell.test.d.ts.map +0 -1
  341. package/dist/core/persistent-shell.test.js +0 -84
  342. package/dist/core/persistent-shell.test.js.map +0 -1
  343. package/dist/core/process-gate.test.d.ts +0 -2
  344. package/dist/core/process-gate.test.d.ts.map +0 -1
  345. package/dist/core/process-gate.test.js +0 -87
  346. package/dist/core/process-gate.test.js.map +0 -1
  347. package/dist/core/process-manager-dev-server-repro.test.d.ts +0 -2
  348. package/dist/core/process-manager-dev-server-repro.test.d.ts.map +0 -1
  349. package/dist/core/process-manager-dev-server-repro.test.js +0 -225
  350. package/dist/core/process-manager-dev-server-repro.test.js.map +0 -1
  351. package/dist/core/process-manager-notifications.test.d.ts +0 -2
  352. package/dist/core/process-manager-notifications.test.d.ts.map +0 -1
  353. package/dist/core/process-manager-notifications.test.js +0 -245
  354. package/dist/core/process-manager-notifications.test.js.map +0 -1
  355. package/dist/core/process-manager-wake.test.d.ts +0 -2
  356. package/dist/core/process-manager-wake.test.d.ts.map +0 -1
  357. package/dist/core/process-manager-wake.test.js +0 -100
  358. package/dist/core/process-manager-wake.test.js.map +0 -1
  359. package/dist/core/progress/engine.test.d.ts +0 -2
  360. package/dist/core/progress/engine.test.d.ts.map +0 -1
  361. package/dist/core/progress/engine.test.js +0 -136
  362. package/dist/core/progress/engine.test.js.map +0 -1
  363. package/dist/core/progress/git-xp.test.d.ts +0 -2
  364. package/dist/core/progress/git-xp.test.d.ts.map +0 -1
  365. package/dist/core/progress/git-xp.test.js +0 -88
  366. package/dist/core/progress/git-xp.test.js.map +0 -1
  367. package/dist/core/progress/ranks.test.d.ts +0 -2
  368. package/dist/core/progress/ranks.test.d.ts.map +0 -1
  369. package/dist/core/progress/ranks.test.js +0 -100
  370. package/dist/core/progress/ranks.test.js.map +0 -1
  371. package/dist/core/progress/rebuild.test.d.ts +0 -2
  372. package/dist/core/progress/rebuild.test.d.ts.map +0 -1
  373. package/dist/core/progress/rebuild.test.js +0 -103
  374. package/dist/core/progress/rebuild.test.js.map +0 -1
  375. package/dist/core/progress/store.test.d.ts +0 -2
  376. package/dist/core/progress/store.test.d.ts.map +0 -1
  377. package/dist/core/progress/store.test.js +0 -108
  378. package/dist/core/progress/store.test.js.map +0 -1
  379. package/dist/core/project-discovery.test.d.ts +0 -2
  380. package/dist/core/project-discovery.test.d.ts.map +0 -1
  381. package/dist/core/project-discovery.test.js +0 -519
  382. package/dist/core/project-discovery.test.js.map +0 -1
  383. package/dist/core/prompt-commands.test.d.ts +0 -2
  384. package/dist/core/prompt-commands.test.d.ts.map +0 -1
  385. package/dist/core/prompt-commands.test.js +0 -180
  386. package/dist/core/prompt-commands.test.js.map +0 -1
  387. package/dist/core/provider-cache.e2e.test.d.ts +0 -2
  388. package/dist/core/provider-cache.e2e.test.d.ts.map +0 -1
  389. package/dist/core/provider-cache.e2e.test.js +0 -125
  390. package/dist/core/provider-cache.e2e.test.js.map +0 -1
  391. package/dist/core/radio.test.d.ts +0 -2
  392. package/dist/core/radio.test.d.ts.map +0 -1
  393. package/dist/core/radio.test.js +0 -117
  394. package/dist/core/radio.test.js.map +0 -1
  395. package/dist/core/regrounding.test.d.ts +0 -2
  396. package/dist/core/regrounding.test.d.ts.map +0 -1
  397. package/dist/core/regrounding.test.js +0 -38
  398. package/dist/core/regrounding.test.js.map +0 -1
  399. package/dist/core/resolve-start.test.d.ts +0 -2
  400. package/dist/core/resolve-start.test.d.ts.map +0 -1
  401. package/dist/core/resolve-start.test.js +0 -68
  402. package/dist/core/resolve-start.test.js.map +0 -1
  403. package/dist/core/run-claim.test.d.ts +0 -2
  404. package/dist/core/run-claim.test.d.ts.map +0 -1
  405. package/dist/core/run-claim.test.js +0 -107
  406. package/dist/core/run-claim.test.js.map +0 -1
  407. package/dist/core/run-journal.test.d.ts +0 -2
  408. package/dist/core/run-journal.test.d.ts.map +0 -1
  409. package/dist/core/run-journal.test.js +0 -195
  410. package/dist/core/run-journal.test.js.map +0 -1
  411. package/dist/core/run-lifecycle.test.d.ts +0 -2
  412. package/dist/core/run-lifecycle.test.d.ts.map +0 -1
  413. package/dist/core/run-lifecycle.test.js +0 -64
  414. package/dist/core/run-lifecycle.test.js.map +0 -1
  415. package/dist/core/sandbox-feedback.test.d.ts +0 -2
  416. package/dist/core/sandbox-feedback.test.d.ts.map +0 -1
  417. package/dist/core/sandbox-feedback.test.js +0 -32
  418. package/dist/core/sandbox-feedback.test.js.map +0 -1
  419. package/dist/core/sandbox.test.d.ts +0 -2
  420. package/dist/core/sandbox.test.d.ts.map +0 -1
  421. package/dist/core/sandbox.test.js +0 -288
  422. package/dist/core/sandbox.test.js.map +0 -1
  423. package/dist/core/semantic-search-benchmark.test.d.ts +0 -2
  424. package/dist/core/semantic-search-benchmark.test.d.ts.map +0 -1
  425. package/dist/core/semantic-search-benchmark.test.js +0 -89
  426. package/dist/core/semantic-search-benchmark.test.js.map +0 -1
  427. package/dist/core/session-compaction.test.d.ts +0 -2
  428. package/dist/core/session-compaction.test.d.ts.map +0 -1
  429. package/dist/core/session-compaction.test.js +0 -92
  430. package/dist/core/session-compaction.test.js.map +0 -1
  431. package/dist/core/session-export.test.d.ts +0 -2
  432. package/dist/core/session-export.test.d.ts.map +0 -1
  433. package/dist/core/session-export.test.js +0 -353
  434. package/dist/core/session-export.test.js.map +0 -1
  435. package/dist/core/session-history.test.d.ts +0 -2
  436. package/dist/core/session-history.test.d.ts.map +0 -1
  437. package/dist/core/session-history.test.js +0 -272
  438. package/dist/core/session-history.test.js.map +0 -1
  439. package/dist/core/session-injections.test.d.ts +0 -2
  440. package/dist/core/session-injections.test.d.ts.map +0 -1
  441. package/dist/core/session-injections.test.js +0 -117
  442. package/dist/core/session-injections.test.js.map +0 -1
  443. package/dist/core/session-manager.test.d.ts +0 -2
  444. package/dist/core/session-manager.test.d.ts.map +0 -1
  445. package/dist/core/session-manager.test.js +0 -571
  446. package/dist/core/session-manager.test.js.map +0 -1
  447. package/dist/core/session-notification-visibility.test.d.ts +0 -2
  448. package/dist/core/session-notification-visibility.test.d.ts.map +0 -1
  449. package/dist/core/session-notification-visibility.test.js +0 -113
  450. package/dist/core/session-notification-visibility.test.js.map +0 -1
  451. package/dist/core/session-reconstructability.test.d.ts +0 -2
  452. package/dist/core/session-reconstructability.test.d.ts.map +0 -1
  453. package/dist/core/session-reconstructability.test.js +0 -105
  454. package/dist/core/session-reconstructability.test.js.map +0 -1
  455. package/dist/core/session-restore-display.test.d.ts +0 -2
  456. package/dist/core/session-restore-display.test.d.ts.map +0 -1
  457. package/dist/core/session-restore-display.test.js +0 -103
  458. package/dist/core/session-restore-display.test.js.map +0 -1
  459. package/dist/core/session-storage-fd-leak.test.d.ts +0 -2
  460. package/dist/core/session-storage-fd-leak.test.d.ts.map +0 -1
  461. package/dist/core/session-storage-fd-leak.test.js +0 -116
  462. package/dist/core/session-storage-fd-leak.test.js.map +0 -1
  463. package/dist/core/session-storage.test.d.ts +0 -2
  464. package/dist/core/session-storage.test.d.ts.map +0 -1
  465. package/dist/core/session-storage.test.js +0 -277
  466. package/dist/core/session-storage.test.js.map +0 -1
  467. package/dist/core/setup-history.test.d.ts +0 -2
  468. package/dist/core/setup-history.test.d.ts.map +0 -1
  469. package/dist/core/setup-history.test.js +0 -59
  470. package/dist/core/setup-history.test.js.map +0 -1
  471. package/dist/core/shell.test.d.ts +0 -2
  472. package/dist/core/shell.test.d.ts.map +0 -1
  473. package/dist/core/shell.test.js +0 -87
  474. package/dist/core/shell.test.js.map +0 -1
  475. package/dist/core/shutdown.test.d.ts +0 -2
  476. package/dist/core/shutdown.test.d.ts.map +0 -1
  477. package/dist/core/shutdown.test.js +0 -160
  478. package/dist/core/shutdown.test.js.map +0 -1
  479. package/dist/core/sidecar-error-reporter.test.d.ts +0 -2
  480. package/dist/core/sidecar-error-reporter.test.d.ts.map +0 -1
  481. package/dist/core/sidecar-error-reporter.test.js +0 -61
  482. package/dist/core/sidecar-error-reporter.test.js.map +0 -1
  483. package/dist/core/skills-routing.test.d.ts +0 -2
  484. package/dist/core/skills-routing.test.d.ts.map +0 -1
  485. package/dist/core/skills-routing.test.js +0 -310
  486. package/dist/core/skills-routing.test.js.map +0 -1
  487. package/dist/core/slash-commands.test.d.ts +0 -2
  488. package/dist/core/slash-commands.test.d.ts.map +0 -1
  489. package/dist/core/slash-commands.test.js +0 -59
  490. package/dist/core/slash-commands.test.js.map +0 -1
  491. package/dist/core/source-maps.test.d.ts +0 -2
  492. package/dist/core/source-maps.test.d.ts.map +0 -1
  493. package/dist/core/source-maps.test.js +0 -175
  494. package/dist/core/source-maps.test.js.map +0 -1
  495. package/dist/core/speed-benchmark.test.d.ts +0 -2
  496. package/dist/core/speed-benchmark.test.d.ts.map +0 -1
  497. package/dist/core/speed-benchmark.test.js +0 -102
  498. package/dist/core/speed-benchmark.test.js.map +0 -1
  499. package/dist/core/subagent-manager.test.d.ts +0 -2
  500. package/dist/core/subagent-manager.test.d.ts.map +0 -1
  501. package/dist/core/subagent-manager.test.js +0 -536
  502. package/dist/core/subagent-manager.test.js.map +0 -1
  503. package/dist/core/subagent-store.test.d.ts +0 -2
  504. package/dist/core/subagent-store.test.d.ts.map +0 -1
  505. package/dist/core/subagent-store.test.js +0 -106
  506. package/dist/core/subagent-store.test.js.map +0 -1
  507. package/dist/core/subagent-turn-record.test.d.ts +0 -2
  508. package/dist/core/subagent-turn-record.test.d.ts.map +0 -1
  509. package/dist/core/subagent-turn-record.test.js +0 -70
  510. package/dist/core/subagent-turn-record.test.js.map +0 -1
  511. package/dist/core/verification-evidence.test.d.ts +0 -2
  512. package/dist/core/verification-evidence.test.d.ts.map +0 -1
  513. package/dist/core/verification-evidence.test.js +0 -103
  514. package/dist/core/verification-evidence.test.js.map +0 -1
  515. package/dist/core/verification-gate.test.d.ts +0 -2
  516. package/dist/core/verification-gate.test.d.ts.map +0 -1
  517. package/dist/core/verification-gate.test.js +0 -138
  518. package/dist/core/verification-gate.test.js.map +0 -1
  519. package/dist/core/verify-commands.test.d.ts +0 -2
  520. package/dist/core/verify-commands.test.d.ts.map +0 -1
  521. package/dist/core/verify-commands.test.js +0 -81
  522. package/dist/core/verify-commands.test.js.map +0 -1
  523. package/dist/core/workspace-guard.test.d.ts +0 -2
  524. package/dist/core/workspace-guard.test.d.ts.map +0 -1
  525. package/dist/core/workspace-guard.test.js +0 -107
  526. package/dist/core/workspace-guard.test.js.map +0 -1
  527. package/dist/hf-pull.test.d.ts +0 -2
  528. package/dist/hf-pull.test.d.ts.map +0 -1
  529. package/dist/hf-pull.test.js +0 -112
  530. package/dist/hf-pull.test.js.map +0 -1
  531. package/dist/modes/acp-mode.test.d.ts +0 -2
  532. package/dist/modes/acp-mode.test.d.ts.map +0 -1
  533. package/dist/modes/acp-mode.test.js +0 -1067
  534. package/dist/modes/acp-mode.test.js.map +0 -1
  535. package/dist/modes/json-mode.test.d.ts +0 -2
  536. package/dist/modes/json-mode.test.d.ts.map +0 -1
  537. package/dist/modes/json-mode.test.js +0 -84
  538. package/dist/modes/json-mode.test.js.map +0 -1
  539. package/dist/modes/subagent-worker-mode.test.d.ts +0 -2
  540. package/dist/modes/subagent-worker-mode.test.d.ts.map +0 -1
  541. package/dist/modes/subagent-worker-mode.test.js +0 -52
  542. package/dist/modes/subagent-worker-mode.test.js.map +0 -1
  543. package/dist/session.test.d.ts +0 -2
  544. package/dist/session.test.d.ts.map +0 -1
  545. package/dist/session.test.js +0 -35
  546. package/dist/session.test.js.map +0 -1
  547. package/dist/system-prompt.test.d.ts +0 -2
  548. package/dist/system-prompt.test.d.ts.map +0 -1
  549. package/dist/system-prompt.test.js +0 -684
  550. package/dist/system-prompt.test.js.map +0 -1
  551. package/dist/system-prompt.tiering.test.d.ts +0 -2
  552. package/dist/system-prompt.tiering.test.d.ts.map +0 -1
  553. package/dist/system-prompt.tiering.test.js +0 -112
  554. package/dist/system-prompt.tiering.test.js.map +0 -1
  555. package/dist/tools/bash.test.d.ts +0 -2
  556. package/dist/tools/bash.test.d.ts.map +0 -1
  557. package/dist/tools/bash.test.js +0 -248
  558. package/dist/tools/bash.test.js.map +0 -1
  559. package/dist/tools/checkpoint-hook.test.d.ts +0 -2
  560. package/dist/tools/checkpoint-hook.test.d.ts.map +0 -1
  561. package/dist/tools/checkpoint-hook.test.js +0 -65
  562. package/dist/tools/checkpoint-hook.test.js.map +0 -1
  563. package/dist/tools/code-nav.test.d.ts +0 -2
  564. package/dist/tools/code-nav.test.d.ts.map +0 -1
  565. package/dist/tools/code-nav.test.js +0 -136
  566. package/dist/tools/code-nav.test.js.map +0 -1
  567. package/dist/tools/code-skeleton.test.d.ts +0 -2
  568. package/dist/tools/code-skeleton.test.d.ts.map +0 -1
  569. package/dist/tools/code-skeleton.test.js +0 -115
  570. package/dist/tools/code-skeleton.test.js.map +0 -1
  571. package/dist/tools/compress-integration.test.d.ts +0 -2
  572. package/dist/tools/compress-integration.test.d.ts.map +0 -1
  573. package/dist/tools/compress-integration.test.js +0 -59
  574. package/dist/tools/compress-integration.test.js.map +0 -1
  575. package/dist/tools/compress.test.d.ts +0 -2
  576. package/dist/tools/compress.test.d.ts.map +0 -1
  577. package/dist/tools/compress.test.js +0 -60
  578. package/dist/tools/compress.test.js.map +0 -1
  579. package/dist/tools/edit-diff.test.d.ts +0 -2
  580. package/dist/tools/edit-diff.test.d.ts.map +0 -1
  581. package/dist/tools/edit-diff.test.js +0 -329
  582. package/dist/tools/edit-diff.test.js.map +0 -1
  583. package/dist/tools/edit-robustness.test.d.ts +0 -2
  584. package/dist/tools/edit-robustness.test.d.ts.map +0 -1
  585. package/dist/tools/edit-robustness.test.js +0 -417
  586. package/dist/tools/edit-robustness.test.js.map +0 -1
  587. package/dist/tools/edit.test.d.ts +0 -2
  588. package/dist/tools/edit.test.d.ts.map +0 -1
  589. package/dist/tools/edit.test.js +0 -1037
  590. package/dist/tools/edit.test.js.map +0 -1
  591. package/dist/tools/exit-plan.test.d.ts +0 -2
  592. package/dist/tools/exit-plan.test.d.ts.map +0 -1
  593. package/dist/tools/exit-plan.test.js +0 -72
  594. package/dist/tools/exit-plan.test.js.map +0 -1
  595. package/dist/tools/generate-image.test.d.ts +0 -2
  596. package/dist/tools/generate-image.test.d.ts.map +0 -1
  597. package/dist/tools/generate-image.test.js +0 -240
  598. package/dist/tools/generate-image.test.js.map +0 -1
  599. package/dist/tools/grep-parity.test.d.ts +0 -2
  600. package/dist/tools/grep-parity.test.d.ts.map +0 -1
  601. package/dist/tools/grep-parity.test.js +0 -92
  602. package/dist/tools/grep-parity.test.js.map +0 -1
  603. package/dist/tools/grep-recall.test.d.ts +0 -2
  604. package/dist/tools/grep-recall.test.d.ts.map +0 -1
  605. package/dist/tools/grep-recall.test.js +0 -114
  606. package/dist/tools/grep-recall.test.js.map +0 -1
  607. package/dist/tools/grep-spawn.test.d.ts +0 -2
  608. package/dist/tools/grep-spawn.test.d.ts.map +0 -1
  609. package/dist/tools/grep-spawn.test.js +0 -66
  610. package/dist/tools/grep-spawn.test.js.map +0 -1
  611. package/dist/tools/grep.test.d.ts +0 -2
  612. package/dist/tools/grep.test.d.ts.map +0 -1
  613. package/dist/tools/grep.test.js +0 -82
  614. package/dist/tools/grep.test.js.map +0 -1
  615. package/dist/tools/html-extract.test.d.ts +0 -2
  616. package/dist/tools/html-extract.test.d.ts.map +0 -1
  617. package/dist/tools/html-extract.test.js +0 -60
  618. package/dist/tools/html-extract.test.js.map +0 -1
  619. package/dist/tools/index.test.d.ts +0 -2
  620. package/dist/tools/index.test.d.ts.map +0 -1
  621. package/dist/tools/index.test.js +0 -55
  622. package/dist/tools/index.test.js.map +0 -1
  623. package/dist/tools/overflow.test.d.ts +0 -2
  624. package/dist/tools/overflow.test.d.ts.map +0 -1
  625. package/dist/tools/overflow.test.js +0 -59
  626. package/dist/tools/overflow.test.js.map +0 -1
  627. package/dist/tools/path-utils.test.d.ts +0 -2
  628. package/dist/tools/path-utils.test.d.ts.map +0 -1
  629. package/dist/tools/path-utils.test.js +0 -110
  630. package/dist/tools/path-utils.test.js.map +0 -1
  631. package/dist/tools/pdf-extract.test.d.ts +0 -2
  632. package/dist/tools/pdf-extract.test.d.ts.map +0 -1
  633. package/dist/tools/pdf-extract.test.js +0 -15
  634. package/dist/tools/pdf-extract.test.js.map +0 -1
  635. package/dist/tools/plan-mode.test.d.ts +0 -2
  636. package/dist/tools/plan-mode.test.d.ts.map +0 -1
  637. package/dist/tools/plan-mode.test.js +0 -91
  638. package/dist/tools/plan-mode.test.js.map +0 -1
  639. package/dist/tools/read-only-bash.test.d.ts +0 -2
  640. package/dist/tools/read-only-bash.test.d.ts.map +0 -1
  641. package/dist/tools/read-only-bash.test.js +0 -96
  642. package/dist/tools/read-only-bash.test.js.map +0 -1
  643. package/dist/tools/read.test.d.ts +0 -2
  644. package/dist/tools/read.test.d.ts.map +0 -1
  645. package/dist/tools/read.test.js +0 -146
  646. package/dist/tools/read.test.js.map +0 -1
  647. package/dist/tools/screenshot.test.d.ts +0 -2
  648. package/dist/tools/screenshot.test.d.ts.map +0 -1
  649. package/dist/tools/screenshot.test.js +0 -145
  650. package/dist/tools/screenshot.test.js.map +0 -1
  651. package/dist/tools/search-code.test.d.ts +0 -2
  652. package/dist/tools/search-code.test.d.ts.map +0 -1
  653. package/dist/tools/search-code.test.js +0 -83
  654. package/dist/tools/search-code.test.js.map +0 -1
  655. package/dist/tools/source-path.test.d.ts +0 -2
  656. package/dist/tools/source-path.test.d.ts.map +0 -1
  657. package/dist/tools/source-path.test.js +0 -80
  658. package/dist/tools/source-path.test.js.map +0 -1
  659. package/dist/tools/subagent-control.test.d.ts +0 -2
  660. package/dist/tools/subagent-control.test.d.ts.map +0 -1
  661. package/dist/tools/subagent-control.test.js +0 -73
  662. package/dist/tools/subagent-control.test.js.map +0 -1
  663. package/dist/tools/subagent-shared.test.d.ts +0 -2
  664. package/dist/tools/subagent-shared.test.d.ts.map +0 -1
  665. package/dist/tools/subagent-shared.test.js +0 -83
  666. package/dist/tools/subagent-shared.test.js.map +0 -1
  667. package/dist/tools/subagent.test.d.ts +0 -2
  668. package/dist/tools/subagent.test.d.ts.map +0 -1
  669. package/dist/tools/subagent.test.js +0 -180
  670. package/dist/tools/subagent.test.js.map +0 -1
  671. package/dist/tools/task-send.test.d.ts +0 -2
  672. package/dist/tools/task-send.test.d.ts.map +0 -1
  673. package/dist/tools/task-send.test.js +0 -104
  674. package/dist/tools/task-send.test.js.map +0 -1
  675. package/dist/tools/tool-catalog.test.d.ts +0 -2
  676. package/dist/tools/tool-catalog.test.d.ts.map +0 -1
  677. package/dist/tools/tool-catalog.test.js +0 -124
  678. package/dist/tools/tool-catalog.test.js.map +0 -1
  679. package/dist/tools/tool-search.test.d.ts +0 -2
  680. package/dist/tools/tool-search.test.d.ts.map +0 -1
  681. package/dist/tools/tool-search.test.js +0 -127
  682. package/dist/tools/tool-search.test.js.map +0 -1
  683. package/dist/tools/tool-tiers.test.d.ts +0 -2
  684. package/dist/tools/tool-tiers.test.d.ts.map +0 -1
  685. package/dist/tools/tool-tiers.test.js +0 -48
  686. package/dist/tools/tool-tiers.test.js.map +0 -1
  687. package/dist/tools/truncate-utils.test.d.ts +0 -2
  688. package/dist/tools/truncate-utils.test.d.ts.map +0 -1
  689. package/dist/tools/truncate-utils.test.js +0 -93
  690. package/dist/tools/truncate-utils.test.js.map +0 -1
  691. package/dist/tools/truncate.test.d.ts +0 -2
  692. package/dist/tools/truncate.test.d.ts.map +0 -1
  693. package/dist/tools/truncate.test.js +0 -100
  694. package/dist/tools/truncate.test.js.map +0 -1
  695. package/dist/tools/web-fetch.test.d.ts +0 -2
  696. package/dist/tools/web-fetch.test.d.ts.map +0 -1
  697. package/dist/tools/web-fetch.test.js +0 -692
  698. package/dist/tools/web-fetch.test.js.map +0 -1
  699. package/dist/tools/web-search.test.d.ts +0 -2
  700. package/dist/tools/web-search.test.d.ts.map +0 -1
  701. package/dist/tools/web-search.test.js +0 -333
  702. package/dist/tools/web-search.test.js.map +0 -1
  703. package/dist/tools/write.test.d.ts +0 -2
  704. package/dist/tools/write.test.d.ts.map +0 -1
  705. package/dist/tools/write.test.js +0 -176
  706. package/dist/tools/write.test.js.map +0 -1
  707. package/dist/ui/anchor-pad-reclaim.test.d.ts +0 -2
  708. package/dist/ui/anchor-pad-reclaim.test.d.ts.map +0 -1
  709. package/dist/ui/anchor-pad-reclaim.test.js +0 -146
  710. package/dist/ui/anchor-pad-reclaim.test.js.map +0 -1
  711. package/dist/ui/app-items.test.d.ts +0 -2
  712. package/dist/ui/app-items.test.d.ts.map +0 -1
  713. package/dist/ui/app-items.test.js +0 -54
  714. package/dist/ui/app-items.test.js.map +0 -1
  715. package/dist/ui/app-state-persistence.test.d.ts +0 -2
  716. package/dist/ui/app-state-persistence.test.d.ts.map +0 -1
  717. package/dist/ui/app-state-persistence.test.js +0 -71
  718. package/dist/ui/app-state-persistence.test.js.map +0 -1
  719. package/dist/ui/assistant-stream-flush-parity.test.d.ts +0 -2
  720. package/dist/ui/assistant-stream-flush-parity.test.d.ts.map +0 -1
  721. package/dist/ui/assistant-stream-flush-parity.test.js +0 -85
  722. package/dist/ui/assistant-stream-flush-parity.test.js.map +0 -1
  723. package/dist/ui/atomic-flush-regression.test.d.ts +0 -2
  724. package/dist/ui/atomic-flush-regression.test.d.ts.map +0 -1
  725. package/dist/ui/atomic-flush-regression.test.js +0 -218
  726. package/dist/ui/atomic-flush-regression.test.js.map +0 -1
  727. package/dist/ui/chat-layout-pinning.test.d.ts +0 -2
  728. package/dist/ui/chat-layout-pinning.test.d.ts.map +0 -1
  729. package/dist/ui/chat-layout-pinning.test.js +0 -525
  730. package/dist/ui/chat-layout-pinning.test.js.map +0 -1
  731. package/dist/ui/components/ActivityIndicator.test.d.ts +0 -2
  732. package/dist/ui/components/ActivityIndicator.test.d.ts.map +0 -1
  733. package/dist/ui/components/ActivityIndicator.test.js +0 -40
  734. package/dist/ui/components/ActivityIndicator.test.js.map +0 -1
  735. package/dist/ui/components/AssistantMessage.test.d.ts +0 -2
  736. package/dist/ui/components/AssistantMessage.test.d.ts.map +0 -1
  737. package/dist/ui/components/AssistantMessage.test.js +0 -418
  738. package/dist/ui/components/AssistantMessage.test.js.map +0 -1
  739. package/dist/ui/components/Footer.test.d.ts +0 -2
  740. package/dist/ui/components/Footer.test.d.ts.map +0 -1
  741. package/dist/ui/components/Footer.test.js +0 -16
  742. package/dist/ui/components/Footer.test.js.map +0 -1
  743. package/dist/ui/components/InputArea.test.d.ts +0 -2
  744. package/dist/ui/components/InputArea.test.d.ts.map +0 -1
  745. package/dist/ui/components/InputArea.test.js +0 -95
  746. package/dist/ui/components/InputArea.test.js.map +0 -1
  747. package/dist/ui/components/PlanOverlay.test.d.ts +0 -2
  748. package/dist/ui/components/PlanOverlay.test.d.ts.map +0 -1
  749. package/dist/ui/components/PlanOverlay.test.js +0 -24
  750. package/dist/ui/components/PlanOverlay.test.js.map +0 -1
  751. package/dist/ui/components/StreamingArea.test.d.ts +0 -2
  752. package/dist/ui/components/StreamingArea.test.d.ts.map +0 -1
  753. package/dist/ui/components/StreamingArea.test.js +0 -18
  754. package/dist/ui/components/StreamingArea.test.js.map +0 -1
  755. package/dist/ui/components/UserMessage.test.d.ts +0 -2
  756. package/dist/ui/components/UserMessage.test.d.ts.map +0 -1
  757. package/dist/ui/components/UserMessage.test.js +0 -39
  758. package/dist/ui/components/UserMessage.test.js.map +0 -1
  759. package/dist/ui/components/themed-output.test.d.ts +0 -2
  760. package/dist/ui/components/themed-output.test.d.ts.map +0 -1
  761. package/dist/ui/components/themed-output.test.js +0 -111
  762. package/dist/ui/components/themed-output.test.js.map +0 -1
  763. package/dist/ui/footer-jump-regression.test.d.ts +0 -2
  764. package/dist/ui/footer-jump-regression.test.d.ts.map +0 -1
  765. package/dist/ui/footer-jump-regression.test.js +0 -224
  766. package/dist/ui/footer-jump-regression.test.js.map +0 -1
  767. package/dist/ui/footer-status-layout.test.d.ts +0 -2
  768. package/dist/ui/footer-status-layout.test.d.ts.map +0 -1
  769. package/dist/ui/footer-status-layout.test.js +0 -71
  770. package/dist/ui/footer-status-layout.test.js.map +0 -1
  771. package/dist/ui/frame-clip-regression.test.d.ts +0 -2
  772. package/dist/ui/frame-clip-regression.test.d.ts.map +0 -1
  773. package/dist/ui/frame-clip-regression.test.js +0 -215
  774. package/dist/ui/frame-clip-regression.test.js.map +0 -1
  775. package/dist/ui/hooks/stall-retry-duplicate.test.d.ts +0 -2
  776. package/dist/ui/hooks/stall-retry-duplicate.test.d.ts.map +0 -1
  777. package/dist/ui/hooks/stall-retry-duplicate.test.js +0 -94
  778. package/dist/ui/hooks/stall-retry-duplicate.test.js.map +0 -1
  779. package/dist/ui/hooks/useAgentLoop.test.d.ts +0 -2
  780. package/dist/ui/hooks/useAgentLoop.test.d.ts.map +0 -1
  781. package/dist/ui/hooks/useAgentLoop.test.js +0 -66
  782. package/dist/ui/hooks/useAgentLoop.test.js.map +0 -1
  783. package/dist/ui/hooks/useContextCompaction.test.d.ts +0 -2
  784. package/dist/ui/hooks/useContextCompaction.test.d.ts.map +0 -1
  785. package/dist/ui/hooks/useContextCompaction.test.js +0 -135
  786. package/dist/ui/hooks/useContextCompaction.test.js.map +0 -1
  787. package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.d.ts +0 -2
  788. package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.d.ts.map +0 -1
  789. package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.js +0 -81
  790. package/dist/ui/hooks/useTranscriptHistory.sessionstore.test.js.map +0 -1
  791. package/dist/ui/hooks/useTranscriptHistory.test.d.ts +0 -2
  792. package/dist/ui/hooks/useTranscriptHistory.test.d.ts.map +0 -1
  793. package/dist/ui/hooks/useTranscriptHistory.test.js +0 -61
  794. package/dist/ui/hooks/useTranscriptHistory.test.js.map +0 -1
  795. package/dist/ui/hooks/useTranscriptScroll.test.d.ts +0 -2
  796. package/dist/ui/hooks/useTranscriptScroll.test.d.ts.map +0 -1
  797. package/dist/ui/hooks/useTranscriptScroll.test.js +0 -119
  798. package/dist/ui/hooks/useTranscriptScroll.test.js.map +0 -1
  799. package/dist/ui/live-area-clamp.test.d.ts +0 -2
  800. package/dist/ui/live-area-clamp.test.d.ts.map +0 -1
  801. package/dist/ui/live-area-clamp.test.js +0 -125
  802. package/dist/ui/live-area-clamp.test.js.map +0 -1
  803. package/dist/ui/live-area-height.test.d.ts +0 -2
  804. package/dist/ui/live-area-height.test.d.ts.map +0 -1
  805. package/dist/ui/live-area-height.test.js +0 -76
  806. package/dist/ui/live-area-height.test.js.map +0 -1
  807. package/dist/ui/live-frame-height.test.d.ts +0 -2
  808. package/dist/ui/live-frame-height.test.d.ts.map +0 -1
  809. package/dist/ui/live-frame-height.test.js +0 -116
  810. package/dist/ui/live-frame-height.test.js.map +0 -1
  811. package/dist/ui/live-item-flush.test.d.ts +0 -2
  812. package/dist/ui/live-item-flush.test.d.ts.map +0 -1
  813. package/dist/ui/live-item-flush.test.js +0 -437
  814. package/dist/ui/live-item-flush.test.js.map +0 -1
  815. package/dist/ui/long-prompt-regression-harness.test.d.ts +0 -2
  816. package/dist/ui/long-prompt-regression-harness.test.d.ts.map +0 -1
  817. package/dist/ui/long-prompt-regression-harness.test.js +0 -195
  818. package/dist/ui/long-prompt-regression-harness.test.js.map +0 -1
  819. package/dist/ui/plan-overlay.test.d.ts +0 -2
  820. package/dist/ui/plan-overlay.test.d.ts.map +0 -1
  821. package/dist/ui/plan-overlay.test.js +0 -305
  822. package/dist/ui/plan-overlay.test.js.map +0 -1
  823. package/dist/ui/queued-message.test.d.ts +0 -2
  824. package/dist/ui/queued-message.test.d.ts.map +0 -1
  825. package/dist/ui/queued-message.test.js +0 -172
  826. package/dist/ui/queued-message.test.js.map +0 -1
  827. package/dist/ui/render.test.d.ts +0 -2
  828. package/dist/ui/render.test.d.ts.map +0 -1
  829. package/dist/ui/render.test.js +0 -42
  830. package/dist/ui/render.test.js.map +0 -1
  831. package/dist/ui/scroll-stabilization.test.d.ts +0 -2
  832. package/dist/ui/scroll-stabilization.test.d.ts.map +0 -1
  833. package/dist/ui/scroll-stabilization.test.js +0 -64
  834. package/dist/ui/scroll-stabilization.test.js.map +0 -1
  835. package/dist/ui/slash-command-images.test.d.ts +0 -2
  836. package/dist/ui/slash-command-images.test.d.ts.map +0 -1
  837. package/dist/ui/slash-command-images.test.js +0 -110
  838. package/dist/ui/slash-command-images.test.js.map +0 -1
  839. package/dist/ui/startup-banner-order.test.d.ts +0 -2
  840. package/dist/ui/startup-banner-order.test.d.ts.map +0 -1
  841. package/dist/ui/startup-banner-order.test.js +0 -105
  842. package/dist/ui/startup-banner-order.test.js.map +0 -1
  843. package/dist/ui/stores/transcript-scroll-store.test.d.ts +0 -2
  844. package/dist/ui/stores/transcript-scroll-store.test.d.ts.map +0 -1
  845. package/dist/ui/stores/transcript-scroll-store.test.js +0 -73
  846. package/dist/ui/stores/transcript-scroll-store.test.js.map +0 -1
  847. package/dist/ui/streaming-flush-bounce.test.d.ts +0 -2
  848. package/dist/ui/streaming-flush-bounce.test.d.ts.map +0 -1
  849. package/dist/ui/streaming-flush-bounce.test.js +0 -177
  850. package/dist/ui/streaming-flush-bounce.test.js.map +0 -1
  851. package/dist/ui/submit-boundary-gap.test.d.ts +0 -2
  852. package/dist/ui/submit-boundary-gap.test.d.ts.map +0 -1
  853. package/dist/ui/submit-boundary-gap.test.js +0 -180
  854. package/dist/ui/submit-boundary-gap.test.js.map +0 -1
  855. package/dist/ui/terminal-history-repaint.test.d.ts +0 -2
  856. package/dist/ui/terminal-history-repaint.test.d.ts.map +0 -1
  857. package/dist/ui/terminal-history-repaint.test.js +0 -73
  858. package/dist/ui/terminal-history-repaint.test.js.map +0 -1
  859. package/dist/ui/terminal-history-retry-dedup.test.d.ts +0 -2
  860. package/dist/ui/terminal-history-retry-dedup.test.d.ts.map +0 -1
  861. package/dist/ui/terminal-history-retry-dedup.test.js +0 -61
  862. package/dist/ui/terminal-history-retry-dedup.test.js.map +0 -1
  863. package/dist/ui/terminal-history.test.d.ts +0 -2
  864. package/dist/ui/terminal-history.test.d.ts.map +0 -1
  865. package/dist/ui/terminal-history.test.js +0 -557
  866. package/dist/ui/terminal-history.test.js.map +0 -1
  867. package/dist/ui/thinking-level-cycle.test.d.ts +0 -2
  868. package/dist/ui/thinking-level-cycle.test.d.ts.map +0 -1
  869. package/dist/ui/thinking-level-cycle.test.js +0 -45
  870. package/dist/ui/thinking-level-cycle.test.js.map +0 -1
  871. package/dist/ui/tool-group-summary.test.d.ts +0 -2
  872. package/dist/ui/tool-group-summary.test.d.ts.map +0 -1
  873. package/dist/ui/tool-group-summary.test.js +0 -79
  874. package/dist/ui/tool-group-summary.test.js.map +0 -1
  875. package/dist/ui/transcript/spacing.test.d.ts +0 -2
  876. package/dist/ui/transcript/spacing.test.d.ts.map +0 -1
  877. package/dist/ui/transcript/spacing.test.js +0 -187
  878. package/dist/ui/transcript/spacing.test.js.map +0 -1
  879. package/dist/ui/transcript/transcript-lines.test.d.ts +0 -2
  880. package/dist/ui/transcript/transcript-lines.test.d.ts.map +0 -1
  881. package/dist/ui/transcript/transcript-lines.test.js +0 -76
  882. package/dist/ui/transcript/transcript-lines.test.js.map +0 -1
  883. package/dist/ui/transcript-viewport-pinning.test.d.ts +0 -2
  884. package/dist/ui/transcript-viewport-pinning.test.d.ts.map +0 -1
  885. package/dist/ui/transcript-viewport-pinning.test.js +0 -148
  886. package/dist/ui/transcript-viewport-pinning.test.js.map +0 -1
  887. package/dist/ui/tui-history-parity.test.d.ts +0 -2
  888. package/dist/ui/tui-history-parity.test.d.ts.map +0 -1
  889. package/dist/ui/tui-history-parity.test.js +0 -369
  890. package/dist/ui/tui-history-parity.test.js.map +0 -1
  891. package/dist/ui/tui-simulation.test.d.ts +0 -2
  892. package/dist/ui/tui-simulation.test.d.ts.map +0 -1
  893. package/dist/ui/tui-simulation.test.js +0 -145
  894. package/dist/ui/tui-simulation.test.js.map +0 -1
  895. package/dist/ui/tui-terminal-recorder.test.d.ts +0 -2
  896. package/dist/ui/tui-terminal-recorder.test.d.ts.map +0 -1
  897. package/dist/ui/tui-terminal-recorder.test.js +0 -134
  898. package/dist/ui/tui-terminal-recorder.test.js.map +0 -1
  899. package/dist/ui/utils/assistant-stream-split.test.d.ts +0 -2
  900. package/dist/ui/utils/assistant-stream-split.test.d.ts.map +0 -1
  901. package/dist/ui/utils/assistant-stream-split.test.js +0 -74
  902. package/dist/ui/utils/assistant-stream-split.test.js.map +0 -1
  903. package/dist/ui/utils/markdown-renderer.test.d.ts +0 -2
  904. package/dist/ui/utils/markdown-renderer.test.d.ts.map +0 -1
  905. package/dist/ui/utils/markdown-renderer.test.js +0 -63
  906. package/dist/ui/utils/markdown-renderer.test.js.map +0 -1
  907. package/dist/ui/utils/table-text.test.d.ts +0 -2
  908. package/dist/ui/utils/table-text.test.d.ts.map +0 -1
  909. package/dist/ui/utils/table-text.test.js +0 -202
  910. package/dist/ui/utils/table-text.test.js.map +0 -1
  911. package/dist/ui/utils/terminal-graphics.test.d.ts +0 -2
  912. package/dist/ui/utils/terminal-graphics.test.d.ts.map +0 -1
  913. package/dist/ui/utils/terminal-graphics.test.js +0 -100
  914. package/dist/ui/utils/terminal-graphics.test.js.map +0 -1
  915. package/dist/ui/utils/terminal-input.test.d.ts +0 -2
  916. package/dist/ui/utils/terminal-input.test.d.ts.map +0 -1
  917. package/dist/ui/utils/terminal-input.test.js +0 -15
  918. package/dist/ui/utils/terminal-input.test.js.map +0 -1
  919. package/dist/ui/utils/text-utils.test.d.ts +0 -2
  920. package/dist/ui/utils/text-utils.test.d.ts.map +0 -1
  921. package/dist/ui/utils/text-utils.test.js +0 -31
  922. package/dist/ui/utils/text-utils.test.js.map +0 -1
  923. package/dist/utils/git.test.d.ts +0 -2
  924. package/dist/utils/git.test.d.ts.map +0 -1
  925. package/dist/utils/git.test.js +0 -36
  926. package/dist/utils/git.test.js.map +0 -1
  927. package/dist/utils/github.test.d.ts +0 -2
  928. package/dist/utils/github.test.d.ts.map +0 -1
  929. package/dist/utils/github.test.js +0 -23
  930. package/dist/utils/github.test.js.map +0 -1
  931. package/dist/utils/http-body.test.d.ts +0 -2
  932. package/dist/utils/http-body.test.d.ts.map +0 -1
  933. package/dist/utils/http-body.test.js +0 -68
  934. package/dist/utils/http-body.test.js.map +0 -1
  935. package/dist/utils/image.test.d.ts +0 -2
  936. package/dist/utils/image.test.d.ts.map +0 -1
  937. package/dist/utils/image.test.js +0 -139
  938. package/dist/utils/image.test.js.map +0 -1
  939. package/dist/utils/plan-steps.test.d.ts +0 -2
  940. package/dist/utils/plan-steps.test.d.ts.map +0 -1
  941. package/dist/utils/plan-steps.test.js +0 -159
  942. package/dist/utils/plan-steps.test.js.map +0 -1
  943. package/dist/utils/process.test.d.ts +0 -2
  944. package/dist/utils/process.test.d.ts.map +0 -1
  945. package/dist/utils/process.test.js +0 -42
  946. package/dist/utils/process.test.js.map +0 -1
  947. package/dist/utils/text.test.d.ts +0 -2
  948. package/dist/utils/text.test.d.ts.map +0 -1
  949. package/dist/utils/text.test.js +0 -91
  950. package/dist/utils/text.test.js.map +0 -1
@@ -1,180 +0,0 @@
1
- import { EventEmitter } from "node:events";
2
- import { PassThrough } from "node:stream";
3
- import { beforeEach, describe, expect, it, vi } from "vitest";
4
- const { spawnMock } = vi.hoisted(() => ({ spawnMock: vi.fn() }));
5
- vi.mock("node:child_process", () => ({ spawn: spawnMock }));
6
- import { createSubAgentTool, isModelUnavailableError } from "./subagent.js";
7
- import { MAX_BLOCKING_SUBAGENT_DEPTH, SUB_AGENT_DEPTH_ENV, SUB_AGENT_TIMEOUT_MS, } from "./subagent-shared.js";
8
- class MockChildProcess extends EventEmitter {
9
- stdout = new PassThrough();
10
- stderr = new PassThrough();
11
- kill = vi.fn(() => true);
12
- }
13
- const owl = {
14
- name: "owl",
15
- description: "Read-only scout",
16
- tools: ["read"],
17
- // Declares the cheap tier explicitly — the only way an agent opts out of the
18
- // parent's model now — which is what arms the fast-model fallback path below.
19
- model: "fast",
20
- systemPrompt: "Inspect code and report findings.",
21
- source: "bundled",
22
- };
23
- function spawnedModels() {
24
- return spawnMock.mock.calls.map(([, rawArgs]) => {
25
- const args = rawArgs;
26
- return args[args.indexOf("--model") + 1];
27
- });
28
- }
29
- function spawnedCacheKeys() {
30
- return spawnMock.mock.calls.map(([, rawArgs]) => {
31
- const args = rawArgs;
32
- return args[args.indexOf("--prompt-cache-key") + 1];
33
- });
34
- }
35
- function mockExit(stderr, code, stdout = "", usage) {
36
- const child = new MockChildProcess();
37
- setImmediate(() => {
38
- if (stdout)
39
- child.stdout.write(`${JSON.stringify({ type: "text_delta", text: stdout })}\n`);
40
- if (usage)
41
- child.stdout.write(`${JSON.stringify({ type: "turn_end", usage })}\n`);
42
- if (stderr)
43
- child.stderr.write(stderr);
44
- child.stdout.end();
45
- child.stderr.end();
46
- child.emit("close", code);
47
- });
48
- return child;
49
- }
50
- /**
51
- * A child killed by a signal reports `code === null` and writes no stderr —
52
- * exactly the shape the desktop hang produced once the parent gave up on it.
53
- */
54
- function mockSignalDeath(stdout = "") {
55
- const child = new MockChildProcess();
56
- setImmediate(() => {
57
- if (stdout)
58
- child.stdout.write(`${JSON.stringify({ type: "text_delta", text: stdout })}\n`);
59
- child.stdout.end();
60
- child.stderr.end();
61
- });
62
- return child;
63
- }
64
- function owlTool() {
65
- return createSubAgentTool(process.cwd(), [owl], () => "openai", () => "gpt-5.6-sol", () => "parent-cache");
66
- }
67
- async function runOwl() {
68
- return owlTool().execute({ agent: "owl", task: "Inspect the registry." }, { signal: new AbortController().signal, toolCallId: "test-call" });
69
- }
70
- beforeEach(() => {
71
- spawnMock.mockReset();
72
- });
73
- describe("createSubAgentTool fast-model fallback", () => {
74
- it("respawns with the parent model when the fast model is unavailable", async () => {
75
- spawnMock
76
- .mockImplementationOnce(() => mockExit("OpenAI does not recognize the requested model (not).", 1))
77
- .mockImplementationOnce(() => mockExit("", 0, "fallback succeeded"));
78
- await expect(runOwl()).resolves.toMatchObject({ content: "fallback succeeded" });
79
- expect(spawnedModels()).toEqual(["gpt-5.6-luna", "gpt-5.6-sol"]);
80
- expect(spawnedCacheKeys()).toEqual([
81
- "parent-cache:subagent:gpt-5.6-luna:owl",
82
- "parent-cache:subagent:gpt-5.6-luna:owl",
83
- ]);
84
- });
85
- it("returns cache reads and writes with the normalized token totals", async () => {
86
- spawnMock.mockImplementationOnce(() => mockExit("", 0, "done", {
87
- inputTokens: 10,
88
- outputTokens: 3,
89
- cacheRead: 20,
90
- cacheWrite: 5,
91
- }));
92
- await expect(runOwl()).resolves.toMatchObject({
93
- content: "done",
94
- details: {
95
- tokenUsage: { input: 10, output: 3, cacheRead: 20, cacheWrite: 5 },
96
- },
97
- });
98
- });
99
- it("does not retry unrelated child failures", async () => {
100
- spawnMock.mockImplementationOnce(() => mockExit("usage limit reached", 1));
101
- await expect(runOwl()).resolves.toMatchObject({
102
- content: "Sub-agent failed (exit 1): usage limit reached",
103
- });
104
- expect(spawnedModels()).toEqual(["gpt-5.6-luna"]);
105
- });
106
- it("does not mistake partial progress text for a successful final answer", async () => {
107
- // Real failure shape: the model narrates before its first tool call, then
108
- // the provider rate-limits the next turn and the child exits non-zero. The
109
- // old collector returned only "I'll start..." as a successful tool result,
110
- // hiding both the failure and the fact that no review/work was completed.
111
- spawnMock.mockImplementationOnce(() => mockExit("Rate limited by Anthropic. Wait a moment and try again.", 1, "I'll read both files now."));
112
- await expect(runOwl()).resolves.toMatchObject({
113
- content: "Sub-agent failed (exit 1): Rate limited by Anthropic. Wait a moment and try again.\n\n" +
114
- "Partial output before failure:\nI'll read both files now.",
115
- });
116
- expect(spawnedModels()).toEqual(["gpt-5.6-luna"]);
117
- });
118
- it("names the timeout instead of reporting a signal death as 'unknown error'", async () => {
119
- // Regression: every desktop sub-agent hung until the parent killed it, and
120
- // `close(null)` with empty stderr surfaced as "exit null: unknown error",
121
- // hiding both the cause and the fact that the child had already answered.
122
- const child = mockSignalDeath("CLEAR");
123
- spawnMock.mockImplementationOnce(() => child);
124
- const pending = runOwl();
125
- await new Promise((resolve) => setImmediate(resolve));
126
- child.emit("close", null, "SIGTERM");
127
- const result = (await pending);
128
- expect(result.content).not.toContain("unknown error");
129
- expect(result.content).toContain("SIGTERM");
130
- // Whatever the child did finish is still handed back for diagnosis.
131
- expect(result.content).toContain("CLEAR");
132
- });
133
- it("names parent cancellation when the caller's signal aborts the child", async () => {
134
- const child = mockSignalDeath();
135
- spawnMock.mockImplementationOnce(() => child);
136
- const controller = new AbortController();
137
- const pending = owlTool().execute({ agent: "owl", task: "Inspect the registry." }, { signal: controller.signal, toolCallId: "test-call" });
138
- await new Promise((resolve) => setImmediate(resolve));
139
- controller.abort();
140
- expect(child.kill).toHaveBeenCalledWith("SIGTERM");
141
- child.emit("close", null, "SIGTERM");
142
- const result = (await pending);
143
- expect(result.content).toContain("cancelled by the parent");
144
- expect(result.content).not.toContain("unknown error");
145
- });
146
- it("claims a loop timeout ceiling above its own sub-agent budget", () => {
147
- // The loop's default per-tool timeout is SHORTER than SUB_AGENT_TIMEOUT_MS,
148
- // so without this override the loop cancelled first and the tool's specific
149
- // "exceeded its time limit" message could never be produced.
150
- expect(owlTool().timeoutMs).toBeGreaterThan(SUB_AGENT_TIMEOUT_MS);
151
- });
152
- it("keeps the blocking contract while rejecting recursive process storms", async () => {
153
- const previousDepth = process.env[SUB_AGENT_DEPTH_ENV];
154
- process.env[SUB_AGENT_DEPTH_ENV] = String(MAX_BLOCKING_SUBAGENT_DEPTH);
155
- try {
156
- const tool = createSubAgentTool(process.cwd(), [owl], () => "openai", () => "gpt-5.6-sol");
157
- await expect(tool.execute({ task: "Recurse again." }, { signal: new AbortController().signal, toolCallId: "depth-test" })).resolves.toMatchObject({ content: expect.stringContaining("nesting limit") });
158
- expect(spawnMock).not.toHaveBeenCalled();
159
- }
160
- finally {
161
- if (previousDepth === undefined)
162
- delete process.env[SUB_AGENT_DEPTH_ENV];
163
- else
164
- process.env[SUB_AGENT_DEPTH_ENV] = previousDepth;
165
- }
166
- });
167
- });
168
- describe("isModelUnavailableError", () => {
169
- it("recognizes unavailable-model failures", () => {
170
- expect(isModelUnavailableError("OpenAI does not recognize the requested model (not). It may not exist or your account may not have access.")).toBe(true);
171
- expect(isModelUnavailableError("The requested model is not available for this account.")).toBe(true);
172
- expect(isModelUnavailableError("Model gpt-example does not exist.")).toBe(true);
173
- });
174
- it("does not retry unrelated provider or process failures", () => {
175
- expect(isModelUnavailableError("usage limit reached")).toBe(false);
176
- expect(isModelUnavailableError("401 invalid authentication credentials")).toBe(false);
177
- expect(isModelUnavailableError("spawn node ENOENT")).toBe(false);
178
- });
179
- });
180
- //# sourceMappingURL=subagent.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subagent.test.js","sourceRoot":"","sources":["../../src/tools/subagent.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=task-send.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-send.test.d.ts","sourceRoot":"","sources":["../../src/tools/task-send.test.ts"],"names":[],"mappings":""}
@@ -1,104 +0,0 @@
1
- import { afterEach, describe, expect, it } from "vitest";
2
- import fs from "node:fs/promises";
3
- import os from "node:os";
4
- import path from "node:path";
5
- import { ProcessManager } from "../core/process-manager.js";
6
- import { createTaskSendTool } from "./task-send.js";
7
- import { createTaskOutputTool } from "./task-output.js";
8
- /**
9
- * A throwaway background-log directory per manager.
10
- *
11
- * `start()` writes AND prunes inside `bgDir`, so a manager built without one
12
- * sweeps the developer's real `~/.gg/bg` when the suite runs.
13
- */
14
- async function bgTempDir() {
15
- return fs.mkdtemp(path.join(os.tmpdir(), "gg-bg-task-send-"));
16
- }
17
- async function waitForOutput(manager, id, predicate) {
18
- let combined = "";
19
- for (let i = 0; i < 50; i += 1) {
20
- const result = await manager.readOutput(id);
21
- combined += result.output;
22
- if (predicate(combined))
23
- return combined;
24
- await new Promise((resolve) => setTimeout(resolve, 100));
25
- }
26
- throw new Error(`Timed out waiting for output. Saw:\n${combined}`);
27
- }
28
- describe("interactive background processes (task_send)", () => {
29
- let manager;
30
- afterEach(() => {
31
- manager?.shutdownAll();
32
- });
33
- it("answers an interactive prompt and completes", async () => {
34
- manager = new ProcessManager({ bgDir: await bgTempDir() });
35
- const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "gg-task-send-"));
36
- // Programs that print their prompt explicitly (echo) are visible over a
37
- // pipe; bash's `read -p` writes its prompt only to a tty, so use echo here.
38
- const started = await manager.start('echo "Name:"; read n; echo "HELLO_$n"', tmpDir);
39
- await waitForOutput(manager, started.id, (o) => o.includes("Name:"));
40
- const sendResult = await manager.sendInput(started.id, "world");
41
- expect(sendResult).toContain("Sent input");
42
- const out = await waitForOutput(manager, started.id, (o) => o.includes("HELLO_world"));
43
- expect(out).toContain("HELLO_world");
44
- }, 15_000);
45
- it("drives a REPL across multiple inputs", async () => {
46
- manager = new ProcessManager({ bgDir: await bgTempDir() });
47
- const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "gg-task-send-repl-"));
48
- // A tiny line-reading loop that echoes back, then exits on EOF.
49
- const started = await manager.start('while IFS= read -r line; do echo "GOT[$line]"; done', tmpDir);
50
- await manager.sendInput(started.id, "first");
51
- await waitForOutput(manager, started.id, (o) => o.includes("GOT[first]"));
52
- await manager.sendInput(started.id, "second");
53
- await waitForOutput(manager, started.id, (o) => o.includes("GOT[second]"));
54
- // Closing stdin (EOF) ends the read loop and the process.
55
- await manager.sendInput(started.id, "", { eof: true });
56
- for (let i = 0; i < 50; i += 1) {
57
- const r = await manager.readOutput(started.id);
58
- if (!r.isRunning) {
59
- expect(r.exitCode).toBe(0);
60
- return;
61
- }
62
- await new Promise((resolve) => setTimeout(resolve, 100));
63
- }
64
- throw new Error("Process did not exit after EOF");
65
- }, 15_000);
66
- it("returns a clear message when the process has already exited", async () => {
67
- manager = new ProcessManager({ bgDir: await bgTempDir() });
68
- const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "gg-task-send-dead-"));
69
- const started = await manager.start('echo "done"', tmpDir);
70
- await waitForOutput(manager, started.id, (o) => o.includes("done"));
71
- // Give the close handler a tick to record the exit code.
72
- await new Promise((resolve) => setTimeout(resolve, 200));
73
- const result = await manager.sendInput(started.id, "late");
74
- expect(result).toMatch(/already exited|not accepting input/);
75
- }, 15_000);
76
- it("reports unknown process ids", async () => {
77
- manager = new ProcessManager({ bgDir: await bgTempDir() });
78
- const result = await manager.sendInput("nope", "hi");
79
- expect(result).toContain('No background process with id "nope"');
80
- });
81
- it("exposes a task_send tool that pairs with task_output", async () => {
82
- manager = new ProcessManager({ bgDir: await bgTempDir() });
83
- const tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "gg-task-send-tool-"));
84
- const sendTool = createTaskSendTool(manager);
85
- const outputTool = createTaskOutputTool(manager);
86
- expect(sendTool.name).toBe("task_send");
87
- const started = await manager.start('echo "Continue?"; read c; echo "ANSWER_$c"', tmpDir);
88
- await waitForOutput(manager, started.id, (o) => o.includes("Continue?"));
89
- const ctx = { signal: new AbortController().signal };
90
- const sent = await sendTool.execute({ id: started.id, input: "yes" }, ctx);
91
- expect(sent).toContain("task_output");
92
- await waitForOutput(manager, started.id, (o) => o.includes("ANSWER_yes"));
93
- const read = await outputTool.execute({ id: started.id, from_start: true }, ctx);
94
- expect(read).toContain("ANSWER_yes");
95
- }, 15_000);
96
- it("guards against empty sends", async () => {
97
- manager = new ProcessManager({ bgDir: await bgTempDir() });
98
- const sendTool = createTaskSendTool(manager);
99
- const ctx = { signal: new AbortController().signal };
100
- const result = await sendTool.execute({ id: "x", enter: false }, ctx);
101
- expect(result).toContain("Nothing to send");
102
- });
103
- });
104
- //# sourceMappingURL=task-send.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"task-send.test.js","sourceRoot":"","sources":["../../src/tools/task-send.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tool-catalog.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-catalog.test.d.ts","sourceRoot":"","sources":["../../src/tools/tool-catalog.test.ts"],"names":[],"mappings":""}
@@ -1,124 +0,0 @@
1
- /**
2
- * Tool-catalog pin: the schemas this repo ships are the schemas we think we ship.
3
- *
4
- * Builds the REAL default tool array via `createTools()` — the same factory every
5
- * session entry point (agent-session, CLI, interactive) uses — serializes each
6
- * tool with `resolveToolSchema` (the exact encoding provider requests carry),
7
- * and pins the canonicalized catalog against a committed snapshot.
8
- *
9
- * Why: an accidental schema/description edit is silent. It changes what every
10
- * model sees on every request, and invalidates the cached prompt prefix, without
11
- * failing any test that isn't explicitly looking. This test is the test that is
12
- * explicitly looking (deepseek-harness takeaway: CI-verified tool catalog).
13
- *
14
- * Regenerate after an INTENTIONAL schema change:
15
- * UPDATE_TOOL_CATALOG=1 pnpm vitest run tools/tool-catalog.test.ts
16
- * and review the snapshot diff like any code diff.
17
- */
18
- import { describe, it, expect } from "vitest";
19
- import { createHash } from "node:crypto";
20
- import fs from "node:fs";
21
- import os from "node:os";
22
- import path from "node:path";
23
- import { resolveToolSchema } from "@kenkaiiii/gg-ai";
24
- import { createTools } from "./index.js";
25
- import { BUILTIN_TOOL_NAMES } from "./prompt-hints.js";
26
- const SNAPSHOT_PATH = path.join(import.meta.dirname, "tool-catalog.snapshot.json");
27
- /**
28
- * Tools a bare `createTools()` call cannot register: each needs a session-level
29
- * option (agent-session supplies it) rather than being a factory default. A name
30
- * moving between this set and the built catalog is itself a reviewable diff —
31
- * it changes the default model-visible surface.
32
- */
33
- const OPT_IN_TOOLS = new Set([
34
- "tool_search", // registered by AgentSession.ensureToolSearchTool()
35
- "web_search", // provider-gated: non-anthropic providers only
36
- "subagent", // needs agents[] + provider + model
37
- "spawn_agent", // subagent control tools (same gate)
38
- "send_message",
39
- "followup_task",
40
- "wait_agent",
41
- "list_agents",
42
- "interrupt_agent",
43
- "skill", // needs configured skills
44
- "enter_plan", // needs onEnterPlan callback
45
- "exit_plan", // needs onExitPlan callback
46
- "generate_image", // gated on OpenAI auth
47
- ]);
48
- /** Deterministic JSON: object keys sorted at every depth, stable stringification. */
49
- function canonical(value) {
50
- return JSON.stringify(value, (_key, v) => v && typeof v === "object" && !Array.isArray(v)
51
- ? Object.fromEntries(Object.entries(v).sort(([a], [b]) => (a < b ? -1 : 1)))
52
- : v);
53
- }
54
- async function buildCatalog() {
55
- // Fixed temp cwd so no tool state leaks between runs; descriptions do not
56
- // embed cwd (verified — factories use static description text).
57
- const cwd = fs.mkdtempSync(path.join(os.tmpdir(), "gg-tool-catalog-"));
58
- try {
59
- const { tools } = await createTools(cwd);
60
- return tools.map((tool) => {
61
- const entry = {
62
- name: tool.name,
63
- description: tool.description,
64
- schema: resolveToolSchema(tool),
65
- };
66
- return { ...entry, hash: createHash("sha256").update(canonical(entry)).digest("hex") };
67
- });
68
- }
69
- finally {
70
- fs.rmSync(cwd, { recursive: true, force: true });
71
- }
72
- }
73
- describe("tool catalog snapshot", () => {
74
- it("pins the default tool catalog (schemas the model actually receives)", async () => {
75
- const catalog = await buildCatalog();
76
- // Duplicate names would mean a registry bug, not a schema change.
77
- const names = catalog.map((t) => t.name);
78
- expect(new Set(names).size, `duplicate tool names: ${names.join(", ")}`).toBe(names.length);
79
- const snapshot = {
80
- version: 1,
81
- // Sorted for a stable, reviewable diff (order in the array is append-only
82
- // and guarded separately by system-prompt.tiering.test.ts).
83
- tools: [...catalog].sort((a, b) => (a.name < b.name ? -1 : 1)),
84
- };
85
- const serialized = `${JSON.stringify(snapshot, null, 2)}\n`;
86
- if (process.env.UPDATE_TOOL_CATALOG === "1") {
87
- fs.writeFileSync(SNAPSHOT_PATH, serialized);
88
- console.log(`[tool-catalog] wrote ${catalog.length} tools to ${SNAPSHOT_PATH}`);
89
- return;
90
- }
91
- expect(fs.existsSync(SNAPSHOT_PATH), "snapshot missing — run with UPDATE_TOOL_CATALOG=1").toBe(true);
92
- const pinned = fs.readFileSync(SNAPSHOT_PATH, "utf8");
93
- // Compare per-tool hashes first: on mismatch the diff shows exactly WHICH
94
- // tool changed, not a wall of JSON.
95
- const pinnedNames = JSON.parse(pinned).tools.map((t) => t.name);
96
- expect(names.sort()).toEqual(pinnedNames);
97
- if (serialized !== pinned) {
98
- const changed = snapshot.tools
99
- .filter((t) => {
100
- const pinnedTool = JSON.parse(pinned).tools.find((p) => p.name === t.name);
101
- return !pinnedTool || pinnedTool.hash !== t.hash;
102
- })
103
- .map((t) => t.name);
104
- const subject = changed.length > 0 ? changed.join(", ") : "snapshot formatting/extra keys";
105
- throw new Error(`Tool catalog drifted: ${subject}. If intentional, regenerate with ` +
106
- `UPDATE_TOOL_CATALOG=1 pnpm vitest run tools/tool-catalog.test.ts and review the diff. ` +
107
- `Schema changes alter every request and invalidate cached prefixes — they deserve eyes.`);
108
- }
109
- });
110
- it("keeps the default surface complete: every built-in is either live or documented opt-in", async () => {
111
- const catalog = await buildCatalog();
112
- const live = new Set(catalog.map((t) => t.name));
113
- for (const name of BUILTIN_TOOL_NAMES) {
114
- expect(live.has(name) || OPT_IN_TOOLS.has(name), `${name} is neither in the default catalog nor the OPT_IN_TOOLS set — ` +
115
- `the completeness guard can no longer account for it`).toBe(true);
116
- }
117
- // And the inverse: nothing rides along that the registry doesn't know.
118
- const known = new Set([...BUILTIN_TOOL_NAMES, ...OPT_IN_TOOLS]);
119
- for (const name of live) {
120
- expect(known.has(name), `unregistered tool ${name} reached the default catalog`).toBe(true);
121
- }
122
- });
123
- });
124
- //# sourceMappingURL=tool-catalog.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-catalog.test.js","sourceRoot":"","sources":["../../src/tools/tool-catalog.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tool-search.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-search.test.d.ts","sourceRoot":"","sources":["../../src/tools/tool-search.test.ts"],"names":[],"mappings":""}
@@ -1,127 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { z } from "zod";
3
- import { resolveContextLimits } from "../core/context-limits.js";
4
- import { DeferredToolCatalog } from "../core/mcp/deferred-catalog.js";
5
- import { createToolSearchTool } from "./tool-search.js";
6
- const CONTEXT = {};
7
- function stub(name, description, result = "ok") {
8
- return {
9
- name,
10
- description,
11
- parameters: z.record(z.string(), z.unknown()),
12
- execute: async () => result,
13
- };
14
- }
15
- async function search(tool, query) {
16
- return String(await tool.execute({ query }, CONTEXT));
17
- }
18
- describe("tool_search", () => {
19
- it("answers correctly on turn 1 from a cache-seeded catalog", async () => {
20
- const catalog = new DeferredToolCatalog();
21
- // Cold start: servers are still connecting, so every entry is a cached stub.
22
- catalog.add([stub("mcp__figma__get_screens", "fetch UI design screenshots")]);
23
- const promotedNames = [];
24
- const tool = createToolSearchTool(catalog, (tools) => promotedNames.push(...tools.map((t) => t.name)), async () => ({ serverName: "figma", ok: true }));
25
- const result = await search(tool, "UI design screenshots");
26
- expect(result).toContain("mcp__figma__get_screens");
27
- expect(result).not.toContain("the catalog is empty");
28
- expect(promotedNames).toEqual(["mcp__figma__get_screens"]);
29
- });
30
- it("reports the empty catalog only when it really is empty", async () => {
31
- const tool = createToolSearchTool(new DeferredToolCatalog(), () => { });
32
- expect(await search(tool, "UI design screenshots")).toContain("the catalog is empty");
33
- });
34
- it("returns a model-visible error when the cached tool's server failed", async () => {
35
- const catalog = new DeferredToolCatalog();
36
- catalog.add([stub("mcp__figma__get_screens", "fetch UI design screenshots")]);
37
- const resolution = {
38
- serverName: "figma",
39
- ok: false,
40
- error: "spawn ENOENT",
41
- };
42
- const tool = createToolSearchTool(catalog, () => { }, async () => resolution);
43
- const result = await search(tool, "UI design screenshots");
44
- expect(result).toContain("No usable tools matched");
45
- expect(result).toContain("figma");
46
- expect(result).toContain("spawn ENOENT");
47
- });
48
- it("promotes the reachable tools and flags only the unreachable ones", async () => {
49
- const catalog = new DeferredToolCatalog();
50
- catalog.add([
51
- stub("mcp__figma__get_screens", "fetch design screenshots"),
52
- stub("mcp__dead__get_screens", "fetch design screenshots"),
53
- ]);
54
- const tool = createToolSearchTool(catalog, () => { }, async (name) => name.startsWith("mcp__dead__")
55
- ? { serverName: "dead", ok: false, error: "timed out after 30000ms" }
56
- : undefined);
57
- const result = await search(tool, "design screenshots");
58
- expect(result).toContain("1 tool(s) now available");
59
- expect(result).toContain("mcp__figma__get_screens");
60
- expect(result).toContain("Unreachable:");
61
- expect(result).toContain("mcp__dead__get_screens");
62
- });
63
- it("works without a resolver (all tools already live)", async () => {
64
- const catalog = new DeferredToolCatalog();
65
- catalog.add([stub("mcp__figma__get_screens", "fetch design screenshots")]);
66
- const tool = createToolSearchTool(catalog, () => { });
67
- expect(await search(tool, "design screenshots")).toContain("1 tool(s) now available");
68
- });
69
- it("refuses promotion of a tool whose schema exceeds the byte budget", async () => {
70
- const catalog = new DeferredToolCatalog();
71
- const huge = z.object({
72
- blob: z.string().describe("x".repeat(200 * 1024)), // 200KB serialized schema
73
- });
74
- catalog.add([
75
- {
76
- name: "mcp__big__blob",
77
- description: "fetch design screenshots",
78
- parameters: huge,
79
- execute: async () => "ok",
80
- },
81
- stub("mcp__figma__get_screens", "fetch design screenshots"),
82
- ]);
83
- const promotedNames = [];
84
- const tool = createToolSearchTool(catalog, (tools) => promotedNames.push(...tools.map((t) => t.name)));
85
- const result = await search(tool, "design screenshots");
86
- // The fit tool promoted; the oversized one was refused and named.
87
- expect(result).toContain("1 tool(s) now available");
88
- expect(result).toContain("mcp__figma__get_screens");
89
- expect(result).toContain("Refused (schema byte budget)");
90
- expect(result).toContain("mcp__big__blob");
91
- expect(result).toContain("contextLimits.mcpToolSchemaBytes");
92
- expect(promotedNames).toEqual(["mcp__figma__get_screens"]);
93
- // Refused tool stays in the catalog, not the live toolset.
94
- expect(catalog.names()).toContain("mcp__big__blob");
95
- });
96
- it("fails closed when EVERY match exceeds the schema budget", async () => {
97
- const catalog = new DeferredToolCatalog();
98
- catalog.add([
99
- {
100
- name: "mcp__big__blob",
101
- description: "fetch design screenshots",
102
- parameters: z.object({ blob: z.string().describe("x".repeat(200 * 1024)) }),
103
- execute: async () => "ok",
104
- },
105
- ]);
106
- const promotedNames = [];
107
- const tool = createToolSearchTool(catalog, (tools) => promotedNames.push(...tools.map((t) => t.name)));
108
- const result = await search(tool, "design screenshots");
109
- expect(result).toContain("No tools promoted");
110
- expect(result).toContain("mcp__big__blob");
111
- expect(promotedNames).toEqual([]);
112
- });
113
- it("honors a raised schema budget from limits", async () => {
114
- const catalog = new DeferredToolCatalog();
115
- catalog.add([
116
- {
117
- name: "mcp__big__blob",
118
- description: "fetch design screenshots",
119
- parameters: z.object({ blob: z.string().describe("x".repeat(8 * 1024)) }), // ~8KB
120
- execute: async () => "ok",
121
- },
122
- ]);
123
- const tool = createToolSearchTool(catalog, () => { }, undefined, resolveContextLimits({ mcpToolSchemaBytes: 16 * 1024 }));
124
- expect(await search(tool, "design screenshots")).toContain("1 tool(s) now available");
125
- });
126
- });
127
- //# sourceMappingURL=tool-search.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-search.test.js","sourceRoot":"","sources":["../../src/tools/tool-search.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAA6B,MAAM,kBAAkB,CAAC;AAEnF,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,SAAS,IAAI,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAM,GAAG,IAAI;IAC5D,OAAO;QACL,IAAI;QACJ,WAAW;QACX,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAA6C,EAAE,KAAa;IAChF,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,6EAA6E;QAC7E,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,oBAAoB,CAC/B,OAAO,EACP,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAC1D,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAChD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACrD,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QAClF,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAyB;YACvC,UAAU,EAAE,OAAO;YACnB,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,cAAc;SACtB,CAAC;QACF,MAAM,IAAI,GAAG,oBAAoB,CAC/B,OAAO,EACP,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,IAAI,EAAE,CAAC,UAAU,CACvB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC;YACV,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;YAC3D,IAAI,CAAC,wBAAwB,EAAE,0BAA0B,CAAC;SAC3D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,oBAAoB,CAC/B,OAAO,EACP,GAAG,EAAE,GAAE,CAAC,EACR,KAAK,EAAE,IAAI,EAAE,EAAE,CACb,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;YAC5B,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE;YACrE,CAAC,CAAC,SAAS,CAChB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,0BAA0B;SAC9E,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC;YACV;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aAC1B;YACD,IAAI,CAAC,yBAAyB,EAAE,0BAA0B,CAAC;SAC5D,CAAC,CAAC;QACH,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACnD,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACxD,kEAAkE;QAClE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACpD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;QAC7D,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC3D,2DAA2D;QAC3D,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC;YACV;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC3E,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aAC1B;SACF,CAAC,CAAC;QACH,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACnD,aAAa,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC3C,MAAM,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC;YACV;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,0BAA0B;gBACvC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO;gBAClF,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;aAC1B;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,oBAAoB,CAC/B,OAAO,EACP,GAAG,EAAE,GAAE,CAAC,EACR,SAAS,EACT,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,CACxD,CAAC;QACF,MAAM,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=tool-tiers.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-tiers.test.d.ts","sourceRoot":"","sources":["../../src/tools/tool-tiers.test.ts"],"names":[],"mappings":""}