@urateam/core 0.1.4 → 0.1.9

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 (504) hide show
  1. package/dist/__tests__/agent-profiles.test.d.ts +2 -0
  2. package/dist/__tests__/agent-profiles.test.d.ts.map +1 -0
  3. package/dist/__tests__/agent-profiles.test.js +120 -0
  4. package/dist/__tests__/agent-profiles.test.js.map +1 -0
  5. package/dist/__tests__/audit/audit-e2e.test.d.ts +2 -0
  6. package/dist/__tests__/audit/audit-e2e.test.d.ts.map +1 -0
  7. package/dist/__tests__/audit/audit-e2e.test.js +56 -0
  8. package/dist/__tests__/audit/audit-e2e.test.js.map +1 -0
  9. package/dist/__tests__/audit/csv.test.d.ts +2 -0
  10. package/dist/__tests__/audit/csv.test.d.ts.map +1 -0
  11. package/dist/__tests__/audit/csv.test.js +134 -0
  12. package/dist/__tests__/audit/csv.test.js.map +1 -0
  13. package/dist/__tests__/audit/events.test.d.ts +2 -0
  14. package/dist/__tests__/audit/events.test.d.ts.map +1 -0
  15. package/dist/__tests__/audit/events.test.js +45 -0
  16. package/dist/__tests__/audit/events.test.js.map +1 -0
  17. package/dist/__tests__/audit/policy-events.test.d.ts +2 -0
  18. package/dist/__tests__/audit/policy-events.test.d.ts.map +1 -0
  19. package/dist/__tests__/audit/policy-events.test.js +49 -0
  20. package/dist/__tests__/audit/policy-events.test.js.map +1 -0
  21. package/dist/__tests__/audit/projection.test.d.ts +2 -0
  22. package/dist/__tests__/audit/projection.test.d.ts.map +1 -0
  23. package/dist/__tests__/audit/projection.test.js +76 -0
  24. package/dist/__tests__/audit/projection.test.js.map +1 -0
  25. package/dist/__tests__/audit/rbac-events.test.d.ts +2 -0
  26. package/dist/__tests__/audit/rbac-events.test.d.ts.map +1 -0
  27. package/dist/__tests__/audit/rbac-events.test.js +56 -0
  28. package/dist/__tests__/audit/rbac-events.test.js.map +1 -0
  29. package/dist/__tests__/audit/reader.test.d.ts +2 -0
  30. package/dist/__tests__/audit/reader.test.d.ts.map +1 -0
  31. package/dist/__tests__/audit/reader.test.js +133 -0
  32. package/dist/__tests__/audit/reader.test.js.map +1 -0
  33. package/dist/__tests__/audit/retention.test.d.ts +2 -0
  34. package/dist/__tests__/audit/retention.test.d.ts.map +1 -0
  35. package/dist/__tests__/audit/retention.test.js +48 -0
  36. package/dist/__tests__/audit/retention.test.js.map +1 -0
  37. package/dist/__tests__/audit/sso-events.test.d.ts +2 -0
  38. package/dist/__tests__/audit/sso-events.test.d.ts.map +1 -0
  39. package/dist/__tests__/audit/sso-events.test.js +49 -0
  40. package/dist/__tests__/audit/sso-events.test.js.map +1 -0
  41. package/dist/__tests__/audit/writer.test.d.ts +2 -0
  42. package/dist/__tests__/audit/writer.test.d.ts.map +1 -0
  43. package/dist/__tests__/audit/writer.test.js +67 -0
  44. package/dist/__tests__/audit/writer.test.js.map +1 -0
  45. package/dist/__tests__/audit-immutability.test.d.ts +2 -0
  46. package/dist/__tests__/audit-immutability.test.d.ts.map +1 -0
  47. package/dist/__tests__/audit-immutability.test.js +61 -0
  48. package/dist/__tests__/audit-immutability.test.js.map +1 -0
  49. package/dist/__tests__/audit-types.test.d.ts +2 -0
  50. package/dist/__tests__/audit-types.test.d.ts.map +1 -0
  51. package/dist/__tests__/audit-types.test.js +35 -0
  52. package/dist/__tests__/audit-types.test.js.map +1 -0
  53. package/dist/__tests__/auth/session-store.test.d.ts +2 -0
  54. package/dist/__tests__/auth/session-store.test.d.ts.map +1 -0
  55. package/dist/__tests__/auth/session-store.test.js +65 -0
  56. package/dist/__tests__/auth/session-store.test.js.map +1 -0
  57. package/dist/__tests__/auth/sso-config.test.d.ts +2 -0
  58. package/dist/__tests__/auth/sso-config.test.d.ts.map +1 -0
  59. package/dist/__tests__/auth/sso-config.test.js +75 -0
  60. package/dist/__tests__/auth/sso-config.test.js.map +1 -0
  61. package/dist/__tests__/auth/sso-feature-flag.test.d.ts +2 -0
  62. package/dist/__tests__/auth/sso-feature-flag.test.d.ts.map +1 -0
  63. package/dist/__tests__/auth/sso-feature-flag.test.js +33 -0
  64. package/dist/__tests__/auth/sso-feature-flag.test.js.map +1 -0
  65. package/dist/__tests__/auth/user-role-round-trip.test.d.ts +2 -0
  66. package/dist/__tests__/auth/user-role-round-trip.test.d.ts.map +1 -0
  67. package/dist/__tests__/auth/user-role-round-trip.test.js +30 -0
  68. package/dist/__tests__/auth/user-role-round-trip.test.js.map +1 -0
  69. package/dist/__tests__/auth/user-store.test.d.ts +2 -0
  70. package/dist/__tests__/auth/user-store.test.d.ts.map +1 -0
  71. package/dist/__tests__/auth/user-store.test.js +119 -0
  72. package/dist/__tests__/auth/user-store.test.js.map +1 -0
  73. package/dist/__tests__/auth/workos-client.test.d.ts +2 -0
  74. package/dist/__tests__/auth/workos-client.test.d.ts.map +1 -0
  75. package/dist/__tests__/auth/workos-client.test.js +17 -0
  76. package/dist/__tests__/auth/workos-client.test.js.map +1 -0
  77. package/dist/__tests__/auto-merge.test.js +2 -1
  78. package/dist/__tests__/auto-merge.test.js.map +1 -1
  79. package/dist/__tests__/cost/aggregate.test.d.ts +2 -0
  80. package/dist/__tests__/cost/aggregate.test.d.ts.map +1 -0
  81. package/dist/__tests__/cost/aggregate.test.js +358 -0
  82. package/dist/__tests__/cost/aggregate.test.js.map +1 -0
  83. package/dist/__tests__/cost/csv.test.d.ts +2 -0
  84. package/dist/__tests__/cost/csv.test.d.ts.map +1 -0
  85. package/dist/__tests__/cost/csv.test.js +109 -0
  86. package/dist/__tests__/cost/csv.test.js.map +1 -0
  87. package/dist/__tests__/cost/per-run.test.d.ts +2 -0
  88. package/dist/__tests__/cost/per-run.test.d.ts.map +1 -0
  89. package/dist/__tests__/cost/per-run.test.js +64 -0
  90. package/dist/__tests__/cost/per-run.test.js.map +1 -0
  91. package/dist/__tests__/cost/rates.test.d.ts +2 -0
  92. package/dist/__tests__/cost/rates.test.d.ts.map +1 -0
  93. package/dist/__tests__/cost/rates.test.js +47 -0
  94. package/dist/__tests__/cost/rates.test.js.map +1 -0
  95. package/dist/__tests__/cost/rollup.test.d.ts +2 -0
  96. package/dist/__tests__/cost/rollup.test.d.ts.map +1 -0
  97. package/dist/__tests__/cost/rollup.test.js +187 -0
  98. package/dist/__tests__/cost/rollup.test.js.map +1 -0
  99. package/dist/__tests__/cost-defensive.test.d.ts +2 -0
  100. package/dist/__tests__/cost-defensive.test.d.ts.map +1 -0
  101. package/dist/__tests__/cost-defensive.test.js +123 -0
  102. package/dist/__tests__/cost-defensive.test.js.map +1 -0
  103. package/dist/__tests__/cost-integration.test.d.ts +2 -0
  104. package/dist/__tests__/cost-integration.test.d.ts.map +1 -0
  105. package/dist/__tests__/cost-integration.test.js +80 -0
  106. package/dist/__tests__/cost-integration.test.js.map +1 -0
  107. package/dist/__tests__/cost-license.test.d.ts +2 -0
  108. package/dist/__tests__/cost-license.test.d.ts.map +1 -0
  109. package/dist/__tests__/cost-license.test.js +23 -0
  110. package/dist/__tests__/cost-license.test.js.map +1 -0
  111. package/dist/__tests__/cost-types.test.d.ts +2 -0
  112. package/dist/__tests__/cost-types.test.d.ts.map +1 -0
  113. package/dist/__tests__/cost-types.test.js +65 -0
  114. package/dist/__tests__/cost-types.test.js.map +1 -0
  115. package/dist/__tests__/db-audit-schema.test.d.ts +2 -0
  116. package/dist/__tests__/db-audit-schema.test.d.ts.map +1 -0
  117. package/dist/__tests__/db-audit-schema.test.js +35 -0
  118. package/dist/__tests__/db-audit-schema.test.js.map +1 -0
  119. package/dist/__tests__/db-cost-rollups-schema.test.d.ts +2 -0
  120. package/dist/__tests__/db-cost-rollups-schema.test.d.ts.map +1 -0
  121. package/dist/__tests__/db-cost-rollups-schema.test.js +28 -0
  122. package/dist/__tests__/db-cost-rollups-schema.test.js.map +1 -0
  123. package/dist/__tests__/db-rbac-schema.test.d.ts +2 -0
  124. package/dist/__tests__/db-rbac-schema.test.d.ts.map +1 -0
  125. package/dist/__tests__/db-rbac-schema.test.js +32 -0
  126. package/dist/__tests__/db-rbac-schema.test.js.map +1 -0
  127. package/dist/__tests__/db-sso-schema.test.d.ts +2 -0
  128. package/dist/__tests__/db-sso-schema.test.d.ts.map +1 -0
  129. package/dist/__tests__/db-sso-schema.test.js +48 -0
  130. package/dist/__tests__/db-sso-schema.test.js.map +1 -0
  131. package/dist/__tests__/executor.test.js +3 -1
  132. package/dist/__tests__/executor.test.js.map +1 -1
  133. package/dist/__tests__/extract-handoff.test.js +109 -0
  134. package/dist/__tests__/extract-handoff.test.js.map +1 -1
  135. package/dist/__tests__/helpers/license.d.ts +3 -0
  136. package/dist/__tests__/helpers/license.d.ts.map +1 -0
  137. package/dist/__tests__/helpers/license.js +74 -0
  138. package/dist/__tests__/helpers/license.js.map +1 -0
  139. package/dist/__tests__/license-audit-event.test.d.ts +2 -0
  140. package/dist/__tests__/license-audit-event.test.d.ts.map +1 -0
  141. package/dist/__tests__/license-audit-event.test.js +60 -0
  142. package/dist/__tests__/license-audit-event.test.js.map +1 -0
  143. package/dist/__tests__/license-end-to-end.test.d.ts +2 -0
  144. package/dist/__tests__/license-end-to-end.test.d.ts.map +1 -0
  145. package/dist/__tests__/license-end-to-end.test.js +75 -0
  146. package/dist/__tests__/license-end-to-end.test.js.map +1 -0
  147. package/dist/__tests__/license-public-key.test.d.ts +2 -0
  148. package/dist/__tests__/license-public-key.test.d.ts.map +1 -0
  149. package/dist/__tests__/license-public-key.test.js +18 -0
  150. package/dist/__tests__/license-public-key.test.js.map +1 -0
  151. package/dist/__tests__/license.test.js +195 -32
  152. package/dist/__tests__/license.test.js.map +1 -1
  153. package/dist/__tests__/pm-action-audit-events.test.d.ts +2 -0
  154. package/dist/__tests__/pm-action-audit-events.test.d.ts.map +1 -0
  155. package/dist/__tests__/pm-action-audit-events.test.js +185 -0
  156. package/dist/__tests__/pm-action-audit-events.test.js.map +1 -0
  157. package/dist/__tests__/pm-approvals.test.js +1 -1
  158. package/dist/__tests__/pm-approvals.test.js.map +1 -1
  159. package/dist/__tests__/pm-audit-retention-step.test.d.ts +2 -0
  160. package/dist/__tests__/pm-audit-retention-step.test.d.ts.map +1 -0
  161. package/dist/__tests__/pm-audit-retention-step.test.js +126 -0
  162. package/dist/__tests__/pm-audit-retention-step.test.js.map +1 -0
  163. package/dist/__tests__/pm-budget-alerts.test.d.ts +2 -0
  164. package/dist/__tests__/pm-budget-alerts.test.d.ts.map +1 -0
  165. package/dist/__tests__/pm-budget-alerts.test.js +128 -0
  166. package/dist/__tests__/pm-budget-alerts.test.js.map +1 -0
  167. package/dist/__tests__/pm-budget-refused-event.test.d.ts +2 -0
  168. package/dist/__tests__/pm-budget-refused-event.test.d.ts.map +1 -0
  169. package/dist/__tests__/pm-budget-refused-event.test.js +141 -0
  170. package/dist/__tests__/pm-budget-refused-event.test.js.map +1 -0
  171. package/dist/__tests__/pm-budget.test.js +138 -42
  172. package/dist/__tests__/pm-budget.test.js.map +1 -1
  173. package/dist/__tests__/pm-cost-rollup-step.test.d.ts +2 -0
  174. package/dist/__tests__/pm-cost-rollup-step.test.d.ts.map +1 -0
  175. package/dist/__tests__/pm-cost-rollup-step.test.js +113 -0
  176. package/dist/__tests__/pm-cost-rollup-step.test.js.map +1 -0
  177. package/dist/__tests__/pm-scheduler.test.js +48 -21
  178. package/dist/__tests__/pm-scheduler.test.js.map +1 -1
  179. package/dist/__tests__/pm-slack.test.js +37 -0
  180. package/dist/__tests__/pm-slack.test.js.map +1 -1
  181. package/dist/__tests__/pm-sso-prune-step.test.d.ts +2 -0
  182. package/dist/__tests__/pm-sso-prune-step.test.d.ts.map +1 -0
  183. package/dist/__tests__/pm-sso-prune-step.test.js +103 -0
  184. package/dist/__tests__/pm-sso-prune-step.test.js.map +1 -0
  185. package/dist/__tests__/pm-types.test.js +130 -1
  186. package/dist/__tests__/pm-types.test.js.map +1 -1
  187. package/dist/__tests__/policy/auto-merge-reviewer-gate.test.d.ts +2 -0
  188. package/dist/__tests__/policy/auto-merge-reviewer-gate.test.d.ts.map +1 -0
  189. package/dist/__tests__/policy/auto-merge-reviewer-gate.test.js +50 -0
  190. package/dist/__tests__/policy/auto-merge-reviewer-gate.test.js.map +1 -0
  191. package/dist/__tests__/policy/cost-gate.test.d.ts +2 -0
  192. package/dist/__tests__/policy/cost-gate.test.d.ts.map +1 -0
  193. package/dist/__tests__/policy/cost-gate.test.js +27 -0
  194. package/dist/__tests__/policy/cost-gate.test.js.map +1 -0
  195. package/dist/__tests__/policy/evaluate.test.d.ts +2 -0
  196. package/dist/__tests__/policy/evaluate.test.d.ts.map +1 -0
  197. package/dist/__tests__/policy/evaluate.test.js +105 -0
  198. package/dist/__tests__/policy/evaluate.test.js.map +1 -0
  199. package/dist/__tests__/policy/override.test.d.ts +2 -0
  200. package/dist/__tests__/policy/override.test.d.ts.map +1 -0
  201. package/dist/__tests__/policy/override.test.js +26 -0
  202. package/dist/__tests__/policy/override.test.js.map +1 -0
  203. package/dist/__tests__/policy/path-gate.test.d.ts +2 -0
  204. package/dist/__tests__/policy/path-gate.test.d.ts.map +1 -0
  205. package/dist/__tests__/policy/path-gate.test.js +31 -0
  206. package/dist/__tests__/policy/path-gate.test.js.map +1 -0
  207. package/dist/__tests__/policy/pr-reviewer-wiring.test.d.ts +2 -0
  208. package/dist/__tests__/policy/pr-reviewer-wiring.test.d.ts.map +1 -0
  209. package/dist/__tests__/policy/pr-reviewer-wiring.test.js +24 -0
  210. package/dist/__tests__/policy/pr-reviewer-wiring.test.js.map +1 -0
  211. package/dist/__tests__/policy/reviewer-gate.test.d.ts +2 -0
  212. package/dist/__tests__/policy/reviewer-gate.test.d.ts.map +1 -0
  213. package/dist/__tests__/policy/reviewer-gate.test.js +125 -0
  214. package/dist/__tests__/policy/reviewer-gate.test.js.map +1 -0
  215. package/dist/__tests__/policy-license.test.d.ts +2 -0
  216. package/dist/__tests__/policy-license.test.d.ts.map +1 -0
  217. package/dist/__tests__/policy-license.test.js +31 -0
  218. package/dist/__tests__/policy-license.test.js.map +1 -0
  219. package/dist/__tests__/policy-types.test.d.ts +2 -0
  220. package/dist/__tests__/policy-types.test.d.ts.map +1 -0
  221. package/dist/__tests__/policy-types.test.js +49 -0
  222. package/dist/__tests__/policy-types.test.js.map +1 -0
  223. package/dist/__tests__/ralph-gate.test.js +6 -4
  224. package/dist/__tests__/ralph-gate.test.js.map +1 -1
  225. package/dist/__tests__/rbac/bootstrap.test.d.ts +2 -0
  226. package/dist/__tests__/rbac/bootstrap.test.d.ts.map +1 -0
  227. package/dist/__tests__/rbac/bootstrap.test.js +62 -0
  228. package/dist/__tests__/rbac/bootstrap.test.js.map +1 -0
  229. package/dist/__tests__/rbac/matrix.test.d.ts +2 -0
  230. package/dist/__tests__/rbac/matrix.test.d.ts.map +1 -0
  231. package/dist/__tests__/rbac/matrix.test.js +62 -0
  232. package/dist/__tests__/rbac/matrix.test.js.map +1 -0
  233. package/dist/__tests__/rbac/user-role-store.test.d.ts +2 -0
  234. package/dist/__tests__/rbac/user-role-store.test.d.ts.map +1 -0
  235. package/dist/__tests__/rbac/user-role-store.test.js +78 -0
  236. package/dist/__tests__/rbac/user-role-store.test.js.map +1 -0
  237. package/dist/__tests__/rbac-defensive.test.d.ts +2 -0
  238. package/dist/__tests__/rbac-defensive.test.d.ts.map +1 -0
  239. package/dist/__tests__/rbac-defensive.test.js +29 -0
  240. package/dist/__tests__/rbac-defensive.test.js.map +1 -0
  241. package/dist/__tests__/rbac-integration.test.d.ts +2 -0
  242. package/dist/__tests__/rbac-integration.test.d.ts.map +1 -0
  243. package/dist/__tests__/rbac-integration.test.js +58 -0
  244. package/dist/__tests__/rbac-integration.test.js.map +1 -0
  245. package/dist/__tests__/rbac-license.test.d.ts +2 -0
  246. package/dist/__tests__/rbac-license.test.d.ts.map +1 -0
  247. package/dist/__tests__/rbac-license.test.js +27 -0
  248. package/dist/__tests__/rbac-license.test.js.map +1 -0
  249. package/dist/__tests__/reproduce-bec113-pagination-warning.test.js +14 -2
  250. package/dist/__tests__/reproduce-bec113-pagination-warning.test.js.map +1 -1
  251. package/dist/__tests__/reproduce-bec62.test.js +10 -3
  252. package/dist/__tests__/reproduce-bec62.test.js.map +1 -1
  253. package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.js +24 -4
  254. package/dist/__tests__/reproduce-bec91-stuck-in-progress.test.js.map +1 -1
  255. package/dist/__tests__/server.test.js +46 -2
  256. package/dist/__tests__/server.test.js.map +1 -1
  257. package/dist/__tests__/sso-license.test.d.ts +2 -0
  258. package/dist/__tests__/sso-license.test.d.ts.map +1 -0
  259. package/dist/__tests__/sso-license.test.js +49 -0
  260. package/dist/__tests__/sso-license.test.js.map +1 -0
  261. package/dist/__tests__/stage-models.test.js.map +1 -1
  262. package/dist/__tests__/start-todo.test.js +5 -0
  263. package/dist/__tests__/start-todo.test.js.map +1 -1
  264. package/dist/__tests__/webhook-handler.test.js +138 -0
  265. package/dist/__tests__/webhook-handler.test.js.map +1 -1
  266. package/dist/audit/config-fingerprint.d.ts +10 -0
  267. package/dist/audit/config-fingerprint.d.ts.map +1 -0
  268. package/dist/audit/config-fingerprint.js +20 -0
  269. package/dist/audit/config-fingerprint.js.map +1 -0
  270. package/dist/audit/csv.d.ts +8 -0
  271. package/dist/audit/csv.d.ts.map +1 -0
  272. package/dist/audit/csv.js +56 -0
  273. package/dist/audit/csv.js.map +1 -0
  274. package/dist/audit/events.d.ts +107 -0
  275. package/dist/audit/events.d.ts.map +1 -0
  276. package/dist/audit/events.js +221 -0
  277. package/dist/audit/events.js.map +1 -0
  278. package/dist/audit/index.d.ts +7 -0
  279. package/dist/audit/index.d.ts.map +1 -0
  280. package/dist/audit/index.js +7 -0
  281. package/dist/audit/index.js.map +1 -0
  282. package/dist/audit/projection.d.ts +38 -0
  283. package/dist/audit/projection.d.ts.map +1 -0
  284. package/dist/audit/projection.js +109 -0
  285. package/dist/audit/projection.js.map +1 -0
  286. package/dist/audit/reader.d.ts +42 -0
  287. package/dist/audit/reader.d.ts.map +1 -0
  288. package/dist/audit/reader.js +243 -0
  289. package/dist/audit/reader.js.map +1 -0
  290. package/dist/audit/retention.d.ts +12 -0
  291. package/dist/audit/retention.d.ts.map +1 -0
  292. package/dist/audit/retention.js +23 -0
  293. package/dist/audit/retention.js.map +1 -0
  294. package/dist/audit/writer.d.ts +26 -0
  295. package/dist/audit/writer.d.ts.map +1 -0
  296. package/dist/audit/writer.js +54 -0
  297. package/dist/audit/writer.js.map +1 -0
  298. package/dist/auth/index.d.ts +5 -0
  299. package/dist/auth/index.d.ts.map +1 -0
  300. package/dist/auth/index.js +5 -0
  301. package/dist/auth/index.js.map +1 -0
  302. package/dist/auth/session-store.d.ts +17 -0
  303. package/dist/auth/session-store.d.ts.map +1 -0
  304. package/dist/auth/session-store.js +59 -0
  305. package/dist/auth/session-store.js.map +1 -0
  306. package/dist/auth/sso-config.d.ts +14 -0
  307. package/dist/auth/sso-config.d.ts.map +1 -0
  308. package/dist/auth/sso-config.js +50 -0
  309. package/dist/auth/sso-config.js.map +1 -0
  310. package/dist/auth/user-store.d.ts +33 -0
  311. package/dist/auth/user-store.d.ts.map +1 -0
  312. package/dist/auth/user-store.js +71 -0
  313. package/dist/auth/user-store.js.map +1 -0
  314. package/dist/auth/workos-client.d.ts +46 -0
  315. package/dist/auth/workos-client.d.ts.map +1 -0
  316. package/dist/auth/workos-client.js +66 -0
  317. package/dist/auth/workos-client.js.map +1 -0
  318. package/dist/cost/aggregate.d.ts +49 -0
  319. package/dist/cost/aggregate.d.ts.map +1 -0
  320. package/dist/cost/aggregate.js +364 -0
  321. package/dist/cost/aggregate.js.map +1 -0
  322. package/dist/cost/csv.d.ts +12 -0
  323. package/dist/cost/csv.d.ts.map +1 -0
  324. package/dist/cost/csv.js +79 -0
  325. package/dist/cost/csv.js.map +1 -0
  326. package/dist/cost/index.d.ts +7 -0
  327. package/dist/cost/index.d.ts.map +1 -0
  328. package/dist/cost/index.js +7 -0
  329. package/dist/cost/index.js.map +1 -0
  330. package/dist/cost/per-run.d.ts +31 -0
  331. package/dist/cost/per-run.d.ts.map +1 -0
  332. package/dist/cost/per-run.js +35 -0
  333. package/dist/cost/per-run.js.map +1 -0
  334. package/dist/cost/rates.d.ts +27 -0
  335. package/dist/cost/rates.d.ts.map +1 -0
  336. package/dist/cost/rates.js +26 -0
  337. package/dist/cost/rates.js.map +1 -0
  338. package/dist/cost/rollup.d.ts +17 -0
  339. package/dist/cost/rollup.d.ts.map +1 -0
  340. package/dist/cost/rollup.js +164 -0
  341. package/dist/cost/rollup.js.map +1 -0
  342. package/dist/cost/types.d.ts +54 -0
  343. package/dist/cost/types.d.ts.map +1 -0
  344. package/dist/cost/types.js +2 -0
  345. package/dist/cost/types.js.map +1 -0
  346. package/dist/db/client.d.ts.map +1 -1
  347. package/dist/db/client.js +79 -1
  348. package/dist/db/client.js.map +1 -1
  349. package/dist/db/migrations/postgres/006_spend_caps.sql +14 -0
  350. package/dist/db/migrations/postgres/007_audit_events.sql +19 -0
  351. package/dist/db/migrations/postgres/008_cost_rollups.sql +19 -0
  352. package/dist/db/migrations/postgres/008_sso.sql +20 -0
  353. package/dist/db/migrations/sqlite/005_spend_caps.sql +16 -0
  354. package/dist/db/migrations/sqlite/006_audit_events.sql +19 -0
  355. package/dist/db/migrations/sqlite/007_cost_rollups.sql +19 -0
  356. package/dist/db/migrations/sqlite/007_sso.sql +20 -0
  357. package/dist/db/schema.d.ts +802 -0
  358. package/dist/db/schema.d.ts.map +1 -1
  359. package/dist/db/schema.js +80 -1
  360. package/dist/db/schema.js.map +1 -1
  361. package/dist/executor/executor.js +2 -2
  362. package/dist/executor/executor.js.map +1 -1
  363. package/dist/executor/extract-handoff.d.ts +7 -1
  364. package/dist/executor/extract-handoff.d.ts.map +1 -1
  365. package/dist/executor/extract-handoff.js +51 -11
  366. package/dist/executor/extract-handoff.js.map +1 -1
  367. package/dist/executor/handoff.d.ts.map +1 -1
  368. package/dist/executor/handoff.js +6 -0
  369. package/dist/executor/handoff.js.map +1 -1
  370. package/dist/executor/index.d.ts +1 -1
  371. package/dist/executor/index.d.ts.map +1 -1
  372. package/dist/executor/index.js +1 -1
  373. package/dist/executor/index.js.map +1 -1
  374. package/dist/executor/profiles.d.ts +42 -0
  375. package/dist/executor/profiles.d.ts.map +1 -1
  376. package/dist/executor/profiles.js +147 -2
  377. package/dist/executor/profiles.js.map +1 -1
  378. package/dist/index.d.ts +7 -1
  379. package/dist/index.d.ts.map +1 -1
  380. package/dist/index.js +8 -1
  381. package/dist/index.js.map +1 -1
  382. package/dist/license-public-key.d.ts +15 -0
  383. package/dist/license-public-key.d.ts.map +1 -0
  384. package/dist/license-public-key.js +15 -0
  385. package/dist/license-public-key.js.map +1 -0
  386. package/dist/license.d.ts +30 -5
  387. package/dist/license.d.ts.map +1 -1
  388. package/dist/license.js +142 -12
  389. package/dist/license.js.map +1 -1
  390. package/dist/pipeline/runner.d.ts +1 -7
  391. package/dist/pipeline/runner.d.ts.map +1 -1
  392. package/dist/pipeline/runner.js +168 -21
  393. package/dist/pipeline/runner.js.map +1 -1
  394. package/dist/pm/actions/promote.d.ts +3 -0
  395. package/dist/pm/actions/promote.d.ts.map +1 -1
  396. package/dist/pm/actions/promote.js +12 -0
  397. package/dist/pm/actions/promote.js.map +1 -1
  398. package/dist/pm/actions/resolve-approvals.d.ts.map +1 -1
  399. package/dist/pm/actions/resolve-approvals.js +16 -0
  400. package/dist/pm/actions/resolve-approvals.js.map +1 -1
  401. package/dist/pm/actions/start-todo.d.ts +3 -0
  402. package/dist/pm/actions/start-todo.d.ts.map +1 -1
  403. package/dist/pm/actions/start-todo.js +5 -1
  404. package/dist/pm/actions/start-todo.js.map +1 -1
  405. package/dist/pm/actions/triage.d.ts +3 -0
  406. package/dist/pm/actions/triage.d.ts.map +1 -1
  407. package/dist/pm/actions/triage.js +8 -0
  408. package/dist/pm/actions/triage.js.map +1 -1
  409. package/dist/pm/budget-alerts.d.ts +18 -0
  410. package/dist/pm/budget-alerts.d.ts.map +1 -0
  411. package/dist/pm/budget-alerts.js +100 -0
  412. package/dist/pm/budget-alerts.js.map +1 -0
  413. package/dist/pm/budget.d.ts +28 -5
  414. package/dist/pm/budget.d.ts.map +1 -1
  415. package/dist/pm/budget.js +115 -39
  416. package/dist/pm/budget.js.map +1 -1
  417. package/dist/pm/scheduler.d.ts +8 -4
  418. package/dist/pm/scheduler.d.ts.map +1 -1
  419. package/dist/pm/scheduler.js +128 -5
  420. package/dist/pm/scheduler.js.map +1 -1
  421. package/dist/pm/slack.d.ts.map +1 -1
  422. package/dist/pm/slack.js +11 -0
  423. package/dist/pm/slack.js.map +1 -1
  424. package/dist/pm/types.d.ts +36 -0
  425. package/dist/pm/types.d.ts.map +1 -1
  426. package/dist/pm/types.js +12 -0
  427. package/dist/pm/types.js.map +1 -1
  428. package/dist/policy/cost-gate.d.ts +3 -0
  429. package/dist/policy/cost-gate.d.ts.map +1 -0
  430. package/dist/policy/cost-gate.js +11 -0
  431. package/dist/policy/cost-gate.js.map +1 -0
  432. package/dist/policy/evaluate.d.ts +32 -0
  433. package/dist/policy/evaluate.d.ts.map +1 -0
  434. package/dist/policy/evaluate.js +61 -0
  435. package/dist/policy/evaluate.js.map +1 -0
  436. package/dist/policy/index.d.ts +7 -0
  437. package/dist/policy/index.d.ts.map +1 -0
  438. package/dist/policy/index.js +7 -0
  439. package/dist/policy/index.js.map +1 -0
  440. package/dist/policy/override.d.ts +23 -0
  441. package/dist/policy/override.d.ts.map +1 -0
  442. package/dist/policy/override.js +26 -0
  443. package/dist/policy/override.js.map +1 -0
  444. package/dist/policy/path-gate.d.ts +3 -0
  445. package/dist/policy/path-gate.d.ts.map +1 -0
  446. package/dist/policy/path-gate.js +20 -0
  447. package/dist/policy/path-gate.js.map +1 -0
  448. package/dist/policy/reviewer-gate.d.ts +45 -0
  449. package/dist/policy/reviewer-gate.d.ts.map +1 -0
  450. package/dist/policy/reviewer-gate.js +77 -0
  451. package/dist/policy/reviewer-gate.js.map +1 -0
  452. package/dist/policy/types.d.ts +7 -0
  453. package/dist/policy/types.d.ts.map +1 -0
  454. package/dist/policy/types.js +2 -0
  455. package/dist/policy/types.js.map +1 -0
  456. package/dist/rbac/errors.d.ts +7 -0
  457. package/dist/rbac/errors.d.ts.map +1 -0
  458. package/dist/rbac/errors.js +13 -0
  459. package/dist/rbac/errors.js.map +1 -0
  460. package/dist/rbac/index.d.ts +5 -0
  461. package/dist/rbac/index.d.ts.map +1 -0
  462. package/dist/rbac/index.js +5 -0
  463. package/dist/rbac/index.js.map +1 -0
  464. package/dist/rbac/matrix.d.ts +35 -0
  465. package/dist/rbac/matrix.d.ts.map +1 -0
  466. package/dist/rbac/matrix.js +42 -0
  467. package/dist/rbac/matrix.js.map +1 -0
  468. package/dist/rbac/types.d.ts +2 -0
  469. package/dist/rbac/types.d.ts.map +1 -0
  470. package/dist/rbac/types.js +2 -0
  471. package/dist/rbac/types.js.map +1 -0
  472. package/dist/rbac/user-role-store.d.ts +27 -0
  473. package/dist/rbac/user-role-store.d.ts.map +1 -0
  474. package/dist/rbac/user-role-store.js +148 -0
  475. package/dist/rbac/user-role-store.js.map +1 -0
  476. package/dist/repo/git.d.ts +9 -0
  477. package/dist/repo/git.d.ts.map +1 -1
  478. package/dist/repo/git.js +11 -0
  479. package/dist/repo/git.js.map +1 -1
  480. package/dist/repo/github.d.ts +4 -0
  481. package/dist/repo/github.d.ts.map +1 -1
  482. package/dist/repo/github.js +27 -0
  483. package/dist/repo/github.js.map +1 -1
  484. package/dist/repo/gitlab.d.ts +4 -0
  485. package/dist/repo/gitlab.d.ts.map +1 -1
  486. package/dist/repo/gitlab.js +7 -0
  487. package/dist/repo/gitlab.js.map +1 -1
  488. package/dist/server.d.ts +6 -0
  489. package/dist/server.d.ts.map +1 -1
  490. package/dist/server.js +16 -10
  491. package/dist/server.js.map +1 -1
  492. package/dist/types.d.ts +155 -0
  493. package/dist/types.d.ts.map +1 -1
  494. package/dist/types.js +83 -0
  495. package/dist/types.js.map +1 -1
  496. package/dist/util/glob.d.ts +7 -0
  497. package/dist/util/glob.d.ts.map +1 -0
  498. package/dist/util/glob.js +20 -0
  499. package/dist/util/glob.js.map +1 -0
  500. package/dist/webhook/handler.d.ts +3 -0
  501. package/dist/webhook/handler.d.ts.map +1 -1
  502. package/dist/webhook/handler.js +36 -2
  503. package/dist/webhook/handler.js.map +1 -1
  504. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,IAAI,aAAa,EAAE,QAAQ,GAAG,UAAqB,CAAC;AAE3D,wDAAwD;AACxD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAEpE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAkBzB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BvB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBpB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUpB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWtB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
package/dist/db/schema.js CHANGED
@@ -1,4 +1,4 @@
1
- import { customType, sqliteTable, text, integer } from "drizzle-orm/sqlite-core";
1
+ import { customType, sqliteTable, text, integer, real, unique } from "drizzle-orm/sqlite-core";
2
2
  /**
3
3
  * Active driver mode for cross-database timestamp serialization.
4
4
  * Set by createDb when a connection is established.
@@ -68,6 +68,8 @@ export const pipelineRuns = sqliteTable("pipeline_runs", {
68
68
  autoMergeReason: text("auto_merge_reason"),
69
69
  /** True (1) when auto-commit was triggered because the agent did not commit its work. Quality metric. */
70
70
  autoCommitted: integer("auto_committed", { mode: "boolean" }),
71
+ /** Linear team ID from the webhook payload. Nullable for legacy rows created before per-team budget scoping. */
72
+ linearTeamId: text("linear_team_id"),
71
73
  });
72
74
  export const stageRuns = sqliteTable("stage_runs", {
73
75
  id: text("id").primaryKey(),
@@ -126,4 +128,81 @@ export const pmApprovals = sqliteTable("pm_approvals", {
126
128
  .$defaultFn(() => new Date()),
127
129
  resolvedAt: crossTimestamp("resolved_at"),
128
130
  });
131
+ /**
132
+ * Dedup table for budget threshold alerts. One row per (date, scope, threshold)
133
+ * — the UNIQUE constraint + onConflictDoNothing() guarantees an alert fires at
134
+ * most once per day per scope per threshold.
135
+ */
136
+ export const budgetAlerts = sqliteTable("budget_alerts", {
137
+ id: text("id").primaryKey(),
138
+ /** UTC date the alert covers, formatted 'YYYY-MM-DD'. */
139
+ date: text("date").notNull(),
140
+ /** 'global' | 'team:<linearTeamId>' | 'repo:<repoUrl>'. */
141
+ scope: text("scope").notNull(),
142
+ /** 50 | 80 | 100. */
143
+ threshold: integer("threshold").notNull(),
144
+ firedAt: crossTimestamp("fired_at")
145
+ .notNull()
146
+ .$defaultFn(() => new Date()),
147
+ }, (t) => [
148
+ unique().on(t.date, t.scope, t.threshold),
149
+ ]);
150
+ export const auditEvents = sqliteTable("audit_events", {
151
+ id: text("id").primaryKey(),
152
+ timestamp: crossTimestamp("timestamp")
153
+ .notNull()
154
+ .$defaultFn(() => new Date()),
155
+ eventType: text("event_type").notNull(),
156
+ actor: text("actor").notNull(),
157
+ actorType: text("actor_type").notNull(),
158
+ scope: text("scope"),
159
+ runId: text("run_id"),
160
+ issueId: text("issue_id"),
161
+ inputTokens: integer("input_tokens").notNull().default(0),
162
+ outputTokens: integer("output_tokens").notNull().default(0),
163
+ payload: text("payload").notNull().default("{}"),
164
+ });
165
+ export const dashboardUsers = sqliteTable("dashboard_users", {
166
+ id: text("id").primaryKey(),
167
+ email: text("email").notNull().unique(),
168
+ name: text("name"),
169
+ workosUserId: text("workos_user_id"),
170
+ createdAt: crossTimestamp("created_at")
171
+ .notNull()
172
+ .$defaultFn(() => new Date()),
173
+ lastLoginAt: crossTimestamp("last_login_at"),
174
+ role: text("role").notNull().default("viewer"),
175
+ });
176
+ export const dashboardSessions = sqliteTable("dashboard_sessions", {
177
+ id: text("id").primaryKey(),
178
+ userId: text("user_id")
179
+ .notNull()
180
+ .references(() => dashboardUsers.id),
181
+ createdAt: crossTimestamp("created_at")
182
+ .notNull()
183
+ .$defaultFn(() => new Date()),
184
+ expiresAt: crossTimestamp("expires_at").notNull(),
185
+ lastSeenAt: crossTimestamp("last_seen_at")
186
+ .notNull()
187
+ .$defaultFn(() => new Date()),
188
+ });
189
+ /** Enterprise feature 4.5: pre-aggregated daily cost rollups for the /cost dashboard. */
190
+ export const costRollupsDaily = sqliteTable("cost_rollups_daily", {
191
+ id: text("id").primaryKey(),
192
+ date: text("date").notNull(),
193
+ pipelineKey: text("pipeline_key").notNull(),
194
+ linearTeamId: text("linear_team_id"),
195
+ repoUrl: text("repo_url").notNull(),
196
+ runs: integer("runs").notNull().default(0),
197
+ prsMerged: integer("prs_merged").notNull().default(0),
198
+ inputTokens: integer("input_tokens").notNull().default(0),
199
+ outputTokens: integer("output_tokens").notNull().default(0),
200
+ dollars: real("dollars").notNull().default(0),
201
+ timeSavedHours: real("time_saved_hours").notNull().default(0),
202
+ computedAt: crossTimestamp("computed_at")
203
+ .notNull()
204
+ .$defaultFn(() => new Date()),
205
+ }, (t) => [
206
+ unique().on(t.date, t.pipelineKey, t.linearTeamId, t.repoUrl),
207
+ ]);
129
208
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { eq } from "drizzle-orm";
2
2
  import { nanoid } from "nanoid";
3
3
  import { stageRuns, agentLogs } from "../db/schema.js";
4
- import { agentProfiles } from "./profiles.js";
4
+ import { getAgentProfiles } from "./profiles.js";
5
5
  import { assemblePrompt } from "./prompt/assembler.js";
6
6
  import { extractHandoff } from "./extract-handoff.js";
7
7
  import { buildStagePermissionOptions } from "./permissions.js";
@@ -14,7 +14,7 @@ export async function executeStage(context) {
14
14
  if (stage === "await-approval") {
15
15
  throw new Error("await-approval is not an agent stage");
16
16
  }
17
- const profile = agentProfiles[stage];
17
+ const profile = getAgentProfiles()[stage];
18
18
  if (!profile) {
19
19
  throw new Error(`No agent profile for stage: ${stage}`);
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/executor/executor.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,13 @@ import type { HandoffParseResult } from "./handoff.js";
4
4
  * and the actual worktree state.
5
5
  *
6
6
  * Strategy:
7
- * 1. Fast path: if the agent already produced valid JSON, use it directly
7
+ * 1. Fast path: if the agent already produced valid JSON, use it — but
8
+ * cross-check against `git status --porcelain` and override an empty
9
+ * `filesChanged` list when the worktree actually has changes (urateam#35).
10
+ * Without this guard, an agent that emits `filesChanged: []` for a
11
+ * multi-file PR (or self-critique JSON in `summary`) leaves the PR body
12
+ * rendered as "No file changes recorded" + "No test changes" even though
13
+ * the diff has 15+ files.
8
14
  * 2. Otherwise, run git commands to get actual file changes and build the
9
15
  * handoff programmatically from the diff + agent's raw text output
10
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"extract-handoff.d.ts","sourceRoot":"","sources":["../../src/executor/extract-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAOvD;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CAuE7B"}
1
+ {"version":3,"file":"extract-handoff.d.ts","sourceRoot":"","sources":["../../src/executor/extract-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAwBvD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,CAAC,CA2F7B"}
@@ -2,12 +2,35 @@ import { parseHandoffArtifact, buildFallback } from "./handoff.js";
2
2
  import { gitExecSafe, gitExecRaw } from "../repo/git.js";
3
3
  import { createLogger } from "../logger.js";
4
4
  const log = createLogger({ component: "ExtractHandoff" });
5
+ /**
6
+ * Parse `git status --porcelain` output into a list of changed file paths.
7
+ * Handles renames ("XY old -> new" — emit `new`).
8
+ */
9
+ function parseGitPorcelain(statusOutput) {
10
+ if (!statusOutput)
11
+ return [];
12
+ return statusOutput
13
+ .split("\n")
14
+ .filter(Boolean)
15
+ .map((line) => {
16
+ const path = line.substring(3);
17
+ const arrowIdx = path.indexOf(" -> ");
18
+ return arrowIdx >= 0 ? path.substring(arrowIdx + 4) : path;
19
+ })
20
+ .filter(Boolean);
21
+ }
5
22
  /**
6
23
  * Extract a structured handoff artifact from the stage agent's raw output
7
24
  * and the actual worktree state.
8
25
  *
9
26
  * Strategy:
10
- * 1. Fast path: if the agent already produced valid JSON, use it directly
27
+ * 1. Fast path: if the agent already produced valid JSON, use it — but
28
+ * cross-check against `git status --porcelain` and override an empty
29
+ * `filesChanged` list when the worktree actually has changes (urateam#35).
30
+ * Without this guard, an agent that emits `filesChanged: []` for a
31
+ * multi-file PR (or self-critique JSON in `summary`) leaves the PR body
32
+ * rendered as "No file changes recorded" + "No test changes" even though
33
+ * the diff has 15+ files.
11
34
  * 2. Otherwise, run git commands to get actual file changes and build the
12
35
  * handoff programmatically from the diff + agent's raw text output
13
36
  *
@@ -17,6 +40,32 @@ export async function extractHandoff(agentOutput, runId, issueId, stage, workdir
17
40
  // Fast path: if the agent already produced valid structured JSON, use it
18
41
  const fastResult = parseHandoffArtifact(agentOutput, runId, issueId, stage);
19
42
  if (fastResult.structured) {
43
+ // Sanity check against the worktree: an empty `filesChanged` from the
44
+ // agent is the symptom of urateam#35 — the agent's structured output
45
+ // can be malformed (e.g., self-critique JSON leaks into `summary` and
46
+ // `filesChanged: []` is emitted alongside) while the diff is real.
47
+ // Trust git as the authoritative source of "what changed in the
48
+ // worktree" only when the agent says nothing changed.
49
+ //
50
+ // We deliberately do NOT override a non-empty agent list, even when it
51
+ // disagrees with git — agents may legitimately filter their list (e.g.,
52
+ // exclude generated files), and the rotulus PR #7 symptom that drives
53
+ // this fix is specifically the empty-on-multi-file case.
54
+ //
55
+ // No try/catch: gitExecRaw fails-open to "" on error rather than
56
+ // rejecting (see git.ts), and `parseGitPorcelain("")` returns []. So a
57
+ // git failure naturally short-circuits the override without throwing.
58
+ // Mutation of fastResult.artifact is safe — fastResult is a local var
59
+ // produced by parseHandoffArtifact and not aliased anywhere else before
60
+ // we return it.
61
+ if (fastResult.artifact.filesChanged.length === 0) {
62
+ const statusOutput = await gitExecRaw(["status", "--porcelain"], workdir);
63
+ const gitFilesChanged = parseGitPorcelain(statusOutput);
64
+ if (gitFilesChanged.length > 0) {
65
+ log.warn({ stage, gitFilesChanged: gitFilesChanged.length }, "agent reported empty filesChanged but git shows real changes — overriding with git diff (urateam#35)");
66
+ fastResult.artifact.filesChanged = gitFilesChanged;
67
+ }
68
+ }
20
69
  return fastResult;
21
70
  }
22
71
  log.info({ stage }, "building handoff from git diff");
@@ -34,16 +83,7 @@ export async function extractHandoff(agentOutput, runId, issueId, stage, workdir
34
83
  ]);
35
84
  // Parse porcelain output: "XY filename" — 2 status chars + 1 space + path
36
85
  // For renames: "XY old -> new"
37
- const filesChanged = statusOutput
38
- ? statusOutput.split("\n")
39
- .filter(Boolean)
40
- .map((line) => {
41
- const path = line.substring(3);
42
- const arrowIdx = path.indexOf(" -> ");
43
- return arrowIdx >= 0 ? path.substring(arrowIdx + 4) : path;
44
- })
45
- .filter(Boolean)
46
- : [];
86
+ const filesChanged = parseGitPorcelain(statusOutput);
47
87
  // Best-effort summary from agent output. The last few lines often contain
48
88
  // tool noise rather than meaningful prose. filesChanged is the reliable signal.
49
89
  const lines = agentOutput.split("\n").filter((l) => l.trim().length > 0);
@@ -1 +1 @@
1
- {"version":3,"file":"extract-handoff.js","sourceRoot":"","sources":["../../src/executor/extract-handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-handoff.js","sourceRoot":"","sources":["../../src/executor/extract-handoff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/executor/handoff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9E,OAAO,EAAE,MAAM,GACd,eAAe,CAgBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAqCpB"}
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../../src/executor/handoff.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,eAAe,CAAC;IAC1B,0EAA0E;IAC1E,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAC9E,OAAO,EAAE,MAAM,GACd,eAAe,CAsBjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAqCpB"}
@@ -3,6 +3,12 @@ import { parseJsonBlock } from "./agent-stream.js";
3
3
  import { createLogger } from "../logger.js";
4
4
  const log = createLogger({ component: "Handoff" });
5
5
  export function buildFallback(metadata, summary) {
6
+ // Note (urateam#35 Bug 1): if `summary` here is the agent's raw output
7
+ // truncated to 500 chars, it may contain JSON fragments from a self-
8
+ // critique block the agent leaked instead of structured prose. The fix
9
+ // for that is upstream prompt engineering (constraining the agent's
10
+ // structured-output instructions) — not summary sanitization here, which
11
+ // would be fragile regex hacks.
6
12
  return {
7
13
  ...metadata,
8
14
  summary: summary || `Stage ${metadata.stage} completed without structured output`,
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/executor/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAQnD,MAAM,UAAU,aAAa,CAC3B,QAA8E,EAC9E,OAAe;IAEf,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,OAAO,IAAI,SAAS,QAAQ,CAAC,KAAK,sCAAsC;QACjF,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,EAAE;SACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,KAAa,EACb,OAAe,EACf,KAAa;IAEb,MAAM,QAAQ,GAAG;QACf,KAAK;QACL,OAAO;QACP,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,qDAAqD,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,YAAY,GAAG;QACnB,GAAI,MAAkC;QACtC,GAAG,QAAQ;KACZ,CAAC;IAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CACP,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3G,yCAAyC,CAC1C,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../../src/executor/handoff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;AAQnD,MAAM,UAAU,aAAa,CAC3B,QAA8E,EAC9E,OAAe;IAEf,uEAAuE;IACvE,qEAAqE;IACrE,uEAAuE;IACvE,oEAAoE;IACpE,yEAAyE;IACzE,gCAAgC;IAChC,OAAO;QACL,GAAG,QAAQ;QACX,OAAO,EAAE,OAAO,IAAI,SAAS,QAAQ,CAAC,KAAK,sCAAsC;QACjF,YAAY,EAAE,EAAE;QAChB,QAAQ,EAAE,EAAE;QACZ,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;SAChB;QACD,WAAW,EAAE;YACX,iBAAiB,EAAE,CAAC;YACpB,mBAAmB,EAAE,EAAE;SACxB;KACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,EACnB,KAAa,EACb,OAAe,EACf,KAAa;IAEb,MAAM,QAAQ,GAAG;QACf,KAAK;QACL,OAAO;QACP,KAAK;QACL,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,qDAAqD,CAAC,CAAC;QAC5E,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,yEAAyE;IACzE,MAAM,YAAY,GAAG;QACnB,GAAI,MAAkC;QACtC,GAAG,QAAQ;KACZ,CAAC;IAEF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CACP,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3G,yCAAyC,CAC1C,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YAC5D,UAAU,EAAE,KAAK;SAClB,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
@@ -1,4 +1,4 @@
1
- export { agentProfiles } from "./profiles.js";
1
+ export { agentProfiles, getAgentProfiles, DEFAULT_AGENT_PROFILES } from "./profiles.js";
2
2
  export { checkTestQuality, analyzeTestFile, isTestFile, extractTestBlocks, TRIVIAL_MATCHERS, BEHAVIORAL_MATCHERS, TRIVIAL_THRESHOLD, type TestFileAnalysis, type TestQualityResult, } from "./test-quality.js";
3
3
  export { parseHandoffArtifact } from "./handoff.js";
4
4
  export { executeStage, type ExecuteStageContext } from "./executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,EACtB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { agentProfiles } from "./profiles.js";
1
+ export { agentProfiles, getAgentProfiles, DEFAULT_AGENT_PROFILES } from "./profiles.js";
2
2
  export { checkTestQuality, analyzeTestFile, isTestFile, extractTestBlocks, TRIVIAL_MATCHERS, BEHAVIORAL_MATCHERS, TRIVIAL_THRESHOLD, } from "./test-quality.js";
3
3
  export { parseHandoffArtifact } from "./handoff.js";
4
4
  export { executeStage } from "./executor.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,YAAY,EAA4B,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EACL,aAAa,EACb,4BAA4B,EAC5B,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC"}
@@ -1,5 +1,47 @@
1
1
  import type { AgentProfile } from "../types.js";
2
2
  export declare const DEFAULT_MODEL = "claude-sonnet-4-6";
3
3
  export declare const HAIKU_MODEL = "claude-haiku-4-5";
4
+ /**
5
+ * Default budget + tool surface for each pipeline stage. The defaults are
6
+ * sized for a "mature repo" — implement stage does real work, test stage
7
+ * runs an existing test suite, etc. They are intentionally NOT sized for
8
+ * bootstrapping new infrastructure (e.g., adding vitest + RN test setup
9
+ * from scratch in the test stage), which can blow through the default
10
+ * budget; see urateam#38.
11
+ *
12
+ * Operators with bootstrapping needs can override individual fields per
13
+ * stage via the URATEAM_AGENT_PROFILES env var (see `getAgentProfiles`).
14
+ *
15
+ * Deep-frozen so accidental mutation by a caller (e.g., a test that does
16
+ * `getAgentProfiles().test.maxTurns = 999`) throws instead of silently
17
+ * corrupting the shared defaults for the rest of process lifetime.
18
+ */
19
+ export declare const DEFAULT_AGENT_PROFILES: Record<string, AgentProfile>;
20
+ /**
21
+ * Backward-compat re-export. Prefer `getAgentProfiles()` so per-process
22
+ * env-var overrides are honored.
23
+ *
24
+ * @deprecated Use `getAgentProfiles()` for active profiles (env-var-merged).
25
+ * This alias only ever returns the unmerged defaults — useful for
26
+ * asserting the default shape in tests, but wrong for any consumer
27
+ * that wants the runtime-effective values.
28
+ */
4
29
  export declare const agentProfiles: Record<string, AgentProfile>;
30
+ /**
31
+ * Return the active per-stage agent profiles. Defaults can be overridden
32
+ * for the current process via the `URATEAM_AGENT_PROFILES` env var, which
33
+ * is parsed as JSON and merged on top of the defaults stage-by-stage:
34
+ *
35
+ * URATEAM_AGENT_PROFILES='{"test":{"maxTurns":50,"maxInputTokens":80000}}'
36
+ *
37
+ * Only the fields named in the override are changed; everything else keeps
38
+ * its default. Unknown stage names log a warn and are ignored. Malformed
39
+ * fields log a warn and are ignored without dropping the rest of the stage.
40
+ *
41
+ * Result is cached for process lifetime. Call `_resetAgentProfilesCache()`
42
+ * (test-only) to re-read the env var.
43
+ */
44
+ export declare function getAgentProfiles(): Record<string, AgentProfile>;
45
+ /** Test-only: reset the cached profiles so a new env var value takes effect. */
46
+ export declare function _resetAgentProfilesCache(): void;
5
47
  //# sourceMappingURL=profiles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/executor/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAE9C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA+BtD,CAAC"}
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/executor/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAKhD,eAAO,MAAM,aAAa,sBAAsB,CAAC;AACjD,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAgB9C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA+B9D,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,8BAAyB,CAAC;AAwEpD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAuD/D;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
@@ -1,6 +1,37 @@
1
+ import { createLogger } from "../logger.js";
2
+ const log = createLogger({ component: "executor.profiles" });
1
3
  export const DEFAULT_MODEL = "claude-sonnet-4-6";
2
4
  export const HAIKU_MODEL = "claude-haiku-4-5";
3
- export const agentProfiles = {
5
+ /**
6
+ * Recursively freeze an object so accidental mutation by callers throws
7
+ * (in strict mode) rather than silently corrupting the shared defaults.
8
+ */
9
+ function deepFreeze(o) {
10
+ if (o === null || typeof o !== "object")
11
+ return o;
12
+ for (const v of Object.values(o))
13
+ deepFreeze(v);
14
+ return Object.freeze(o);
15
+ }
16
+ /** Upper bounds for env-var overrides — protect against fat-finger like {"maxTurns": 999999}. */
17
+ const MAX_TURNS_CEILING = 500;
18
+ const MAX_INPUT_TOKENS_CEILING = 500_000;
19
+ /**
20
+ * Default budget + tool surface for each pipeline stage. The defaults are
21
+ * sized for a "mature repo" — implement stage does real work, test stage
22
+ * runs an existing test suite, etc. They are intentionally NOT sized for
23
+ * bootstrapping new infrastructure (e.g., adding vitest + RN test setup
24
+ * from scratch in the test stage), which can blow through the default
25
+ * budget; see urateam#38.
26
+ *
27
+ * Operators with bootstrapping needs can override individual fields per
28
+ * stage via the URATEAM_AGENT_PROFILES env var (see `getAgentProfiles`).
29
+ *
30
+ * Deep-frozen so accidental mutation by a caller (e.g., a test that does
31
+ * `getAgentProfiles().test.maxTurns = 999`) throws instead of silently
32
+ * corrupting the shared defaults for the rest of process lifetime.
33
+ */
34
+ export const DEFAULT_AGENT_PROFILES = deepFreeze({
4
35
  triage: {
5
36
  tools: ["Read", "Glob", "Grep", "WebSearch"],
6
37
  maxInputTokens: 30_000,
@@ -31,5 +62,119 @@ export const agentProfiles = {
31
62
  maxTurns: 20,
32
63
  model: DEFAULT_MODEL,
33
64
  },
34
- };
65
+ });
66
+ /**
67
+ * Backward-compat re-export. Prefer `getAgentProfiles()` so per-process
68
+ * env-var overrides are honored.
69
+ *
70
+ * @deprecated Use `getAgentProfiles()` for active profiles (env-var-merged).
71
+ * This alias only ever returns the unmerged defaults — useful for
72
+ * asserting the default shape in tests, but wrong for any consumer
73
+ * that wants the runtime-effective values.
74
+ */
75
+ export const agentProfiles = DEFAULT_AGENT_PROFILES;
76
+ let cachedProfiles = null;
77
+ function isStringArray(v) {
78
+ return Array.isArray(v) && v.every((x) => typeof x === "string");
79
+ }
80
+ function isPositiveIntegerWithin(v, max) {
81
+ return typeof v === "number" && Number.isInteger(v) && v > 0 && v <= max;
82
+ }
83
+ /**
84
+ * Apply a single override object on top of a base profile. Unknown stages
85
+ * are dropped with a warn (op-side typo protection). Known stages with
86
+ * malformed fields are dropped field-by-field (don't let one bad field
87
+ * tank the whole stage). The stage name is included in every warn payload
88
+ * so operators can pinpoint which stage triggered each warning.
89
+ *
90
+ * Returns a fresh object — never mutates `base`. The `tools` array is
91
+ * copied either from the override or from a fresh `[...base.tools]` copy
92
+ * so callers cannot reach back into DEFAULT_AGENT_PROFILES via the
93
+ * returned reference.
94
+ */
95
+ function mergeOverride(base, override, stage) {
96
+ const merged = { ...base, tools: [...base.tools] };
97
+ if (isStringArray(override.tools)) {
98
+ merged.tools = override.tools.slice();
99
+ }
100
+ else if (override.tools !== undefined) {
101
+ log.warn({ stage, field: "tools", got: typeof override.tools }, "URATEAM_AGENT_PROFILES override: tools must be a string array — ignoring this field");
102
+ }
103
+ if (isPositiveIntegerWithin(override.maxInputTokens, MAX_INPUT_TOKENS_CEILING)) {
104
+ merged.maxInputTokens = override.maxInputTokens;
105
+ }
106
+ else if (override.maxInputTokens !== undefined) {
107
+ log.warn({ stage, field: "maxInputTokens", got: override.maxInputTokens, ceiling: MAX_INPUT_TOKENS_CEILING }, "URATEAM_AGENT_PROFILES override: maxInputTokens must be a positive integer ≤ ceiling — ignoring this field");
108
+ }
109
+ if (isPositiveIntegerWithin(override.maxTurns, MAX_TURNS_CEILING)) {
110
+ merged.maxTurns = override.maxTurns;
111
+ }
112
+ else if (override.maxTurns !== undefined) {
113
+ log.warn({ stage, field: "maxTurns", got: override.maxTurns, ceiling: MAX_TURNS_CEILING }, "URATEAM_AGENT_PROFILES override: maxTurns must be a positive integer ≤ ceiling — ignoring this field");
114
+ }
115
+ if (typeof override.model === "string" && override.model.length > 0) {
116
+ merged.model = override.model;
117
+ }
118
+ else if (override.model !== undefined) {
119
+ log.warn({ stage, field: "model", got: override.model }, "URATEAM_AGENT_PROFILES override: model must be a non-empty string — ignoring this field");
120
+ }
121
+ return merged;
122
+ }
123
+ /**
124
+ * Return the active per-stage agent profiles. Defaults can be overridden
125
+ * for the current process via the `URATEAM_AGENT_PROFILES` env var, which
126
+ * is parsed as JSON and merged on top of the defaults stage-by-stage:
127
+ *
128
+ * URATEAM_AGENT_PROFILES='{"test":{"maxTurns":50,"maxInputTokens":80000}}'
129
+ *
130
+ * Only the fields named in the override are changed; everything else keeps
131
+ * its default. Unknown stage names log a warn and are ignored. Malformed
132
+ * fields log a warn and are ignored without dropping the rest of the stage.
133
+ *
134
+ * Result is cached for process lifetime. Call `_resetAgentProfilesCache()`
135
+ * (test-only) to re-read the env var.
136
+ */
137
+ export function getAgentProfiles() {
138
+ if (cachedProfiles)
139
+ return cachedProfiles;
140
+ const raw = process.env.URATEAM_AGENT_PROFILES;
141
+ if (!raw) {
142
+ cachedProfiles = DEFAULT_AGENT_PROFILES;
143
+ return cachedProfiles;
144
+ }
145
+ let parsed;
146
+ try {
147
+ parsed = JSON.parse(raw);
148
+ }
149
+ catch (err) {
150
+ log.warn({ err: err.message }, "URATEAM_AGENT_PROFILES is not valid JSON — falling back to defaults");
151
+ cachedProfiles = DEFAULT_AGENT_PROFILES;
152
+ return cachedProfiles;
153
+ }
154
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
155
+ log.warn("URATEAM_AGENT_PROFILES must be a JSON object keyed by stage name — falling back to defaults");
156
+ cachedProfiles = DEFAULT_AGENT_PROFILES;
157
+ return cachedProfiles;
158
+ }
159
+ const overrides = parsed;
160
+ const result = { ...DEFAULT_AGENT_PROFILES };
161
+ for (const [stage, override] of Object.entries(overrides)) {
162
+ if (!(stage in DEFAULT_AGENT_PROFILES)) {
163
+ log.warn({ stage, knownStages: Object.keys(DEFAULT_AGENT_PROFILES) }, "URATEAM_AGENT_PROFILES override targets unknown stage — ignoring");
164
+ continue;
165
+ }
166
+ if (!override || typeof override !== "object" || Array.isArray(override)) {
167
+ log.warn({ stage, got: typeof override }, "URATEAM_AGENT_PROFILES per-stage value must be an object — ignoring");
168
+ continue;
169
+ }
170
+ result[stage] = mergeOverride(DEFAULT_AGENT_PROFILES[stage], override, stage);
171
+ log.info({ stage, profile: result[stage] }, "URATEAM_AGENT_PROFILES override applied");
172
+ }
173
+ cachedProfiles = result;
174
+ return cachedProfiles;
175
+ }
176
+ /** Test-only: reset the cached profiles so a new env var value takes effect. */
177
+ export function _resetAgentProfilesCache() {
178
+ cachedProfiles = null;
179
+ }
35
180
  //# sourceMappingURL=profiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/executor/profiles.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,mBAAmB,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;QAC5C,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,aAAa;KACrB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,cAAc,EAAE,OAAO;QACvB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,aAAa;KACrB;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACxD,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,WAAW;KACnB;IACD,MAAM,EAAE;QACN,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;QACvC,cAAc,EAAE,MAAM;QACtB,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,aAAa;KACrB;CACF,CAAC"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/executor/profiles.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export * from "./types.js";
2
- export { checkLicense, isFeatureLicensed, type LicenseStatus } from "./license.js";
2
+ export { checkLicense, isFeatureLicensed, LicenseRequiredError, type LicenseStatus, } from "./license.js";
3
+ export * from "./audit/index.js";
4
+ export * from "./auth/index.js";
5
+ export * from "./policy/index.js";
6
+ export * from "./cost/index.js";
7
+ export * from "./rbac/index.js";
8
+ export { computeConfigFingerprint } from "./audit/config-fingerprint.js";
3
9
  export { rootLogger, createLogger, addLogStream } from "./logger.js";
4
10
  export { createDb, isPostgres, sqlDateGroup, sqlDaysAgoFilter, type Db } from "./db/index.js";
5
11
  export { pipelineRuns, stageRuns, agentLogs, activeWork, pmApprovals } from "./db/index.js";