stackvitals 0.1.1__tar.gz → 0.1.3__tar.gz

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 (1481) hide show
  1. stackvitals-0.1.3/.github/workflows/daily.yml +118 -0
  2. stackvitals-0.1.3/.github/workflows/mcp-registry.yml +32 -0
  3. stackvitals-0.1.3/.github/workflows/prospective.yml +79 -0
  4. stackvitals-0.1.3/.github/workflows/release.yml +102 -0
  5. stackvitals-0.1.3/.github/workflows/tests.yml +28 -0
  6. stackvitals-0.1.3/CHANGELOG.md +88 -0
  7. stackvitals-0.1.3/CODE_OF_CONDUCT.md +113 -0
  8. stackvitals-0.1.3/CONTRIBUTING.md +63 -0
  9. stackvitals-0.1.3/PKG-INFO +245 -0
  10. stackvitals-0.1.3/README.md +198 -0
  11. stackvitals-0.1.3/action.yml +221 -0
  12. stackvitals-0.1.3/bench/accuracy/registry.json +368 -0
  13. stackvitals-0.1.3/bench/accuracy/summary.py +447 -0
  14. stackvitals-0.1.3/deploy/crawler/workflows/bench.yml +76 -0
  15. stackvitals-0.1.3/deploy/crawler/workflows/check.yml +38 -0
  16. stackvitals-0.1.3/deploy/crawler/workflows/crawl.yml +103 -0
  17. stackvitals-0.1.3/deploy/crawler/workflows/discover.yml +131 -0
  18. stackvitals-0.1.3/deploy/crawler/workflows/keepalive.yml +23 -0
  19. stackvitals-0.1.3/docs/accuracy.md +147 -0
  20. stackvitals-0.1.3/docs/app.md +139 -0
  21. stackvitals-0.1.3/docs/architecture.md +150 -0
  22. stackvitals-0.1.3/docs/assets/architecture-detailed-dark.png +0 -0
  23. stackvitals-0.1.3/docs/assets/architecture-detailed-light.png +0 -0
  24. stackvitals-0.1.3/docs/assets/architecture-overview-dark.png +0 -0
  25. stackvitals-0.1.3/docs/assets/architecture-overview-light.png +0 -0
  26. stackvitals-0.1.3/docs/assets/divider-dark.png +0 -0
  27. stackvitals-0.1.3/docs/assets/divider-light.png +0 -0
  28. stackvitals-0.1.3/docs/assets/lockup-dark.png +0 -0
  29. stackvitals-0.1.3/docs/assets/lockup-light.png +0 -0
  30. stackvitals-0.1.3/docs/assets/stackvitals-video.avif +0 -0
  31. stackvitals-0.1.3/docs/assets/stackvitals-video.gif +0 -0
  32. stackvitals-0.1.3/docs/assets/stackvitals-video.mp4 +0 -0
  33. stackvitals-0.1.3/docs/connectors.md +336 -0
  34. stackvitals-0.1.3/docs/coverage.md +58 -0
  35. stackvitals-0.1.3/docs/dora-guide.md +53 -0
  36. stackvitals-0.1.3/docs/faq.md +86 -0
  37. stackvitals-0.1.3/docs/guides/maintainer.md +37 -0
  38. stackvitals-0.1.3/docs/guides/manager.md +37 -0
  39. stackvitals-0.1.3/docs/guides/platform.md +39 -0
  40. stackvitals-0.1.3/docs/install.md +216 -0
  41. stackvitals-0.1.3/docs/limitations.md +199 -0
  42. stackvitals-0.1.3/docs/methods.md +87 -0
  43. stackvitals-0.1.3/docs/modules.md +680 -0
  44. stackvitals-0.1.3/docs/privacy.md +42 -0
  45. stackvitals-0.1.3/docs/quickstart.md +69 -0
  46. stackvitals-0.1.3/docs/release-checklist.md +115 -0
  47. stackvitals-0.1.3/docs/rules.md +200 -0
  48. stackvitals-0.1.3/docs/scaling.md +77 -0
  49. stackvitals-0.1.3/docs/settings.md +312 -0
  50. stackvitals-0.1.3/docs/threat-model.md +91 -0
  51. stackvitals-0.1.3/llms.txt +34 -0
  52. stackvitals-0.1.3/pyproject.toml +55 -0
  53. stackvitals-0.1.3/scripts/prelaunch.py +947 -0
  54. stackvitals-0.1.3/scripts/sync_crawler.py +87 -0
  55. stackvitals-0.1.3/server.json +29 -0
  56. stackvitals-0.1.3/skills/stackvitals-ci/SKILL.md +32 -0
  57. stackvitals-0.1.3/skills/stackvitals-community/SKILL.md +25 -0
  58. stackvitals-0.1.3/skills/stackvitals-contribute/SKILL.md +26 -0
  59. stackvitals-0.1.3/skills/stackvitals-delivery/SKILL.md +35 -0
  60. stackvitals-0.1.3/skills/stackvitals-deps/SKILL.md +30 -0
  61. stackvitals-0.1.3/skills/stackvitals-flow/SKILL.md +31 -0
  62. stackvitals-0.1.3/skills/stackvitals-portal/SKILL.md +26 -0
  63. stackvitals-0.1.3/src/mergescout/__init__.py +1 -0
  64. stackvitals-0.1.3/src/stackvitals/__init__.py +2 -0
  65. stackvitals-0.1.3/src/stackvitals/cli.py +115 -0
  66. stackvitals-0.1.3/src/stackvitals/core/dataflow.py +168 -0
  67. stackvitals-0.1.3/src/stackvitals/core/initcli.py +259 -0
  68. stackvitals-0.1.3/src/stackvitals/core/installdoc.py +92 -0
  69. stackvitals-0.1.3/src/stackvitals/core/schema.py +221 -0
  70. stackvitals-0.1.3/src/stackvitals/editors/vscode/package.json +26 -0
  71. stackvitals-0.1.3/src/stackvitals/web/app/boot.js +1 -0
  72. stackvitals-0.1.3/src/stackvitals/web/app/brand/cube-128.png +0 -0
  73. stackvitals-0.1.3/src/stackvitals/web/app/brand/cube-256.png +0 -0
  74. stackvitals-0.1.3/src/stackvitals/web/app/brand/cube-64.png +0 -0
  75. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-5TSTECYX.js +1 -0
  76. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-7W2HH2SR.js +1 -0
  77. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-AEVB6UDN.js +75 -0
  78. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-DLORG2IY.js +1 -0
  79. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-FBGIG7YF.js +1 -0
  80. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-SACCDA46.js +1 -0
  81. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-TCPSLBAB.js +1 -0
  82. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-UWMBZCCA.js +1 -0
  83. stackvitals-0.1.3/src/stackvitals/web/app/chunks/chunk-W6N6P4C7.js +273 -0
  84. stackvitals-0.1.3/src/stackvitals/web/app/chunks/more-EEGUDTVE.js +10 -0
  85. stackvitals-0.1.3/src/stackvitals/web/app/demo/settings.json +1 -0
  86. stackvitals-0.1.3/src/stackvitals/web/app/help/accuracy.json +1 -0
  87. stackvitals-0.1.3/src/stackvitals/web/app/help/connectors.json +1 -0
  88. stackvitals-0.1.3/src/stackvitals/web/app/help/getting-started.json +1 -0
  89. stackvitals-0.1.3/src/stackvitals/web/app/help/index.json +1 -0
  90. stackvitals-0.1.3/src/stackvitals/web/app/help/modules.json +1 -0
  91. stackvitals-0.1.3/src/stackvitals/web/app/help/privacy-and-security.json +1 -0
  92. stackvitals-0.1.3/src/stackvitals/web/app/help/reference.json +1 -0
  93. stackvitals-0.1.3/src/stackvitals/web/app/main.css +1 -0
  94. stackvitals-0.1.3/src/stackvitals/web/app/main.js +1 -0
  95. stackvitals-0.1.3/src/stackvitals/web/app/pages/about.js +1 -0
  96. stackvitals-0.1.3/src/stackvitals/web/app/pages/ci.js +1 -0
  97. stackvitals-0.1.3/src/stackvitals/web/app/pages/community.js +1 -0
  98. stackvitals-0.1.3/src/stackvitals/web/app/pages/delivery.js +45 -0
  99. stackvitals-0.1.3/src/stackvitals/web/app/pages/deps.js +7 -0
  100. stackvitals-0.1.3/src/stackvitals/web/app/pages/help.js +6 -0
  101. stackvitals-0.1.3/src/stackvitals/web/app/pages/investment.js +3 -0
  102. stackvitals-0.1.3/src/stackvitals/web/app/pages/overview.js +1 -0
  103. stackvitals-0.1.3/src/stackvitals/web/app/pages/portal.js +51 -0
  104. stackvitals-0.1.3/src/stackvitals/web/app/pages/prs.js +4 -0
  105. stackvitals-0.1.3/src/stackvitals/web/app/pages/settings.js +1 -0
  106. stackvitals-0.1.3/src/stackvitals/web/app/pages/setup.js +2 -0
  107. stackvitals-0.1.3/src/stackvitals/web/app/pages/welcome-sheet.js +1 -0
  108. stackvitals-0.1.3/src/stackvitals/web/app/pages/welcome.js +1 -0
  109. stackvitals-0.1.3/src/stackvitals/web/index.html +33 -0
  110. stackvitals-0.1.3/src/stackvitals/web/site/index.html +111 -0
  111. stackvitals-0.1.3/src/stackvitals/web/site/site.css +68 -0
  112. stackvitals-0.1.3/tests/local/test_audit_docs.py +19 -0
  113. stackvitals-0.1.3/tests/local/test_editor_marks.py +101 -0
  114. stackvitals-0.1.3/tests/local/test_init_cli.py +152 -0
  115. stackvitals-0.1.3/tests/local/test_prelaunch.py +115 -0
  116. stackvitals-0.1.3/uv.lock +1236 -0
  117. stackvitals-0.1.3/web/README.md +46 -0
  118. stackvitals-0.1.3/web/brand/cube-128.png +0 -0
  119. stackvitals-0.1.3/web/brand/cube-256.png +0 -0
  120. stackvitals-0.1.3/web/brand/cube-64.png +0 -0
  121. stackvitals-0.1.3/web/build.mjs +164 -0
  122. stackvitals-0.1.3/web/demo/settings.json +1 -0
  123. stackvitals-0.1.3/web/index.html +23 -0
  124. stackvitals-0.1.3/web/src/app/App.tsx +136 -0
  125. stackvitals-0.1.3/web/src/app/Brand.tsx +6 -0
  126. stackvitals-0.1.3/web/src/boot.ts +23 -0
  127. stackvitals-0.1.3/web/src/brand/Logo.tsx +6 -0
  128. stackvitals-0.1.3/web/src/data/theme.ts +35 -0
  129. stackvitals-0.1.3/web/src/github/workflow.ts +180 -0
  130. stackvitals-0.1.3/web/src/pages/about.tsx +140 -0
  131. stackvitals-0.1.3/web/src/pages/ci/workflowgen.ts +327 -0
  132. stackvitals-0.1.3/web/src/pages/community.tsx +316 -0
  133. stackvitals-0.1.3/web/src/pages/deps/scanning.ts +77 -0
  134. stackvitals-0.1.3/web/src/pages/help/commands.tsx +128 -0
  135. stackvitals-0.1.3/web/src/pages/setup.tsx +312 -0
  136. stackvitals-0.1.3/web/src/styles/base.css +42 -0
  137. stackvitals-0.1.3/web/src/styles/sheet.css +378 -0
  138. stackvitals-0.1.3/web/src/styles/shell.css +105 -0
  139. stackvitals-0.1.3/web/src/styles/tokens.css +94 -0
  140. stackvitals-0.1.3/web/test/safety.test.ts +241 -0
  141. stackvitals-0.1.3/web/test/workflow.test.ts +61 -0
  142. stackvitals-0.1.1/.github/workflows/daily.yml +0 -118
  143. stackvitals-0.1.1/.github/workflows/prospective.yml +0 -79
  144. stackvitals-0.1.1/.github/workflows/release.yml +0 -102
  145. stackvitals-0.1.1/.github/workflows/tests.yml +0 -28
  146. stackvitals-0.1.1/CHANGELOG.md +0 -69
  147. stackvitals-0.1.1/CONTRIBUTING.md +0 -49
  148. stackvitals-0.1.1/PKG-INFO +0 -134
  149. stackvitals-0.1.1/README.md +0 -92
  150. stackvitals-0.1.1/action.yml +0 -221
  151. stackvitals-0.1.1/bench/accuracy/registry.json +0 -368
  152. stackvitals-0.1.1/bench/accuracy/summary.py +0 -445
  153. stackvitals-0.1.1/deploy/crawler/workflows/bench.yml +0 -76
  154. stackvitals-0.1.1/deploy/crawler/workflows/check.yml +0 -38
  155. stackvitals-0.1.1/deploy/crawler/workflows/crawl.yml +0 -103
  156. stackvitals-0.1.1/deploy/crawler/workflows/discover.yml +0 -131
  157. stackvitals-0.1.1/deploy/crawler/workflows/keepalive.yml +0 -23
  158. stackvitals-0.1.1/docs/accuracy.md +0 -148
  159. stackvitals-0.1.1/docs/app.md +0 -141
  160. stackvitals-0.1.1/docs/architecture.md +0 -86
  161. stackvitals-0.1.1/docs/connectors.md +0 -337
  162. stackvitals-0.1.1/docs/coverage.md +0 -57
  163. stackvitals-0.1.1/docs/dora-guide.md +0 -51
  164. stackvitals-0.1.1/docs/faq.md +0 -86
  165. stackvitals-0.1.1/docs/guides/maintainer.md +0 -37
  166. stackvitals-0.1.1/docs/guides/manager.md +0 -37
  167. stackvitals-0.1.1/docs/guides/platform.md +0 -39
  168. stackvitals-0.1.1/docs/install.md +0 -195
  169. stackvitals-0.1.1/docs/limitations.md +0 -199
  170. stackvitals-0.1.1/docs/methods.md +0 -87
  171. stackvitals-0.1.1/docs/modules.md +0 -659
  172. stackvitals-0.1.1/docs/privacy.md +0 -42
  173. stackvitals-0.1.1/docs/quickstart.md +0 -46
  174. stackvitals-0.1.1/docs/release-checklist.md +0 -106
  175. stackvitals-0.1.1/docs/rules.md +0 -200
  176. stackvitals-0.1.1/docs/scaling.md +0 -77
  177. stackvitals-0.1.1/docs/settings.md +0 -312
  178. stackvitals-0.1.1/docs/threat-model.md +0 -90
  179. stackvitals-0.1.1/llms.txt +0 -34
  180. stackvitals-0.1.1/pyproject.toml +0 -48
  181. stackvitals-0.1.1/scripts/prelaunch.py +0 -938
  182. stackvitals-0.1.1/scripts/sync_crawler.py +0 -85
  183. stackvitals-0.1.1/server.json +0 -29
  184. stackvitals-0.1.1/skills/stackvitals-ci/SKILL.md +0 -32
  185. stackvitals-0.1.1/skills/stackvitals-community/SKILL.md +0 -25
  186. stackvitals-0.1.1/skills/stackvitals-contribute/SKILL.md +0 -26
  187. stackvitals-0.1.1/skills/stackvitals-delivery/SKILL.md +0 -35
  188. stackvitals-0.1.1/skills/stackvitals-deps/SKILL.md +0 -30
  189. stackvitals-0.1.1/skills/stackvitals-flow/SKILL.md +0 -31
  190. stackvitals-0.1.1/skills/stackvitals-portal/SKILL.md +0 -26
  191. stackvitals-0.1.1/src/mergescout/__init__.py +0 -1
  192. stackvitals-0.1.1/src/stackvitals/__init__.py +0 -2
  193. stackvitals-0.1.1/src/stackvitals/cli.py +0 -111
  194. stackvitals-0.1.1/src/stackvitals/core/dataflow.py +0 -168
  195. stackvitals-0.1.1/src/stackvitals/core/installdoc.py +0 -69
  196. stackvitals-0.1.1/src/stackvitals/core/schema.py +0 -205
  197. stackvitals-0.1.1/src/stackvitals/editors/vscode/package.json +0 -26
  198. stackvitals-0.1.1/src/stackvitals/web/app/boot.js +0 -1
  199. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-3G4SQNUC.js +0 -1
  200. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-6BDBXA6V.js +0 -1
  201. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-7TJCBOAY.js +0 -1
  202. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-GPVLJRZD.js +0 -1
  203. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-GQYFN4PE.js +0 -75
  204. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-MAPYGK3P.js +0 -1
  205. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-PABICGBL.js +0 -1
  206. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-RQZPSJ2Y.js +0 -1
  207. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-THFUOCPC.js +0 -273
  208. stackvitals-0.1.1/src/stackvitals/web/app/chunks/chunk-Y6LUXDM6.js +0 -1
  209. stackvitals-0.1.1/src/stackvitals/web/app/chunks/logos-N5IINUAM.js +0 -1
  210. stackvitals-0.1.1/src/stackvitals/web/app/chunks/more-KMJMJQD3.js +0 -10
  211. stackvitals-0.1.1/src/stackvitals/web/app/demo/settings.json +0 -1
  212. stackvitals-0.1.1/src/stackvitals/web/app/help/accuracy.json +0 -1
  213. stackvitals-0.1.1/src/stackvitals/web/app/help/connectors.json +0 -1
  214. stackvitals-0.1.1/src/stackvitals/web/app/help/getting-started.json +0 -1
  215. stackvitals-0.1.1/src/stackvitals/web/app/help/index.json +0 -1
  216. stackvitals-0.1.1/src/stackvitals/web/app/help/modules.json +0 -1
  217. stackvitals-0.1.1/src/stackvitals/web/app/help/privacy-and-security.json +0 -1
  218. stackvitals-0.1.1/src/stackvitals/web/app/help/reference.json +0 -1
  219. stackvitals-0.1.1/src/stackvitals/web/app/main.css +0 -1
  220. stackvitals-0.1.1/src/stackvitals/web/app/main.js +0 -1
  221. stackvitals-0.1.1/src/stackvitals/web/app/pages/about.js +0 -1
  222. stackvitals-0.1.1/src/stackvitals/web/app/pages/ci.js +0 -1
  223. stackvitals-0.1.1/src/stackvitals/web/app/pages/community.js +0 -1
  224. stackvitals-0.1.1/src/stackvitals/web/app/pages/delivery.js +0 -45
  225. stackvitals-0.1.1/src/stackvitals/web/app/pages/deps.js +0 -7
  226. stackvitals-0.1.1/src/stackvitals/web/app/pages/help.js +0 -6
  227. stackvitals-0.1.1/src/stackvitals/web/app/pages/investment.js +0 -3
  228. stackvitals-0.1.1/src/stackvitals/web/app/pages/overview.js +0 -1
  229. stackvitals-0.1.1/src/stackvitals/web/app/pages/portal.js +0 -51
  230. stackvitals-0.1.1/src/stackvitals/web/app/pages/prs.js +0 -4
  231. stackvitals-0.1.1/src/stackvitals/web/app/pages/settings.js +0 -1
  232. stackvitals-0.1.1/src/stackvitals/web/app/pages/setup.js +0 -2
  233. stackvitals-0.1.1/src/stackvitals/web/app/pages/welcome-sheet.js +0 -1
  234. stackvitals-0.1.1/src/stackvitals/web/app/pages/welcome.js +0 -1
  235. stackvitals-0.1.1/src/stackvitals/web/index.html +0 -34
  236. stackvitals-0.1.1/src/stackvitals/web/site/index.html +0 -108
  237. stackvitals-0.1.1/src/stackvitals/web/site/site.css +0 -68
  238. stackvitals-0.1.1/tests/local/test_audit_docs.py +0 -17
  239. stackvitals-0.1.1/tests/local/test_editor_marks.py +0 -99
  240. stackvitals-0.1.1/tests/local/test_prelaunch.py +0 -115
  241. stackvitals-0.1.1/uv.lock +0 -1236
  242. stackvitals-0.1.1/web/README.md +0 -45
  243. stackvitals-0.1.1/web/build.mjs +0 -161
  244. stackvitals-0.1.1/web/demo/settings.json +0 -1
  245. stackvitals-0.1.1/web/index.html +0 -23
  246. stackvitals-0.1.1/web/src/app/App.tsx +0 -136
  247. stackvitals-0.1.1/web/src/app/LogoPicker.tsx +0 -38
  248. stackvitals-0.1.1/web/src/boot.ts +0 -26
  249. stackvitals-0.1.1/web/src/brand/Logo.tsx +0 -11
  250. stackvitals-0.1.1/web/src/brand/logos.ts +0 -33
  251. stackvitals-0.1.1/web/src/brand/mark.ts +0 -48
  252. stackvitals-0.1.1/web/src/data/theme.ts +0 -45
  253. stackvitals-0.1.1/web/src/github/workflow.ts +0 -180
  254. stackvitals-0.1.1/web/src/pages/about.tsx +0 -140
  255. stackvitals-0.1.1/web/src/pages/ci/workflowgen.ts +0 -327
  256. stackvitals-0.1.1/web/src/pages/community.tsx +0 -316
  257. stackvitals-0.1.1/web/src/pages/deps/scanning.ts +0 -77
  258. stackvitals-0.1.1/web/src/pages/help/commands.tsx +0 -127
  259. stackvitals-0.1.1/web/src/pages/setup.tsx +0 -312
  260. stackvitals-0.1.1/web/src/styles/base.css +0 -42
  261. stackvitals-0.1.1/web/src/styles/sheet.css +0 -380
  262. stackvitals-0.1.1/web/src/styles/shell.css +0 -115
  263. stackvitals-0.1.1/web/src/styles/tokens.css +0 -97
  264. stackvitals-0.1.1/web/test/safety.test.ts +0 -255
  265. stackvitals-0.1.1/web/test/workflow.test.ts +0 -61
  266. {stackvitals-0.1.1 → stackvitals-0.1.3}/.env.example +0 -0
  267. {stackvitals-0.1.1 → stackvitals-0.1.3}/.gitattributes +0 -0
  268. {stackvitals-0.1.1 → stackvitals-0.1.3}/.github/ISSUE_TEMPLATE/benchmark.yml +0 -0
  269. {stackvitals-0.1.1 → stackvitals-0.1.3}/.github/build-constraints.txt +0 -0
  270. {stackvitals-0.1.1 → stackvitals-0.1.3}/.gitignore +0 -0
  271. {stackvitals-0.1.1 → stackvitals-0.1.3}/GOVERNANCE.md +0 -0
  272. {stackvitals-0.1.1 → stackvitals-0.1.3}/LICENSE +0 -0
  273. {stackvitals-0.1.1 → stackvitals-0.1.3}/NOTICE +0 -0
  274. {stackvitals-0.1.1 → stackvitals-0.1.3}/SECURITY.md +0 -0
  275. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/LICENSE-DATA.md +0 -0
  276. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adjudicate.py +0 -0
  277. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adjudicator-crosscheck.json +0 -0
  278. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adoption/README.md +0 -0
  279. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adoption/manifest.json +0 -0
  280. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adoption/preregistration.md +0 -0
  281. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/adoption/study.py +0 -0
  282. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/README.md +0 -0
  283. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/prepare.py +0 -0
  284. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/prepare2.py +0 -0
  285. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/prompts.md +0 -0
  286. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/results.json +0 -0
  287. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/results2.json +0 -0
  288. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/score.py +0 -0
  289. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/score2.py +0 -0
  290. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/triage-results.json +0 -0
  291. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/agents/triage_check.py +0 -0
  292. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/README.md +0 -0
  293. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/adjudication-detection.csv +0 -0
  294. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/adoption-results.json +0 -0
  295. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/adoption.py +0 -0
  296. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/agreement-gemini-detection.json +0 -0
  297. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/codebook-detection.md +0 -0
  298. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/detection-labels.csv +0 -0
  299. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/detection-results.json +0 -0
  300. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/detection.py +0 -0
  301. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/labels-gemini-detection.csv +0 -0
  302. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/preregistration.md +0 -0
  303. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/replicate-results.json +0 -0
  304. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/ai/replicate.py +0 -0
  305. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/audit-results.json +0 -0
  306. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/audit.py +0 -0
  307. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/README.md +0 -0
  308. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/adjudication-main.csv +0 -0
  309. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/adjudication-validation.csv +0 -0
  310. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/affiliation-results.json +0 -0
  311. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/affiliation.py +0 -0
  312. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/agreement-gemini-main-v2.json +0 -0
  313. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/agreement-gemini-main.json +0 -0
  314. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/agreement-gemini-validation-v2.json +0 -0
  315. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/agreement-gemini-validation.json +0 -0
  316. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/channels-results.json +0 -0
  317. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/channels.py +0 -0
  318. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/codebook.md +0 -0
  319. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-gemini-main-v2.csv +0 -0
  320. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-gemini-main.csv +0 -0
  321. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-gemini-validation-v2.csv +0 -0
  322. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-gemini-validation.csv +0 -0
  323. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-main.csv +0 -0
  324. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-results.json +0 -0
  325. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/labels-validation.csv +0 -0
  326. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/responses-results.json +0 -0
  327. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/responses-validation-results.json +0 -0
  328. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/responses.py +0 -0
  329. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/score_labels.py +0 -0
  330. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/triage-results.json +0 -0
  331. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/community/triage.py +0 -0
  332. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/contribute/README.md +0 -0
  333. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/contribute/frozen-manifest.json +0 -0
  334. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/contribute/frozen.json.gz +0 -0
  335. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/contribute/preregistration.md +0 -0
  336. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/contribute/prospective.py +0 -0
  337. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/crosscheck.py +0 -0
  338. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/README.md +0 -0
  339. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/baseline-after-results.json +0 -0
  340. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/baseline-results.json +0 -0
  341. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/baseline.py +0 -0
  342. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/coverage-results.json +0 -0
  343. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/coverage.py +0 -0
  344. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/exploits-results.json +0 -0
  345. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/exploits.py +0 -0
  346. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/incidents-results.json +0 -0
  347. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/incidents.py +0 -0
  348. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/lookalike-results.json +0 -0
  349. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/lookalike.py +0 -0
  350. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/release-signs-results.json +0 -0
  351. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/deps/release_signs.py +0 -0
  352. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/README.md +0 -0
  353. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/head-to-head-results.json +0 -0
  354. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/pick.py +0 -0
  355. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/preregistration.md +0 -0
  356. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/repos.json +0 -0
  357. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/run.py +0 -0
  358. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/devlake/score.py +0 -0
  359. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/README.md +0 -0
  360. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/adjudication-incidents.csv +0 -0
  361. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/adjudication-sources-more.csv +0 -0
  362. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/adjudication-sources.csv +0 -0
  363. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/agreement-gemini-sources-more.json +0 -0
  364. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/agreement-gemini-sources.json +0 -0
  365. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/codebook.md +0 -0
  366. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/devlake-configured-more-results.json +0 -0
  367. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/devlake-configured-results.json +0 -0
  368. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/devlake_configured.py +0 -0
  369. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/environments-results.json +0 -0
  370. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/environments.py +0 -0
  371. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/incidents-codebook.md +0 -0
  372. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/incidents-labels.csv +0 -0
  373. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/incidents-results.json +0 -0
  374. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/incidents.py +0 -0
  375. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/labels-gemini-incidents.csv +0 -0
  376. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/labels-gemini-sources-more.csv +0 -0
  377. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/labels-gemini-sources.csv +0 -0
  378. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/linkage-more-results.json +0 -0
  379. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/linkage-results.json +0 -0
  380. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/linkage.py +0 -0
  381. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/sources-labels.csv +0 -0
  382. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/sources-more-labels.csv +0 -0
  383. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/sources-more-results.json +0 -0
  384. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/sources-results.json +0 -0
  385. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/sources.py +0 -0
  386. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/spread-results.json +0 -0
  387. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/dora/spread.py +0 -0
  388. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/fair.py +0 -0
  389. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/README.md +0 -0
  390. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/api_use.py +0 -0
  391. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/branch_growth.py +0 -0
  392. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/catalog.py +0 -0
  393. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/reports.py +0 -0
  394. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/scorecard.json +0 -0
  395. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/features/scorecard.py +0 -0
  396. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/finalise.py +0 -0
  397. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/README.md +0 -0
  398. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/adjudication-flaky.csv +0 -0
  399. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/adjudication-fresh.csv +0 -0
  400. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/adjudication-heldout.csv +0 -0
  401. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/adjudication-masking.csv +0 -0
  402. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/agreement-gemini-flaky-v2.json +0 -0
  403. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/agreement-gemini-flaky.json +0 -0
  404. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/agreement-gemini-fresh.json +0 -0
  405. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/agreement-gemini-heldout.json +0 -0
  406. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/agreement-gemini-masking.json +0 -0
  407. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/already-results.json +0 -0
  408. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/already.py +0 -0
  409. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/began-results.json +0 -0
  410. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/began.py +0 -0
  411. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/card.json +0 -0
  412. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/codebook.md +0 -0
  413. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/heldout-labels.csv +0 -0
  414. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/heldout-results.json +0 -0
  415. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/heldout.py +0 -0
  416. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/items.csv +0 -0
  417. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/kinds-results.json +0 -0
  418. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/kinds.py +0 -0
  419. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/labels-gemini-flaky-v2.csv +0 -0
  420. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/labels-gemini-flaky.csv +0 -0
  421. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/labels-gemini-fresh.csv +0 -0
  422. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/labels-gemini-heldout.csv +0 -0
  423. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/labels-gemini-masking.csv +0 -0
  424. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/masking-labels.csv +0 -0
  425. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/masking-results.json +0 -0
  426. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/masking.py +0 -0
  427. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/maybe-results.json +0 -0
  428. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/maybe.py +0 -0
  429. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/natural-results.json +0 -0
  430. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/natural.py +0 -0
  431. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/outside-fresh-results.json +0 -0
  432. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/outside-results.json +0 -0
  433. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/outside.py +0 -0
  434. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/outside_fresh.py +0 -0
  435. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/pr-details-results.json +0 -0
  436. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/pr_details.py +0 -0
  437. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/safe-check-results.json +0 -0
  438. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/safe-rule-results.json +0 -0
  439. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/safe_check.py +0 -0
  440. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/safe_rule.py +0 -0
  441. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/sample.py +0 -0
  442. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/score.py +0 -0
  443. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/views.py +0 -0
  444. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/flaky/wide.py +0 -0
  445. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/README.md +0 -0
  446. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/collect_reports.py +0 -0
  447. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/find_report_repos.py +0 -0
  448. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/replay-results.json +0 -0
  449. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/replay_tia.py +0 -0
  450. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/search.json +0 -0
  451. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/impact/totals.json +0 -0
  452. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/label-sensitivity.json +0 -0
  453. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/labeller.py +0 -0
  454. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/middleware/README.md +0 -0
  455. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/middleware/preregistration.md +0 -0
  456. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/middleware/results.json +0 -0
  457. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/middleware/run.sh +0 -0
  458. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/middleware/score.py +0 -0
  459. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/panel-results.json +0 -0
  460. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/panel.py +0 -0
  461. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/platform/README.md +0 -0
  462. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/platform/busy-results.json +0 -0
  463. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/platform/busy.py +0 -0
  464. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/README.md +0 -0
  465. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/scale-results.json +0 -0
  466. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/scale.py +0 -0
  467. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/speed-after.json +0 -0
  468. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/speed-before.json +0 -0
  469. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/portal/speed.py +0 -0
  470. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/README.md +0 -0
  471. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/adjudication-replay.csv +0 -0
  472. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/agreement-gemini-replay.json +0 -0
  473. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/labels-gemini-replay.csv +0 -0
  474. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/replay-labels.csv +0 -0
  475. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/replay-results.json +0 -0
  476. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/replay/replay.py +0 -0
  477. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/reproduce.py +0 -0
  478. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/scorecard/README.md +0 -0
  479. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/scorecard/results-before.json +0 -0
  480. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/scorecard/results.json +0 -0
  481. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/scorecard/run.py +0 -0
  482. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/sensitivity.py +0 -0
  483. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/README.md +0 -0
  484. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/prospective-frozen.json.gz +0 -0
  485. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/prospective-manifest.json +0 -0
  486. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/prospective.py +0 -0
  487. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/reviewers-results.json +0 -0
  488. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/team/reviewers.py +0 -0
  489. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/README.md +0 -0
  490. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/nulls-2week-before-results.json +0 -0
  491. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/nulls-2week-results.json +0 -0
  492. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/nulls-before-results.json +0 -0
  493. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/nulls-results.json +0 -0
  494. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/nulls.py +0 -0
  495. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/shrinkage-groups-results.json +0 -0
  496. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/shrinkage-results.json +0 -0
  497. {stackvitals-0.1.1 → stackvitals-0.1.3}/bench/accuracy/uncertainty/shrinkage.py +0 -0
  498. {stackvitals-0.1.1 → stackvitals-0.1.3}/deploy/crawler/README.md +0 -0
  499. {stackvitals-0.1.1 → stackvitals-0.1.3}/deploy/crawler/gitignore +0 -0
  500. {stackvitals-0.1.1 → stackvitals-0.1.3}/docs/chaoss.md +0 -0
  501. {stackvitals-0.1.1 → stackvitals-0.1.3}/docs/enterprise.md +0 -0
  502. {stackvitals-0.1.1 → stackvitals-0.1.3}/docs/roadmap.md +0 -0
  503. {stackvitals-0.1.1 → stackvitals-0.1.3}/docs/triage.md +0 -0
  504. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/__init__.py +0 -0
  505. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/__main__.py +0 -0
  506. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/convert.py +0 -0
  507. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/events.py +0 -0
  508. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/manifest.py +0 -0
  509. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/archive/stream.py +0 -0
  510. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/__init__.py +0 -0
  511. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/__main__.py +0 -0
  512. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/ci.py +0 -0
  513. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/deploys.py +0 -0
  514. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/matched.py +0 -0
  515. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/prior.py +0 -0
  516. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/report.py +0 -0
  517. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/shared.py +0 -0
  518. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/bench/stars.py +0 -0
  519. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/cli.py +0 -0
  520. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/config.py +0 -0
  521. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/__init__.py +0 -0
  522. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/__main__.py +0 -0
  523. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/chain.py +0 -0
  524. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/fetch.py +0 -0
  525. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/outcomes.py +0 -0
  526. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/queries.py +0 -0
  527. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/runner.py +0 -0
  528. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/seed.py +0 -0
  529. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/state.py +0 -0
  530. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/crawl/writer.py +0 -0
  531. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/discover/__init__.py +0 -0
  532. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/discover/__main__.py +0 -0
  533. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/discover/sweep.py +0 -0
  534. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/github/__init__.py +0 -0
  535. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/github/graphql.py +0 -0
  536. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/github/identities.py +0 -0
  537. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/github/releases.py +0 -0
  538. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/labels.py +0 -0
  539. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/mcp_server.py +0 -0
  540. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/__init__.py +0 -0
  541. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/__main__.py +0 -0
  542. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/api_cost.py +0 -0
  543. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/count_repos.py +0 -0
  544. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/jsonl.py +0 -0
  545. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/report.py +0 -0
  546. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/measure/sample.py +0 -0
  547. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/owners.py +0 -0
  548. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/setup_check.py +0 -0
  549. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/__init__.py +0 -0
  550. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/__main__.py +0 -0
  551. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/bump_ledger.py +0 -0
  552. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/bumps.py +0 -0
  553. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/check.py +0 -0
  554. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/community_bench.py +0 -0
  555. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/delivery_bench.py +0 -0
  556. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/deps_map.py +0 -0
  557. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/deps_trends.py +0 -0
  558. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/evidence.py +0 -0
  559. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/exploits.py +0 -0
  560. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/flow_bench.py +0 -0
  561. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/identity.py +0 -0
  562. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/issues.py +0 -0
  563. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/labels.py +0 -0
  564. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/osv.py +0 -0
  565. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/owners_watch.py +0 -0
  566. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/repo_stats.py +0 -0
  567. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/rules.py +0 -0
  568. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/silver.py +0 -0
  569. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/top_packages.py +0 -0
  570. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/triage.py +0 -0
  571. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/triage_math.py +0 -0
  572. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/signals/walls.py +0 -0
  573. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/__init__.py +0 -0
  574. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/__main__.py +0 -0
  575. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/build.py +0 -0
  576. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/publish.py +0 -0
  577. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/schema.py +0 -0
  578. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/snapshot/score.py +0 -0
  579. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/store/__init__.py +0 -0
  580. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/store/__main__.py +0 -0
  581. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/store/sync.py +0 -0
  582. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/timeutil.py +0 -0
  583. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/__init__.py +0 -0
  584. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/action_pack.py +0 -0
  585. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/live.py +0 -0
  586. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/queries.py +0 -0
  587. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/refs.py +0 -0
  588. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/store.py +0 -0
  589. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/mergescout/tool/tracking.py +0 -0
  590. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/__main__.py +0 -0
  591. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/__init__.py +0 -0
  592. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/action.py +0 -0
  593. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/analyze.py +0 -0
  594. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/api.py +0 -0
  595. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/automation.py +0 -0
  596. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/bench.py +0 -0
  597. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/burnin.py +0 -0
  598. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/cli.py +0 -0
  599. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/collect.py +0 -0
  600. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/cost.py +0 -0
  601. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/coverage.py +0 -0
  602. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/feedback.py +0 -0
  603. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/fingerprint.py +0 -0
  604. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/gitlab.py +0 -0
  605. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/gitlab_action.py +0 -0
  606. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/impact.py +0 -0
  607. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/investigate.py +0 -0
  608. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/kinds.py +0 -0
  609. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/monitors.py +0 -0
  610. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/owners.py +0 -0
  611. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/quarantine_runtime.py +0 -0
  612. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/report.py +0 -0
  613. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/retry.py +0 -0
  614. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/selfheal.py +0 -0
  615. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/shards.py +0 -0
  616. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/share.py +0 -0
  617. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/store.py +0 -0
  618. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/testreports.py +0 -0
  619. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/tickets.py +0 -0
  620. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/track_record.json +0 -0
  621. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/triage.py +0 -0
  622. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/triggers.py +0 -0
  623. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/upload.py +0 -0
  624. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/ci/validate.py +0 -0
  625. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/codeowners.py +0 -0
  626. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/__init__.py +0 -0
  627. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/action.py +0 -0
  628. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/affiliation.py +0 -0
  629. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/analyze.py +0 -0
  630. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/build.py +0 -0
  631. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/chaoss.py +0 -0
  632. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/cli.py +0 -0
  633. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/collect.py +0 -0
  634. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/context.py +0 -0
  635. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/community/report.py +0 -0
  636. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/__init__.py +0 -0
  637. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/ai_spend.py +0 -0
  638. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/base.py +0 -0
  639. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/check.py +0 -0
  640. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/copilot.py +0 -0
  641. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/discord.py +0 -0
  642. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/discourse.py +0 -0
  643. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/incident_io.py +0 -0
  644. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/jira.py +0 -0
  645. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/linear.py +0 -0
  646. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/pagerduty.py +0 -0
  647. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/slack.py +0 -0
  648. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/sonar.py +0 -0
  649. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/store.py +0 -0
  650. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/tracker.py +0 -0
  651. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/connectors/writeback.py +0 -0
  652. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/contribute/__init__.py +0 -0
  653. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/contribute/brief.py +0 -0
  654. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/contribute/cli.py +0 -0
  655. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/__init__.py +0 -0
  656. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/actors.py +0 -0
  657. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/agent_ledger.py +0 -0
  658. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/agreements.py +0 -0
  659. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/ai_outcomes.py +0 -0
  660. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/alerts.py +0 -0
  661. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/appdata.py +0 -0
  662. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/bucket.py +0 -0
  663. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/bugs.py +0 -0
  664. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/calendar.py +0 -0
  665. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/capex.py +0 -0
  666. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/change_risk.py +0 -0
  667. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/changes.py +0 -0
  668. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/chat.py +0 -0
  669. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/config.py +0 -0
  670. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/decisions.py +0 -0
  671. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/delivery.py +0 -0
  672. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/delivery_peers.py +0 -0
  673. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/delivery_report.py +0 -0
  674. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/deliverycli.py +0 -0
  675. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/devlake_dora.sql +0 -0
  676. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/digest.py +0 -0
  677. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/explaincli.py +0 -0
  678. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/explore.py +0 -0
  679. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/export.py +0 -0
  680. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/exportcli.py +0 -0
  681. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/findings.py +0 -0
  682. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/health.py +0 -0
  683. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/identity.py +0 -0
  684. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/insights.py +0 -0
  685. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/insightscli.py +0 -0
  686. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/investment.py +0 -0
  687. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/joins.py +0 -0
  688. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/llmsdoc.py +0 -0
  689. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/merge_queue.py +0 -0
  690. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/metrics.py +0 -0
  691. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/model.py +0 -0
  692. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/projectcli.py +0 -0
  693. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/propose.py +0 -0
  694. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/pulse.py +0 -0
  695. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/recorded.py +0 -0
  696. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/releases.py +0 -0
  697. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/requests.py +0 -0
  698. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/resync.py +0 -0
  699. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/services.py +0 -0
  700. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/settings.py +0 -0
  701. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/sqlcli.py +0 -0
  702. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/stats.py +0 -0
  703. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/store.py +0 -0
  704. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/summary.py +0 -0
  705. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/time.py +0 -0
  706. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/tomledit.py +0 -0
  707. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/uicli.py +0 -0
  708. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/webapp.py +0 -0
  709. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/what_changed.py +0 -0
  710. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/core/workspace.py +0 -0
  711. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/__init__.py +0 -0
  712. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/action.py +0 -0
  713. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/actions_vulns.py +0 -0
  714. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/cli.py +0 -0
  715. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/dossier.py +0 -0
  716. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/evidence.py +0 -0
  717. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/fixplan.py +0 -0
  718. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/guarddog.py +0 -0
  719. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/hygiene.py +0 -0
  720. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/imports.py +0 -0
  721. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/lockfiles.py +0 -0
  722. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/lookalike.py +0 -0
  723. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/reach.py +0 -0
  724. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/release.py +0 -0
  725. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/runtimes.py +0 -0
  726. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/supply.py +0 -0
  727. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/deps/vulns.py +0 -0
  728. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/editors/__init__.py +0 -0
  729. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/editors/vscode/extension.js +0 -0
  730. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/editors/vscode/marks.js +0 -0
  731. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/__init__.py +0 -0
  732. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/action.py +0 -0
  733. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/analyze.py +0 -0
  734. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/automate.py +0 -0
  735. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/build.py +0 -0
  736. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/cli.py +0 -0
  737. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/code_hosts.py +0 -0
  738. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/collect.py +0 -0
  739. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/gitlab_mr.py +0 -0
  740. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/knowledge.py +0 -0
  741. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/peers.py +0 -0
  742. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/preflight.py +0 -0
  743. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/report.py +0 -0
  744. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/rules.py +0 -0
  745. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/store.py +0 -0
  746. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/survival.py +0 -0
  747. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/flow/triage.py +0 -0
  748. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/mcp_server.py +0 -0
  749. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/__init__.py +0 -0
  750. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/action.py +0 -0
  751. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/batch.py +0 -0
  752. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/campaigns.py +0 -0
  753. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/catalog.py +0 -0
  754. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/checks.py +0 -0
  755. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/cli.py +0 -0
  756. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/descriptor.py +0 -0
  757. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/export.py +0 -0
  758. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/github.py +0 -0
  759. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/golden.py +0 -0
  760. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/history.py +0 -0
  761. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/inventory.py +0 -0
  762. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/owners.py +0 -0
  763. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/pages.py +0 -0
  764. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/rollup.py +0 -0
  765. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/portal/scorecard.py +0 -0
  766. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/security/__init__.py +0 -0
  767. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/security/probes.py +0 -0
  768. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/security/repo_checks.py +0 -0
  769. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/security/workflows.py +0 -0
  770. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/shell.py +0 -0
  771. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/site.py +0 -0
  772. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/LICENSES.md +0 -0
  773. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/AddRepo-KRPZXWCY.js +0 -0
  774. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/SetupRunning-XWFQAKRZ.js +0 -0
  775. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/accuracy-data-OQTDXI7Y.js +0 -0
  776. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/agents-data-BAL6QAOF.js +0 -0
  777. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-24LFKFZ6.js +0 -0
  778. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-3IXWEOIJ.js +0 -0
  779. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-3ROQFHPV.js +0 -0
  780. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-45PGAQRO.js +0 -0
  781. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-4H53OYLG.js +0 -0
  782. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-4LUI7O5P.js +0 -0
  783. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-4SQPQ5TB.js +0 -0
  784. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-4WKQTWUC.js +0 -0
  785. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-576YHDEK.js +0 -0
  786. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-6RLVD2DT.js +0 -0
  787. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-763NH7PP.js +0 -0
  788. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-76WAVKUG.js +0 -0
  789. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-7II2BD5F.js +0 -0
  790. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-ASYNLVOP.js +0 -0
  791. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-CTKDYZMG.js +0 -0
  792. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-CVB26NMC.js +0 -0
  793. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-G7NGB5UX.js +0 -0
  794. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-GT4EAKAO.js +0 -0
  795. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-IYMBFPCV.js +0 -0
  796. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-LAAGCPU3.js +0 -0
  797. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-P5TXDD45.js +0 -0
  798. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-RPXHAG6F.js +0 -0
  799. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-S2ZBMEVA.js +0 -0
  800. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-S654BBEP.js +0 -0
  801. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-T7QVTNXF.js +0 -0
  802. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-TO4VVRZ7.js +0 -0
  803. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-VQ5YXO54.js +0 -0
  804. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-VWKSMFWJ.js +0 -0
  805. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/chunk-YTANGYYH.js +0 -0
  806. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/connect-KONYWYTT.js +0 -0
  807. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/connections-data-2DYS4UVW.js +0 -0
  808. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/more-PC6FVS3P.js +0 -0
  809. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/more-RCIVCUDE.js +0 -0
  810. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/more-ZKKRY6NO.css +0 -0
  811. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/sealbox-35YL4EUH.js +0 -0
  812. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/session-DYYTOE2K.js +0 -0
  813. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/settingsApply-2HRJEZYM.js +0 -0
  814. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/settingsReview-GX2FZQ4M.js +0 -0
  815. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/chunks/uPlot.esm-OIWT3AHJ.js +0 -0
  816. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/ci/impact.json +0 -0
  817. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/ci/quarantine.json +0 -0
  818. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/ci/tickets.json +0 -0
  819. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/alerts.json +0 -0
  820. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/app.json +0 -0
  821. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/community.json +0 -0
  822. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/connectors.json +0 -0
  823. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/data.json +0 -0
  824. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/decisions.json +0 -0
  825. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/delivery.json +0 -0
  826. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/deps.json +0 -0
  827. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/flow.json +0 -0
  828. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/health.json +0 -0
  829. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/insights.json +0 -0
  830. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/pulse.json +0 -0
  831. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/security.json +0 -0
  832. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/ci_jobs.jsonl +0 -0
  833. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/devlake_project_pr_metrics.jsonl +0 -0
  834. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/devlake_pull_requests.jsonl +0 -0
  835. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/manifest.json +0 -0
  836. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/prs.jsonl +0 -0
  837. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/summary/tests.jsonl +0 -0
  838. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/supply.json +0 -0
  839. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/mobile/vulns.json +0 -0
  840. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/alerts.json +0 -0
  841. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/app.json +0 -0
  842. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/community.json +0 -0
  843. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/connectors.json +0 -0
  844. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/data.json +0 -0
  845. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/decisions.json +0 -0
  846. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/delivery.json +0 -0
  847. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/deps.json +0 -0
  848. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/flow.json +0 -0
  849. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/health.json +0 -0
  850. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/insights.json +0 -0
  851. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/pulse.json +0 -0
  852. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/security.json +0 -0
  853. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/ci_jobs.jsonl +0 -0
  854. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/devlake_project_pr_metrics.jsonl +0 -0
  855. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/devlake_pull_requests.jsonl +0 -0
  856. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/manifest.json +0 -0
  857. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/prs.jsonl +0 -0
  858. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/summary/tests.jsonl +0 -0
  859. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/supply.json +0 -0
  860. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/payments-api/vulns.json +0 -0
  861. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/portal.json +0 -0
  862. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/alerts.json +0 -0
  863. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/app.json +0 -0
  864. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/community.json +0 -0
  865. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/connectors.json +0 -0
  866. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/data.json +0 -0
  867. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/decisions.json +0 -0
  868. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/delivery.json +0 -0
  869. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/deps.json +0 -0
  870. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/flow.json +0 -0
  871. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/health.json +0 -0
  872. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/insights.json +0 -0
  873. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/pulse.json +0 -0
  874. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/security.json +0 -0
  875. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/ci_jobs.jsonl +0 -0
  876. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/devlake_project_pr_metrics.jsonl +0 -0
  877. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/devlake_pull_requests.jsonl +0 -0
  878. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/manifest.json +0 -0
  879. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/prs.jsonl +0 -0
  880. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/summary/tests.jsonl +0 -0
  881. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/supply.json +0 -0
  882. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/demo/web-app/vulns.json +0 -0
  883. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/fonts/plex-mono-400.woff2 +0 -0
  884. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/fonts/plex-sans-400.woff2 +0 -0
  885. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/fonts/plex-sans-600.woff2 +0 -0
  886. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/fonts/plex-sans-condensed-700.woff2 +0 -0
  887. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/about.css +0 -0
  888. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/activity.css +0 -0
  889. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/activity.js +0 -0
  890. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/agents.css +0 -0
  891. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/agents.js +0 -0
  892. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/ci.css +0 -0
  893. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/community.css +0 -0
  894. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/connections.css +0 -0
  895. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/connections.js +0 -0
  896. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/delivery.css +0 -0
  897. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/deps.css +0 -0
  898. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/explore.css +0 -0
  899. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/explore.js +0 -0
  900. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/health.css +0 -0
  901. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/health.js +0 -0
  902. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/help.css +0 -0
  903. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/insights.css +0 -0
  904. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/insights.js +0 -0
  905. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/investment.css +0 -0
  906. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/overview.css +0 -0
  907. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/portal.css +0 -0
  908. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/prs.css +0 -0
  909. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/settings.css +0 -0
  910. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/setup.css +0 -0
  911. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/standing.css +0 -0
  912. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/pages/standing.js +0 -0
  913. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/app/settings-workflow.json +0 -0
  914. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/site/integrations.html +0 -0
  915. {stackvitals-0.1.1 → stackvitals-0.1.3}/src/stackvitals/web/site/setup.html +0 -0
  916. {stackvitals-0.1.1 → stackvitals-0.1.3}/templates/gitlab/stackvitals.yml +0 -0
  917. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/ci_fake.py +0 -0
  918. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/conftest.py +0 -0
  919. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/fixtures/issue_page.json +0 -0
  920. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/fixtures/osv-scan.json +0 -0
  921. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/fixtures/pr_page.json +0 -0
  922. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/fixtures/repo_meta.json +0 -0
  923. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_actions_vulns.py +0 -0
  924. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_adjudicate.py +0 -0
  925. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_adoption_study.py +0 -0
  926. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_agent_leaderboard.py +0 -0
  927. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_agent_ledger.py +0 -0
  928. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_agreement_nudges.py +0 -0
  929. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ai_markers.py +0 -0
  930. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ai_matched.py +0 -0
  931. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ai_outcomes.py +0 -0
  932. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ai_spend.py +0 -0
  933. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_api_cost.py +0 -0
  934. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_app_review.py +0 -0
  935. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_archive_cli.py +0 -0
  936. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_bench.py +0 -0
  937. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_files.py +0 -0
  938. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_guarddog.py +0 -0
  939. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_mcp_messages.py +0 -0
  940. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_requests.py +0 -0
  941. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_sql.py +0 -0
  942. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_uicli.py +0 -0
  943. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_audit_workflows.py +0 -0
  944. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_base_images.py +0 -0
  945. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_began_after.py +0 -0
  946. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bench.py +0 -0
  947. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bench_by_repo.py +0 -0
  948. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bench_deploys.py +0 -0
  949. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bench_report_delivery.py +0 -0
  950. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bench_stars.py +0 -0
  951. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_branch_growth.py +0 -0
  952. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bucket.py +0 -0
  953. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_bug_backlog.py +0 -0
  954. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_capex.py +0 -0
  955. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_catalog_descriptor.py +0 -0
  956. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_change_risk.py +0 -0
  957. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_changes_14d.py +0 -0
  958. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_chat.py +0 -0
  959. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_action.py +0 -0
  960. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_action_pr.py +0 -0
  961. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_already_failing.py +0 -0
  962. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_analyze.py +0 -0
  963. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_analyze_tests.py +0 -0
  964. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_artifacts.py +0 -0
  965. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_automation.py +0 -0
  966. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_began.py +0 -0
  967. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_bench.py +0 -0
  968. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_bench_wiring.py +0 -0
  969. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_burnin.py +0 -0
  970. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_cli.py +0 -0
  971. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_collect.py +0 -0
  972. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_comment_shape.py +0 -0
  973. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_cost.py +0 -0
  974. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_decisions.py +0 -0
  975. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_depth.py +0 -0
  976. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_evidence.py +0 -0
  977. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_feedback.py +0 -0
  978. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_feedback_all.py +0 -0
  979. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_fingerprint.py +0 -0
  980. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_gitlab.py +0 -0
  981. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_groups.py +0 -0
  982. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_impact.py +0 -0
  983. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_issue_lifecycle.py +0 -0
  984. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_kinds.py +0 -0
  985. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_masking.py +0 -0
  986. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_maybe_flaky.py +0 -0
  987. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_mcp.py +0 -0
  988. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_monitors.py +0 -0
  989. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_outside.py +0 -0
  990. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_outside_ci_edit.py +0 -0
  991. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_pr_details.py +0 -0
  992. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_push_evidence.py +0 -0
  993. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_quarantine_mark.py +0 -0
  994. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_report.py +0 -0
  995. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_report_formats.py +0 -0
  996. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_retry.py +0 -0
  997. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_review_fixes.py +0 -0
  998. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_safe_rule.py +0 -0
  999. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_settings.py +0 -0
  1000. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_surfaces_m3.py +0 -0
  1001. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_test_verdict.py +0 -0
  1002. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_testreports.py +0 -0
  1003. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_triage.py +0 -0
  1004. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_triggers_script.py +0 -0
  1005. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_upload.py +0 -0
  1006. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_verdict_check.py +0 -0
  1007. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_ci_webhook_formats.py +0 -0
  1008. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_code_hosts.py +0 -0
  1009. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_code_survival.py +0 -0
  1010. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_action.py +0 -0
  1011. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_affiliation.py +0 -0
  1012. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_analyze.py +0 -0
  1013. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_bench.py +0 -0
  1014. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_cli.py +0 -0
  1015. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_collect.py +0 -0
  1016. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_context.py +0 -0
  1017. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_dependency.py +0 -0
  1018. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_discussions.py +0 -0
  1019. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_fetch.py +0 -0
  1020. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_report.py +0 -0
  1021. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_community_stated.py +0 -0
  1022. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_config.py +0 -0
  1023. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connector_checks.py +0 -0
  1024. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connector_framework.py +0 -0
  1025. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connector_review.py +0 -0
  1026. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connectors.py +0 -0
  1027. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connectors_chat.py +0 -0
  1028. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connectors_discourse.py +0 -0
  1029. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connectors_epics.py +0 -0
  1030. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_connectors_writeback.py +0 -0
  1031. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_contribute_brief.py +0 -0
  1032. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_contribute_prospective.py +0 -0
  1033. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_contribute_review.py +0 -0
  1034. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_convert.py +0 -0
  1035. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_actors.py +0 -0
  1036. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_agreements.py +0 -0
  1037. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_alerts.py +0 -0
  1038. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_appdata.py +0 -0
  1039. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_decisions.py +0 -0
  1040. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_delivery.py +0 -0
  1041. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_delivery_peers.py +0 -0
  1042. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_delivery_surfaces.py +0 -0
  1043. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_digest.py +0 -0
  1044. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_digest_step.py +0 -0
  1045. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_explore.py +0 -0
  1046. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_export.py +0 -0
  1047. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_findings.py +0 -0
  1048. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_findings_ledger.py +0 -0
  1049. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_insights.py +0 -0
  1050. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_insights_surfaces.py +0 -0
  1051. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_metrics.py +0 -0
  1052. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_model.py +0 -0
  1053. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_otel.py +0 -0
  1054. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_propose.py +0 -0
  1055. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_pulse.py +0 -0
  1056. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_recovery.py +0 -0
  1057. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_request_wiring.py +0 -0
  1058. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_requests.py +0 -0
  1059. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_requests_wording.py +0 -0
  1060. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_roles_wiring.py +0 -0
  1061. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_runner.py +0 -0
  1062. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_schema.py +0 -0
  1063. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_services.py +0 -0
  1064. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_settings.py +0 -0
  1065. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_sql_org.py +0 -0
  1066. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_stats.py +0 -0
  1067. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_store.py +0 -0
  1068. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_summary.py +0 -0
  1069. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_summary_churn.py +0 -0
  1070. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_tomledit.py +0 -0
  1071. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_ui.py +0 -0
  1072. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_webapp.py +0 -0
  1073. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_webapp_version.py +0 -0
  1074. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_core_workspace.py +0 -0
  1075. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_cost_guard.py +0 -0
  1076. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_count_repos.py +0 -0
  1077. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_coverage.py +0 -0
  1078. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_cli.py +0 -0
  1079. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_fetch.py +0 -0
  1080. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_outcomes.py +0 -0
  1081. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_queries.py +0 -0
  1082. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_runner.py +0 -0
  1083. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_seed.py +0 -0
  1084. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_state.py +0 -0
  1085. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_crawl_writer.py +0 -0
  1086. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_delivery_bench.py +0 -0
  1087. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_delivery_deploy_check.py +0 -0
  1088. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_delivery_rules_m2.py +0 -0
  1089. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_bumps.py +0 -0
  1090. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_crawl.py +0 -0
  1091. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_exploits.py +0 -0
  1092. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_fixed_versions.py +0 -0
  1093. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_ledger.py +0 -0
  1094. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_map.py +0 -0
  1095. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_osv.py +0 -0
  1096. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_owners.py +0 -0
  1097. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_top.py +0 -0
  1098. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_trend_quiet.py +0 -0
  1099. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_trends.py +0 -0
  1100. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dep_watch.py +0 -0
  1101. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deploy_attempts.py +0 -0
  1102. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deploy_ranges.py +0 -0
  1103. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deployment_history.py +0 -0
  1104. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deployment_list.py +0 -0
  1105. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_action.py +0 -0
  1106. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_cli.py +0 -0
  1107. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_dossier.py +0 -0
  1108. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_hygiene.py +0 -0
  1109. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_imports.py +0 -0
  1110. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_lookalike.py +0 -0
  1111. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_paths.py +0 -0
  1112. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_policy.py +0 -0
  1113. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_reach.py +0 -0
  1114. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_release.py +0 -0
  1115. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_review_fixes.py +0 -0
  1116. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_runtimes.py +0 -0
  1117. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_deps_vulns.py +0 -0
  1118. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_devlake_cicd.py +0 -0
  1119. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dora_evidence.py +0 -0
  1120. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dora_proof.py +0 -0
  1121. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dora_rows.py +0 -0
  1122. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_dora_weeks.py +0 -0
  1123. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_enterprise_server.py +0 -0
  1124. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_events.py +0 -0
  1125. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_explain_cli.py +0 -0
  1126. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_fair.py +0 -0
  1127. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_fixplan.py +0 -0
  1128. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flake_code_kinds.py +0 -0
  1129. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flaky_natural.py +0 -0
  1130. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flaky_sample.py +0 -0
  1131. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flaky_score_fair.py +0 -0
  1132. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flaky_test_cost.py +0 -0
  1133. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flaky_tickets.py +0 -0
  1134. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_analyze.py +0 -0
  1135. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_automate.py +0 -0
  1136. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_bench_pipeline.py +0 -0
  1137. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_collect.py +0 -0
  1138. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_collect_delivery.py +0 -0
  1139. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_definitions.py +0 -0
  1140. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_m2.py +0 -0
  1141. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_peers.py +0 -0
  1142. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_preflight.py +0 -0
  1143. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_report.py +0 -0
  1144. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_round2.py +0 -0
  1145. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_round3.py +0 -0
  1146. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_triage.py +0 -0
  1147. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_windows.py +0 -0
  1148. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_flow_wiring.py +0 -0
  1149. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_fork_reports.py +0 -0
  1150. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_gitlab_action.py +0 -0
  1151. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_gitlab_delivery.py +0 -0
  1152. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_graphql.py +0 -0
  1153. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_health.py +0 -0
  1154. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_identities.py +0 -0
  1155. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_identity.py +0 -0
  1156. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_identity_everywhere.py +0 -0
  1157. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_identity_match.py +0 -0
  1158. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_insights_chains.py +0 -0
  1159. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_investment.py +0 -0
  1160. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_jira_fields.py +0 -0
  1161. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_knowledge_names.py +0 -0
  1162. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_labeller.py +0 -0
  1163. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_llms_txt.py +0 -0
  1164. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_local_run.py +0 -0
  1165. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_m1_small_fixes.py +0 -0
  1166. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_masking_card.py +0 -0
  1167. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_mcp_core.py +0 -0
  1168. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_mcp_provenance.py +0 -0
  1169. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_merge_queue.py +0 -0
  1170. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_mergescout_token.py +0 -0
  1171. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_modular_install.py +0 -0
  1172. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_nulls_power.py +0 -0
  1173. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_numbers_review.py +0 -0
  1174. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_odds_backtest.py +0 -0
  1175. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_outside_fresh.py +0 -0
  1176. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_owners.py +0 -0
  1177. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pagers_copilot.py +0 -0
  1178. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pages_deploy.py +0 -0
  1179. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_parsing_review.py +0 -0
  1180. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_peer_fit.py +0 -0
  1181. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_polish_m1.py +0 -0
  1182. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_polish_m2.py +0 -0
  1183. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_polish_review.py +0 -0
  1184. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_app_facts.py +0 -0
  1185. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_campaigns.py +0 -0
  1186. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_catalog.py +0 -0
  1187. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_checks.py +0 -0
  1188. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_export.py +0 -0
  1189. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_golden.py +0 -0
  1190. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_handcheck.py +0 -0
  1191. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_history.py +0 -0
  1192. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_html.py +0 -0
  1193. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_m1.py +0 -0
  1194. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_nudges.py +0 -0
  1195. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_reviews.py +0 -0
  1196. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_rollup.py +0 -0
  1197. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_portal_scorecard.py +0 -0
  1198. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pr_exclusions.py +0 -0
  1199. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pr_licences.py +0 -0
  1200. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pr_rules.py +0 -0
  1201. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_production_branches.py +0 -0
  1202. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_project_dora.py +0 -0
  1203. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_pulse_trend.py +0 -0
  1204. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_quarantine_expiry.py +0 -0
  1205. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_quarantine_runners.py +0 -0
  1206. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_quarantine_runtime.py +0 -0
  1207. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_recorded.py +0 -0
  1208. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_relay_and_polish.py +0 -0
  1209. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_release_quality.py +0 -0
  1210. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_releases.py +0 -0
  1211. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_releases_ratelimit.py +0 -0
  1212. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_report.py +0 -0
  1213. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_report_validate.py +0 -0
  1214. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_response_times.py +0 -0
  1215. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_result_quality.py +0 -0
  1216. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_resync.py +0 -0
  1217. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_review_fixes.py +0 -0
  1218. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_review_fixes_action.py +0 -0
  1219. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_review_fixes_p3.py +0 -0
  1220. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_review_fixes_requests.py +0 -0
  1221. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_review_m3.py +0 -0
  1222. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_sample.py +0 -0
  1223. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_schema_sections.py +0 -0
  1224. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_scorecard_agreement.py +0 -0
  1225. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_security_checks.py +0 -0
  1226. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_selfheal.py +0 -0
  1227. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_services.py +0 -0
  1228. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_setup_check.py +0 -0
  1229. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_setup_template.py +0 -0
  1230. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_shared_bench.py +0 -0
  1231. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_shell_app_link.py +0 -0
  1232. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_shrinkage_groups.py +0 -0
  1233. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_check.py +0 -0
  1234. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_cli.py +0 -0
  1235. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_identity.py +0 -0
  1236. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_issues.py +0 -0
  1237. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_labels.py +0 -0
  1238. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_repo_stats.py +0 -0
  1239. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_signals_walls.py +0 -0
  1240. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_site_build.py +0 -0
  1241. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_snapshot_build.py +0 -0
  1242. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_snapshot_publish.py +0 -0
  1243. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_sonar.py +0 -0
  1244. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_state_report.py +0 -0
  1245. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_store.py +0 -0
  1246. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_store_cli.py +0 -0
  1247. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_stream.py +0 -0
  1248. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_suite_packaging.py +0 -0
  1249. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_supply.py +0 -0
  1250. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_sweep.py +0 -0
  1251. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_team_dora.py +0 -0
  1252. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_test_variants.py +0 -0
  1253. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_action_pack.py +0 -0
  1254. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_live.py +0 -0
  1255. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_queries.py +0 -0
  1256. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_server.py +0 -0
  1257. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_speed.py +0 -0
  1258. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_store.py +0 -0
  1259. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tool_tracking.py +0 -0
  1260. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_tracker.py +0 -0
  1261. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_triage_math.py +0 -0
  1262. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_triage_pipeline.py +0 -0
  1263. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_uncertainty.py +0 -0
  1264. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_verdict_feedback.py +0 -0
  1265. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_verdict_strict.py +0 -0
  1266. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_vulns_dev_only.py +0 -0
  1267. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_vulns_ignores.py +0 -0
  1268. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_vulns_inputs.py +0 -0
  1269. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_web_build.py +0 -0
  1270. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_web_next_setup.py +0 -0
  1271. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_web_replay_parity.py +0 -0
  1272. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_what_changed.py +0 -0
  1273. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/local/test_work_calendar.py +0 -0
  1274. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/signals_data.py +0 -0
  1275. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_accuracy.py +0 -0
  1276. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_bench.py +0 -0
  1277. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_ci.py +0 -0
  1278. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_community.py +0 -0
  1279. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_connectors.py +0 -0
  1280. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_contribute.py +0 -0
  1281. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_core.py +0 -0
  1282. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_crawl.py +0 -0
  1283. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_decisions.py +0 -0
  1284. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_delivery.py +0 -0
  1285. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_deps.py +0 -0
  1286. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_discover.py +0 -0
  1287. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_github.py +0 -0
  1288. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_insights.py +0 -0
  1289. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_portal.py +0 -0
  1290. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_signals.py +0 -0
  1291. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_snapshot.py +0 -0
  1292. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_store.py +0 -0
  1293. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_surfaces.py +0 -0
  1294. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_team.py +0 -0
  1295. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_tool.py +0 -0
  1296. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/test_flow_web.py +0 -0
  1297. {stackvitals-0.1.1 → stackvitals-0.1.3}/tests/tool_data.py +0 -0
  1298. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/extra-ci.mjs +0 -0
  1299. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/extra-delivery.mjs +0 -0
  1300. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/extra-deps.mjs +0 -0
  1301. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/extra-people.mjs +0 -0
  1302. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/extra-portal.mjs +0 -0
  1303. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/demo/source.mjs +0 -0
  1304. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/defaults.spec.ts +0 -0
  1305. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/fixtures.ts +0 -0
  1306. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/flows.spec.ts +0 -0
  1307. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/links.spec.ts +0 -0
  1308. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/playwright.config.ts +0 -0
  1309. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/serve.mjs +0 -0
  1310. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/sweep.spec.ts +0 -0
  1311. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/e2e/welcome.spec.ts +0 -0
  1312. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/package-lock.json +0 -0
  1313. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/package.json +0 -0
  1314. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/scripts/docs.mjs +0 -0
  1315. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/app/AddRepo.tsx +0 -0
  1316. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/app/Profile.tsx +0 -0
  1317. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/app/jump.ts +0 -0
  1318. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/app/router.ts +0 -0
  1319. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/app/routes.ts +0 -0
  1320. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/charts/BarChart.tsx +0 -0
  1321. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/charts/MetricHero.tsx +0 -0
  1322. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/charts/ScrubChart.tsx +0 -0
  1323. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/charts/Sparkline.tsx +0 -0
  1324. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/charts/metric.ts +0 -0
  1325. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/files.ts +0 -0
  1326. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/format.ts +0 -0
  1327. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/repos.ts +0 -0
  1328. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/requestIssue.ts +0 -0
  1329. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/source.ts +0 -0
  1330. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/store.ts +0 -0
  1331. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/types.ts +0 -0
  1332. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/data/write.ts +0 -0
  1333. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/Decide.tsx +0 -0
  1334. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/Evidence.tsx +0 -0
  1335. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/Health.tsx +0 -0
  1336. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/SetupRunning.tsx +0 -0
  1337. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/agents-data.ts +0 -0
  1338. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/brand-logos.ts +0 -0
  1339. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/connect.css +0 -0
  1340. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/connect.tsx +0 -0
  1341. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/connectRepos.tsx +0 -0
  1342. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/connections-data.ts +0 -0
  1343. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/connstatus.ts +0 -0
  1344. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/helpLink.ts +0 -0
  1345. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/markdown.ts +0 -0
  1346. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/sealbox.ts +0 -0
  1347. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/sealedbox.d.ts +0 -0
  1348. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/secrets.ts +0 -0
  1349. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsApply.ts +0 -0
  1350. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsModel.ts +0 -0
  1351. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsPending.ts +0 -0
  1352. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsReplay.ts +0 -0
  1353. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsReview.tsx +0 -0
  1354. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/settingsToml.ts +0 -0
  1355. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/text-css.d.ts +0 -0
  1356. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/features/vitals.ts +0 -0
  1357. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/caps.ts +0 -0
  1358. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/client.ts +0 -0
  1359. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/config.ts +0 -0
  1360. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/detect.ts +0 -0
  1361. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/diff.ts +0 -0
  1362. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/links.ts +0 -0
  1363. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/mine.ts +0 -0
  1364. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/names.ts +0 -0
  1365. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/oauth.ts +0 -0
  1366. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/open.ts +0 -0
  1367. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/session.ts +0 -0
  1368. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/setup.ts +0 -0
  1369. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/signout.ts +0 -0
  1370. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/token.ts +0 -0
  1371. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/github/watch.ts +0 -0
  1372. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/main.tsx +0 -0
  1373. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/about/parts.tsx +0 -0
  1374. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/about-accuracy.d.ts +0 -0
  1375. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/about.css +0 -0
  1376. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/accuracy-data.js +0 -0
  1377. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/activity.css +0 -0
  1378. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/activity.tsx +0 -0
  1379. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/agents/parts.tsx +0 -0
  1380. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/agents.css +0 -0
  1381. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/agents.tsx +0 -0
  1382. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/ci/more.tsx +0 -0
  1383. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/ci/parts.tsx +0 -0
  1384. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/ci/setup.tsx +0 -0
  1385. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/ci.css +0 -0
  1386. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/ci.tsx +0 -0
  1387. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/community/command.ts +0 -0
  1388. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/community/report.tsx +0 -0
  1389. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/community.css +0 -0
  1390. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/connections.css +0 -0
  1391. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/connections.tsx +0 -0
  1392. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery/blocks.css +0 -0
  1393. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery/blocks.tsx +0 -0
  1394. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery/more.tsx +0 -0
  1395. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery/sources.tsx +0 -0
  1396. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery.css +0 -0
  1397. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/delivery.tsx +0 -0
  1398. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps/blocks.css +0 -0
  1399. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps/blocks.tsx +0 -0
  1400. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps/lookup.ts +0 -0
  1401. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps/security.tsx +0 -0
  1402. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps/tools.tsx +0 -0
  1403. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps.css +0 -0
  1404. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/deps.tsx +0 -0
  1405. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/explore/parts.tsx +0 -0
  1406. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/explore/query.ts +0 -0
  1407. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/explore.css +0 -0
  1408. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/explore.tsx +0 -0
  1409. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/health.css +0 -0
  1410. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/health.tsx +0 -0
  1411. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/help.css +0 -0
  1412. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/help.tsx +0 -0
  1413. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/insights/parts.tsx +0 -0
  1414. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/insights.css +0 -0
  1415. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/insights.tsx +0 -0
  1416. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/investment.css +0 -0
  1417. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/investment.tsx +0 -0
  1418. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/overview/parts.tsx +0 -0
  1419. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/overview.css +0 -0
  1420. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/overview.tsx +0 -0
  1421. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/access.ts +0 -0
  1422. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/panel.css +0 -0
  1423. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/panel.tsx +0 -0
  1424. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/parts.tsx +0 -0
  1425. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/setup.ts +0 -0
  1426. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal/tools.tsx +0 -0
  1427. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal.css +0 -0
  1428. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/portal.tsx +0 -0
  1429. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/prs/more.tsx +0 -0
  1430. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/prs/parts.tsx +0 -0
  1431. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/prs/preflight.ts +0 -0
  1432. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/prs.css +0 -0
  1433. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/prs.tsx +0 -0
  1434. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/settings.css +0 -0
  1435. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/settings.tsx +0 -0
  1436. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/setup.css +0 -0
  1437. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/standing.css +0 -0
  1438. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/standing.tsx +0 -0
  1439. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/welcome-sheet.css +0 -0
  1440. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/welcome-sheet.tsx +0 -0
  1441. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/pages/welcome.tsx +0 -0
  1442. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/styles/charts.css +0 -0
  1443. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/styles/components.css +0 -0
  1444. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/styles/index.css +0 -0
  1445. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Button.tsx +0 -0
  1446. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Page.tsx +0 -0
  1447. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Popover.tsx +0 -0
  1448. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Portal.tsx +0 -0
  1449. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Sheet.tsx +0 -0
  1450. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/Table.tsx +0 -0
  1451. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/bits.tsx +0 -0
  1452. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/controls.tsx +0 -0
  1453. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/icons.tsx +0 -0
  1454. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/motion.ts +0 -0
  1455. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/src/ui/prefill.tsx +0 -0
  1456. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/ciworkflow.test.ts +0 -0
  1457. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/client.test.ts +0 -0
  1458. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/connstatus.test.ts +0 -0
  1459. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/depstools.test.ts +0 -0
  1460. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/explorequery.test.ts +0 -0
  1461. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/fake.ts +0 -0
  1462. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/links.test.ts +0 -0
  1463. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/load.mjs +0 -0
  1464. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/markdown.test.ts +0 -0
  1465. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/portalsetup.test.ts +0 -0
  1466. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/preflight.test.ts +0 -0
  1467. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/run.mjs +0 -0
  1468. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/secrets.test.ts +0 -0
  1469. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/settings.test.ts +0 -0
  1470. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/test/setup.test.ts +0 -0
  1471. {stackvitals-0.1.1 → stackvitals-0.1.3}/web/tsconfig.json +0 -0
  1472. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/README.md +0 -0
  1473. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/package.json +0 -0
  1474. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/relay/README.md +0 -0
  1475. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/relay/package.json +0 -0
  1476. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/relay/src/index.js +0 -0
  1477. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/relay/test/index.test.mjs +0 -0
  1478. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/relay/wrangler.toml +0 -0
  1479. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/src/index.js +0 -0
  1480. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/test/index.test.mjs +0 -0
  1481. {stackvitals-0.1.1 → stackvitals-0.1.3}/worker/wrangler.toml +0 -0
@@ -0,0 +1,118 @@
1
+ name: Daily
2
+
3
+ on:
4
+ schedule:
5
+ - cron: "17 5 * * *"
6
+ # Backup in case GitHub skips the first; it stops at once when today's snapshot is already published.
7
+ - cron: "47 13 * * *"
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: write
12
+ issues: read # shared benchmark figures arrive as issues
13
+
14
+ concurrency:
15
+ group: daily
16
+ cancel-in-progress: false
17
+
18
+ jobs:
19
+ daily:
20
+ # Runs only in the private repo that holds the crawl data; elsewhere the job is skipped.
21
+ if: github.repository == 'kaushik-yadav/merge-scout'
22
+ runs-on: ubuntu-latest
23
+ timeout-minutes: 60
24
+ env:
25
+ MS_DATA_DIR: ${{ github.workspace }}/data
26
+ MS_RELEASE_TOKEN: ${{ github.token }}
27
+ steps:
28
+ - name: Skip a scheduled run when today's snapshot is already published
29
+ id: guard
30
+ env:
31
+ GH_TOKEN: ${{ github.token }}
32
+ run: |
33
+ if [ "${{ github.event_name }}" = "schedule" ] && gh release view "data-$(date -u +%F)" --repo "${{ github.repository }}" > /dev/null 2>&1; then
34
+ echo "skip=true" >> "$GITHUB_OUTPUT"
35
+ echo "Today's snapshot is already published; nothing to do."
36
+ fi
37
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
38
+ if: steps.guard.outputs.skip != 'true'
39
+ with:
40
+ persist-credentials: false
41
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
42
+ if: steps.guard.outputs.skip != 'true'
43
+ with:
44
+ python-version: "3.11"
45
+ cache: pip
46
+ cache-dependency-path: pyproject.toml
47
+ # Downloaded crawl bundles are kept between runs, so each day fetches only new ones.
48
+ - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5.1.0
49
+ if: steps.guard.outputs.skip != 'true'
50
+ with:
51
+ path: data/bronze
52
+ key: bronze-${{ github.run_id }}
53
+ restore-keys: bronze-
54
+ - run: pip install ".[pipeline]"
55
+ if: steps.guard.outputs.skip != 'true'
56
+ # The package map is reused for a week per package and OSV advisories until they change, so both sources are asked little.
57
+ - name: Fetch yesterday's package map, vulnerability history and ownership watch
58
+ if: steps.guard.outputs.skip != 'true'
59
+ env:
60
+ GH_TOKEN: ${{ github.token }}
61
+ run: |
62
+ mkdir -p out
63
+ for f in deps-map.json deps-osv.json deps-owners.json; do
64
+ gh release download bench-latest -p "$f" -D out --clobber || echo "no $f yet"
65
+ done
66
+ - name: Build signals and the snapshot from the crawl releases
67
+ id: build
68
+ if: steps.guard.outputs.skip != 'true'
69
+ run: python -m mergescout.snapshot build --from-releases --out out
70
+ # The snapshot first: users depend on it; the signal tables are only an extra copy.
71
+ - name: Publish the snapshot
72
+ if: steps.guard.outputs.skip != 'true'
73
+ run: python -m mergescout.snapshot publish out
74
+ - name: Publish the signal tables
75
+ if: always() && steps.build.outcome == 'success'
76
+ run: python -m mergescout.store put out/signals.tar --tag signals-latest
77
+ # Opt-in figures that teams filed as issues; a group is published only with 10+ repos.
78
+ - name: Build peer groups from shared benchmark figures
79
+ if: always() && steps.build.outcome == 'success'
80
+ env:
81
+ GH_TOKEN: ${{ github.token }}
82
+ run: python -m mergescout.bench.shared --repo "$GITHUB_REPOSITORY" --repo stackvitals/stackvitals --out out/shared-benchmarks.json || echo "shared figures skipped"
83
+ # Each extra is published when it was built; a skipped one keeps yesterday's file.
84
+ - name: Publish the review-flow benchmarks, the triage model, the upgrade ledger and the package map
85
+ if: always() && steps.build.outcome == 'success'
86
+ run: |
87
+ for f in flow-benchmarks.json delivery-benchmarks.json community-benchmarks.json triage-model.json deps-ledger.json deps-map.json watch-repos.txt deps-trends.json deps-osv.json deps-owners.json shared-benchmarks.json; do
88
+ if [ -f "out/$f" ]; then python -m mergescout.store put "out/$f" --tag bench-latest; else echo "out/$f was not built"; fi
89
+ done
90
+ # The Action reads the CI and shared benchmarks from the public repo's release; without its token the copy is skipped.
91
+ - name: Check for the public benchmark token
92
+ id: public_bench
93
+ if: always() && steps.guard.outputs.skip != 'true'
94
+ env:
95
+ PUBLIC_BENCH_TOKEN: ${{ secrets.PUBLIC_BENCH_TOKEN }}
96
+ run: |
97
+ if [ -n "$PUBLIC_BENCH_TOKEN" ]; then echo "set=true" >> "$GITHUB_OUTPUT"; else echo "No PUBLIC_BENCH_TOKEN; the public copy is skipped."; fi
98
+ - name: Copy the CI and shared benchmarks to the public release
99
+ if: always() && steps.public_bench.outputs.set == 'true'
100
+ continue-on-error: true
101
+ env:
102
+ GH_TOKEN: ${{ github.token }}
103
+ PUBLIC_BENCH_TOKEN: ${{ secrets.PUBLIC_BENCH_TOKEN }}
104
+ run: |
105
+ mkdir -p public-bench
106
+ for f in ci-benchmarks.json shared-benchmarks.json; do
107
+ gh release download bench-latest -R "$GITHUB_REPOSITORY" -p "$f" -D public-bench --clobber || echo "no $f yet"
108
+ done
109
+ files=$(find public-bench -name '*.json')
110
+ if [ -z "$files" ]; then echo "Nothing to copy."; exit 0; fi
111
+ export GH_TOKEN="$PUBLIC_BENCH_TOKEN"
112
+ gh release view bench-latest -R stackvitals/stackvitals > /dev/null 2>&1 ||
113
+ gh release create bench-latest -R stackvitals/stackvitals --title "Benchmarks" --notes "Peer benchmarks the StackVitals Action compares with, refreshed daily."
114
+ # shellcheck disable=SC2086
115
+ gh release upload bench-latest $files -R stackvitals/stackvitals --clobber
116
+ - name: Sizes
117
+ if: always()
118
+ run: du -sh data out || true
@@ -0,0 +1,32 @@
1
+ name: MCP registry
2
+ # Lists server.json in the MCP registry after each successful release (or by hand). GitHub's OIDC token proves the
3
+ # org namespace, so no token is stored.
4
+ on:
5
+ workflow_run:
6
+ workflows: [Release]
7
+ types: [completed]
8
+ workflow_dispatch:
9
+ permissions: {}
10
+ jobs:
11
+ publish:
12
+ if: github.repository == 'stackvitals/stackvitals' && (github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success')
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 10
15
+ permissions:
16
+ contents: read
17
+ id-token: write # the registry's GitHub OIDC sign-in
18
+ steps:
19
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
20
+ with:
21
+ persist-credentials: false
22
+ # The released commit, not whatever main holds now.
23
+ ref: ${{ github.event.workflow_run.head_sha || github.sha }}
24
+ - name: Install mcp-publisher (pinned, checksum checked)
25
+ run: |
26
+ curl -sSfL -o mcp-publisher.tar.gz https://github.com/modelcontextprotocol/registry/releases/download/v1.8.7/mcp-publisher_linux_amd64.tar.gz
27
+ echo "00b21004149a4ce66f0782508ae4a2bce67d1bea395a8da0bd8028159fb59579 mcp-publisher.tar.gz" | sha256sum -c -
28
+ tar -xzf mcp-publisher.tar.gz mcp-publisher
29
+ - name: Publish
30
+ run: |
31
+ ./mcp-publisher login github-oidc
32
+ ./mcp-publisher publish
@@ -0,0 +1,79 @@
1
+ name: Prospective tests
2
+
3
+ # The pre-registered reads, scored on their dates whatever they show: reviewer suggestions (from 2027-01-15), the
4
+ # finder's ranking (from 2027-03-20) and the adoption study (from 2027-07-01, then every three months). Each scorer
5
+ # refuses to run early or on a changed frozen file, and a finished read is not scored again; results come back as a PR.
6
+ on:
7
+ schedule:
8
+ - cron: "0 7 16 1 *"
9
+ - cron: "0 7 21 3 *"
10
+ - cron: "0 7 2 1,4,7,10 *"
11
+ workflow_dispatch:
12
+
13
+ permissions:
14
+ contents: write
15
+ pull-requests: write
16
+ issues: write
17
+
18
+ concurrency:
19
+ group: prospective
20
+ cancel-in-progress: false
21
+
22
+ jobs:
23
+ score:
24
+ # Runs only in the private repo that holds the crawl data; elsewhere the job is skipped.
25
+ if: github.repository == 'kaushik-yadav/merge-scout'
26
+ runs-on: ubuntu-latest
27
+ timeout-minutes: 120
28
+ env:
29
+ MS_DATA_DIR: ${{ github.workspace }}/data
30
+ # Code search (finding adopters) needs a person's token; the built-in one reads everything else.
31
+ GH_TOKEN: ${{ secrets.PROSPECTIVE_TOKEN || github.token }}
32
+ steps:
33
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
34
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
35
+ with:
36
+ python-version: "3.11"
37
+ cache: pip
38
+ cache-dependency-path: pyproject.toml
39
+ - run: pip install ".[pipeline]"
40
+ - name: Download the crawl
41
+ env:
42
+ MS_RELEASE_TOKEN: ${{ github.token }}
43
+ run: |
44
+ python -c "
45
+ import os; from pathlib import Path
46
+ from mergescout.github.releases import Releases
47
+ from mergescout.store.sync import fetch_bronze
48
+ fetch_bronze(Releases(os.environ['MS_RELEASE_TOKEN'], os.environ['GITHUB_REPOSITORY']), Path(os.environ['MS_DATA_DIR']))"
49
+ - name: Score every test that is due
50
+ run: |
51
+ set +e
52
+ {
53
+ # A read that already has its results stands; it is not scored again.
54
+ echo "## Reviewer suggestions"
55
+ if [ -f bench/accuracy/team/prospective-results.json ]; then echo "Already scored; the read stands."
56
+ else python bench/accuracy/team/prospective.py score; echo "exit $?"; fi
57
+ echo "## Finder's ranking"
58
+ if [ -f bench/accuracy/contribute/prospective-results.json ]; then echo "Already scored; the read stands."
59
+ else python bench/accuracy/contribute/prospective.py score --crawl data/bronze/crawl; echo "exit $?"; fi
60
+ # study.py refuses by itself (exit 4) once a read included 20+ adopters or after 2028-07-01.
61
+ echo "## Adoption study"
62
+ if [ "$(date -u +%F)" \> "2027-06-30" ]; then python bench/accuracy/adoption/study.py find; fi
63
+ python bench/accuracy/adoption/study.py score --crawl data/bronze/crawl; echo "exit $?"
64
+ } 2>&1 | tee scores.log
65
+ - name: Open a pull request with the results
66
+ run: |
67
+ for f in bench/accuracy/team/prospective-results.json bench/accuracy/contribute/prospective-results.json \
68
+ bench/accuracy/adoption/adopters.json bench/accuracy/adoption/results.json; do
69
+ if [ -f "$f" ]; then git add "$f"; fi
70
+ done
71
+ if git diff --cached --quiet; then echo "Nothing was due."; exit 0; fi
72
+ branch="test/prospective-$(date -u +%F)-${{ github.run_id }}"
73
+ git -c user.name="github-actions[bot]" -c user.email="41898282+github-actions[bot]@users.noreply.github.com" \
74
+ commit -q -m "test(measure): Score the pre-registered prospective tests due $(date -u +%F)"
75
+ git push -q origin "HEAD:refs/heads/$branch"
76
+ body="$(printf 'Scored by the Prospective tests workflow, published whatever the results show.\n\n```\n%s\n```\n' "$(tail -c 60000 scores.log)")"
77
+ # Repos that don't let Actions open pull requests get an issue pointing at the branch instead.
78
+ gh pr create --head "$branch" --title "Prospective test results $(date -u +%F)" --body "$body" ||
79
+ gh issue create --title "Prospective test results $(date -u +%F) (branch $branch)" --body "$body"
@@ -0,0 +1,102 @@
1
+ name: Release
2
+ # A version tag (v0.1.0) builds the package with read-only rights, then a second job signs every file keylessly with
3
+ # Sigstore, writes a software bill of materials and a build provenance attestation, and publishes them on the release.
4
+ # A third job then uploads the same wheel and sdist to PyPI by trusted publishing (no stored token).
5
+ on:
6
+ push:
7
+ # Version tags only: moving the floating `v0` tag must not make a release.
8
+ tags: ["v*.*.*"]
9
+ permissions: {}
10
+ jobs:
11
+ build:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 15
14
+ permissions:
15
+ contents: read
16
+ steps:
17
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
18
+ with:
19
+ persist-credentials: false
20
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
21
+ with:
22
+ enable-cache: false
23
+ - name: Build
24
+ # The build backend is pinned, so a new upload to PyPI can never change what gets signed.
25
+ run: uv build --build-constraint .github/build-constraints.txt --no-cache --out-dir dist
26
+ - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
27
+ with:
28
+ name: dist
29
+ path: dist/
30
+ retention-days: 1
31
+ publish:
32
+ needs: build
33
+ runs-on: ubuntu-latest
34
+ timeout-minutes: 15
35
+ # Reviewers on this environment and a tag ruleset decide who can publish (repo settings).
36
+ environment: release
37
+ permissions:
38
+ contents: write # the release and its files
39
+ id-token: write # Sigstore's keyless signing and the provenance attestation
40
+ attestations: write
41
+ steps:
42
+ - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
43
+ with:
44
+ name: dist
45
+ path: dist
46
+ - name: Find the wheel
47
+ id: wheel
48
+ run: echo "path=$(ls dist/*.whl)" >> "$GITHUB_OUTPUT"
49
+ - name: Software bill of materials
50
+ # What the wheel installs, not the whole source tree with its test and bench tools.
51
+ uses: anchore/sbom-action@66cbf4bc1f1c0d2edc94016e65bc221b6bb0ad6c # v0.24.3
52
+ with:
53
+ file: ${{ steps.wheel.outputs.path }}
54
+ format: spdx-json
55
+ output-file: sbom.spdx.json
56
+ upload-artifact: false
57
+ upload-release-assets: false
58
+ - name: Keep the SBOM with the release files
59
+ run: mv sbom.spdx.json dist/stackvitals.spdx.json
60
+ - name: Sign with Sigstore
61
+ uses: sigstore/gh-action-sigstore-python@790bc6befb9d733738f18d8f895854b453640ec9 # v3.5.0
62
+ with:
63
+ inputs: ./dist/*.whl ./dist/*.tar.gz ./dist/stackvitals.spdx.json
64
+ upload-signing-artifacts: false
65
+ release-signing-artifacts: false
66
+ - name: Build provenance
67
+ uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
68
+ with:
69
+ subject-path: dist/*
70
+ - name: Publish the release
71
+ env:
72
+ GH_TOKEN: ${{ github.token }}
73
+ TAG: ${{ github.ref_name }}
74
+ REPO: ${{ github.repository }}
75
+ run: gh release create "$TAG" dist/* --repo "$REPO" --title "$TAG" --generate-notes --verify-tag
76
+ pypi:
77
+ needs: [build, publish]
78
+ # The real home only (forks and copies skip it); update this name if the repo moves (launch step C1).
79
+ if: github.repository == 'stackvitals/stackvitals'
80
+ runs-on: ubuntu-latest
81
+ timeout-minutes: 15
82
+ # PyPI's trusted publisher names this repo, release.yml and this environment; nothing else can upload.
83
+ environment: release
84
+ permissions:
85
+ id-token: write # the short-lived PyPI upload token, by OIDC
86
+ steps:
87
+ # The files the build job made and the publish job signed, not a rebuild.
88
+ - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0
89
+ with:
90
+ name: dist
91
+ path: dist
92
+ - name: Check the tag matches the package version
93
+ env:
94
+ TAG: ${{ github.ref_name }}
95
+ run: |
96
+ ls dist
97
+ test -f "dist/stackvitals-${TAG#v}.tar.gz" && test "$(ls dist | wc -l)" -eq 2
98
+ - name: Publish to PyPI
99
+ uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
100
+ with:
101
+ packages-dir: dist/
102
+ # The MCP registry listing is a separate, manual step: docs/release-checklist.md, "Publishing".
@@ -0,0 +1,28 @@
1
+ name: Tests
2
+ # The committed workflow tests on every pull request, with a read-only token and no secrets.
3
+ on:
4
+ pull_request:
5
+ workflow_dispatch:
6
+ permissions:
7
+ contents: read
8
+ concurrency:
9
+ group: tests-${{ github.ref }}
10
+ cancel-in-progress: true
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ timeout-minutes: 30
15
+ steps:
16
+ - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0
17
+ with:
18
+ persist-credentials: false
19
+ - uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0
20
+ - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
21
+ with:
22
+ node-version: 22
23
+ # The web app's build tools, so the suite can rebuild the app and check the committed build is current.
24
+ - name: Install the web app's build tools
25
+ working-directory: web
26
+ run: npm ci --ignore-scripts --no-audit --no-fund
27
+ - name: Run the tests
28
+ run: uv run --locked --extra dev pytest -q
@@ -0,0 +1,88 @@
1
+ # Changelog
2
+
3
+ ## 0.1.3 (2026-10-31)
4
+
5
+ - The app's About page and the project site say Apache 2.0 (they said MIT); the site shows the cube logo and the
6
+ one-command setup.
7
+ - The app's Setup page and Help give `stackvitals init owner/repo` as the terminal way to set a repo up.
8
+ - PyPI lists the project's links (home, docs, source, issues, changelog).
9
+ - Docs: the install page says how to get the command; guides, quickstart and modules lead with `stackvitals init`;
10
+ contradictions fixed (golden paths, GitLab, GitHub Enterprise Server, sign-in, private repos' CI runs, cycle-time
11
+ phases); the PR verdicts are a table; the settings page says which switches are on by default; the architecture
12
+ diagrams list every trigger and show Portal running from the org's repo; a release checklist with the real steps.
13
+ - A code of conduct (Contributor Covenant 2.1), with reports through the repository's private reporting form.
14
+
15
+ ## 0.1.2 (2026-10-31)
16
+
17
+ - `stackvitals init owner/repo` sets StackVitals up in one command: commits the workflow (or opens a pull request), follows
18
+ the first run and turns on Pages for a public repo; a private repo keeps Pages off and opens with `stackvitals ui`.
19
+ - The StackVitals cube is the app's logo in the sidebar, the browser tab and the splash; the logo picker is gone.
20
+ - The README opens with the logo, a short tour and the architecture; the architecture docs open with a detailed diagram.
21
+
22
+ ## 0.1.1 (2026-10-31)
23
+
24
+ - The Action's description is shorter, to fit the GitHub Marketplace listing. No other change.
25
+
26
+ ## 0.1.0 (2026-10-31)
27
+
28
+ First release of StackVitals: one Action, one CLI and one MCP server over these modules. History stays in your repo's
29
+ `stackvitals-data` branch, with an app on your repo's GitHub Pages (or `stackvitals ui owner/repo` on your machine).
30
+
31
+ **CI Health**
32
+ - Finds flaky jobs and tests from your GitHub Actions history: a failure that later passed with no code change, on a re-run or on another run of the same code. Outages, gatekeeper jobs and GitHub-managed workflows are ignored.
33
+ - Calls a failure likely flaky only with a flake's sign in the log and no changed file named; likely flakes are re-run once, never passed by the verdict check.
34
+ - Reads JUnit XML and CTRF JSON test reports from run artifacts (or `stackvitals ci upload` from any CI, GitLab CI included), groups failures by root cause, names the matrix variant flakes came from, and keeps each test's state with the day it began.
35
+ - One comment per pull request: which failures are known flakes, which already fail on the default branch (with the same error), and which are new.
36
+ - What each flaky test cost and the pull requests it got in the way of; what CI costs by workflow and job; the first-try share opened into the pushes that missed it.
37
+ - Opt-in automation: re-run known flakes once, retry only failed tests in the job, quarantine inside Playwright, Maven and dotnet test runs (ending after `max_days`), burn-in for new tests, one issue or Jira/Linear ticket per flaky test, verified fix requests for real CI breaks, and Slack, Discord or Teams alerts.
38
+ - Test impact: picks the tests a change can affect, with a replay of the rule on past pull requests.
39
+
40
+ **Team Flow and Delivery**
41
+ - Who acts next on each open pull request, review stages, insiders and outside contributors, suggested reviewers, size labels and PR rules as code.
42
+ - LinearB's six cycle-time phases with P50 and P75 (weekends and holidays left out with a working calendar), and DORA counted exactly as DevLake's dashboard counts it, with an export in DevLake's table shapes.
43
+ - Deployments from the Deployments API, releases, merges or workflow runs, with release and GitFlow branches; deployments and incidents from any tool through `repository_dispatch`; GitLab merge requests and deployments.
44
+ - A deployments tab, all four DORA metrics week by week, per team and per service in a monorepo, several repos pooled into one project, and every DORA number opened into the pull requests and deployments behind it (`stackvitals explain` in the terminal).
45
+ - Coding agents' work, review load and how much of people's and agents' code lasts 30 and 90 days; AI tool usage and spend beside AI-involved pull requests.
46
+ - Change risk on open pull requests where the repo's own backtest shows it works; what changed in the hours before an incident; a capitalisation CSV for finance.
47
+
48
+ **Insights and alerts**
49
+ - One ranked list of what to fix first, in hours at stake, and alerts when pickup, review, cycle time or change failure rate crosses a threshold.
50
+
51
+ **Dependency Steward**
52
+ - Known vulnerabilities and malware in every lockfile OSV-Scanner reads, .NET project files and SBOMs, the Actions your workflows use and container base images; exploited advisories, dependency paths, development-only packages and Go reachability.
53
+ - The smallest fixing upgrade with its command, licence checks on new packages, look-alike package names, `osv-scanner.toml` ignores honoured, SARIF for GitHub's Security tab, and OpenSSF Scorecard's checks run on the repo itself.
54
+
55
+ **Community, Portal and Explore**
56
+ - Newcomers waiting for a first answer (maintainers, regular responders and triagers count as the project's answer), the contributor funnel, cohorts and star history, with forums and chat.
57
+ - An org catalog with owners, scorecards, golden paths, required checks, an org-wide view and a Backstage export.
58
+ - SQL over your history in the browser, with links to share a query.
59
+
60
+ **Contribute (MergeScout)**
61
+ - Open-source issues an outsider can get merged, with evidence, from a daily snapshot of public repos.
62
+
63
+ **The app**
64
+ - One page per module in the Instrument design, with Overview and Insights first, a Data health page, a demo at `?demo=1`, and decisions and settings saved from the browser.
65
+ - One-click setups for more repos once GitHub is connected, and a test call for every connection.
66
+
67
+ **Decisions and the weekly digest**
68
+ - `/stackvitals` commands in comments (quarantine, unquarantine, mute, acknowledge, snooze, exclude) from people with access, each logged with who, why and until when; temporary ones end on their own.
69
+ - Requests from the app as prefilled issues, applied by the workflow (settings changes open a pull request when the branch is protected).
70
+ - A weekly digest on one pinned issue and/or the webhook; findings keep "open since" and how much of the last 90 days they were active.
71
+
72
+ **Integrations**
73
+ - Jira Cloud, Linear, PagerDuty, incident.io, SonarQube or SonarCloud, Copilot usage reports, Claude Code analytics, Anthropic, OpenAI and Cursor spend, Slack, Teams, Discord, Discourse, Bitbucket, Azure DevOps, GitLab, Backstage and DevLake's tables; GitHub Enterprise Server's API addresses are followed from the job.
74
+ - A service can be read again from a chosen date instead of starting over.
75
+
76
+ **Settings and install**
77
+ - `.github/stackvitals.toml`, read on every run; every key is listed in docs/settings.md.
78
+ - Modules can be installed one at a time, each asking only for the permissions it uses.
79
+
80
+ **Measured, with the losses published**
81
+ - Accuracy cards with ranges for every headline rule, labels checked by two model families and a model panel, and one command to reproduce each result ([docs/accuracy.md](docs/accuracy.md)).
82
+ - Pre-registered side-by-side runs against Apache DevLake, Middleware and OpenSSF Scorecard on public repos.
83
+
84
+ **Security**
85
+ - Every action pinned to a commit, release files signed with Sigstore with an SBOM and build provenance, locked installs, and test reports from forks not trusted.
86
+
87
+ **For AI agents**
88
+ - `stackvitals serve`: one MCP server with every module's tools (11 core tools by default, all 35 with `--tools all`), each answer stamped with when and where it came from, a skill pack and `llms.txt`.
@@ -0,0 +1,113 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience
6
+ for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender
7
+ identity and expression, level of experience, education, socio-economic status, nationality, personal appearance,
8
+ race, caste, color, religion, or sexual identity and orientation.
9
+
10
+ We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy
11
+ community.
12
+
13
+ ## Our Standards
14
+
15
+ Examples of behavior that contributes to a positive environment for our community include:
16
+
17
+ * Demonstrating empathy and kindness toward other people
18
+ * Being respectful of differing opinions, viewpoints, and experiences
19
+ * Giving and gracefully accepting constructive feedback
20
+ * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
21
+ * Focusing on what is best not just for us as individuals, but for the overall community
22
+
23
+ Examples of unacceptable behavior include:
24
+
25
+ * The use of sexualized language or imagery, and sexual attention or advances of any kind
26
+ * Trolling, insulting or derogatory comments, and personal or political attacks
27
+ * Public or private harassment
28
+ * Publishing others' private information, such as a physical or email address, without their explicit permission
29
+ * Other conduct which could reasonably be considered inappropriate in a professional setting
30
+
31
+ ## Enforcement Responsibilities
32
+
33
+ Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take
34
+ appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening,
35
+ offensive, or harmful.
36
+
37
+ Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits,
38
+ issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for
39
+ moderation decisions when appropriate.
40
+
41
+ ## Scope
42
+
43
+ This Code of Conduct applies within all community spaces, and also applies when an individual is officially
44
+ representing the community in public spaces. Examples of representing our community include using an official e-mail
45
+ address, posting via an official social media account, or acting as an appointed representative at an online or
46
+ offline event.
47
+
48
+ ## Enforcement
49
+
50
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders
51
+ responsible for enforcement privately, through GitHub's private reporting form for this repository: open the
52
+ **Security** tab of [stackvitals/stackvitals](https://github.com/stackvitals/stackvitals/security), choose **Report a
53
+ vulnerability**, and start the title with "Conduct:". Only the maintainers can read it. You can also use GitHub's
54
+ [Report content](https://docs.github.com/en/communities/maintaining-your-safety-on-github/reporting-abuse-or-spam)
55
+ on any comment, issue or pull request. All complaints will be reviewed and investigated promptly and fairly.
56
+
57
+ All community leaders are obligated to respect the privacy and security of the reporter of any incident.
58
+
59
+ ## Enforcement Guidelines
60
+
61
+ Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they
62
+ deem in violation of this Code of Conduct:
63
+
64
+ ### 1. Correction
65
+
66
+ **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the
67
+ community.
68
+
69
+ **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the
70
+ violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
71
+
72
+ ### 2. Warning
73
+
74
+ **Community Impact**: A violation through a single incident or series of actions.
75
+
76
+ **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved,
77
+ including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This
78
+ includes avoiding interactions in community spaces as well as external channels like social media. Violating these
79
+ terms may lead to a temporary or permanent ban.
80
+
81
+ ### 3. Temporary Ban
82
+
83
+ **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
84
+
85
+ **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a
86
+ specified period of time. No public or private interaction with the people involved, including unsolicited
87
+ interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to
88
+ a permanent ban.
89
+
90
+ ### 4. Permanent Ban
91
+
92
+ **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate
93
+ behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
94
+
95
+ **Consequence**: A permanent ban from any sort of public interaction within the community.
96
+
97
+ ## Attribution
98
+
99
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.1, available at
100
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
101
+
102
+ Community Impact Guidelines were inspired by
103
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
104
+
105
+ For answers to common questions about this code of conduct, see the FAQ at
106
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
107
+ [https://www.contributor-covenant.org/translations][translations].
108
+
109
+ [homepage]: https://www.contributor-covenant.org
110
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
111
+ [Mozilla CoC]: https://github.com/mozilla/diversity
112
+ [FAQ]: https://www.contributor-covenant.org/faq
113
+ [translations]: https://www.contributor-covenant.org/translations
@@ -0,0 +1,63 @@
1
+ # Contributing
2
+
3
+ Thanks for helping. StackVitals is small enough that one person can read any part of it in an afternoon; please
4
+ keep it that way. Everyone taking part follows the [Code of Conduct](CODE_OF_CONDUCT.md).
5
+
6
+ ## Set up
7
+
8
+ You need Python 3.11+, [uv](https://docs.astral.sh/uv/), git and Node 22 (a few tests check the app's scripts).
9
+
10
+ Clone the repo, then from its folder:
11
+
12
+ ```
13
+ uv run --extra dev pytest tests -q
14
+ ```
15
+
16
+ The tests need no token and no network. [docs/architecture.md](docs/architecture.md) explains how the parts fit.
17
+
18
+ **The web app** is TypeScript in `web/`, built into `src/stackvitals/web/app/`, and the built files are committed
19
+ (they ship in the package). After changing it:
20
+
21
+ ```
22
+ cd web
23
+ npm ci
24
+ npm run build
25
+ npm test
26
+ ```
27
+
28
+ Commit `web/` and the rebuilt `src/stackvitals/web/` together; a test fails when the build is out of date.
29
+ [web/README.md](web/README.md) explains its layout and the browser tests (`npm run e2e`).
30
+
31
+ ## What a good change looks like
32
+
33
+ - **A bug:** a failing test first, then the fix. Task-sized tests go in `tests/local/`; a test that guards a real
34
+ bug or finding for a whole flow goes in the `tests/test_flow_<area>.py` file for that area.
35
+ - **A new rule or a changed one** (anything that decides a verdict or a number people see): add or update its entry in
36
+ [bench/accuracy/registry.json](bench/accuracy/registry.json) with what it was tuned on, what it was checked on and
37
+ the bar, check it on public data the rule never saw, then run `python bench/accuracy/summary.py` to regenerate
38
+ [docs/accuracy.md](docs/accuracy.md) and [docs/rules.md](docs/rules.md). A change that makes a number look better
39
+ without held-out evidence won't be merged; a change that publishes a loss will.
40
+ - **A new setting:** add it to `src/stackvitals/core/schema.py`; [docs/settings.md](docs/settings.md) is generated
41
+ from it and a test checks they match.
42
+ - **Anything that reaches a new host or needs a new permission:** say so in the pull request. The privacy page lists
43
+ every outside host and a test fails if code can reach one it doesn't name ([docs/privacy.md](docs/privacy.md)).
44
+ - **A new action in a workflow:** pin it to a commit with the version in a comment; a test fails otherwise.
45
+
46
+ ## Style
47
+
48
+ - Code reads like the code around it. Comments are short, plain and say why, not what.
49
+ - Copy people see is plain English: what happened, how many, since when, and what to do. No unexplained jargon, and
50
+ never a number without its sample size.
51
+ - Each test says what real bug or finding it guards; the `tests/test_flow_*.py` files stay few and test whole flows.
52
+
53
+ ## Pull requests
54
+
55
+ - Branch names: `type/short-topic` (`fix/flake-window`). Commit messages follow
56
+ [Conventional Commits](https://www.conventionalcommits.org/): `fix(ci): Keep the failing step when a job is re-run`.
57
+ - The Tests workflow runs on every pull request. A maintainer reviews within a week; if it has been longer, comment
58
+ to ask.
59
+ - By contributing you agree your work is released under the [Apache License 2.0](LICENSE).
60
+
61
+ ## Security problems
62
+
63
+ Never in a public issue: see [SECURITY.md](SECURITY.md).