@prestyj/cli 5.10.0 → 5.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/README.md +3 -4
  2. package/assets/skills/compliance-guard/SKILL.md +251 -0
  3. package/assets/skills/compliance-guard/references/artifacts.md +186 -0
  4. package/assets/skills/compliance-guard/references/eu-uk.md +151 -0
  5. package/assets/skills/compliance-guard/references/exposure-triage.md +161 -0
  6. package/assets/skills/compliance-guard/references/lawsuit-vectors.md +141 -0
  7. package/assets/skills/compliance-guard/references/provenance.md +42 -0
  8. package/assets/skills/compliance-guard/references/sector-gates.md +173 -0
  9. package/assets/skills/compliance-guard/references/security-baseline.md +130 -0
  10. package/assets/skills/compliance-guard/references/trigger-map.md +163 -0
  11. package/assets/skills/compliance-guard/references/us.md +164 -0
  12. package/dist/app-sidecar-auth-broadcast.test.d.ts +2 -0
  13. package/dist/app-sidecar-auth-broadcast.test.d.ts.map +1 -0
  14. package/dist/app-sidecar-auth-broadcast.test.js +348 -0
  15. package/dist/app-sidecar-auth-broadcast.test.js.map +1 -0
  16. package/dist/app-sidecar-sessions.d.ts +5 -2
  17. package/dist/app-sidecar-sessions.d.ts.map +1 -1
  18. package/dist/app-sidecar-sessions.js +34 -8
  19. package/dist/app-sidecar-sessions.js.map +1 -1
  20. package/dist/app-sidecar-sessions.test.js +96 -1
  21. package/dist/app-sidecar-sessions.test.js.map +1 -1
  22. package/dist/app-sidecar.js +616 -173
  23. package/dist/app-sidecar.js.map +1 -1
  24. package/dist/chat-agents/jiwa.test.js +1 -1
  25. package/dist/cli/auth.d.ts.map +1 -1
  26. package/dist/cli/auth.js +33 -36
  27. package/dist/cli/auth.js.map +1 -1
  28. package/dist/cli/command-routing.d.ts +1 -1
  29. package/dist/cli/command-routing.d.ts.map +1 -1
  30. package/dist/cli/command-routing.js +1 -0
  31. package/dist/cli/command-routing.js.map +1 -1
  32. package/dist/cli/command-routing.test.js +1 -0
  33. package/dist/cli/command-routing.test.js.map +1 -1
  34. package/dist/cli.d.ts.map +1 -1
  35. package/dist/cli.js +179 -48
  36. package/dist/cli.js.map +1 -1
  37. package/dist/config.d.ts +18 -5
  38. package/dist/config.d.ts.map +1 -1
  39. package/dist/config.js +45 -76
  40. package/dist/config.js.map +1 -1
  41. package/dist/config.test.js +30 -13
  42. package/dist/config.test.js.map +1 -1
  43. package/dist/core/agent-notifications.d.ts +62 -0
  44. package/dist/core/agent-notifications.d.ts.map +1 -0
  45. package/dist/core/agent-notifications.js +92 -0
  46. package/dist/core/agent-notifications.js.map +1 -0
  47. package/dist/core/agent-notifications.test.d.ts +2 -0
  48. package/dist/core/agent-notifications.test.d.ts.map +1 -0
  49. package/dist/core/agent-notifications.test.js +97 -0
  50. package/dist/core/agent-notifications.test.js.map +1 -0
  51. package/dist/core/agent-session-checkpoint-flush.test.d.ts +2 -0
  52. package/dist/core/agent-session-checkpoint-flush.test.d.ts.map +1 -0
  53. package/dist/core/agent-session-checkpoint-flush.test.js +201 -0
  54. package/dist/core/agent-session-checkpoint-flush.test.js.map +1 -0
  55. package/dist/core/agent-session-compaction.test.js +323 -6
  56. package/dist/core/agent-session-compaction.test.js.map +1 -1
  57. package/dist/core/agent-session-crash-durability.test.d.ts +2 -0
  58. package/dist/core/agent-session-crash-durability.test.d.ts.map +1 -0
  59. package/dist/core/agent-session-crash-durability.test.js +102 -0
  60. package/dist/core/agent-session-crash-durability.test.js.map +1 -0
  61. package/dist/core/agent-session-marker-anchors.test.js +181 -2
  62. package/dist/core/agent-session-marker-anchors.test.js.map +1 -1
  63. package/dist/core/agent-session-model-switch.test.d.ts +2 -0
  64. package/dist/core/agent-session-model-switch.test.d.ts.map +1 -0
  65. package/dist/core/agent-session-model-switch.test.js +161 -0
  66. package/dist/core/agent-session-model-switch.test.js.map +1 -0
  67. package/dist/core/agent-session-notifications.test.d.ts +2 -0
  68. package/dist/core/agent-session-notifications.test.d.ts.map +1 -0
  69. package/dist/core/agent-session-notifications.test.js +114 -0
  70. package/dist/core/agent-session-notifications.test.js.map +1 -0
  71. package/dist/core/agent-session-process-gate.test.d.ts +2 -0
  72. package/dist/core/agent-session-process-gate.test.d.ts.map +1 -0
  73. package/dist/core/agent-session-process-gate.test.js +98 -0
  74. package/dist/core/agent-session-process-gate.test.js.map +1 -0
  75. package/dist/core/agent-session-queue.test.js +65 -0
  76. package/dist/core/agent-session-queue.test.js.map +1 -1
  77. package/dist/core/agent-session-review-coverage.test.js +80 -23
  78. package/dist/core/agent-session-review-coverage.test.js.map +1 -1
  79. package/dist/core/agent-session-slash-restore.test.d.ts +2 -0
  80. package/dist/core/agent-session-slash-restore.test.d.ts.map +1 -0
  81. package/dist/core/agent-session-slash-restore.test.js +121 -0
  82. package/dist/core/agent-session-slash-restore.test.js.map +1 -0
  83. package/dist/core/agent-session-tool-tiers.test.d.ts +2 -0
  84. package/dist/core/agent-session-tool-tiers.test.d.ts.map +1 -0
  85. package/dist/core/agent-session-tool-tiers.test.js +138 -0
  86. package/dist/core/agent-session-tool-tiers.test.js.map +1 -0
  87. package/dist/core/agent-session.d.ts +257 -13
  88. package/dist/core/agent-session.d.ts.map +1 -1
  89. package/dist/core/agent-session.js +1118 -241
  90. package/dist/core/agent-session.js.map +1 -1
  91. package/dist/core/agents.d.ts +29 -1
  92. package/dist/core/agents.d.ts.map +1 -1
  93. package/dist/core/agents.js +47 -97
  94. package/dist/core/agents.js.map +1 -1
  95. package/dist/core/agents.test.js +87 -7
  96. package/dist/core/agents.test.js.map +1 -1
  97. package/dist/core/api-benchmark.d.ts +3 -3
  98. package/dist/core/api-benchmark.js +7 -7
  99. package/dist/core/auth-providers.d.ts +37 -1
  100. package/dist/core/auth-providers.d.ts.map +1 -1
  101. package/dist/core/auth-providers.js +83 -3
  102. package/dist/core/auth-providers.js.map +1 -1
  103. package/dist/core/auto-update.test.js +1 -1
  104. package/dist/core/autopilot-gate.d.ts +2 -2
  105. package/dist/core/autopilot-gate.js +1 -1
  106. package/dist/core/bash-spawn-benchmark.js +6 -6
  107. package/dist/core/bundled-agents.d.ts +3 -0
  108. package/dist/core/bundled-agents.d.ts.map +1 -0
  109. package/dist/core/bundled-agents.js +252 -0
  110. package/dist/core/bundled-agents.js.map +1 -0
  111. package/dist/core/cache-warm-benchmark.d.ts +2 -2
  112. package/dist/core/cache-warm-benchmark.js +5 -5
  113. package/dist/core/code-retrieval-chunkers.d.ts +27 -0
  114. package/dist/core/code-retrieval-chunkers.d.ts.map +1 -0
  115. package/dist/core/code-retrieval-chunkers.js +264 -0
  116. package/dist/core/code-retrieval-chunkers.js.map +1 -0
  117. package/dist/core/code-retrieval-chunkers.test.d.ts +2 -0
  118. package/dist/core/code-retrieval-chunkers.test.d.ts.map +1 -0
  119. package/dist/core/code-retrieval-chunkers.test.js +203 -0
  120. package/dist/core/code-retrieval-chunkers.test.js.map +1 -0
  121. package/dist/core/code-retrieval.d.ts +6 -0
  122. package/dist/core/code-retrieval.d.ts.map +1 -1
  123. package/dist/core/code-retrieval.js +38 -1
  124. package/dist/core/code-retrieval.js.map +1 -1
  125. package/dist/core/compaction/active-context.test.js +21 -0
  126. package/dist/core/compaction/active-context.test.js.map +1 -1
  127. package/dist/core/compaction/compactor.d.ts +108 -8
  128. package/dist/core/compaction/compactor.d.ts.map +1 -1
  129. package/dist/core/compaction/compactor.js +423 -119
  130. package/dist/core/compaction/compactor.js.map +1 -1
  131. package/dist/core/compaction/compactor.test.js +360 -8
  132. package/dist/core/compaction/compactor.test.js.map +1 -1
  133. package/dist/core/compaction/policy.d.ts +17 -0
  134. package/dist/core/compaction/policy.d.ts.map +1 -0
  135. package/dist/core/compaction/policy.js +22 -0
  136. package/dist/core/compaction/policy.js.map +1 -0
  137. package/dist/core/compaction/policy.test.d.ts +2 -0
  138. package/dist/core/compaction/policy.test.d.ts.map +1 -0
  139. package/dist/core/compaction/policy.test.js +35 -0
  140. package/dist/core/compaction/policy.test.js.map +1 -0
  141. package/dist/core/compaction/query-aware-selector.d.ts +33 -0
  142. package/dist/core/compaction/query-aware-selector.d.ts.map +1 -0
  143. package/dist/core/compaction/query-aware-selector.js +202 -0
  144. package/dist/core/compaction/query-aware-selector.js.map +1 -0
  145. package/dist/core/compaction/query-aware-selector.test.d.ts +2 -0
  146. package/dist/core/compaction/query-aware-selector.test.d.ts.map +1 -0
  147. package/dist/core/compaction/query-aware-selector.test.js +96 -0
  148. package/dist/core/compaction/query-aware-selector.test.js.map +1 -0
  149. package/dist/core/compaction/tool-result-pruner.d.ts +24 -11
  150. package/dist/core/compaction/tool-result-pruner.d.ts.map +1 -1
  151. package/dist/core/compaction/tool-result-pruner.js +98 -26
  152. package/dist/core/compaction/tool-result-pruner.js.map +1 -1
  153. package/dist/core/compaction/tool-result-pruner.test.js +178 -6
  154. package/dist/core/compaction/tool-result-pruner.test.js.map +1 -1
  155. package/dist/core/encode-cwd.test.js +1 -1
  156. package/dist/core/event-bus.d.ts +23 -0
  157. package/dist/core/event-bus.d.ts.map +1 -1
  158. package/dist/core/event-bus.js +10 -0
  159. package/dist/core/event-bus.js.map +1 -1
  160. package/dist/core/extensions/loader.d.ts.map +1 -1
  161. package/dist/core/extensions/loader.js +28 -8
  162. package/dist/core/extensions/loader.js.map +1 -1
  163. package/dist/core/extensions/plugin-bundles.d.ts +23 -0
  164. package/dist/core/extensions/plugin-bundles.d.ts.map +1 -0
  165. package/dist/core/extensions/plugin-bundles.js +228 -0
  166. package/dist/core/extensions/plugin-bundles.js.map +1 -0
  167. package/dist/core/extensions/plugin-bundles.test.d.ts +2 -0
  168. package/dist/core/extensions/plugin-bundles.test.d.ts.map +1 -0
  169. package/dist/core/extensions/plugin-bundles.test.js +110 -0
  170. package/dist/core/extensions/plugin-bundles.test.js.map +1 -0
  171. package/dist/core/fast-apply-benchmark.d.ts +2 -2
  172. package/dist/core/fast-apply-benchmark.js +6 -6
  173. package/dist/core/foreign-session-import.d.ts +120 -0
  174. package/dist/core/foreign-session-import.d.ts.map +1 -0
  175. package/dist/core/foreign-session-import.js +598 -0
  176. package/dist/core/foreign-session-import.js.map +1 -0
  177. package/dist/core/foreign-session-import.test.d.ts +2 -0
  178. package/dist/core/foreign-session-import.test.d.ts.map +1 -0
  179. package/dist/core/foreign-session-import.test.js +220 -0
  180. package/dist/core/foreign-session-import.test.js.map +1 -0
  181. package/dist/core/foreign-transcript-blocks.d.ts +51 -0
  182. package/dist/core/foreign-transcript-blocks.d.ts.map +1 -0
  183. package/dist/core/foreign-transcript-blocks.js +151 -0
  184. package/dist/core/foreign-transcript-blocks.js.map +1 -0
  185. package/dist/core/goal-lifecycle-smoke.test.js +2 -2
  186. package/dist/core/goal-store.js +1 -1
  187. package/dist/core/goal-store.test.js +2 -2
  188. package/dist/core/goal-verifier.test.js +2 -2
  189. package/dist/core/goal-worker-dev-server-lifecycle.test.js +1 -1
  190. package/dist/core/goal-worker.test.js +2 -2
  191. package/dist/core/hashline-edit-benchmark.d.ts +2 -2
  192. package/dist/core/hashline-edit-benchmark.js +7 -7
  193. package/dist/core/ideal-review.d.ts +20 -1
  194. package/dist/core/ideal-review.d.ts.map +1 -1
  195. package/dist/core/ideal-review.js +37 -2
  196. package/dist/core/ideal-review.js.map +1 -1
  197. package/dist/core/ideal-review.test.js +99 -3
  198. package/dist/core/ideal-review.test.js.map +1 -1
  199. package/dist/core/local-endpoint-store.test.js +1 -1
  200. package/dist/core/logger.d.ts +1 -1
  201. package/dist/core/logger.js +2 -2
  202. package/dist/core/logger.js.map +1 -1
  203. package/dist/core/loop-breaker.d.ts.map +1 -1
  204. package/dist/core/loop-breaker.js +1 -0
  205. package/dist/core/loop-breaker.js.map +1 -1
  206. package/dist/core/lsp/client-navigation.test.d.ts +2 -0
  207. package/dist/core/lsp/client-navigation.test.d.ts.map +1 -0
  208. package/dist/core/lsp/client-navigation.test.js +135 -0
  209. package/dist/core/lsp/client-navigation.test.js.map +1 -0
  210. package/dist/core/lsp/client.d.ts +84 -0
  211. package/dist/core/lsp/client.d.ts.map +1 -1
  212. package/dist/core/lsp/client.js +190 -3
  213. package/dist/core/lsp/client.js.map +1 -1
  214. package/dist/core/lsp/integration.test.js +2 -2
  215. package/dist/core/lsp/manager-navigation.test.d.ts +2 -0
  216. package/dist/core/lsp/manager-navigation.test.d.ts.map +1 -0
  217. package/dist/core/lsp/manager-navigation.test.js +121 -0
  218. package/dist/core/lsp/manager-navigation.test.js.map +1 -0
  219. package/dist/core/lsp/manager.d.ts +81 -9
  220. package/dist/core/lsp/manager.d.ts.map +1 -1
  221. package/dist/core/lsp/manager.js +183 -64
  222. package/dist/core/lsp/manager.js.map +1 -1
  223. package/dist/core/lsp/manager.test.js +18 -0
  224. package/dist/core/lsp/manager.test.js.map +1 -1
  225. package/dist/core/lsp/pool.d.ts +113 -0
  226. package/dist/core/lsp/pool.d.ts.map +1 -0
  227. package/dist/core/lsp/pool.js +255 -0
  228. package/dist/core/lsp/pool.js.map +1 -0
  229. package/dist/core/lsp/pool.test.d.ts +2 -0
  230. package/dist/core/lsp/pool.test.d.ts.map +1 -0
  231. package/dist/core/lsp/pool.test.js +286 -0
  232. package/dist/core/lsp/pool.test.js.map +1 -0
  233. package/dist/core/lsp/servers.d.ts.map +1 -1
  234. package/dist/core/lsp/servers.js +43 -3
  235. package/dist/core/lsp/servers.js.map +1 -1
  236. package/dist/core/lsp/servers.test.d.ts +2 -0
  237. package/dist/core/lsp/servers.test.d.ts.map +1 -0
  238. package/dist/core/lsp/servers.test.js +67 -0
  239. package/dist/core/lsp/servers.test.js.map +1 -0
  240. package/dist/core/lsp/windows.test.js +6 -18
  241. package/dist/core/lsp/windows.test.js.map +1 -1
  242. package/dist/core/mcp/catalog-cache.d.ts +63 -0
  243. package/dist/core/mcp/catalog-cache.d.ts.map +1 -0
  244. package/dist/core/mcp/catalog-cache.js +163 -0
  245. package/dist/core/mcp/catalog-cache.js.map +1 -0
  246. package/dist/core/mcp/catalog-cache.test.d.ts +2 -0
  247. package/dist/core/mcp/catalog-cache.test.d.ts.map +1 -0
  248. package/dist/core/mcp/catalog-cache.test.js +99 -0
  249. package/dist/core/mcp/catalog-cache.test.js.map +1 -0
  250. package/dist/core/mcp/client-session-recovery.test.d.ts +2 -0
  251. package/dist/core/mcp/client-session-recovery.test.d.ts.map +1 -0
  252. package/dist/core/mcp/client-session-recovery.test.js +231 -0
  253. package/dist/core/mcp/client-session-recovery.test.js.map +1 -0
  254. package/dist/core/mcp/client.d.ts +158 -0
  255. package/dist/core/mcp/client.d.ts.map +1 -1
  256. package/dist/core/mcp/client.js +478 -45
  257. package/dist/core/mcp/client.js.map +1 -1
  258. package/dist/core/mcp/content.d.ts +19 -0
  259. package/dist/core/mcp/content.d.ts.map +1 -0
  260. package/dist/core/mcp/content.js +172 -0
  261. package/dist/core/mcp/content.js.map +1 -0
  262. package/dist/core/mcp/content.test.d.ts +2 -0
  263. package/dist/core/mcp/content.test.d.ts.map +1 -0
  264. package/dist/core/mcp/content.test.js +135 -0
  265. package/dist/core/mcp/content.test.js.map +1 -0
  266. package/dist/core/mcp/deferred-catalog.d.ts +1 -1
  267. package/dist/core/mcp/deferred-catalog.js +1 -1
  268. package/dist/core/mcp/elicitation-bridge.d.ts +41 -0
  269. package/dist/core/mcp/elicitation-bridge.d.ts.map +1 -0
  270. package/dist/core/mcp/elicitation-bridge.js +52 -0
  271. package/dist/core/mcp/elicitation-bridge.js.map +1 -0
  272. package/dist/core/mcp/elicitation.test.d.ts +2 -0
  273. package/dist/core/mcp/elicitation.test.d.ts.map +1 -0
  274. package/dist/core/mcp/elicitation.test.js +158 -0
  275. package/dist/core/mcp/elicitation.test.js.map +1 -0
  276. package/dist/core/mcp/index.d.ts +5 -1
  277. package/dist/core/mcp/index.d.ts.map +1 -1
  278. package/dist/core/mcp/index.js +2 -0
  279. package/dist/core/mcp/index.js.map +1 -1
  280. package/dist/core/mcp/legacy-negotiation.test.d.ts +2 -0
  281. package/dist/core/mcp/legacy-negotiation.test.d.ts.map +1 -0
  282. package/dist/core/mcp/legacy-negotiation.test.js +80 -0
  283. package/dist/core/mcp/legacy-negotiation.test.js.map +1 -0
  284. package/dist/core/mcp/oauth-provider.d.ts +1 -2
  285. package/dist/core/mcp/oauth-provider.d.ts.map +1 -1
  286. package/dist/core/mcp/oauth-provider.js +6 -2
  287. package/dist/core/mcp/oauth-provider.js.map +1 -1
  288. package/dist/core/mcp/oauth-store.d.ts +1 -1
  289. package/dist/core/mcp/oauth-store.d.ts.map +1 -1
  290. package/dist/core/mcp/oauth-store.js.map +1 -1
  291. package/dist/core/mcp/oauth-store.test.js +2 -2
  292. package/dist/core/mcp/resolve-stdio.test.js +5 -5
  293. package/dist/core/mcp/session-elicitation-wiring.test.d.ts +2 -0
  294. package/dist/core/mcp/session-elicitation-wiring.test.d.ts.map +1 -0
  295. package/dist/core/mcp/session-elicitation-wiring.test.js +138 -0
  296. package/dist/core/mcp/session-elicitation-wiring.test.js.map +1 -0
  297. package/dist/core/mcp/shared-pool.d.ts +158 -0
  298. package/dist/core/mcp/shared-pool.d.ts.map +1 -0
  299. package/dist/core/mcp/shared-pool.js +235 -0
  300. package/dist/core/mcp/shared-pool.js.map +1 -0
  301. package/dist/core/mcp/shared-pool.test.d.ts +2 -0
  302. package/dist/core/mcp/shared-pool.test.d.ts.map +1 -0
  303. package/dist/core/mcp/shared-pool.test.js +425 -0
  304. package/dist/core/mcp/shared-pool.test.js.map +1 -0
  305. package/dist/core/mcp/store.test.js +5 -5
  306. package/dist/core/mcp/types.d.ts +12 -0
  307. package/dist/core/mcp/types.d.ts.map +1 -1
  308. package/dist/core/mcp/when-connected.test.d.ts +2 -0
  309. package/dist/core/mcp/when-connected.test.d.ts.map +1 -0
  310. package/dist/core/mcp/when-connected.test.js +46 -0
  311. package/dist/core/mcp/when-connected.test.js.map +1 -0
  312. package/dist/core/nolan-context.d.ts.map +1 -1
  313. package/dist/core/nolan-context.js +8 -0
  314. package/dist/core/nolan-context.js.map +1 -1
  315. package/dist/core/nolan-context.test.js +40 -0
  316. package/dist/core/nolan-context.test.js.map +1 -1
  317. package/dist/core/nolan-model.test.js +1 -1
  318. package/dist/core/nolan-prompt.js +8 -5
  319. package/dist/core/nolan-prompt.js.map +1 -1
  320. package/dist/core/nolan-prompt.test.js +5 -0
  321. package/dist/core/nolan-prompt.test.js.map +1 -1
  322. package/dist/core/oauth/xai.d.ts +2 -0
  323. package/dist/core/oauth/xai.d.ts.map +1 -0
  324. package/dist/core/oauth/xai.js +4 -0
  325. package/dist/core/oauth/xai.js.map +1 -0
  326. package/dist/core/persistent-shell.d.ts +3 -2
  327. package/dist/core/persistent-shell.d.ts.map +1 -1
  328. package/dist/core/persistent-shell.js +11 -4
  329. package/dist/core/persistent-shell.js.map +1 -1
  330. package/dist/core/persistent-shell.test.js +6 -6
  331. package/dist/core/process-gate.d.ts +45 -0
  332. package/dist/core/process-gate.d.ts.map +1 -0
  333. package/dist/core/process-gate.js +79 -0
  334. package/dist/core/process-gate.js.map +1 -0
  335. package/dist/core/process-gate.test.d.ts +2 -0
  336. package/dist/core/process-gate.test.d.ts.map +1 -0
  337. package/dist/core/process-gate.test.js +87 -0
  338. package/dist/core/process-gate.test.js.map +1 -0
  339. package/dist/core/process-manager-dev-server-repro.test.js +51 -12
  340. package/dist/core/process-manager-dev-server-repro.test.js.map +1 -1
  341. package/dist/core/process-manager-notifications.test.d.ts +2 -0
  342. package/dist/core/process-manager-notifications.test.d.ts.map +1 -0
  343. package/dist/core/process-manager-notifications.test.js +227 -0
  344. package/dist/core/process-manager-notifications.test.js.map +1 -0
  345. package/dist/core/process-manager.d.ts +72 -1
  346. package/dist/core/process-manager.d.ts.map +1 -1
  347. package/dist/core/process-manager.js +247 -4
  348. package/dist/core/process-manager.js.map +1 -1
  349. package/dist/core/progress/git-xp.test.js +2 -2
  350. package/dist/core/progress/ranks.d.ts +14 -3
  351. package/dist/core/progress/ranks.d.ts.map +1 -1
  352. package/dist/core/progress/ranks.js +181 -12
  353. package/dist/core/progress/ranks.js.map +1 -1
  354. package/dist/core/progress/ranks.test.js +48 -7
  355. package/dist/core/progress/ranks.test.js.map +1 -1
  356. package/dist/core/progress/rebuild.test.js +1 -1
  357. package/dist/core/progress/store.test.js +1 -1
  358. package/dist/core/progress/types.d.ts +2 -1
  359. package/dist/core/progress/types.d.ts.map +1 -1
  360. package/dist/core/project-discovery.d.ts +31 -6
  361. package/dist/core/project-discovery.d.ts.map +1 -1
  362. package/dist/core/project-discovery.js +349 -79
  363. package/dist/core/project-discovery.js.map +1 -1
  364. package/dist/core/project-discovery.test.js +128 -4
  365. package/dist/core/project-discovery.test.js.map +1 -1
  366. package/dist/core/prompt-commands.js +3 -3
  367. package/dist/core/radio.d.ts +1 -1
  368. package/dist/core/radio.d.ts.map +1 -1
  369. package/dist/core/radio.js +90 -6
  370. package/dist/core/radio.js.map +1 -1
  371. package/dist/core/radio.test.js +15 -2
  372. package/dist/core/radio.test.js.map +1 -1
  373. package/dist/core/regrounding.d.ts.map +1 -1
  374. package/dist/core/regrounding.js +1 -0
  375. package/dist/core/regrounding.js.map +1 -1
  376. package/dist/core/run-claim.d.ts +37 -0
  377. package/dist/core/run-claim.d.ts.map +1 -0
  378. package/dist/core/run-claim.js +46 -0
  379. package/dist/core/run-claim.js.map +1 -0
  380. package/dist/core/run-claim.test.d.ts +2 -0
  381. package/dist/core/run-claim.test.d.ts.map +1 -0
  382. package/dist/core/run-claim.test.js +107 -0
  383. package/dist/core/run-claim.test.js.map +1 -0
  384. package/dist/core/run-journal.test.d.ts +2 -0
  385. package/dist/core/run-journal.test.d.ts.map +1 -0
  386. package/dist/core/run-journal.test.js +195 -0
  387. package/dist/core/run-journal.test.js.map +1 -0
  388. package/dist/core/run-lifecycle.d.ts +22 -3
  389. package/dist/core/run-lifecycle.d.ts.map +1 -1
  390. package/dist/core/run-lifecycle.js +12 -3
  391. package/dist/core/run-lifecycle.js.map +1 -1
  392. package/dist/core/sandbox-domains.d.ts +14 -0
  393. package/dist/core/sandbox-domains.d.ts.map +1 -0
  394. package/dist/core/sandbox-domains.js +76 -0
  395. package/dist/core/sandbox-domains.js.map +1 -0
  396. package/dist/core/sandbox-feedback.d.ts +22 -0
  397. package/dist/core/sandbox-feedback.d.ts.map +1 -0
  398. package/dist/core/sandbox-feedback.js +69 -0
  399. package/dist/core/sandbox-feedback.js.map +1 -0
  400. package/dist/core/sandbox-feedback.test.d.ts +2 -0
  401. package/dist/core/sandbox-feedback.test.d.ts.map +1 -0
  402. package/dist/core/sandbox-feedback.test.js +32 -0
  403. package/dist/core/sandbox-feedback.test.js.map +1 -0
  404. package/dist/core/sandbox.d.ts +91 -0
  405. package/dist/core/sandbox.d.ts.map +1 -0
  406. package/dist/core/sandbox.js +254 -0
  407. package/dist/core/sandbox.js.map +1 -0
  408. package/dist/core/sandbox.test.d.ts +2 -0
  409. package/dist/core/sandbox.test.d.ts.map +1 -0
  410. package/dist/core/sandbox.test.js +157 -0
  411. package/dist/core/sandbox.test.js.map +1 -0
  412. package/dist/core/semantic-search-benchmark.d.ts +2 -2
  413. package/dist/core/semantic-search-benchmark.js +5 -5
  414. package/dist/core/session-compaction.d.ts +6 -0
  415. package/dist/core/session-compaction.d.ts.map +1 -1
  416. package/dist/core/session-compaction.js +11 -1
  417. package/dist/core/session-compaction.js.map +1 -1
  418. package/dist/core/session-compaction.test.js +19 -2
  419. package/dist/core/session-compaction.test.js.map +1 -1
  420. package/dist/core/session-export.d.ts.map +1 -1
  421. package/dist/core/session-export.js +12 -4
  422. package/dist/core/session-export.js.map +1 -1
  423. package/dist/core/session-history.d.ts +95 -6
  424. package/dist/core/session-history.d.ts.map +1 -1
  425. package/dist/core/session-history.js +261 -17
  426. package/dist/core/session-history.js.map +1 -1
  427. package/dist/core/session-history.test.js +173 -2
  428. package/dist/core/session-history.test.js.map +1 -1
  429. package/dist/core/session-manager.d.ts +223 -6
  430. package/dist/core/session-manager.d.ts.map +1 -1
  431. package/dist/core/session-manager.js +579 -74
  432. package/dist/core/session-manager.js.map +1 -1
  433. package/dist/core/session-manager.test.js +154 -10
  434. package/dist/core/session-manager.test.js.map +1 -1
  435. package/dist/core/session-notification-visibility.test.d.ts +2 -0
  436. package/dist/core/session-notification-visibility.test.d.ts.map +1 -0
  437. package/dist/core/session-notification-visibility.test.js +113 -0
  438. package/dist/core/session-notification-visibility.test.js.map +1 -0
  439. package/dist/core/session-preview.d.ts +5 -4
  440. package/dist/core/session-preview.d.ts.map +1 -1
  441. package/dist/core/session-preview.js +12 -5
  442. package/dist/core/session-preview.js.map +1 -1
  443. package/dist/core/session-restore-display.test.js +25 -0
  444. package/dist/core/session-restore-display.test.js.map +1 -1
  445. package/dist/core/session-storage-fd-leak.test.d.ts +2 -0
  446. package/dist/core/session-storage-fd-leak.test.d.ts.map +1 -0
  447. package/dist/core/session-storage-fd-leak.test.js +116 -0
  448. package/dist/core/session-storage-fd-leak.test.js.map +1 -0
  449. package/dist/core/session-storage.d.ts +22 -2
  450. package/dist/core/session-storage.d.ts.map +1 -1
  451. package/dist/core/session-storage.js +72 -9
  452. package/dist/core/session-storage.js.map +1 -1
  453. package/dist/core/session-storage.test.js +8 -3
  454. package/dist/core/session-storage.test.js.map +1 -1
  455. package/dist/core/settings-manager.d.ts +10 -2
  456. package/dist/core/settings-manager.d.ts.map +1 -1
  457. package/dist/core/settings-manager.js +36 -1
  458. package/dist/core/settings-manager.js.map +1 -1
  459. package/dist/core/shell-path.js +1 -1
  460. package/dist/core/shell.d.ts +1 -1
  461. package/dist/core/shell.js +2 -2
  462. package/dist/core/shell.test.js +2 -2
  463. package/dist/core/shutdown.d.ts +71 -0
  464. package/dist/core/shutdown.d.ts.map +1 -0
  465. package/dist/core/shutdown.js +144 -0
  466. package/dist/core/shutdown.js.map +1 -0
  467. package/dist/core/shutdown.test.d.ts +2 -0
  468. package/dist/core/shutdown.test.d.ts.map +1 -0
  469. package/dist/core/shutdown.test.js +160 -0
  470. package/dist/core/shutdown.test.js.map +1 -0
  471. package/dist/core/sidecar-error-reporter.js +1 -1
  472. package/dist/core/sidecar-error-reporter.test.js +2 -2
  473. package/dist/core/skills-routing.test.js +96 -0
  474. package/dist/core/skills-routing.test.js.map +1 -1
  475. package/dist/core/skills.d.ts.map +1 -1
  476. package/dist/core/skills.js +3 -0
  477. package/dist/core/skills.js.map +1 -1
  478. package/dist/core/steering.d.ts +12 -0
  479. package/dist/core/steering.d.ts.map +1 -1
  480. package/dist/core/steering.js +16 -0
  481. package/dist/core/steering.js.map +1 -1
  482. package/dist/core/subagent-manager.d.ts +22 -0
  483. package/dist/core/subagent-manager.d.ts.map +1 -1
  484. package/dist/core/subagent-manager.js +84 -13
  485. package/dist/core/subagent-manager.js.map +1 -1
  486. package/dist/core/subagent-manager.test.js +57 -15
  487. package/dist/core/subagent-manager.test.js.map +1 -1
  488. package/dist/core/subagent-store.test.js +3 -3
  489. package/dist/core/task-store.js +1 -1
  490. package/dist/core/verification-evidence.d.ts +17 -0
  491. package/dist/core/verification-evidence.d.ts.map +1 -0
  492. package/dist/core/verification-evidence.js +283 -0
  493. package/dist/core/verification-evidence.js.map +1 -0
  494. package/dist/core/verification-evidence.test.d.ts +2 -0
  495. package/dist/core/verification-evidence.test.d.ts.map +1 -0
  496. package/dist/core/verification-evidence.test.js +103 -0
  497. package/dist/core/verification-evidence.test.js.map +1 -0
  498. package/dist/index.js +1 -1
  499. package/dist/index.js.map +1 -1
  500. package/dist/interactive.d.ts.map +1 -1
  501. package/dist/interactive.js +17 -3
  502. package/dist/interactive.js.map +1 -1
  503. package/dist/modes/acp-mode.d.ts +122 -0
  504. package/dist/modes/acp-mode.d.ts.map +1 -0
  505. package/dist/modes/acp-mode.js +1366 -0
  506. package/dist/modes/acp-mode.js.map +1 -0
  507. package/dist/modes/acp-mode.test.d.ts +2 -0
  508. package/dist/modes/acp-mode.test.d.ts.map +1 -0
  509. package/dist/modes/acp-mode.test.js +1065 -0
  510. package/dist/modes/acp-mode.test.js.map +1 -0
  511. package/dist/modes/agent-home-mode.d.ts.map +1 -1
  512. package/dist/modes/agent-home-mode.js +15 -11
  513. package/dist/modes/agent-home-mode.js.map +1 -1
  514. package/dist/modes/index.d.ts +1 -0
  515. package/dist/modes/index.d.ts.map +1 -1
  516. package/dist/modes/index.js +1 -0
  517. package/dist/modes/index.js.map +1 -1
  518. package/dist/modes/json-mode.d.ts +36 -0
  519. package/dist/modes/json-mode.d.ts.map +1 -1
  520. package/dist/modes/json-mode.js +39 -0
  521. package/dist/modes/json-mode.js.map +1 -1
  522. package/dist/modes/json-mode.test.d.ts +2 -0
  523. package/dist/modes/json-mode.test.d.ts.map +1 -0
  524. package/dist/modes/json-mode.test.js +84 -0
  525. package/dist/modes/json-mode.test.js.map +1 -0
  526. package/dist/modes/serve-mode.d.ts +1 -1
  527. package/dist/modes/serve-mode.d.ts.map +1 -1
  528. package/dist/modes/serve-mode.js +14 -9
  529. package/dist/modes/serve-mode.js.map +1 -1
  530. package/dist/modes/subagent-worker-mode.d.ts +8 -0
  531. package/dist/modes/subagent-worker-mode.d.ts.map +1 -1
  532. package/dist/modes/subagent-worker-mode.js +91 -11
  533. package/dist/modes/subagent-worker-mode.js.map +1 -1
  534. package/dist/modes/subagent-worker-mode.test.d.ts +2 -0
  535. package/dist/modes/subagent-worker-mode.test.d.ts.map +1 -0
  536. package/dist/modes/subagent-worker-mode.test.js +52 -0
  537. package/dist/modes/subagent-worker-mode.test.js.map +1 -0
  538. package/dist/session.d.ts +29 -0
  539. package/dist/session.d.ts.map +1 -1
  540. package/dist/session.js +41 -0
  541. package/dist/session.js.map +1 -1
  542. package/dist/session.test.js +1 -1
  543. package/dist/system-prompt.d.ts +37 -1
  544. package/dist/system-prompt.d.ts.map +1 -1
  545. package/dist/system-prompt.js +123 -11
  546. package/dist/system-prompt.js.map +1 -1
  547. package/dist/system-prompt.test.js +90 -11
  548. package/dist/system-prompt.test.js.map +1 -1
  549. package/dist/system-prompt.tiering.test.d.ts +2 -0
  550. package/dist/system-prompt.tiering.test.d.ts.map +1 -0
  551. package/dist/system-prompt.tiering.test.js +105 -0
  552. package/dist/system-prompt.tiering.test.js.map +1 -0
  553. package/dist/tools/bash.d.ts +2 -1
  554. package/dist/tools/bash.d.ts.map +1 -1
  555. package/dist/tools/bash.js +55 -16
  556. package/dist/tools/bash.js.map +1 -1
  557. package/dist/tools/code-nav.d.ts +30 -0
  558. package/dist/tools/code-nav.d.ts.map +1 -0
  559. package/dist/tools/code-nav.js +320 -0
  560. package/dist/tools/code-nav.js.map +1 -0
  561. package/dist/tools/code-nav.test.d.ts +2 -0
  562. package/dist/tools/code-nav.test.d.ts.map +1 -0
  563. package/dist/tools/code-nav.test.js +136 -0
  564. package/dist/tools/code-nav.test.js.map +1 -0
  565. package/dist/tools/edit.test.js +1 -1
  566. package/dist/tools/generate-image.d.ts +1 -1
  567. package/dist/tools/goals.d.ts +4 -4
  568. package/dist/tools/goals.test.js +2 -2
  569. package/dist/tools/grep-parity.test.d.ts +2 -0
  570. package/dist/tools/grep-parity.test.d.ts.map +1 -0
  571. package/dist/tools/grep-parity.test.js +92 -0
  572. package/dist/tools/grep-parity.test.js.map +1 -0
  573. package/dist/tools/grep-recall.test.d.ts +2 -0
  574. package/dist/tools/grep-recall.test.d.ts.map +1 -0
  575. package/dist/tools/grep-recall.test.js +114 -0
  576. package/dist/tools/grep-recall.test.js.map +1 -0
  577. package/dist/tools/grep-spawn.test.d.ts +2 -0
  578. package/dist/tools/grep-spawn.test.d.ts.map +1 -0
  579. package/dist/tools/grep-spawn.test.js +66 -0
  580. package/dist/tools/grep-spawn.test.js.map +1 -0
  581. package/dist/tools/grep.d.ts +13 -3
  582. package/dist/tools/grep.d.ts.map +1 -1
  583. package/dist/tools/grep.js +342 -41
  584. package/dist/tools/grep.js.map +1 -1
  585. package/dist/tools/grep.test.js +17 -14
  586. package/dist/tools/grep.test.js.map +1 -1
  587. package/dist/tools/index.d.ts +20 -2
  588. package/dist/tools/index.d.ts.map +1 -1
  589. package/dist/tools/index.js +28 -18
  590. package/dist/tools/index.js.map +1 -1
  591. package/dist/tools/index.test.d.ts +2 -0
  592. package/dist/tools/index.test.d.ts.map +1 -0
  593. package/dist/tools/index.test.js +55 -0
  594. package/dist/tools/index.test.js.map +1 -0
  595. package/dist/tools/plan-mode.test.js +1 -1
  596. package/dist/tools/prompt-hints.d.ts +9 -0
  597. package/dist/tools/prompt-hints.d.ts.map +1 -1
  598. package/dist/tools/prompt-hints.js +61 -8
  599. package/dist/tools/prompt-hints.js.map +1 -1
  600. package/dist/tools/read-only-bash.d.ts +3 -0
  601. package/dist/tools/read-only-bash.d.ts.map +1 -1
  602. package/dist/tools/read-only-bash.js +7 -9
  603. package/dist/tools/read-only-bash.js.map +1 -1
  604. package/dist/tools/safe-env.js +1 -1
  605. package/dist/tools/search-code.d.ts.map +1 -1
  606. package/dist/tools/search-code.js +7 -6
  607. package/dist/tools/search-code.js.map +1 -1
  608. package/dist/tools/search-code.test.js +8 -2
  609. package/dist/tools/search-code.test.js.map +1 -1
  610. package/dist/tools/skill.js +2 -1
  611. package/dist/tools/skill.js.map +1 -1
  612. package/dist/tools/subagent-control.d.ts.map +1 -1
  613. package/dist/tools/subagent-control.js +25 -6
  614. package/dist/tools/subagent-control.js.map +1 -1
  615. package/dist/tools/subagent-control.test.js +34 -1
  616. package/dist/tools/subagent-control.test.js.map +1 -1
  617. package/dist/tools/subagent-shared.d.ts +26 -1
  618. package/dist/tools/subagent-shared.d.ts.map +1 -1
  619. package/dist/tools/subagent-shared.js +40 -7
  620. package/dist/tools/subagent-shared.js.map +1 -1
  621. package/dist/tools/subagent-shared.test.js +43 -9
  622. package/dist/tools/subagent-shared.test.js.map +1 -1
  623. package/dist/tools/subagent.d.ts.map +1 -1
  624. package/dist/tools/subagent.js +54 -16
  625. package/dist/tools/subagent.js.map +1 -1
  626. package/dist/tools/subagent.test.js +68 -3
  627. package/dist/tools/subagent.test.js.map +1 -1
  628. package/dist/tools/task-output.d.ts.map +1 -1
  629. package/dist/tools/task-output.js +3 -1
  630. package/dist/tools/task-output.js.map +1 -1
  631. package/dist/tools/task-send.test.js +19 -10
  632. package/dist/tools/task-send.test.js.map +1 -1
  633. package/dist/tools/tool-search.d.ts +12 -1
  634. package/dist/tools/tool-search.d.ts.map +1 -1
  635. package/dist/tools/tool-search.js +24 -4
  636. package/dist/tools/tool-search.js.map +1 -1
  637. package/dist/tools/tool-search.test.d.ts +2 -0
  638. package/dist/tools/tool-search.test.d.ts.map +1 -0
  639. package/dist/tools/tool-search.test.js +69 -0
  640. package/dist/tools/tool-search.test.js.map +1 -0
  641. package/dist/tools/tool-tiers.d.ts +42 -0
  642. package/dist/tools/tool-tiers.d.ts.map +1 -0
  643. package/dist/tools/tool-tiers.js +78 -0
  644. package/dist/tools/tool-tiers.js.map +1 -0
  645. package/dist/tools/tool-tiers.test.d.ts +2 -0
  646. package/dist/tools/tool-tiers.test.d.ts.map +1 -0
  647. package/dist/tools/tool-tiers.test.js +48 -0
  648. package/dist/tools/tool-tiers.test.js.map +1 -0
  649. package/dist/tools/web-fetch.d.ts +1 -1
  650. package/dist/tools/web-fetch.d.ts.map +1 -1
  651. package/dist/tools/web-fetch.js +5 -2
  652. package/dist/tools/web-fetch.js.map +1 -1
  653. package/dist/tools/write.test.js +1 -1
  654. package/dist/types.d.ts +7 -0
  655. package/dist/types.d.ts.map +1 -1
  656. package/dist/ui/App.d.ts.map +1 -1
  657. package/dist/ui/App.js +27 -1
  658. package/dist/ui/App.js.map +1 -1
  659. package/dist/ui/components/Banner.d.ts.map +1 -1
  660. package/dist/ui/components/Banner.js +24 -16
  661. package/dist/ui/components/Banner.js.map +1 -1
  662. package/dist/ui/components/ToolExecution.js +42 -34
  663. package/dist/ui/components/ToolExecution.js.map +1 -1
  664. package/dist/ui/components/force-color.d.ts +2 -0
  665. package/dist/ui/components/force-color.d.ts.map +1 -0
  666. package/dist/ui/components/force-color.js +11 -0
  667. package/dist/ui/components/force-color.js.map +1 -0
  668. package/dist/ui/components/themed-output.test.d.ts +2 -0
  669. package/dist/ui/components/themed-output.test.d.ts.map +1 -0
  670. package/dist/ui/components/themed-output.test.js +111 -0
  671. package/dist/ui/components/themed-output.test.js.map +1 -0
  672. package/dist/ui/error-item.d.ts +1 -1
  673. package/dist/ui/error-item.js +3 -3
  674. package/dist/ui/error-item.js.map +1 -1
  675. package/dist/ui/hooks/useAgentLoop.d.ts +3 -0
  676. package/dist/ui/hooks/useAgentLoop.d.ts.map +1 -1
  677. package/dist/ui/hooks/useAgentLoop.js +45 -6
  678. package/dist/ui/hooks/useAgentLoop.js.map +1 -1
  679. package/dist/ui/login.js +1 -1
  680. package/dist/ui/login.js.map +1 -1
  681. package/dist/ui/render.d.ts +1 -1
  682. package/dist/ui/render.js +6 -6
  683. package/dist/ui/theme/dark-ansi.json +6 -0
  684. package/dist/ui/theme/dark-daltonized.json +6 -0
  685. package/dist/ui/theme/dark.json +6 -0
  686. package/dist/ui/theme/light-ansi.json +6 -0
  687. package/dist/ui/theme/light-daltonized.json +6 -0
  688. package/dist/ui/theme/light.json +6 -0
  689. package/dist/ui/theme/theme.d.ts +6 -0
  690. package/dist/ui/theme/theme.d.ts.map +1 -1
  691. package/dist/ui/tui-terminal-recorder.test.js +1 -1
  692. package/dist/utils/git.test.js +3 -3
  693. package/dist/utils/github.test.js +3 -3
  694. package/dist/utils/github.test.js.map +1 -1
  695. package/dist/utils/image.d.ts +26 -3
  696. package/dist/utils/image.d.ts.map +1 -1
  697. package/dist/utils/image.js +83 -14
  698. package/dist/utils/image.js.map +1 -1
  699. package/dist/utils/image.test.d.ts +2 -0
  700. package/dist/utils/image.test.d.ts.map +1 -0
  701. package/dist/utils/image.test.js +139 -0
  702. package/dist/utils/image.test.js.map +1 -0
  703. package/package.json +7 -6
@@ -18,7 +18,7 @@
18
18
  * npx tsx src/core/bash-spawn-benchmark.ts
19
19
  *
20
20
  * Env overrides:
21
- * GG_BASH_BENCH_N (commands per strategy, default 30)
21
+ * EZ_BASH_BENCH_N (commands per strategy, default 30)
22
22
  */
23
23
  import { spawn } from "node:child_process";
24
24
  import { randomUUID } from "node:crypto";
@@ -61,7 +61,7 @@ class PersistentShell {
61
61
  }
62
62
  run(cmd) {
63
63
  const start = performance.now();
64
- const sentinel = `__GG_DONE_${randomUUID()}__`;
64
+ const sentinel = `__EZ_DONE_${randomUUID()}__`;
65
65
  return new Promise((resolve) => {
66
66
  this.waiter = { sentinel, resolve: () => resolve(performance.now() - start) };
67
67
  this.child.stdin.write(`${cmd}\necho ${sentinel}\n`);
@@ -69,8 +69,8 @@ class PersistentShell {
69
69
  }
70
70
  /** Prove state persistence: cd + env var survive across run() calls. */
71
71
  async statePersists() {
72
- await this.run("cd /tmp && export GG_BENCH_STATE=alive");
73
- const sentinel = `__GG_STATE_${randomUUID()}__`;
72
+ await this.run("cd /tmp && export EZ_BENCH_STATE=alive");
73
+ const sentinel = `__EZ_STATE_${randomUUID()}__`;
74
74
  const out = await new Promise((resolve) => {
75
75
  let acc = "";
76
76
  const onData = (d) => {
@@ -81,7 +81,7 @@ class PersistentShell {
81
81
  }
82
82
  };
83
83
  this.child.stdout.on("data", onData);
84
- this.child.stdin.write(`pwd; echo "$GG_BENCH_STATE"; echo ${sentinel}\n`);
84
+ this.child.stdin.write(`pwd; echo "$EZ_BENCH_STATE"; echo ${sentinel}\n`);
85
85
  });
86
86
  return out.includes("/tmp") && out.includes("alive");
87
87
  }
@@ -102,7 +102,7 @@ function fmt(s) {
102
102
  `p50 ${s.p50.toFixed(1)}ms | p95 ${s.p95.toFixed(1)}ms`);
103
103
  }
104
104
  async function main() {
105
- const n = Math.max(5, parseInt(process.env.GG_BASH_BENCH_N ?? "30", 10));
105
+ const n = Math.max(5, parseInt(process.env.EZ_BASH_BENCH_N ?? "30", 10));
106
106
  const cmds = buildCommandList(n);
107
107
  console.log(`\n🐚 Bash harness overhead — ${n} commands per strategy\n`);
108
108
  // Warm both paths once so first-touch costs don't skew either side.
@@ -0,0 +1,3 @@
1
+ import type { AgentDefinition } from "./agents.js";
2
+ export declare const BUNDLED_AGENTS: AgentDefinition[];
3
+ //# sourceMappingURL=bundled-agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundled-agents.d.ts","sourceRoot":"","sources":["../../src/core/bundled-agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAkMnD,eAAO,MAAM,cAAc,EAAE,eAAe,EAuE3C,CAAC"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Agent definitions that ship with every ezcoder install.
3
+ *
4
+ * These are TypeScript constants rather than `assets/*.md` on purpose: the
5
+ * desktop sidecar bundler (`bundle-sidecar.mjs`) externalizes asset trees, so a
6
+ * new one is a packaging risk, while constants compile straight into `dist`.
7
+ *
8
+ * They are also NOT seeded into `~/.ezcoder/agents`. A seeded file shadows every
9
+ * future improvement forever (user-dir agents win by design), which is exactly
10
+ * the bug `removeShadowingSeededAgents` exists to undo. Users who want to
11
+ * customize one still can — writing `~/.ezcoder/agents/<name>.md` overrides the
12
+ * bundled definition of the same name.
13
+ *
14
+ * `description` is the routing signal the dispatcher reads, so each one names
15
+ * concrete task shapes ("Use when…") instead of describing the agent's vibe.
16
+ */
17
+ const OWL_PROMPT = `You are Owl, a sharp-eyed codebase explorer.
18
+ You map how THIS repository fits together — structure, symbols, call chains, patterns. You work only from local code and never research the web (that's \`researcher\`).
19
+
20
+ When given a task:
21
+ 1. Fix the scope — the exact symbol, pattern, or question to resolve
22
+ 2. \`find\`/\`ls\` to map the relevant directories
23
+ 3. \`code_search\` for "where is X implemented" in TS/JS; \`grep\` for exact strings and other languages
24
+ 4. \`read\` the key files to confirm details — never report a call chain you haven't read
25
+ 5. Trace connections — exports, imports, callers, data flow
26
+
27
+ Structure the answer as:
28
+ - **Answer**: the direct answer, first
29
+ - **Files**: each relevant path + one line on what it holds
30
+ - **Connections**: who calls/imports what
31
+ - **Flags**: anything surprising, risky, or ambiguous
32
+
33
+ Explore widely, report tightly. Miss nothing, waste no words.`;
34
+ const BEE_PROMPT = `You are Bee, an industrious task worker.
35
+ You complete an assigned task end-to-end — writing code, running commands, fixing bugs, refactoring — and deliver a working result, not a description of one.
36
+
37
+ When given a task:
38
+ 1. Understand what's asked and explore the relevant code for context
39
+ 2. Implement directly, in minimal focused changes that match the surrounding code
40
+ 3. Verify: run the narrowest check that proves the change (typecheck or the nearest test), and fix what breaks
41
+ 4. Report concisely
42
+
43
+ ## Stop when
44
+ - The task is done and your verification passes — OR
45
+ - You're blocked (ambiguous requirement, missing dependency, a failure you can't resolve without guessing). Stop and report the blocker; don't thrash or expand scope to force it.
46
+
47
+ Do the work, don't just describe it. Don't over-engineer, and don't refactor what you weren't asked to touch.`;
48
+ const RESEARCHER_PROMPT = `You are Researcher, a deep-dive analyst.
49
+ You answer questions the code alone can't settle — dependency behavior, API contracts, framework internals, version differences, best practices — by cross-referencing THIS codebase against authoritative external sources. For pure in-repo tracing with no web, defer to \`owl\`.
50
+
51
+ When given a research task:
52
+ 1. Pin down the question — what must be resolved, and what counts as proof
53
+ 2. Ground it in the code — read the call sites and conventions that matter here
54
+ 3. Verify against authoritative sources — \`source_path\` for the installed dependency's real source, \`web_fetch\` for official docs and changelogs, the kencode-search tools for real public usage. Never assert an API, flag, or default from memory
55
+ 4. Reconcile — where does this repo agree with or diverge from the source?
56
+
57
+ Structure the answer as:
58
+ - **Summary**: the direct answer (2-3 sentences)
59
+ - **Evidence**: the specific files, doc URLs, package versions, or source paths that back it
60
+ - **Risks**: mismatches, stale assumptions, or gotchas
61
+
62
+ Be exhaustive in research, compressed in reporting. Cite sources; don't guess.`;
63
+ const WORKER_PROMPT = `You are Worker, a branch-isolated implementer.
64
+
65
+ Your job is to implement a scoped change on its own git branch, verify it works, and open a PR. You always work on a fresh branch — never commit to the current branch directly.
66
+
67
+ ## Workflow
68
+
69
+ 1. **Branch**: Create and switch to a new branch from the current HEAD.
70
+ - Branch name format: \`batch/<short-kebab-description>\`
71
+ - Run: \`git checkout -b batch/<name>\`
72
+
73
+ 2. **Implement**: Make the assigned change. Follow any conventions and patterns described in your task.
74
+
75
+ 3. **Self-review**: Before committing, review your own diff (\`git diff\`) for:
76
+ - Code that duplicates existing utilities (search the codebase first)
77
+ - Redundant state, copy-paste, leaky abstractions
78
+ - Unnecessary work, missed concurrency, hot-path bloat
79
+ - Fix any issues found.
80
+
81
+ 4. **Test**: Run the project's test suite. Fix failures **your change caused**. If a failure is pre-existing or outside your assigned unit, do NOT expand scope to chase it — leave it and note it in the report. Scope wins over green.
82
+
83
+ 5. **Commit & Push**:
84
+ - Stage specific files (not \`git add -A\`)
85
+ - Write a clear, descriptive commit message
86
+ - \`git push -u origin <branch-name>\`
87
+
88
+ 6. **Open PR**: \`gh pr create --title "<title>" --body "<description>"\`. If \`gh\` is unavailable or the push fails, note it.
89
+
90
+ 7. **Switch back**: \`git checkout -\` to the original branch.
91
+
92
+ ## Stop when
93
+ - The change is implemented, self-reviewed, and pushed with a PR open — OR
94
+ - You cannot proceed without exceeding scope, touching unrelated code, or fixing a pre-existing failure. Stop and report rather than sprawl.
95
+
96
+ ## What to report — lead with exactly these lines
97
+ - **PR**: \`<url>\` — or \`PR: none — <reason>\`
98
+ - **Changed**: files touched + one line each
99
+ - **Tests**: pass / fail, and which failures were left as out-of-scope
100
+ - **Notes**: assumptions made, anything left for follow-up
101
+
102
+ ## Rules
103
+
104
+ - Never commit to main/master or the branch you started on
105
+ - Always switch back to the original branch when done
106
+ - Keep changes minimal and scoped to your assigned unit
107
+ - If something is unclear, make your best judgment and note the assumption`;
108
+ const AUDITOR_PROMPT = `You are Auditor, a defensive security analyst tasked with finding exploitable weaknesses in this codebase so the team can patch them before the project ships.
109
+
110
+ You review code rigorously: you look for bypasses that would matter in practice, not pattern violations. You trace data flow from untrusted sources to dangerous sinks. Assume a sophisticated adversary with SDK-level access, an intercepting proxy, the public source, and time — and identify what would expose the project to them.
111
+
112
+ ## Core discipline
113
+
114
+ 1. **Trace, don't pattern-match.** Every finding must have a concrete Source → Sink path traced through the actual code.
115
+ 2. **Untrusted vs trusted inputs.** Before flagging, decide whether the input is *actually* reachable by an untrusted source, or a settings constant / build-time string / hardcoded value. If the latter, drop it.
116
+ 3. **Vulnerability scenarios are mandatory.** Describe how the weakness is triggered: input, system response, resulting exposure. If you cannot describe the steps, you cannot flag the finding.
117
+ 4. **Confidence ≥0.8 only.** Better to miss theoretical issues than flood the report with noise.
118
+ 5. **Framework awareness.** ORM parameterization, auto-escape, memory-safe languages, JSX/template escaping all eliminate entire vuln classes. Don't flag what the framework already handles.
119
+
120
+ ## Output for each finding
121
+
122
+ - **Location**: file:line
123
+ - **Category**: <slug> (sql_injection, ssrf, prototype_pollution, supply_chain, ...)
124
+ - **CWE**: CWE-XXX
125
+ - **Confidence**: 0.0–1.0
126
+ - **Source → Sink**: the actual data path
127
+ - **Vulnerability scenario**: numbered steps showing trigger → response → exposure
128
+ - **Impact**: what is exposed, blast radius
129
+ - **Fix**: concrete code-level remediation
130
+
131
+ ## Hard exclusions — do NOT report:
132
+
133
+ - DOS / rate-limiting / memory exhaustion without an amplification primitive
134
+ - Theoretical race conditions without a demonstrable window
135
+ - Regex-DOS without untrusted-supplied regex
136
+ - Log spoofing / log injection (cosmetic)
137
+ - SSRF where the URL is a settings constant or build-time string
138
+ - Env-var trust (env is server-controlled by definition)
139
+ - Client-side authentication theatre on a server-validated endpoint
140
+ - React/Vue/Angular XSS without unsafe sinks (\`dangerouslySetInnerHTML\`, \`v-html\`, \`bypassSecurityTrust*\` are the only real ones)
141
+ - Shell-script command injection without an untrusted input path
142
+ - Findings in documentation, example code, or test fixtures
143
+ - Insecure-by-design dev tooling that doesn't ship to users
144
+ - "Could be improved" preferences with no demonstrable path
145
+
146
+ Return findings ranked Critical → High → Medium. If nothing meets the bar, return "No high-confidence findings."`;
147
+ const SKEPTIC_PROMPT = `You are Skeptic, a rigorous reviewer whose job is to DISPROVE security findings handed to you. You start from "this is a false positive" and only conclude otherwise if the evidence is overwhelming.
148
+
149
+ ## Your mission
150
+
151
+ Given a security finding, attempt to break it. Try every angle:
152
+
153
+ 1. **Reachability**: Is the claimed source actually untrusted-controlled, or a settings constant, build-time value, or env var (server-controlled by definition)?
154
+ 2. **Control flow**: Even if the source is real, does control flow actually reach the sink? Is there a guard, validator, or sanitizer in between that the original audit missed?
155
+ 3. **Framework handling**: Would the framework (ORM, template engine, auto-escape, memory-safe language) eliminate this entire vuln class?
156
+ 4. **Trigger feasibility**: Can you actually construct the input that triggers the path? What would the response look like? If you can't construct it, the finding stands on theory.
157
+ 5. **Severity inflation**: Is the impact overstated? "RCE" claims often turn out to be "writes to a sandboxed file path."
158
+
159
+ Read the code yourself. Do not trust the audit's claim — verify each step.
160
+
161
+ ## Verdict format
162
+
163
+ For each finding, return:
164
+ - **Verdict**: CONFIRMED / DROP / DOWNGRADE
165
+ - **Reason**: 1-3 sentence explanation
166
+ - **If CONFIRMED**: re-state the vulnerability scenario in your own words to prove you verified it end-to-end
167
+ - **If DROP**: cite which exclusion rule applies, or which step in the chain fails
168
+ - **If DOWNGRADE**: new severity + reason
169
+
170
+ ## Hard exclusions — automatic DROP regardless of source:
171
+
172
+ - DOS / rate-limiting / memory exhaustion without an amplification primitive
173
+ - Theoretical race conditions without a demonstrable window
174
+ - Regex-DOS without untrusted-supplied regex
175
+ - Log spoofing / log injection (cosmetic only)
176
+ - SSRF where the URL is a settings constant or build-time string
177
+ - Env-var trust ("untrusted source controls \\$HOME" — env is server-controlled)
178
+ - Client-side authn checks on endpoints that re-validate server-side
179
+ - React/Vue/Angular XSS unless \`dangerouslySetInnerHTML\` / \`v-html\` / \`bypassSecurityTrust*\` is the sink
180
+ - Shell-script command injection without an untrusted input path
181
+ - Findings in documentation, example code, or test fixtures
182
+ - Insecure-by-design dev tooling that doesn't ship to users
183
+ - "Could be improved" preferences with no demonstrable path
184
+
185
+ Be rigorous. The cost of a false positive is the user's trust in the entire report.`;
186
+ export const BUNDLED_AGENTS = [
187
+ {
188
+ name: "bee",
189
+ description: "Use for a self-contained implementation task on the current branch: write a module, fix a bug, run a migration, make a failing test pass. Edits files and runs commands. Use `worker` instead when the change needs its own git branch and a PR; use `owl` when nothing should be modified.",
190
+ tools: ["read", "write", "edit", "bash", "find", "grep", "code_search", "ls", "source_path"],
191
+ model: "inherit",
192
+ systemPrompt: BEE_PROMPT,
193
+ source: "bundled",
194
+ },
195
+ {
196
+ name: "owl",
197
+ description: 'Use for read-only questions about THIS repository: "where is X implemented", "what calls Y", "how does module Z fit together", tracing a data flow or mapping a directory. Never edits and never uses the web.',
198
+ tools: ["read", "grep", "find", "ls", "code_search", "source_path"],
199
+ // Structural recon is mechanical pattern work; the cheap tier handles it
200
+ // well and keeps wide fan-out affordable.
201
+ model: "fast",
202
+ // Conventions and style rules don't change where a symbol is defined, and
203
+ // skipping them keeps recon fast (matching Claude Code's Explore agent).
204
+ context: "none",
205
+ systemPrompt: OWL_PROMPT,
206
+ source: "bundled",
207
+ },
208
+ {
209
+ name: "researcher",
210
+ description: "Use when an answer needs sources outside this repo: a dependency's real behavior, an API contract, framework internals, version/changelog differences, or current best practice. Reads installed package source, official docs, and public code. Use `owl` when the repo alone can settle it.",
211
+ tools: [
212
+ "read",
213
+ "grep",
214
+ "find",
215
+ "ls",
216
+ "code_search",
217
+ "source_path",
218
+ "web_fetch",
219
+ "web_search",
220
+ "mcp__kencode-search__searchCode",
221
+ "mcp__kencode-search__referenceSources",
222
+ ],
223
+ model: "inherit",
224
+ systemPrompt: RESEARCHER_PROMPT,
225
+ source: "bundled",
226
+ },
227
+ {
228
+ name: "worker",
229
+ description: "Use to land one scoped change in isolation: it creates a `batch/*` git branch, implements, self-reviews, tests, commits, pushes, and opens a PR, then returns to the original branch. Use for parallel fan-out of independent units of work. Use `bee` for in-place edits with no branch or PR.",
230
+ tools: ["read", "write", "edit", "bash", "find", "grep", "code_search", "ls"],
231
+ model: "inherit",
232
+ systemPrompt: WORKER_PROMPT,
233
+ source: "bundled",
234
+ },
235
+ {
236
+ name: "auditor",
237
+ description: "Use for a defensive security review of code or a diff: traces untrusted input to dangerous sinks and reports exploitable findings with concrete vulnerability scenarios, CWE, and fixes. Read-only.",
238
+ tools: ["read", "grep", "find", "ls", "code_search", "bash", "web_fetch", "web_search"],
239
+ model: "inherit",
240
+ systemPrompt: AUDITOR_PROMPT,
241
+ source: "bundled",
242
+ },
243
+ {
244
+ name: "skeptic",
245
+ description: "Use to triage security findings before reporting them: re-verifies each claimed source→sink path in the code and returns CONFIRMED / DROP / DOWNGRADE with the reason. Pair it with `auditor` output. Read-only.",
246
+ tools: ["read", "grep", "find", "ls", "code_search", "bash", "web_fetch", "web_search"],
247
+ model: "inherit",
248
+ systemPrompt: SKEPTIC_PROMPT,
249
+ source: "bundled",
250
+ },
251
+ ];
252
+ //# sourceMappingURL=bundled-agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundled-agents.js","sourceRoot":"","sources":["../../src/core/bundled-agents.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;8DAgB2C,CAAC;AAE/D,MAAM,UAAU,GAAG;;;;;;;;;;;;;8GAa2F,CAAC;AAE/G,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;+EAcqD,CAAC;AAEhF,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EA4CqD,CAAC;AAE5E,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iHAsC0F,CAAC;AAElH,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oFAsC6D,CAAC;AAErF,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EACT,6RAA6R;QAC/R,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC;QAC5F,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,UAAU;QACxB,MAAM,EAAE,SAAS;KAClB;IACD;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EACT,gNAAgN;QAClN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC;QACnE,yEAAyE;QACzE,0CAA0C;QAC1C,KAAK,EAAE,MAAM;QACb,0EAA0E;QAC1E,yEAAyE;QACzE,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,UAAU;QACxB,MAAM,EAAE,SAAS;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,+RAA+R;QACjS,KAAK,EAAE;YACL,MAAM;YACN,MAAM;YACN,MAAM;YACN,IAAI;YACJ,aAAa;YACb,aAAa;YACb,WAAW;YACX,YAAY;YACZ,iCAAiC;YACjC,uCAAuC;SACxC;QACD,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,iBAAiB;QAC/B,MAAM,EAAE,SAAS;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,iSAAiS;QACnS,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC;QAC7E,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,aAAa;QAC3B,MAAM,EAAE,SAAS;KAClB;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qMAAqM;QACvM,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;QACvF,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,cAAc;QAC5B,MAAM,EAAE,SAAS;KAClB;IACD;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EACT,kNAAkN;QACpN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;QACvF,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,cAAc;QAC5B,MAAM,EAAE,SAAS;KAClB;CACF,CAAC"}
@@ -15,8 +15,8 @@
15
15
  * regardless of throughput noise.
16
16
  *
17
17
  * Usage: npx tsx src/core/cache-warm-benchmark.ts
18
- * Env: GG_CW_PROVIDER (default anthropic), GG_CW_MODEL (default claude-haiku-4-5-20251001),
19
- * GG_CW_REPS (default 4)
18
+ * Env: EZ_CW_PROVIDER (default anthropic), EZ_CW_MODEL (default claude-haiku-4-5-20251001),
19
+ * EZ_CW_REPS (default 4)
20
20
  */
21
21
  export {};
22
22
  //# sourceMappingURL=cache-warm-benchmark.d.ts.map
@@ -15,8 +15,8 @@
15
15
  * regardless of throughput noise.
16
16
  *
17
17
  * Usage: npx tsx src/core/cache-warm-benchmark.ts
18
- * Env: GG_CW_PROVIDER (default anthropic), GG_CW_MODEL (default claude-haiku-4-5-20251001),
19
- * GG_CW_REPS (default 4)
18
+ * Env: EZ_CW_PROVIDER (default anthropic), EZ_CW_MODEL (default claude-haiku-4-5-20251001),
19
+ * EZ_CW_REPS (default 4)
20
20
  */
21
21
  import { stream } from "@prestyj/ai";
22
22
  import { AuthStorage } from "./auth-storage.js";
@@ -105,9 +105,9 @@ function sleep(ms) {
105
105
  return new Promise((r) => setTimeout(r, ms));
106
106
  }
107
107
  async function main() {
108
- const provider = process.env.GG_CW_PROVIDER ?? "anthropic";
109
- const model = process.env.GG_CW_MODEL ?? "claude-haiku-4-5-20251001";
110
- const reps = parseInt(process.env.GG_CW_REPS ?? "4", 10);
108
+ const provider = process.env.EZ_CW_PROVIDER ?? "anthropic";
109
+ const model = process.env.EZ_CW_MODEL ?? "claude-haiku-4-5-20251001";
110
+ const reps = parseInt(process.env.EZ_CW_REPS ?? "4", 10);
111
111
  const auth = new AuthStorage();
112
112
  await auth.load();
113
113
  const c = await auth.resolveCredentials(provider);
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Line-scanning symbol chunkers for the languages without an AST on hand.
3
+ *
4
+ * TS/JS is chunked from a real TypeScript AST (see `code-retrieval.ts`).
5
+ * Everything else is chunked here by declaration patterns plus brace or
6
+ * indentation tracking. That is deliberately dependency-free: a parser per
7
+ * language would cost five more dependencies and a startup penalty on every
8
+ * search, to sharpen boundaries that BM25 ranking is already tolerant of.
9
+ */
10
+ import type { Chunk } from "./code-retrieval.js";
11
+ export type BraceLanguage = "go" | "rust" | "java" | "csharp";
12
+ /**
13
+ * Chunk a brace-delimited language.
14
+ *
15
+ * Declarations are recognised only at the current top level, where "top level"
16
+ * follows container blocks inward: a type inside a C# namespace is top level, a
17
+ * method inside that type is not — it belongs to its type's chunk, exactly as
18
+ * the TS chunker treats class members.
19
+ */
20
+ export declare function chunkByBraces(rel: string, source: string, language: BraceLanguage): Chunk[];
21
+ /**
22
+ * Chunk Python by indentation: a top-level declaration owns every following
23
+ * line indented past column 0, plus any decorators stacked directly above it
24
+ * (a decorator belongs to its declaration, not to a chunk of its own).
25
+ */
26
+ export declare function chunkByIndentation(rel: string, source: string): Chunk[];
27
+ //# sourceMappingURL=code-retrieval-chunkers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-retrieval-chunkers.d.ts","sourceRoot":"","sources":["../../src/core/code-retrieval-chunkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAwD9D;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,KAAK,EAAE,CAyC3F;AAuID;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,CAsCvE"}
@@ -0,0 +1,264 @@
1
+ const BRACE_RULES = {
2
+ go: {
3
+ declarations: [
4
+ // Methods carry a receiver: `func (w *Widget) Render() {`.
5
+ /^func\s+(?:\([^)]*\)\s*)?([A-Za-z_]\w*)/,
6
+ /^type\s+([A-Za-z_]\w*)/,
7
+ /^(?:var|const)\s+([A-Za-z_]\w*)/,
8
+ ],
9
+ containers: [],
10
+ lineComment: "//",
11
+ },
12
+ rust: {
13
+ declarations: [
14
+ /^(?:pub(?:\([^)]*\))?\s+)?(?:default\s+)?(?:const\s+)?(?:async\s+)?(?:unsafe\s+)?(?:extern\s+"[^"]*"\s+)?fn\s+([A-Za-z_]\w*)/,
15
+ /^(?:pub(?:\([^)]*\))?\s+)?(?:unsafe\s+)?(?:struct|enum|trait|union|type|const|static)\s+([A-Za-z_]\w*)/,
16
+ /^macro_rules!\s+([A-Za-z_]\w*)/,
17
+ // `impl<T> Display for Widget<T> {` — named for the type it implements.
18
+ /^(?:unsafe\s+)?impl\b[^{]*/,
19
+ ],
20
+ containers: [/^(?:pub(?:\([^)]*\))?\s+)?mod\s+[A-Za-z_]\w*/],
21
+ lineComment: "//",
22
+ },
23
+ java: {
24
+ declarations: [
25
+ /^(?:(?:public|private|protected|static|final|abstract|sealed|non-sealed|strictfp)\s+)*(?:class|interface|enum|record|@interface)\s+([A-Za-z_]\w*)/,
26
+ ],
27
+ containers: [],
28
+ lineComment: "//",
29
+ },
30
+ csharp: {
31
+ declarations: [
32
+ /^(?:(?:public|private|protected|internal|static|sealed|abstract|partial|readonly|unsafe|file)\s+)*(?:class|interface|struct|enum|record)\s+([A-Za-z_]\w*)/,
33
+ ],
34
+ containers: [/^namespace\s+[A-Za-z_][\w.]*/],
35
+ lineComment: "//",
36
+ },
37
+ };
38
+ /** Hard span cap, so an unbalanced file cannot produce one whole-file chunk. */
39
+ const MAX_CHUNK_LINES = 2000;
40
+ /**
41
+ * Chunk a brace-delimited language.
42
+ *
43
+ * Declarations are recognised only at the current top level, where "top level"
44
+ * follows container blocks inward: a type inside a C# namespace is top level, a
45
+ * method inside that type is not — it belongs to its type's chunk, exactly as
46
+ * the TS chunker treats class members.
47
+ */
48
+ export function chunkByBraces(rel, source, language) {
49
+ const rules = BRACE_RULES[language];
50
+ const lines = source.split("\n");
51
+ const chunks = [];
52
+ const containerDepths = [];
53
+ const state = { inBlockComment: false };
54
+ let depth = 0;
55
+ for (let i = 0; i < lines.length; i++) {
56
+ const code = stripNoise(lines[i], rules.lineComment, state);
57
+ const trimmed = code.trim();
58
+ if (depth === containerDepths.length && trimmed) {
59
+ if (rules.containers.some((re) => re.test(trimmed))) {
60
+ containerDepths.push(depth);
61
+ depth += netBraces(code);
62
+ continue;
63
+ }
64
+ const symbol = matchDeclaration(trimmed, rules.declarations, language);
65
+ if (symbol) {
66
+ const end = findBlockEnd(lines, i, rules.lineComment, { ...state });
67
+ chunks.push({
68
+ file: rel,
69
+ symbol,
70
+ text: lines.slice(i, end + 1).join("\n"),
71
+ startLine: i + 1,
72
+ });
73
+ // Replay the block to keep block-comment state honest. Its braces are
74
+ // balanced by construction, so `depth` is unchanged.
75
+ for (let j = i + 1; j <= end; j++)
76
+ stripNoise(lines[j], rules.lineComment, state);
77
+ i = end;
78
+ continue;
79
+ }
80
+ }
81
+ depth += netBraces(code);
82
+ while (containerDepths.length > 0 && depth <= containerDepths[containerDepths.length - 1]) {
83
+ containerDepths.pop();
84
+ }
85
+ }
86
+ return chunks;
87
+ }
88
+ function matchDeclaration(trimmed, declarations, language) {
89
+ for (const pattern of declarations) {
90
+ const match = pattern.exec(trimmed);
91
+ if (!match)
92
+ continue;
93
+ if (match[1])
94
+ return match[1];
95
+ // Unnamed pattern — currently only Rust `impl`, named for its target type.
96
+ if (language === "rust")
97
+ return implTargetName(match[0]);
98
+ }
99
+ return undefined;
100
+ }
101
+ /** `impl<T> Display for Widget<T>` → `Widget`: the type being implemented. */
102
+ function implTargetName(header) {
103
+ const withoutGenerics = header.replace(/<[^<>]*>/g, " ");
104
+ const afterFor = /\bfor\b(.*)$/.exec(withoutGenerics);
105
+ const target = (afterFor ? afterFor[1] : withoutGenerics.replace(/^\s*(?:unsafe\s+)?impl/, ""))
106
+ .replace(/\bwhere\b.*$/, "")
107
+ .trim();
108
+ const identifiers = target.match(/[A-Za-z_]\w*/g);
109
+ return identifiers?.[identifiers.length - 1] ?? "impl";
110
+ }
111
+ /** Trailing characters that mean the declaration continues on the next line. */
112
+ const CONTINUATION = /[,([{=+\-&|:<>?\\]$/;
113
+ /**
114
+ * Last line of the declaration starting at `start`.
115
+ *
116
+ * Two phases. The header phase reads until the body's opening brace, tolerating
117
+ * a signature split across lines (unbalanced parens, a trailing comma, a brace
118
+ * parked on its own line). If the header completes with no brace at all, the
119
+ * declaration is a bodiless statement — `const Port = 8080`, `type Alias = ...;`
120
+ * — and ends right there. Getting that wrong is expensive: the chunk would run
121
+ * on and swallow the declarations after it, which then vanish from the index.
122
+ *
123
+ * The body phase then counts braces to the matching close.
124
+ */
125
+ function findBlockEnd(lines, start, lineComment, state) {
126
+ let depth = 0;
127
+ let parens = 0;
128
+ let opened = false;
129
+ const limit = Math.min(lines.length, start + MAX_CHUNK_LINES);
130
+ for (let i = start; i < limit; i++) {
131
+ const code = stripNoise(lines[i], lineComment, state);
132
+ const trimmed = code.trim();
133
+ if (!opened) {
134
+ if (code.includes("{")) {
135
+ opened = true;
136
+ }
137
+ else {
138
+ parens += netOf(code, "(", ")") + netOf(code, "[", "]");
139
+ if (trimmed.endsWith(";"))
140
+ return i;
141
+ const nextStartsBlock = (lines[i + 1] ?? "").trim().startsWith("{");
142
+ if (parens <= 0 && trimmed && !CONTINUATION.test(trimmed) && !nextStartsBlock)
143
+ return i;
144
+ continue;
145
+ }
146
+ }
147
+ depth += netBraces(code);
148
+ if (depth <= 0)
149
+ return i;
150
+ }
151
+ return opened ? limit - 1 : start;
152
+ }
153
+ function netOf(code, open, close) {
154
+ let net = 0;
155
+ for (const ch of code) {
156
+ if (ch === open)
157
+ net++;
158
+ else if (ch === close)
159
+ net--;
160
+ }
161
+ return net;
162
+ }
163
+ function netBraces(code) {
164
+ let net = 0;
165
+ for (const ch of code) {
166
+ if (ch === "{")
167
+ net++;
168
+ else if (ch === "}")
169
+ net--;
170
+ }
171
+ return net;
172
+ }
173
+ /**
174
+ * Blank out string literals and comments so their braces are never counted.
175
+ * `state.inBlockComment` carries across lines, and escapes are honoured so a
176
+ * trailing escaped quote does not leave a string open forever.
177
+ */
178
+ function stripNoise(line, lineComment, state) {
179
+ let out = "";
180
+ let quote;
181
+ for (let i = 0; i < line.length; i++) {
182
+ const ch = line[i];
183
+ if (state.inBlockComment) {
184
+ if (ch === "*" && line[i + 1] === "/") {
185
+ state.inBlockComment = false;
186
+ i++;
187
+ }
188
+ continue;
189
+ }
190
+ if (quote) {
191
+ if (ch === "\\")
192
+ i++;
193
+ else if (ch === quote)
194
+ quote = undefined;
195
+ continue;
196
+ }
197
+ if (ch === '"' || ch === "'" || ch === "`") {
198
+ quote = ch;
199
+ continue;
200
+ }
201
+ if (ch === "/" && line[i + 1] === "*") {
202
+ state.inBlockComment = true;
203
+ i++;
204
+ continue;
205
+ }
206
+ if (lineComment && line.startsWith(lineComment, i))
207
+ break;
208
+ out += ch;
209
+ }
210
+ return out;
211
+ }
212
+ const PYTHON_DECLARATIONS = [
213
+ /^(?:async\s+)?def\s+([A-Za-z_]\w*)/,
214
+ /^class\s+([A-Za-z_]\w*)/,
215
+ // Module-level constants — the Python analogue of an exported const.
216
+ /^([A-Z_][A-Z0-9_]*)\s*(?::[^=]+)?=/,
217
+ ];
218
+ /**
219
+ * Chunk Python by indentation: a top-level declaration owns every following
220
+ * line indented past column 0, plus any decorators stacked directly above it
221
+ * (a decorator belongs to its declaration, not to a chunk of its own).
222
+ */
223
+ export function chunkByIndentation(rel, source) {
224
+ const lines = source.split("\n");
225
+ const chunks = [];
226
+ for (let i = 0; i < lines.length; i++) {
227
+ const line = lines[i];
228
+ if (!line || /^\s/.test(line))
229
+ continue;
230
+ let symbol;
231
+ for (const pattern of PYTHON_DECLARATIONS) {
232
+ const match = pattern.exec(line);
233
+ if (match) {
234
+ symbol = match[1];
235
+ break;
236
+ }
237
+ }
238
+ if (!symbol)
239
+ continue;
240
+ let start = i;
241
+ while (start > 0 && /^@\w/.test(lines[start - 1]))
242
+ start--;
243
+ let end = i;
244
+ for (let j = i + 1; j < lines.length; j++) {
245
+ const next = lines[j];
246
+ if (next.trim() === "")
247
+ continue;
248
+ if (!/^\s/.test(next))
249
+ break;
250
+ end = j;
251
+ if (end - start >= MAX_CHUNK_LINES)
252
+ break;
253
+ }
254
+ chunks.push({
255
+ file: rel,
256
+ symbol,
257
+ text: lines.slice(start, end + 1).join("\n"),
258
+ startLine: start + 1,
259
+ });
260
+ i = end;
261
+ }
262
+ return chunks;
263
+ }
264
+ //# sourceMappingURL=code-retrieval-chunkers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-retrieval-chunkers.js","sourceRoot":"","sources":["../../src/core/code-retrieval-chunkers.ts"],"names":[],"mappings":"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"}