@quickchatai/pi-quickreview 0.0.0-stage → 1.1.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 (689) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +75 -2
  3. package/assets/agents/pass-abstraction.md +64 -0
  4. package/assets/agents/pass-ask-human.md +134 -0
  5. package/assets/agents/pass-backcompat.md +67 -0
  6. package/assets/agents/pass-baseline.md +61 -0
  7. package/assets/agents/pass-behaviour-delta.md +64 -0
  8. package/assets/agents/pass-bounds.md +36 -0
  9. package/assets/agents/pass-claims.md +31 -0
  10. package/assets/agents/pass-concurrency.md +168 -0
  11. package/assets/agents/pass-consistency.md +57 -0
  12. package/assets/agents/pass-contracts.md +30 -0
  13. package/assets/agents/pass-data-safety.md +54 -0
  14. package/assets/agents/pass-deferred.md +35 -0
  15. package/assets/agents/pass-delivery.md +37 -0
  16. package/assets/agents/pass-duplication.md +60 -0
  17. package/assets/agents/pass-intent.md +63 -0
  18. package/assets/agents/pass-lint-conformance.md +46 -0
  19. package/assets/agents/pass-maintainability.md +67 -0
  20. package/assets/agents/pass-placement.md +68 -0
  21. package/assets/agents/pass-prod-risk.md +24 -0
  22. package/assets/agents/pass-rollout.md +32 -0
  23. package/assets/agents/pass-roundtrip.md +46 -0
  24. package/assets/agents/pass-security.md +31 -0
  25. package/assets/agents/pass-simplicity.md +68 -0
  26. package/assets/agents/pass-statelessness.md +27 -0
  27. package/assets/agents/pass-style.md +37 -0
  28. package/assets/agents/pass-sweep.md +57 -0
  29. package/assets/agents/pass-tests.md +58 -0
  30. package/assets/agents/pass-ui.md +23 -0
  31. package/assets/agents/pass-validate.md +50 -0
  32. package/assets/agents/pass-widened.md +46 -0
  33. package/assets/agents/scan/pass-scan.md +86 -0
  34. package/assets/config.example.toml +1067 -0
  35. package/assets/deploy/reviewer/AGENTS.override.md +12 -0
  36. package/assets/profiles/default/README.md +21 -0
  37. package/assets/profiles/default/addenda/.gitkeep +0 -0
  38. package/assets/profiles/default/profile.toml +17 -0
  39. package/assets/profiles/example-django/README.md +21 -0
  40. package/assets/profiles/example-django/addenda/10-migration-discipline.md +13 -0
  41. package/assets/profiles/example-django/addenda/20-new-column-nullability.md +12 -0
  42. package/assets/profiles/example-django/addenda/30-test-doctrine.md +12 -0
  43. package/assets/profiles/example-django/addenda/40-orm-usage.md +19 -0
  44. package/assets/profiles/example-django/addenda/50-declared-shape.md +10 -0
  45. package/assets/profiles/example-django/addenda/60-config-placement.md +14 -0
  46. package/assets/profiles/example-django/heuristics.toml +24 -0
  47. package/assets/profiles/example-django/profile.toml +9 -0
  48. package/assets/profiles/fast/README.md +24 -0
  49. package/assets/profiles/fast/profile.toml +59 -0
  50. package/assets/profiles/minimal/README.md +17 -0
  51. package/assets/profiles/minimal/addenda/.gitkeep +0 -0
  52. package/assets/profiles/minimal/profile.toml +8 -0
  53. package/assets/profiles/snappy/README.md +24 -0
  54. package/assets/profiles/snappy/addenda/10-race-as-question.md +6 -0
  55. package/assets/profiles/snappy/profile.toml +46 -0
  56. package/assets/prompts/companion-day-open.md +46 -0
  57. package/assets/prompts/companion-first-run.md +104 -0
  58. package/assets/prompts/companion.md +821 -0
  59. package/assets/prompts/conversation-system.md +117 -0
  60. package/assets/prompts/eod-sweep.md +120 -0
  61. package/assets/prompts/onboarding.md +74 -0
  62. package/assets/prompts/pass-common.md +52 -0
  63. package/assets/prompts/pass-quality-common.md +22 -0
  64. package/assets/prompts/round-first.md +874 -0
  65. package/assets/prompts/round-follow-up.md +991 -0
  66. package/assets/prompts/round-re-review.md +889 -0
  67. package/assets/prompts/round-recheck.md +196 -0
  68. package/assets/prompts/round-staleness.md +856 -0
  69. package/assets/schemas/review-result.v1.json +391 -0
  70. package/assets/schemas/scan-result.v1.json +421 -0
  71. package/assets/schemas/version.v1.json +57 -0
  72. package/assets/seed-manifest.json +19 -0
  73. package/assets/seeds/agents/pass-baseline.md +61 -0
  74. package/assets/seeds/agents/pass-contracts.md +30 -0
  75. package/assets/seeds/agents/pass-data-safety.md +54 -0
  76. package/assets/seeds/agents/pass-delivery.md +37 -0
  77. package/assets/seeds/agents/pass-prod-risk.md +24 -0
  78. package/assets/seeds/agents/pass-security.md +31 -0
  79. package/assets/seeds/agents/pass-statelessness.md +27 -0
  80. package/assets/seeds/agents/pass-ui.md +23 -0
  81. package/assets/seeds/agents/pass-validate.md +50 -0
  82. package/assets/seeds/prompts/conversation-system.md +117 -0
  83. package/assets/seeds/prompts/eod-sweep.md +120 -0
  84. package/assets/seeds/prompts/pass-common.md +52 -0
  85. package/dist/extensions/bash-guard.d.ts +467 -0
  86. package/dist/extensions/bash-guard.d.ts.map +1 -0
  87. package/dist/extensions/bash-guard.js +3058 -0
  88. package/dist/extensions/bash-guard.js.map +1 -0
  89. package/dist/extensions/finding-clusters.d.ts +33 -0
  90. package/dist/extensions/finding-clusters.d.ts.map +1 -0
  91. package/dist/extensions/finding-clusters.js +218 -0
  92. package/dist/extensions/finding-clusters.js.map +1 -0
  93. package/dist/extensions/ledger-pin.d.ts +76 -0
  94. package/dist/extensions/ledger-pin.d.ts.map +1 -0
  95. package/dist/extensions/ledger-pin.js +331 -0
  96. package/dist/extensions/ledger-pin.js.map +1 -0
  97. package/dist/extensions/lens.d.ts +43 -0
  98. package/dist/extensions/lens.d.ts.map +1 -0
  99. package/dist/extensions/lens.js +150 -0
  100. package/dist/extensions/lens.js.map +1 -0
  101. package/dist/extensions/pi-tool.d.ts +22 -0
  102. package/dist/extensions/pi-tool.d.ts.map +1 -0
  103. package/dist/extensions/pi-tool.js +20 -0
  104. package/dist/extensions/pi-tool.js.map +1 -0
  105. package/dist/extensions/quickreview.d.ts +21 -0
  106. package/dist/extensions/quickreview.d.ts.map +1 -0
  107. package/dist/extensions/quickreview.js +132 -0
  108. package/dist/extensions/quickreview.js.map +1 -0
  109. package/dist/src/anchors.d.ts +54 -0
  110. package/dist/src/anchors.d.ts.map +1 -0
  111. package/dist/src/anchors.js +127 -0
  112. package/dist/src/anchors.js.map +1 -0
  113. package/dist/src/assetroot.d.ts +16 -0
  114. package/dist/src/assetroot.d.ts.map +1 -0
  115. package/dist/src/assetroot.js +77 -0
  116. package/dist/src/assetroot.js.map +1 -0
  117. package/dist/src/authwatch.d.ts +61 -0
  118. package/dist/src/authwatch.d.ts.map +1 -0
  119. package/dist/src/authwatch.js +210 -0
  120. package/dist/src/authwatch.js.map +1 -0
  121. package/dist/src/budget.d.ts +15 -0
  122. package/dist/src/budget.d.ts.map +1 -0
  123. package/dist/src/budget.js +32 -0
  124. package/dist/src/budget.js.map +1 -0
  125. package/dist/src/casebudget.d.ts +3 -0
  126. package/dist/src/casebudget.d.ts.map +1 -0
  127. package/dist/src/casebudget.js +3 -0
  128. package/dist/src/casebudget.js.map +1 -0
  129. package/dist/src/cigate.d.ts +116 -0
  130. package/dist/src/cigate.d.ts.map +1 -0
  131. package/dist/src/cigate.js +176 -0
  132. package/dist/src/cigate.js.map +1 -0
  133. package/dist/src/codespan.d.ts +46 -0
  134. package/dist/src/codespan.d.ts.map +1 -0
  135. package/dist/src/codespan.js +75 -0
  136. package/dist/src/codespan.js.map +1 -0
  137. package/dist/src/contextpack.d.ts +56 -0
  138. package/dist/src/contextpack.d.ts.map +1 -0
  139. package/dist/src/contextpack.js +195 -0
  140. package/dist/src/contextpack.js.map +1 -0
  141. package/dist/src/contract.d.ts +8 -0
  142. package/dist/src/contract.d.ts.map +1 -0
  143. package/dist/src/contract.js +21 -0
  144. package/dist/src/contract.js.map +1 -0
  145. package/dist/src/coverage.d.ts +32 -0
  146. package/dist/src/coverage.d.ts.map +1 -0
  147. package/dist/src/coverage.js +85 -0
  148. package/dist/src/coverage.js.map +1 -0
  149. package/dist/src/datafence.d.ts +19 -0
  150. package/dist/src/datafence.d.ts.map +1 -0
  151. package/dist/src/datafence.js +60 -0
  152. package/dist/src/datafence.js.map +1 -0
  153. package/dist/src/dedup.d.ts +65 -0
  154. package/dist/src/dedup.d.ts.map +1 -0
  155. package/dist/src/dedup.js +459 -0
  156. package/dist/src/dedup.js.map +1 -0
  157. package/dist/src/depsources.d.ts +304 -0
  158. package/dist/src/depsources.d.ts.map +1 -0
  159. package/dist/src/depsources.js +3367 -0
  160. package/dist/src/depsources.js.map +1 -0
  161. package/dist/src/diffinput.d.ts +10 -0
  162. package/dist/src/diffinput.d.ts.map +1 -0
  163. package/dist/src/diffinput.js +172 -0
  164. package/dist/src/diffinput.js.map +1 -0
  165. package/dist/src/doubtwords.d.ts +10 -0
  166. package/dist/src/doubtwords.d.ts.map +1 -0
  167. package/dist/src/doubtwords.js +13 -0
  168. package/dist/src/doubtwords.js.map +1 -0
  169. package/dist/src/ecosystem.d.ts +148 -0
  170. package/dist/src/ecosystem.d.ts.map +1 -0
  171. package/dist/src/ecosystem.js +338 -0
  172. package/dist/src/ecosystem.js.map +1 -0
  173. package/dist/src/engine/agentdir.d.ts +5 -0
  174. package/dist/src/engine/agentdir.d.ts.map +1 -0
  175. package/dist/src/engine/agentdir.js +21 -0
  176. package/dist/src/engine/agentdir.js.map +1 -0
  177. package/dist/src/engine/auth.d.ts +214 -0
  178. package/dist/src/engine/auth.d.ts.map +1 -0
  179. package/dist/src/engine/auth.js +374 -0
  180. package/dist/src/engine/auth.js.map +1 -0
  181. package/dist/src/engine/budget.d.ts +60 -0
  182. package/dist/src/engine/budget.d.ts.map +1 -0
  183. package/dist/src/engine/budget.js +113 -0
  184. package/dist/src/engine/budget.js.map +1 -0
  185. package/dist/src/engine/capfd.d.ts +6 -0
  186. package/dist/src/engine/capfd.d.ts.map +1 -0
  187. package/dist/src/engine/capfd.js +21 -0
  188. package/dist/src/engine/capfd.js.map +1 -0
  189. package/dist/src/engine/caseout.d.ts +66 -0
  190. package/dist/src/engine/caseout.d.ts.map +1 -0
  191. package/dist/src/engine/caseout.js +107 -0
  192. package/dist/src/engine/caseout.js.map +1 -0
  193. package/dist/src/engine/context.d.ts +57 -0
  194. package/dist/src/engine/context.d.ts.map +1 -0
  195. package/dist/src/engine/context.js +212 -0
  196. package/dist/src/engine/context.js.map +1 -0
  197. package/dist/src/engine/envmap.d.ts +13 -0
  198. package/dist/src/engine/envmap.d.ts.map +1 -0
  199. package/dist/src/engine/envmap.js +372 -0
  200. package/dist/src/engine/envmap.js.map +1 -0
  201. package/dist/src/engine/extfiles.d.ts +7 -0
  202. package/dist/src/engine/extfiles.d.ts.map +1 -0
  203. package/dist/src/engine/extfiles.js +23 -0
  204. package/dist/src/engine/extfiles.js.map +1 -0
  205. package/dist/src/engine/keyroute.d.ts +21 -0
  206. package/dist/src/engine/keyroute.d.ts.map +1 -0
  207. package/dist/src/engine/keyroute.js +58 -0
  208. package/dist/src/engine/keyroute.js.map +1 -0
  209. package/dist/src/engine/lens/cache-group.d.ts +20 -0
  210. package/dist/src/engine/lens/cache-group.d.ts.map +1 -0
  211. package/dist/src/engine/lens/cache-group.js +31 -0
  212. package/dist/src/engine/lens/cache-group.js.map +1 -0
  213. package/dist/src/engine/lens/cache-run.d.ts +65 -0
  214. package/dist/src/engine/lens/cache-run.d.ts.map +1 -0
  215. package/dist/src/engine/lens/cache-run.js +159 -0
  216. package/dist/src/engine/lens/cache-run.js.map +1 -0
  217. package/dist/src/engine/lens/deadline.d.ts +54 -0
  218. package/dist/src/engine/lens/deadline.d.ts.map +1 -0
  219. package/dist/src/engine/lens/deadline.js +111 -0
  220. package/dist/src/engine/lens/deadline.js.map +1 -0
  221. package/dist/src/engine/lens/engine-tools.d.ts +13 -0
  222. package/dist/src/engine/lens/engine-tools.d.ts.map +1 -0
  223. package/dist/src/engine/lens/engine-tools.js +37 -0
  224. package/dist/src/engine/lens/engine-tools.js.map +1 -0
  225. package/dist/src/engine/lens/env.d.ts +23 -0
  226. package/dist/src/engine/lens/env.d.ts.map +1 -0
  227. package/dist/src/engine/lens/env.js +42 -0
  228. package/dist/src/engine/lens/env.js.map +1 -0
  229. package/dist/src/engine/lens/launch-plan.d.ts +63 -0
  230. package/dist/src/engine/lens/launch-plan.d.ts.map +1 -0
  231. package/dist/src/engine/lens/launch-plan.js +203 -0
  232. package/dist/src/engine/lens/launch-plan.js.map +1 -0
  233. package/dist/src/engine/lens/leaf-cache.d.ts +22 -0
  234. package/dist/src/engine/lens/leaf-cache.d.ts.map +1 -0
  235. package/dist/src/engine/lens/leaf-cache.js +115 -0
  236. package/dist/src/engine/lens/leaf-cache.js.map +1 -0
  237. package/dist/src/engine/lens/permits.d.ts +14 -0
  238. package/dist/src/engine/lens/permits.d.ts.map +1 -0
  239. package/dist/src/engine/lens/permits.js +18 -0
  240. package/dist/src/engine/lens/permits.js.map +1 -0
  241. package/dist/src/engine/lens/registry.d.ts +55 -0
  242. package/dist/src/engine/lens/registry.d.ts.map +1 -0
  243. package/dist/src/engine/lens/registry.js +140 -0
  244. package/dist/src/engine/lens/registry.js.map +1 -0
  245. package/dist/src/engine/lens/round-lens.d.ts +16 -0
  246. package/dist/src/engine/lens/round-lens.d.ts.map +1 -0
  247. package/dist/src/engine/lens/round-lens.js +46 -0
  248. package/dist/src/engine/lens/round-lens.js.map +1 -0
  249. package/dist/src/engine/lens/runlens.d.ts +103 -0
  250. package/dist/src/engine/lens/runlens.d.ts.map +1 -0
  251. package/dist/src/engine/lens/runlens.js +538 -0
  252. package/dist/src/engine/lens/runlens.js.map +1 -0
  253. package/dist/src/engine/lens/section.d.ts +19 -0
  254. package/dist/src/engine/lens/section.d.ts.map +1 -0
  255. package/dist/src/engine/lens/section.js +40 -0
  256. package/dist/src/engine/lens/section.js.map +1 -0
  257. package/dist/src/engine/lens/semaphore.d.ts +13 -0
  258. package/dist/src/engine/lens/semaphore.d.ts.map +1 -0
  259. package/dist/src/engine/lens/semaphore.js +44 -0
  260. package/dist/src/engine/lens/semaphore.js.map +1 -0
  261. package/dist/src/engine/lens/tool.d.ts +34 -0
  262. package/dist/src/engine/lens/tool.d.ts.map +1 -0
  263. package/dist/src/engine/lens/tool.js +345 -0
  264. package/dist/src/engine/lens/tool.js.map +1 -0
  265. package/dist/src/engine/lens/wave.d.ts +63 -0
  266. package/dist/src/engine/lens/wave.d.ts.map +1 -0
  267. package/dist/src/engine/lens/wave.js +95 -0
  268. package/dist/src/engine/lens/wave.js.map +1 -0
  269. package/dist/src/engine/livesessions.d.ts +21 -0
  270. package/dist/src/engine/livesessions.d.ts.map +1 -0
  271. package/dist/src/engine/livesessions.js +57 -0
  272. package/dist/src/engine/livesessions.js.map +1 -0
  273. package/dist/src/engine/livewire.d.ts +18 -0
  274. package/dist/src/engine/livewire.d.ts.map +1 -0
  275. package/dist/src/engine/livewire.js +31 -0
  276. package/dist/src/engine/livewire.js.map +1 -0
  277. package/dist/src/engine/openable.d.ts +37 -0
  278. package/dist/src/engine/openable.d.ts.map +1 -0
  279. package/dist/src/engine/openable.js +120 -0
  280. package/dist/src/engine/openable.js.map +1 -0
  281. package/dist/src/engine/pisdk.d.ts +226 -0
  282. package/dist/src/engine/pisdk.d.ts.map +1 -0
  283. package/dist/src/engine/pisdk.js +552 -0
  284. package/dist/src/engine/pisdk.js.map +1 -0
  285. package/dist/src/engine/port.d.ts +144 -0
  286. package/dist/src/engine/port.d.ts.map +1 -0
  287. package/dist/src/engine/port.js +16 -0
  288. package/dist/src/engine/port.js.map +1 -0
  289. package/dist/src/engine/prompts.d.ts +159 -0
  290. package/dist/src/engine/prompts.d.ts.map +1 -0
  291. package/dist/src/engine/prompts.js +339 -0
  292. package/dist/src/engine/prompts.js.map +1 -0
  293. package/dist/src/engine/render.d.ts +10 -0
  294. package/dist/src/engine/render.d.ts.map +1 -0
  295. package/dist/src/engine/render.js +23 -0
  296. package/dist/src/engine/render.js.map +1 -0
  297. package/dist/src/engine/reviewruntime.d.ts +13 -0
  298. package/dist/src/engine/reviewruntime.d.ts.map +1 -0
  299. package/dist/src/engine/reviewruntime.js +35 -0
  300. package/dist/src/engine/reviewruntime.js.map +1 -0
  301. package/dist/src/engine/reviewsdk.d.ts +75 -0
  302. package/dist/src/engine/reviewsdk.d.ts.map +1 -0
  303. package/dist/src/engine/reviewsdk.js +180 -0
  304. package/dist/src/engine/reviewsdk.js.map +1 -0
  305. package/dist/src/engine/round.d.ts +166 -0
  306. package/dist/src/engine/round.d.ts.map +1 -0
  307. package/dist/src/engine/round.js +543 -0
  308. package/dist/src/engine/round.js.map +1 -0
  309. package/dist/src/engine/roundagents.d.ts +17 -0
  310. package/dist/src/engine/roundagents.d.ts.map +1 -0
  311. package/dist/src/engine/roundagents.js +49 -0
  312. package/dist/src/engine/roundagents.js.map +1 -0
  313. package/dist/src/engine/roundevents.d.ts +110 -0
  314. package/dist/src/engine/roundevents.d.ts.map +1 -0
  315. package/dist/src/engine/roundevents.js +276 -0
  316. package/dist/src/engine/roundevents.js.map +1 -0
  317. package/dist/src/engine/roundsdk.d.ts +33 -0
  318. package/dist/src/engine/roundsdk.d.ts.map +1 -0
  319. package/dist/src/engine/roundsdk.js +76 -0
  320. package/dist/src/engine/roundsdk.js.map +1 -0
  321. package/dist/src/engine/sdkruntime.d.ts +23 -0
  322. package/dist/src/engine/sdkruntime.d.ts.map +1 -0
  323. package/dist/src/engine/sdkruntime.js +340 -0
  324. package/dist/src/engine/sdkruntime.js.map +1 -0
  325. package/dist/src/engine/select.d.ts +16 -0
  326. package/dist/src/engine/select.d.ts.map +1 -0
  327. package/dist/src/engine/select.js +32 -0
  328. package/dist/src/engine/select.js.map +1 -0
  329. package/dist/src/engine/sessionwrap.d.ts +4 -0
  330. package/dist/src/engine/sessionwrap.d.ts.map +1 -0
  331. package/dist/src/engine/sessionwrap.js +31 -0
  332. package/dist/src/engine/sessionwrap.js.map +1 -0
  333. package/dist/src/engine/toolfence.d.ts +90 -0
  334. package/dist/src/engine/toolfence.d.ts.map +1 -0
  335. package/dist/src/engine/toolfence.js +378 -0
  336. package/dist/src/engine/toolfence.js.map +1 -0
  337. package/dist/src/engine/tooluid.d.ts +128 -0
  338. package/dist/src/engine/tooluid.d.ts.map +1 -0
  339. package/dist/src/engine/tooluid.js +401 -0
  340. package/dist/src/engine/tooluid.js.map +1 -0
  341. package/dist/src/envstrip.d.ts +10 -0
  342. package/dist/src/envstrip.d.ts.map +1 -0
  343. package/dist/src/envstrip.js +15 -0
  344. package/dist/src/envstrip.js.map +1 -0
  345. package/dist/src/escalationprompt.d.ts +22 -0
  346. package/dist/src/escalationprompt.d.ts.map +1 -0
  347. package/dist/src/escalationprompt.js +54 -0
  348. package/dist/src/escalationprompt.js.map +1 -0
  349. package/dist/src/execfn.d.ts +29 -0
  350. package/dist/src/execfn.d.ts.map +1 -0
  351. package/dist/src/execfn.js +55 -0
  352. package/dist/src/execfn.js.map +1 -0
  353. package/dist/src/finding-chain.d.ts +40 -0
  354. package/dist/src/finding-chain.d.ts.map +1 -0
  355. package/dist/src/finding-chain.js +76 -0
  356. package/dist/src/finding-chain.js.map +1 -0
  357. package/dist/src/finding-row.d.ts +24 -0
  358. package/dist/src/finding-row.d.ts.map +1 -0
  359. package/dist/src/finding-row.js +26 -0
  360. package/dist/src/finding-row.js.map +1 -0
  361. package/dist/src/findingkey.d.ts +99 -0
  362. package/dist/src/findingkey.d.ts.map +1 -0
  363. package/dist/src/findingkey.js +210 -0
  364. package/dist/src/findingkey.js.map +1 -0
  365. package/dist/src/findingsrecord.d.ts +175 -0
  366. package/dist/src/findingsrecord.d.ts.map +1 -0
  367. package/dist/src/findingsrecord.js +410 -0
  368. package/dist/src/findingsrecord.js.map +1 -0
  369. package/dist/src/followup-mode.d.ts +4 -0
  370. package/dist/src/followup-mode.d.ts.map +1 -0
  371. package/dist/src/followup-mode.js +6 -0
  372. package/dist/src/followup-mode.js.map +1 -0
  373. package/dist/src/gate.d.ts +199 -0
  374. package/dist/src/gate.d.ts.map +1 -0
  375. package/dist/src/gate.js +315 -0
  376. package/dist/src/gate.js.map +1 -0
  377. package/dist/src/ghcred.d.ts +58 -0
  378. package/dist/src/ghcred.d.ts.map +1 -0
  379. package/dist/src/ghcred.js +139 -0
  380. package/dist/src/ghcred.js.map +1 -0
  381. package/dist/src/githubAuth.d.ts +32 -0
  382. package/dist/src/githubAuth.d.ts.map +1 -0
  383. package/dist/src/githubAuth.js +116 -0
  384. package/dist/src/githubAuth.js.map +1 -0
  385. package/dist/src/githubcore.d.ts +20 -0
  386. package/dist/src/githubcore.d.ts.map +1 -0
  387. package/dist/src/githubcore.js +20 -0
  388. package/dist/src/githubcore.js.map +1 -0
  389. package/dist/src/glob.d.ts +11 -0
  390. package/dist/src/glob.d.ts.map +1 -0
  391. package/dist/src/glob.js +69 -0
  392. package/dist/src/glob.js.map +1 -0
  393. package/dist/src/guards.d.ts +93 -0
  394. package/dist/src/guards.d.ts.map +1 -0
  395. package/dist/src/guards.js +306 -0
  396. package/dist/src/guards.js.map +1 -0
  397. package/dist/src/heartbeat.d.ts +29 -0
  398. package/dist/src/heartbeat.d.ts.map +1 -0
  399. package/dist/src/heartbeat.js +87 -0
  400. package/dist/src/heartbeat.js.map +1 -0
  401. package/dist/src/heuristics.d.ts +247 -0
  402. package/dist/src/heuristics.d.ts.map +1 -0
  403. package/dist/src/heuristics.js +927 -0
  404. package/dist/src/heuristics.js.map +1 -0
  405. package/dist/src/homes.d.ts +181 -0
  406. package/dist/src/homes.d.ts.map +1 -0
  407. package/dist/src/homes.js +242 -0
  408. package/dist/src/homes.js.map +1 -0
  409. package/dist/src/hunkheader.d.ts +11 -0
  410. package/dist/src/hunkheader.d.ts.map +1 -0
  411. package/dist/src/hunkheader.js +18 -0
  412. package/dist/src/hunkheader.js.map +1 -0
  413. package/dist/src/include.d.ts +435 -0
  414. package/dist/src/include.d.ts.map +1 -0
  415. package/dist/src/include.js +1692 -0
  416. package/dist/src/include.js.map +1 -0
  417. package/dist/src/launchvocab.d.ts +36 -0
  418. package/dist/src/launchvocab.d.ts.map +1 -0
  419. package/dist/src/launchvocab.js +59 -0
  420. package/dist/src/launchvocab.js.map +1 -0
  421. package/dist/src/ledgercarry.d.ts +24 -0
  422. package/dist/src/ledgercarry.d.ts.map +1 -0
  423. package/dist/src/ledgercarry.js +109 -0
  424. package/dist/src/ledgercarry.js.map +1 -0
  425. package/dist/src/lensids.d.ts +7 -0
  426. package/dist/src/lensids.d.ts.map +1 -0
  427. package/dist/src/lensids.js +53 -0
  428. package/dist/src/lensids.js.map +1 -0
  429. package/dist/src/lensplanning.d.ts +8 -0
  430. package/dist/src/lensplanning.d.ts.map +1 -0
  431. package/dist/src/lensplanning.js +126 -0
  432. package/dist/src/lensplanning.js.map +1 -0
  433. package/dist/src/lensresult.d.ts +94 -0
  434. package/dist/src/lensresult.d.ts.map +1 -0
  435. package/dist/src/lensresult.js +162 -0
  436. package/dist/src/lensresult.js.map +1 -0
  437. package/dist/src/lenstuning.d.ts +97 -0
  438. package/dist/src/lenstuning.d.ts.map +1 -0
  439. package/dist/src/lenstuning.js +326 -0
  440. package/dist/src/lenstuning.js.map +1 -0
  441. package/dist/src/lintconfig.d.ts +31 -0
  442. package/dist/src/lintconfig.d.ts.map +1 -0
  443. package/dist/src/lintconfig.js +543 -0
  444. package/dist/src/lintconfig.js.map +1 -0
  445. package/dist/src/live/events.d.ts +188 -0
  446. package/dist/src/live/events.d.ts.map +1 -0
  447. package/dist/src/live/events.js +136 -0
  448. package/dist/src/live/events.js.map +1 -0
  449. package/dist/src/live/writer.d.ts +54 -0
  450. package/dist/src/live/writer.d.ts.map +1 -0
  451. package/dist/src/live/writer.js +516 -0
  452. package/dist/src/live/writer.js.map +1 -0
  453. package/dist/src/localreview.d.ts +128 -0
  454. package/dist/src/localreview.d.ts.map +1 -0
  455. package/dist/src/localreview.js +426 -0
  456. package/dist/src/localreview.js.map +1 -0
  457. package/dist/src/loosenedtests.d.ts +13 -0
  458. package/dist/src/loosenedtests.d.ts.map +1 -0
  459. package/dist/src/loosenedtests.js +188 -0
  460. package/dist/src/loosenedtests.js.map +1 -0
  461. package/dist/src/memoryport.d.ts +264 -0
  462. package/dist/src/memoryport.d.ts.map +1 -0
  463. package/dist/src/memoryport.js +445 -0
  464. package/dist/src/memoryport.js.map +1 -0
  465. package/dist/src/migrations.d.ts +106 -0
  466. package/dist/src/migrations.d.ts.map +1 -0
  467. package/dist/src/migrations.js +373 -0
  468. package/dist/src/migrations.js.map +1 -0
  469. package/dist/src/oneshot.d.ts +12 -0
  470. package/dist/src/oneshot.d.ts.map +1 -0
  471. package/dist/src/oneshot.js +8 -0
  472. package/dist/src/oneshot.js.map +1 -0
  473. package/dist/src/packing.d.ts +11 -0
  474. package/dist/src/packing.d.ts.map +1 -0
  475. package/dist/src/packing.js +31 -0
  476. package/dist/src/packing.js.map +1 -0
  477. package/dist/src/passes.d.ts +16 -0
  478. package/dist/src/passes.d.ts.map +1 -0
  479. package/dist/src/passes.js +104 -0
  480. package/dist/src/passes.js.map +1 -0
  481. package/dist/src/passtasks.d.ts +68 -0
  482. package/dist/src/passtasks.d.ts.map +1 -0
  483. package/dist/src/passtasks.js +360 -0
  484. package/dist/src/passtasks.js.map +1 -0
  485. package/dist/src/pathinside.d.ts +5 -0
  486. package/dist/src/pathinside.d.ts.map +1 -0
  487. package/dist/src/pathinside.js +9 -0
  488. package/dist/src/pathinside.js.map +1 -0
  489. package/dist/src/pibuiltins.d.ts +36 -0
  490. package/dist/src/pibuiltins.d.ts.map +1 -0
  491. package/dist/src/pibuiltins.js +83 -0
  492. package/dist/src/pibuiltins.js.map +1 -0
  493. package/dist/src/plankey.d.ts +4 -0
  494. package/dist/src/plankey.d.ts.map +1 -0
  495. package/dist/src/plankey.js +10 -0
  496. package/dist/src/plankey.js.map +1 -0
  497. package/dist/src/planner.d.ts +375 -0
  498. package/dist/src/planner.d.ts.map +1 -0
  499. package/dist/src/planner.js +722 -0
  500. package/dist/src/planner.js.map +1 -0
  501. package/dist/src/plugin/args.d.ts +19 -0
  502. package/dist/src/plugin/args.d.ts.map +1 -0
  503. package/dist/src/plugin/args.js +107 -0
  504. package/dist/src/plugin/args.js.map +1 -0
  505. package/dist/src/plugin/index.d.ts +3 -0
  506. package/dist/src/plugin/index.d.ts.map +1 -0
  507. package/dist/src/plugin/index.js +14 -0
  508. package/dist/src/plugin/index.js.map +1 -0
  509. package/dist/src/plugin/login.d.ts +39 -0
  510. package/dist/src/plugin/login.d.ts.map +1 -0
  511. package/dist/src/plugin/login.js +73 -0
  512. package/dist/src/plugin/login.js.map +1 -0
  513. package/dist/src/plugin/review.d.ts +27 -0
  514. package/dist/src/plugin/review.d.ts.map +1 -0
  515. package/dist/src/plugin/review.js +298 -0
  516. package/dist/src/plugin/review.js.map +1 -0
  517. package/dist/src/plugin/runner.d.ts +6 -0
  518. package/dist/src/plugin/runner.d.ts.map +1 -0
  519. package/dist/src/plugin/runner.js +65 -0
  520. package/dist/src/plugin/runner.js.map +1 -0
  521. package/dist/src/plugin/scan.d.ts +79 -0
  522. package/dist/src/plugin/scan.d.ts.map +1 -0
  523. package/dist/src/plugin/scan.js +348 -0
  524. package/dist/src/plugin/scan.js.map +1 -0
  525. package/dist/src/plugin/session.d.ts +56 -0
  526. package/dist/src/plugin/session.d.ts.map +1 -0
  527. package/dist/src/plugin/session.js +2 -0
  528. package/dist/src/plugin/session.js.map +1 -0
  529. package/dist/src/plugin/setup.d.ts +19 -0
  530. package/dist/src/plugin/setup.d.ts.map +1 -0
  531. package/dist/src/plugin/setup.js +142 -0
  532. package/dist/src/plugin/setup.js.map +1 -0
  533. package/dist/src/plugin/versiongate.d.ts +26 -0
  534. package/dist/src/plugin/versiongate.d.ts.map +1 -0
  535. package/dist/src/plugin/versiongate.js +83 -0
  536. package/dist/src/plugin/versiongate.js.map +1 -0
  537. package/dist/src/postingkey.d.ts +8 -0
  538. package/dist/src/postingkey.d.ts.map +1 -0
  539. package/dist/src/postingkey.js +25 -0
  540. package/dist/src/postingkey.js.map +1 -0
  541. package/dist/src/postingpolicy.d.ts +108 -0
  542. package/dist/src/postingpolicy.d.ts.map +1 -0
  543. package/dist/src/postingpolicy.js +341 -0
  544. package/dist/src/postingpolicy.js.map +1 -0
  545. package/dist/src/pr-identity.d.ts +3 -0
  546. package/dist/src/pr-identity.d.ts.map +1 -0
  547. package/dist/src/pr-identity.js +9 -0
  548. package/dist/src/pr-identity.js.map +1 -0
  549. package/dist/src/prdelta.d.ts +181 -0
  550. package/dist/src/prdelta.d.ts.map +1 -0
  551. package/dist/src/prdelta.js +501 -0
  552. package/dist/src/prdelta.js.map +1 -0
  553. package/dist/src/pricing.d.ts +94 -0
  554. package/dist/src/pricing.d.ts.map +1 -0
  555. package/dist/src/pricing.js +209 -0
  556. package/dist/src/pricing.js.map +1 -0
  557. package/dist/src/priorfindings.d.ts +167 -0
  558. package/dist/src/priorfindings.d.ts.map +1 -0
  559. package/dist/src/priorfindings.js +445 -0
  560. package/dist/src/priorfindings.js.map +1 -0
  561. package/dist/src/priortasks.d.ts +31 -0
  562. package/dist/src/priortasks.d.ts.map +1 -0
  563. package/dist/src/priortasks.js +119 -0
  564. package/dist/src/priortasks.js.map +1 -0
  565. package/dist/src/profilelookup.d.ts +59 -0
  566. package/dist/src/profilelookup.d.ts.map +1 -0
  567. package/dist/src/profilelookup.js +98 -0
  568. package/dist/src/profilelookup.js.map +1 -0
  569. package/dist/src/profileoverrides.d.ts +91 -0
  570. package/dist/src/profileoverrides.d.ts.map +1 -0
  571. package/dist/src/profileoverrides.js +313 -0
  572. package/dist/src/profileoverrides.js.map +1 -0
  573. package/dist/src/profiles.d.ts +144 -0
  574. package/dist/src/profiles.d.ts.map +1 -0
  575. package/dist/src/profiles.js +604 -0
  576. package/dist/src/profiles.js.map +1 -0
  577. package/dist/src/promptdoc.d.ts +3 -0
  578. package/dist/src/promptdoc.d.ts.map +1 -0
  579. package/dist/src/promptdoc.js +18 -0
  580. package/dist/src/promptdoc.js.map +1 -0
  581. package/dist/src/prtarget.d.ts +70 -0
  582. package/dist/src/prtarget.d.ts.map +1 -0
  583. package/dist/src/prtarget.js +181 -0
  584. package/dist/src/prtarget.js.map +1 -0
  585. package/dist/src/recheckorder.d.ts +32 -0
  586. package/dist/src/recheckorder.d.ts.map +1 -0
  587. package/dist/src/recheckorder.js +5 -0
  588. package/dist/src/recheckorder.js.map +1 -0
  589. package/dist/src/reviewapi.d.ts +207 -0
  590. package/dist/src/reviewapi.d.ts.map +1 -0
  591. package/dist/src/reviewapi.js +939 -0
  592. package/dist/src/reviewapi.js.map +1 -0
  593. package/dist/src/reviewbotfindings.d.ts +33 -0
  594. package/dist/src/reviewbotfindings.d.ts.map +1 -0
  595. package/dist/src/reviewbotfindings.js +80 -0
  596. package/dist/src/reviewbotfindings.js.map +1 -0
  597. package/dist/src/reviewconfig.d.ts +741 -0
  598. package/dist/src/reviewconfig.d.ts.map +1 -0
  599. package/dist/src/reviewconfig.js +797 -0
  600. package/dist/src/reviewconfig.js.map +1 -0
  601. package/dist/src/reviewdelta.d.ts +51 -0
  602. package/dist/src/reviewdelta.d.ts.map +1 -0
  603. package/dist/src/reviewdelta.js +119 -0
  604. package/dist/src/reviewdelta.js.map +1 -0
  605. package/dist/src/reviewdest.d.ts +86 -0
  606. package/dist/src/reviewdest.d.ts.map +1 -0
  607. package/dist/src/reviewdest.js +142 -0
  608. package/dist/src/reviewdest.js.map +1 -0
  609. package/dist/src/reviewerstub.d.ts +12 -0
  610. package/dist/src/reviewerstub.d.ts.map +1 -0
  611. package/dist/src/reviewerstub.js +28 -0
  612. package/dist/src/reviewerstub.js.map +1 -0
  613. package/dist/src/reviewhost.d.ts +58 -0
  614. package/dist/src/reviewhost.d.ts.map +1 -0
  615. package/dist/src/reviewhost.js +135 -0
  616. package/dist/src/reviewhost.js.map +1 -0
  617. package/dist/src/reviewpost.d.ts +79 -0
  618. package/dist/src/reviewpost.d.ts.map +1 -0
  619. package/dist/src/reviewpost.js +233 -0
  620. package/dist/src/reviewpost.js.map +1 -0
  621. package/dist/src/reviewrender.d.ts +154 -0
  622. package/dist/src/reviewrender.d.ts.map +1 -0
  623. package/dist/src/reviewrender.js +480 -0
  624. package/dist/src/reviewrender.js.map +1 -0
  625. package/dist/src/reviewstate.d.ts +62 -0
  626. package/dist/src/reviewstate.d.ts.map +1 -0
  627. package/dist/src/reviewstate.js +167 -0
  628. package/dist/src/reviewstate.js.map +1 -0
  629. package/dist/src/reviewstore.d.ts +17 -0
  630. package/dist/src/reviewstore.d.ts.map +1 -0
  631. package/dist/src/reviewstore.js +105 -0
  632. package/dist/src/reviewstore.js.map +1 -0
  633. package/dist/src/round-progress.d.ts +120 -0
  634. package/dist/src/round-progress.d.ts.map +1 -0
  635. package/dist/src/round-progress.js +172 -0
  636. package/dist/src/round-progress.js.map +1 -0
  637. package/dist/src/round-stage-deadlines.d.ts +12 -0
  638. package/dist/src/round-stage-deadlines.d.ts.map +1 -0
  639. package/dist/src/round-stage-deadlines.js +10 -0
  640. package/dist/src/round-stage-deadlines.js.map +1 -0
  641. package/dist/src/session-command.d.ts +19 -0
  642. package/dist/src/session-command.d.ts.map +1 -0
  643. package/dist/src/session-command.js +20 -0
  644. package/dist/src/session-command.js.map +1 -0
  645. package/dist/src/settledread.d.ts +61 -0
  646. package/dist/src/settledread.d.ts.map +1 -0
  647. package/dist/src/settledread.js +135 -0
  648. package/dist/src/settledread.js.map +1 -0
  649. package/dist/src/severity.d.ts +167 -0
  650. package/dist/src/severity.d.ts.map +1 -0
  651. package/dist/src/severity.js +364 -0
  652. package/dist/src/severity.js.map +1 -0
  653. package/dist/src/severityrank.d.ts +8 -0
  654. package/dist/src/severityrank.d.ts.map +1 -0
  655. package/dist/src/severityrank.js +16 -0
  656. package/dist/src/severityrank.js.map +1 -0
  657. package/dist/src/standing-review.d.ts +45 -0
  658. package/dist/src/standing-review.d.ts.map +1 -0
  659. package/dist/src/standing-review.js +43 -0
  660. package/dist/src/standing-review.js.map +1 -0
  661. package/dist/src/storerows.d.ts +225 -0
  662. package/dist/src/storerows.d.ts.map +1 -0
  663. package/dist/src/storerows.js +7 -0
  664. package/dist/src/storerows.js.map +1 -0
  665. package/dist/src/styleguide.d.ts +25 -0
  666. package/dist/src/styleguide.d.ts.map +1 -0
  667. package/dist/src/styleguide.js +272 -0
  668. package/dist/src/styleguide.js.map +1 -0
  669. package/dist/src/sweepstatus.d.ts +42 -0
  670. package/dist/src/sweepstatus.d.ts.map +1 -0
  671. package/dist/src/sweepstatus.js +97 -0
  672. package/dist/src/sweepstatus.js.map +1 -0
  673. package/dist/src/templates.d.ts +243 -0
  674. package/dist/src/templates.d.ts.map +1 -0
  675. package/dist/src/templates.js +847 -0
  676. package/dist/src/templates.js.map +1 -0
  677. package/dist/src/types.d.ts +639 -0
  678. package/dist/src/types.d.ts.map +1 -0
  679. package/dist/src/types.js +90 -0
  680. package/dist/src/types.js.map +1 -0
  681. package/dist/src/unifieddiff.d.ts +22 -0
  682. package/dist/src/unifieddiff.d.ts.map +1 -0
  683. package/dist/src/unifieddiff.js +176 -0
  684. package/dist/src/unifieddiff.js.map +1 -0
  685. package/dist/src/yieldloop.d.ts +2 -0
  686. package/dist/src/yieldloop.d.ts.map +1 -0
  687. package/dist/src/yieldloop.js +14 -0
  688. package/dist/src/yieldloop.js.map +1 -0
  689. package/package.json +60 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundagents.js","sourceRoot":"","sources":["../../../src/engine/roundagents.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6EAA6E;AAC7E,mEAAmE;AACnE,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAsB,MAAM,gBAAgB,CAAC;AAE9F;;;;;qEAKqE;AACrE,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,GAAe,EACf,MAAc,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC;AACzC;;+DAE+D;AAC/D,UAA2E,EAAE;IAE7E,0EAA0E;IAC1E,0EAA0E;IAC1E,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE;QACnD,0EAA0E;QAC1E,MAAM,EAAE,KAAK;QACb,IAAI;QACJ,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;QACvB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,WAAW;QAClC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,aAAa;QACtC,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;QACvB,SAAS,EAAE,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;QACzE,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC;QAC7B,OAAO,EAAE;YACP,GAAG,YAAY;YACf,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC;YAC5B,GAAG,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;YAC/D,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC;YAChC,gEAAgE;YAChE,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;SACrC;KACF,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC"}
@@ -0,0 +1,110 @@
1
+ export interface Usage {
2
+ input: number;
3
+ output: number;
4
+ cacheRead: number;
5
+ }
6
+ /** The child results a `tool_execution_end` event of a lens tool carries
7
+ * (`result.details.results`); [] for any other shape. A result with an `id`
8
+ * (LensResult v1) can come back from more than one call — claim it on a
9
+ * `LensOnce` before counting it. */
10
+ export declare function childResults(e: Record<string, unknown>): unknown[];
11
+ /**
12
+ * Sum model usage from pi `--mode json` stdout lines. The parent's own turns
13
+ * carry `usage` on every assistant `message_end`; lens passes run as child
14
+ * processes, and the native subagent tool reports each child's usage in its
15
+ * tool result — both are counted, and a line that is not JSON is skipped
16
+ * (stderr noise, a truncated final line).
17
+ */
18
+ export declare function usageFromEvents(lines: Iterable<string>): Usage & {
19
+ children: number;
20
+ };
21
+ /** One lens tool call (`subagent`, `launch_plan`, `lens`, `lens_wave`) of the
22
+ * main session: a lens fan-out, a validator, a re-run. */
23
+ export interface StageCall {
24
+ /** Launch order, from 0. */
25
+ call: number;
26
+ tool_call_id: string | null;
27
+ /** The agents it launched (one, or a parallel `tasks` list). */
28
+ agents: string[];
29
+ /** `validate` when every agent is pass-validate. */
30
+ kind: "lens" | "validate";
31
+ /**
32
+ * A GUESS from launch order: `delta` up to and including the first
33
+ * validator call, `sweep` for every call launched after that validator
34
+ * returned. On a follow-up round that is the change review vs the
35
+ * pre-approval sweep (its lenses and its own validator); on a round-1 case
36
+ * a `sweep` call is a re-run after the validator.
37
+ */
38
+ phase: "delta" | "sweep";
39
+ /** The main session's last message before the call — so the window
40
+ * includes the session writing the tasks (tool-call arguments are output
41
+ * tokens). Null when no message preceded it. */
42
+ start_ms: number | null;
43
+ /** The last child message; else the session's first message after the
44
+ * call returned. Null when neither exists (a truncated stream). */
45
+ end_ms: number | null;
46
+ usage: Usage;
47
+ /** pi's own price of the children ($), summed. */
48
+ cost: number;
49
+ children: number;
50
+ }
51
+ export interface StageTotals {
52
+ calls: number;
53
+ agents: number;
54
+ usage: Usage;
55
+ cost: number;
56
+ /** First start to last end over the phase's calls; null when unknown. */
57
+ start_ms: number | null;
58
+ end_ms: number | null;
59
+ wall_ms: number | null;
60
+ }
61
+ export interface Stages {
62
+ calls: StageCall[];
63
+ phases: {
64
+ delta: StageTotals;
65
+ sweep: StageTotals;
66
+ };
67
+ }
68
+ /**
69
+ * Split one review's pi `--mode json` stream into its subagent calls, each
70
+ * with its agents, its phase (by launch order relative to the first
71
+ * pass-validate call — see `StageCall.phase`), its wall window and its usage
72
+ * and cost, plus a total per phase. Pure; a line that is not JSON is skipped.
73
+ * `tool_execution_*` events carry no timestamp, so times come from message
74
+ * stamps: the parent's, and each child's own messages in the tool result.
75
+ */
76
+ export declare function stagesFromEvents(lines: Iterable<string>): Stages;
77
+ /** Model-call failures one review saw, by kind. `rate_limited` and
78
+ * `overloaded` are the shared login pushing back (every bench container
79
+ * draws on ONE ChatGPT login): a case that failed with either is retried by
80
+ * arm.sh after a pause, never scored as the reviewer's own miss.
81
+ * `usage_limit` is the login's PLAN window exhausted ("Codex error: The usage
82
+ * limit has been reached", each case failing within seconds): no pause of
83
+ * minutes cures it, so arm.sh stops launching instead of burning the retries
84
+ * (older summaries lack this kind). */
85
+ export interface ModelErrors {
86
+ rate_limited: number;
87
+ overloaded: number;
88
+ usage_limit?: number;
89
+ other: number;
90
+ /** One message of the most telling kind, for the log. */
91
+ sample?: string;
92
+ }
93
+ /** The plan's usage window is spent (checked before RATE_LIMIT_RE, which it
94
+ * would also match). */
95
+ export declare const USAGE_LIMIT_RE: RegExp;
96
+ export declare const RATE_LIMIT_RE: RegExp;
97
+ export declare const OVERLOAD_RE: RegExp;
98
+ /** A model error message's kind: a spent usage window first (its words would
99
+ * also read as a rate limit), then a rate limit, then an overload. One
100
+ * reading for pi's event stream and its stderr. */
101
+ export declare function modelErrorKind(message: string): "usage_limit" | "rate_limited" | "overloaded" | "other";
102
+ /**
103
+ * Count the failed model calls in pi's `--mode json` stream: every assistant
104
+ * message with `stopReason: "error"`, the parent's and the lens children's
105
+ * alike (children's arrive nested in the subagent tool result). pi repeats a
106
+ * message in later events (updates, the final message list), so each is
107
+ * counted once, keyed by its timestamp and text.
108
+ */
109
+ export declare function modelErrorsFromEvents(lines: Iterable<string>): ModelErrors;
110
+ //# sourceMappingURL=roundevents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundevents.d.ts","sourceRoot":"","sources":["../../../src/engine/roundevents.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAeD;;;oCAGoC;AACpC,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAElE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CA2BrF;AAID;0DAC0D;AAC1D,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gEAAgE;IAChE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1B;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB;;oDAEgD;IAChD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;uEACmE;IACnE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,MAAM,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,CAAC;CACpD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAqHhE;AAED;;;;;;;uCAOuC;AACvC,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;wBACwB;AACxB,eAAO,MAAM,cAAc,QACwF,CAAC;AACpH,eAAO,MAAM,aAAa,QAAsE,CAAC;AACjG,eAAO,MAAM,WAAW,QAA4C,CAAC;AAErE;;mDAEmD;AACnD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,GACd,aAAa,GAAG,cAAc,GAAG,YAAY,GAAG,OAAO,CAKzD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,WAAW,CA0C1E"}
@@ -0,0 +1,276 @@
1
+ // What a round's pi event stream says about the round: its token usage, its
2
+ // per-stage cost and time (the lens calls, split into the change review and the
3
+ // pre-approval sweep), and the model-call failures it saw. Pure readers of the
4
+ // `pi --mode json` stream either runtime writes; the round records them
5
+ // (packages/pi-plugin/src/engine/round.ts), the bench reports them (src/bench/aacr.ts).
6
+ import { isLensTool, LENS_WAVE_TOOL, lensIdOf, LensOnce, lensResultsOf } from "../lensresult.js";
7
+ import { usageCost } from "../pricing.js";
8
+ // ---- pi's JSON event stream ---------------------------------------------------
9
+ /** Add one pi `usage` object's token counts to `into` (a field that is not a
10
+ * number counts 0; a usage that is not an object adds nothing). */
11
+ function addUsage(into, x) {
12
+ if (typeof x !== "object" || x === null)
13
+ return;
14
+ const r = x;
15
+ const n = (k) => (typeof r[k] === "number" ? r[k] : 0);
16
+ into.input += n("input");
17
+ into.output += n("output");
18
+ into.cacheRead += n("cacheRead");
19
+ }
20
+ /** The child results a `tool_execution_end` event of a lens tool carries
21
+ * (`result.details.results`); [] for any other shape. A result with an `id`
22
+ * (LensResult v1) can come back from more than one call — claim it on a
23
+ * `LensOnce` before counting it. */
24
+ export function childResults(e) {
25
+ return lensResultsOf(e["result"]);
26
+ }
27
+ /**
28
+ * Sum model usage from pi `--mode json` stdout lines. The parent's own turns
29
+ * carry `usage` on every assistant `message_end`; lens passes run as child
30
+ * processes, and the native subagent tool reports each child's usage in its
31
+ * tool result — both are counted, and a line that is not JSON is skipped
32
+ * (stderr noise, a truncated final line).
33
+ */
34
+ export function usageFromEvents(lines) {
35
+ const u = { input: 0, output: 0, cacheRead: 0, children: 0 };
36
+ const add = (x) => addUsage(u, x);
37
+ const once = new LensOnce();
38
+ for (const line of lines) {
39
+ if (!line.trim())
40
+ continue;
41
+ let e;
42
+ try {
43
+ e = JSON.parse(line);
44
+ }
45
+ catch {
46
+ continue;
47
+ }
48
+ if (e["type"] === "message_end") {
49
+ const m = e["message"];
50
+ if (m?.["role"] === "assistant")
51
+ add(m["usage"]);
52
+ }
53
+ if (e["type"] === "tool_execution_end") {
54
+ for (const r of childResults(e)) {
55
+ const usage = r?.["usage"];
56
+ if (usage && once.claim(lensIdOf(r))) {
57
+ add(usage);
58
+ u.children++;
59
+ }
60
+ }
61
+ }
62
+ }
63
+ return u;
64
+ }
65
+ /**
66
+ * Split one review's pi `--mode json` stream into its subagent calls, each
67
+ * with its agents, its phase (by launch order relative to the first
68
+ * pass-validate call — see `StageCall.phase`), its wall window and its usage
69
+ * and cost, plus a total per phase. Pure; a line that is not JSON is skipped.
70
+ * `tool_execution_*` events carry no timestamp, so times come from message
71
+ * stamps: the parent's, and each child's own messages in the tool result.
72
+ */
73
+ export function stagesFromEvents(lines) {
74
+ const calls = [];
75
+ const open = new Map();
76
+ const awaitingEnd = [];
77
+ const once = new LensOnce();
78
+ let lastTs = null;
79
+ let firstValidateDone = false;
80
+ for (const line of lines) {
81
+ if (!line.trim())
82
+ continue;
83
+ let e;
84
+ try {
85
+ e = JSON.parse(line);
86
+ }
87
+ catch {
88
+ continue;
89
+ }
90
+ const m = e["message"];
91
+ const ts = typeof m?.["timestamp"] === "number" ? m["timestamp"] : null;
92
+ if (ts !== null) {
93
+ for (const c of awaitingEnd.splice(0))
94
+ c.end_ms = ts;
95
+ lastTs = ts;
96
+ }
97
+ // `launch_plan` launches lenses through the subagent tool's own
98
+ // execute; its args name task dirs, so its agents come from the result.
99
+ // `lens_wave` joins a wave the engine launched: no args at all.
100
+ if (!isLensTool(e["toolName"]))
101
+ continue;
102
+ const id = typeof e["toolCallId"] === "string" ? e["toolCallId"] : null;
103
+ if (e["type"] === "tool_execution_start") {
104
+ const args = (e["args"] ?? {});
105
+ const agents = typeof args["agent"] === "string"
106
+ ? [args["agent"]]
107
+ : Array.isArray(args["tasks"])
108
+ ? args["tasks"]
109
+ .map((t) => t?.["agent"])
110
+ .filter((a) => typeof a === "string")
111
+ : [];
112
+ const call = {
113
+ call: calls.length,
114
+ tool_call_id: id,
115
+ agents,
116
+ kind: agents.length > 0 && agents.every((a) => a.startsWith("pass-validate"))
117
+ ? "validate"
118
+ : "lens",
119
+ phase: firstValidateDone ? "sweep" : "delta",
120
+ start_ms: lastTs,
121
+ end_ms: null,
122
+ usage: { input: 0, output: 0, cacheRead: 0 },
123
+ cost: 0,
124
+ children: 0,
125
+ };
126
+ calls.push(call);
127
+ if (id !== null)
128
+ open.set(id, call);
129
+ }
130
+ else if (e["type"] === "tool_execution_end") {
131
+ const call = id !== null ? open.get(id) : undefined;
132
+ if (!call)
133
+ continue;
134
+ open.delete(id);
135
+ const results = childResults(e);
136
+ // A run a lens-id'd result already reported (a `lens_wave` joining a
137
+ // wave, or joining it again) is counted by its first call only.
138
+ const fresh = new Set(results.filter((r) => once.claim(lensIdOf(r))));
139
+ // A launch_plan call named no agent at start: its results do.
140
+ if (call.agents.length === 0)
141
+ call.agents = results
142
+ .filter((r) => fresh.has(r))
143
+ .map((r) => r?.["agent"])
144
+ .filter((a) => typeof a === "string");
145
+ let last = null;
146
+ let first = null;
147
+ for (const r0 of results) {
148
+ const r = (r0 ?? {});
149
+ const u = r["usage"];
150
+ if (u && fresh.has(r0)) {
151
+ addUsage(call.usage, u);
152
+ call.cost += usageCost(u["cost"]);
153
+ call.children++;
154
+ }
155
+ for (const msg of Array.isArray(r["messages"]) ? r["messages"] : []) {
156
+ const t = msg?.["timestamp"];
157
+ if (typeof t !== "number")
158
+ continue;
159
+ if (last === null || t > last)
160
+ last = t;
161
+ if (fresh.has(r0) && (first === null || t < first))
162
+ first = t;
163
+ }
164
+ }
165
+ // A `lens_wave` joins a wave the engine started at round start: the
166
+ // wave's window opens with its first lens message, not with the join.
167
+ if (e["toolName"] === LENS_WAVE_TOOL && first !== null)
168
+ call.start_ms = call.start_ms === null ? first : Math.min(call.start_ms, first);
169
+ if (last !== null)
170
+ call.end_ms = last;
171
+ else
172
+ awaitingEnd.push(call);
173
+ if (call.kind === "validate")
174
+ firstValidateDone = true;
175
+ }
176
+ }
177
+ const total = (phase) => {
178
+ const mine = calls.filter((c) => c.phase === phase);
179
+ const starts = mine.map((c) => c.start_ms).filter((x) => x !== null);
180
+ const ends = mine.map((c) => c.end_ms).filter((x) => x !== null);
181
+ const start = starts.length ? Math.min(...starts) : null;
182
+ const end = ends.length ? Math.max(...ends) : null;
183
+ return {
184
+ calls: mine.length,
185
+ agents: mine.reduce((n, c) => n + c.agents.length, 0),
186
+ usage: mine.reduce((u, c) => ({
187
+ input: u.input + c.usage.input,
188
+ output: u.output + c.usage.output,
189
+ cacheRead: u.cacheRead + c.usage.cacheRead,
190
+ }), { input: 0, output: 0, cacheRead: 0 }),
191
+ cost: mine.reduce((n, c) => n + c.cost, 0),
192
+ start_ms: start,
193
+ end_ms: end,
194
+ wall_ms: start !== null && end !== null && end >= start ? end - start : null,
195
+ };
196
+ };
197
+ return { calls, phases: { delta: total("delta"), sweep: total("sweep") } };
198
+ }
199
+ /** The plan's usage window is spent (checked before RATE_LIMIT_RE, which it
200
+ * would also match). */
201
+ export const USAGE_LIMIT_RE = /usage limit has been reached|usage[ _-]?limit[ _-]?reached|insufficient[ _-]?quota|exceeded your current quota/i;
202
+ export const RATE_LIMIT_RE = /\b429\b|rate[ _-]?limit|too many requests|usage[ _-]?limit|quota/i;
203
+ export const OVERLOAD_RE = /overloaded|\b50[23]\b|\b529\b|capacity/i;
204
+ /** A model error message's kind: a spent usage window first (its words would
205
+ * also read as a rate limit), then a rate limit, then an overload. One
206
+ * reading for pi's event stream and its stderr. */
207
+ export function modelErrorKind(message) {
208
+ if (USAGE_LIMIT_RE.test(message))
209
+ return "usage_limit";
210
+ if (RATE_LIMIT_RE.test(message))
211
+ return "rate_limited";
212
+ if (OVERLOAD_RE.test(message))
213
+ return "overloaded";
214
+ return "other";
215
+ }
216
+ /**
217
+ * Count the failed model calls in pi's `--mode json` stream: every assistant
218
+ * message with `stopReason: "error"`, the parent's and the lens children's
219
+ * alike (children's arrive nested in the subagent tool result). pi repeats a
220
+ * message in later events (updates, the final message list), so each is
221
+ * counted once, keyed by its timestamp and text.
222
+ */
223
+ export function modelErrorsFromEvents(lines) {
224
+ const seen = new Set();
225
+ const out = { rate_limited: 0, overloaded: 0, usage_limit: 0, other: 0 };
226
+ const visit = (x, depth) => {
227
+ if (depth > 12 || typeof x !== "object" || x === null)
228
+ return;
229
+ if (Array.isArray(x)) {
230
+ for (const y of x)
231
+ visit(y, depth + 1);
232
+ return;
233
+ }
234
+ const r = x;
235
+ if (r["stopReason"] === "error" && typeof r["errorMessage"] === "string") {
236
+ const msg = r["errorMessage"];
237
+ const key = `${String(r["timestamp"] ?? "")}|${msg}`;
238
+ if (!seen.has(key)) {
239
+ seen.add(key);
240
+ const kind = modelErrorKind(msg);
241
+ if (kind === "usage_limit") {
242
+ out.usage_limit = (out.usage_limit ?? 0) + 1;
243
+ out.sample = msg.slice(0, 200);
244
+ }
245
+ else if (kind === "rate_limited") {
246
+ out.rate_limited++;
247
+ if (!out.usage_limit)
248
+ out.sample = msg.slice(0, 200);
249
+ }
250
+ else if (kind === "overloaded") {
251
+ out.overloaded++;
252
+ if (!out.rate_limited && !out.usage_limit)
253
+ out.sample = msg.slice(0, 200);
254
+ }
255
+ else {
256
+ out.other++;
257
+ out.sample ??= msg.slice(0, 200);
258
+ }
259
+ }
260
+ }
261
+ for (const v of Object.values(r))
262
+ visit(v, depth + 1);
263
+ };
264
+ for (const line of lines) {
265
+ if (!line.trim() || !line.includes('"errorMessage"'))
266
+ continue;
267
+ try {
268
+ visit(JSON.parse(line), 0);
269
+ }
270
+ catch {
271
+ // not JSON — stderr noise or a truncated final line
272
+ }
273
+ }
274
+ return out;
275
+ }
276
+ //# sourceMappingURL=roundevents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundevents.js","sourceRoot":"","sources":["../../../src/engine/roundevents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { ExtensionFactory, ToolDefinition } from "@earendil-works/pi-coding-agent";
2
+ import type { SessionSpec } from "./port.js";
3
+ import type { SessionExtras } from "./sdkruntime.js";
4
+ /** The lens tool of a round: the factories that register it (the native tool is
5
+ * a file's extension) or the definitions handed over as `customTools` (our own,
6
+ * packages/pi-plugin/src/engine/lens/engine-tools.ts), and the tool names they add to the allowlist. */
7
+ export interface RoundLensTools {
8
+ factories: readonly ExtensionFactory[];
9
+ customTools?: readonly ToolDefinition[];
10
+ toolNames: readonly string[];
11
+ }
12
+ export interface RoundSdkOptions {
13
+ /** The route's lens tool. Omitted: the session has none. */
14
+ lens?: RoundLensTools;
15
+ /** Where ledger-pin's diagnostics go, one line each. Omitted: nowhere. */
16
+ log?: (line: string) => void;
17
+ }
18
+ /** The names the model's bash may draw from the spec's env besides the host
19
+ * defaults: the git isolation pins and the QCR_* names the round's scripts read.
20
+ * The proc route's bash saw the whole env; the API keys in it are not carried. */
21
+ export declare const BASH_ENV_ALLOW: readonly ["GIT_*", "QCR_*"];
22
+ /** The reviewer stub as a context file at `<cwd>/AGENTS.override.md`. A
23
+ * checkout keeps it at `deploy/reviewer/`; the release and bench images install
24
+ * it at the tree's root (docker/Dockerfile, bench/aacr/Dockerfile), so both
25
+ * places are tried. A round without the stub fails here, loudly: a context file
26
+ * is never dropped silently. */
27
+ export declare function reviewerStub(root: string, cwd: string): {
28
+ path: string;
29
+ content: string;
30
+ };
31
+ /** The per-session pieces of a round's main session on the SDK runtime. */
32
+ export declare function roundSdkExtras(options?: RoundSdkOptions): (spec: SessionSpec) => SessionExtras;
33
+ //# sourceMappingURL=roundsdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundsdk.d.ts","sourceRoot":"","sources":["../../../src/engine/roundsdk.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AASxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;wGAEwG;AACxG,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACxC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,0EAA0E;IAC1E,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED;;kFAEkF;AAClF,eAAO,MAAM,cAAc,6BAA8B,CAAC;AAE1D;;;;gCAIgC;AAChC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAKzF;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAC5B,OAAO,GAAE,eAAoB,GAC5B,CAAC,IAAI,EAAE,WAAW,KAAK,aAAa,CA6BtC"}
@@ -0,0 +1,76 @@
1
+ // What a review round's main session carries on the SDK runtime, so that its
2
+ // provider request is the one the process route's `pi` sends (canary 10, full:
3
+ // tests/pi-canary/canary-10-oneshot-request.test.ts).
4
+ //
5
+ // The process route hands pi extension FILES (`--extension`), the cwd's context
6
+ // file and a spawn env. An SDK session has none of those, so the same things
7
+ // arrive as data and factories:
8
+ //
9
+ // extension files the factories the files' own shims call, built from
10
+ // the spec's env (bash-guard, ledger-pin,
11
+ // finding-clusters), in the file order of the proc route
12
+ // the lens tool a factory the route hands in (`lens`): today's native
13
+ // one is a file only; the engine's lens tools
14
+ // take this slot
15
+ // the tool allowlist pi's defaults plus every tool those extensions
16
+ // register: pi's CLI activates all of them, and the
17
+ // host drops anything not named
18
+ // the context stub the reviewer stub handed as data, at the path pi
19
+ // would have read it from in the cwd; never read
20
+ // from, or written into, a checkout
21
+ // the model's bash env an allowlist over the spec's env, never a GitHub
22
+ // token (pisdk.ts buildBashEnv)
23
+ //
24
+ // `roundSdkExtras()` is the `extras` option of `sdkRuntime(host, { extras })`.
25
+ import { readFileSync } from "node:fs";
26
+ import { join } from "node:path";
27
+ import { bashGuardConfigFromEnv, createBashGuard } from "../../extensions/bash-guard.js";
28
+ import { FINDING_CLUSTERS_TOOLS, createFindingClusters, } from "../../extensions/finding-clusters.js";
29
+ import { createLedgerPin, ledgerPinConfigFromEnv } from "../../extensions/ledger-pin.js";
30
+ import { HOST_CONTEXT_STUB, reviewerStubSource } from "../reviewerstub.js";
31
+ import { DEFAULT_TOOLS } from "./pisdk.js";
32
+ /** The names the model's bash may draw from the spec's env besides the host
33
+ * defaults: the git isolation pins and the QCR_* names the round's scripts read.
34
+ * The proc route's bash saw the whole env; the API keys in it are not carried. */
35
+ export const BASH_ENV_ALLOW = ["GIT_*", "QCR_*"];
36
+ /** The reviewer stub as a context file at `<cwd>/AGENTS.override.md`. A
37
+ * checkout keeps it at `deploy/reviewer/`; the release and bench images install
38
+ * it at the tree's root (docker/Dockerfile, bench/aacr/Dockerfile), so both
39
+ * places are tried. A round without the stub fails here, loudly: a context file
40
+ * is never dropped silently. */
41
+ export function reviewerStub(root, cwd) {
42
+ return {
43
+ path: join(cwd, HOST_CONTEXT_STUB),
44
+ content: readFileSync(reviewerStubSource(root), "utf8"),
45
+ };
46
+ }
47
+ /** The per-session pieces of a round's main session on the SDK runtime. */
48
+ export function roundSdkExtras(options = {}) {
49
+ return (spec) => {
50
+ const root = spec.env["QCR_SANDBOX_ROOT"];
51
+ if (root === undefined)
52
+ throw new Error("a round's spec names its production tree (QCR_SANDBOX_ROOT)");
53
+ const lens = options.lens;
54
+ return {
55
+ // The proc route's `--extension` order: bash-guard, ledger-pin, the lens
56
+ // tool, finding-clusters. The tool list in the request follows it.
57
+ extensions: [
58
+ createBashGuard(bashGuardConfigFromEnv(spec.env, spec.cwd)),
59
+ // The snapshot lands under the production tree (QCR_SANDBOX_ROOT),
60
+ // which a round's spec always names.
61
+ createLedgerPin(ledgerPinConfigFromEnv(spec.env, root, options.log ? { log: options.log } : {})),
62
+ ...(lens?.factories ?? []),
63
+ createFindingClusters(),
64
+ ],
65
+ tools: [
66
+ ...DEFAULT_TOOLS,
67
+ ...(lens?.toolNames ?? []),
68
+ ...FINDING_CLUSTERS_TOOLS.map((t) => t.name),
69
+ ],
70
+ ...(lens?.customTools?.length ? { customTools: lens.customTools } : {}),
71
+ agentsFiles: [reviewerStub(root, spec.cwd)],
72
+ bashEnv: { allow: BASH_ENV_ALLOW },
73
+ };
74
+ };
75
+ }
76
+ //# sourceMappingURL=roundsdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roundsdk.js","sourceRoot":"","sources":["../../../src/engine/roundsdk.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,+EAA+E;AAC/E,sDAAsD;AACtD,EAAE;AACF,gFAAgF;AAChF,6EAA6E;AAC7E,gCAAgC;AAChC,EAAE;AACF,iFAAiF;AACjF,qEAAqE;AACrE,oFAAoF;AACpF,mFAAmF;AACnF,yEAAyE;AACzE,4CAA4C;AAC5C,4EAA4E;AAC5E,+EAA+E;AAC/E,2DAA2D;AAC3D,0EAA0E;AAC1E,4EAA4E;AAC5E,+DAA+D;AAC/D,8EAA8E;AAC9E,2DAA2D;AAC3D,EAAE;AACF,+EAA+E;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EACL,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAoB3C;;kFAEkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AAE1D;;;;gCAIgC;AAChC,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAW;IACpD,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC;QAClC,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,cAAc,CAC5B,UAA2B,EAAE;IAE7B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAC1C,IAAI,IAAI,KAAK,SAAS;YACpB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,OAAO;YACL,yEAAyE;YACzE,mEAAmE;YACnE,UAAU,EAAE;gBACV,eAAe,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3D,mEAAmE;gBACnE,qCAAqC;gBACrC,eAAe,CACb,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChF;gBACD,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;gBAC1B,qBAAqB,EAAE;aACxB;YACD,KAAK,EAAE;gBACL,GAAG,aAAa;gBAChB,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;gBAC1B,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAC7C;YACD,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,WAAW,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE;SACnC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type BudgetReason } from "./budget.js";
2
+ import type { HostSessionSpec, PiHost } from "./pisdk.js";
3
+ import { type Runtime, type SessionSpec } from "./port.js";
4
+ /** What only the route knows about a session, beyond the port's plain data: the
5
+ * extension factories and tools it carries (P3's factories, the lens tool), the
6
+ * tool allowlist those tools join, the model's bash environment, the context
7
+ * files it hands over as data, the thinking level, and text appended to pi's own
8
+ * system prompt (a leaf's body). Called once per session. A field here wins over
9
+ * the spec's own. */
10
+ export type SessionExtras = Pick<HostSessionSpec, "extensions" | "customTools" | "tools" | "agentsFiles" | "bashEnv" | "inheritFds" | "thinkingLevel" | "appendSystemPrompt">;
11
+ export interface SdkRuntimeOptions {
12
+ /** The route's own pieces for a spec. Without it a spec that names
13
+ * `extensions` (paths) is refused: an SDK session loads factories, not files. */
14
+ extras?: (spec: SessionSpec) => SessionExtras;
15
+ /** The last resort of a turn's budget, when its abort and its dispose both
16
+ * failed to end it (packages/pi-plugin/src/engine/budget.ts). A host that owns its process
17
+ * passes one that exits it; omitted, the abort and dispose are all a wedged
18
+ * turn gets, and the process is left to its owner. */
19
+ backstop?: (reason: BudgetReason) => void;
20
+ }
21
+ /** The runtime that hosts a session in this process, on `host`'s pi SDK. */
22
+ export declare function sdkRuntime(host: PiHost, options?: SdkRuntimeOptions): Runtime;
23
+ //# sourceMappingURL=sdkruntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdkruntime.d.ts","sourceRoot":"","sources":["../../../src/engine/sdkruntime.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAIL,KAAK,OAAO,EAGZ,KAAK,WAAW,EAKjB,MAAM,WAAW,CAAC;AAEnB;;;;;qBAKqB;AACrB,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,eAAe,EACb,YAAY,GACZ,aAAa,GACb,OAAO,GACP,aAAa,GACb,SAAS,GACT,YAAY,GACZ,eAAe,GACf,oBAAoB,CACvB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC;qFACiF;IACjF,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,aAAa,CAAC;IAC9C;;;0DAGsD;IACtD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C;AAgRD,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CA8DjF"}