@cassiomc1/forgeloop 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (720) hide show
  1. package/.cursor/rules/project-loop.mdc +6 -3
  2. package/.github/copilot-instructions.md +5 -0
  3. package/AGENTS.md +6 -0
  4. package/CLAUDE.md +6 -0
  5. package/DOCS_INDEX.md +5 -0
  6. package/ENG/accessibility-eng.md +12 -2
  7. package/ENG/design-code-eng.md +22 -1
  8. package/LOOP_ENGINEERING.md +28 -0
  9. package/PROTOCOL_INTEGRATION.md +26 -0
  10. package/QUALITY_SCORECARD.md +2 -0
  11. package/README.md +11 -0
  12. package/THREAT_MODEL.md +24 -0
  13. package/completions/_forgeloop +4 -1
  14. package/completions/forgeloop.bash +7 -1
  15. package/completions/forgeloop.fish +19 -1
  16. package/docs/AGENT_PROTOCOL_SUMMARY.md +6 -1
  17. package/docs/ARTIFACT_REFERENCE.md +128 -0
  18. package/docs/CLI_REFERENCE.md +84 -1
  19. package/docs/EXECUTION_PROFILE_BENCHMARKS.md +6 -3
  20. package/docs/KNOWLEDGE_SOURCES.md +161 -0
  21. package/docs/MCP.md +1 -1
  22. package/docs/RECIPES.md +31 -0
  23. package/docs/RELEASE_CHECKLIST.md +5 -0
  24. package/docs/STRUCTURAL_QUALITY.md +350 -0
  25. package/docs/TROUBLESHOOTING.md +107 -0
  26. package/package.json +5 -2
  27. package/schemas/config.schema.json +46 -0
  28. package/schemas/preflight.schema.json +2 -1
  29. package/schemas/structural-quality.schema.json +175 -0
  30. package/src/cli.js +18 -0
  31. package/src/commands/quality-baseline.js +28 -0
  32. package/src/commands/quality-status.js +34 -0
  33. package/src/commands/quality-verify.js +30 -0
  34. package/src/core/artifact-registry.js +12 -0
  35. package/src/core/audit.js +38 -0
  36. package/src/core/bundles.js +134 -1
  37. package/src/core/cli-command-definitions.js +45 -0
  38. package/src/core/command-executors.js +16 -0
  39. package/src/core/command-input.js +12 -0
  40. package/src/core/completion-artifacts.js +2 -0
  41. package/src/core/completion.js +42 -0
  42. package/src/core/config.js +3 -0
  43. package/src/core/error-codes.js +73 -0
  44. package/src/core/filesystem.js +18 -3
  45. package/src/core/inspect.js +64 -0
  46. package/src/core/integration-invocation-policy.js +15 -0
  47. package/src/core/integration-resources.js +17 -0
  48. package/src/core/next-action-model.js +11 -1
  49. package/src/core/next-action-phases.js +84 -5
  50. package/src/core/phase.js +9 -1
  51. package/src/core/preflight.js +33 -0
  52. package/src/core/protocol-info.js +15 -0
  53. package/src/core/runtime-context.js +27 -0
  54. package/src/core/schema-validation.js +1 -0
  55. package/src/core/structural-quality/artifacts.js +329 -0
  56. package/src/core/structural-quality/constants.js +67 -0
  57. package/src/core/structural-quality/policy.js +227 -0
  58. package/src/core/structural-quality/provider.js +287 -0
  59. package/src/core/structural-quality/sentrux-mcp.js +477 -0
  60. package/src/core/structural-quality/service.js +1138 -0
  61. package/src/core/structural-quality/source-fingerprint.js +112 -0
  62. package/src/core/structural-quality/status.js +3 -0
  63. package/src/core/task-paths.js +24 -0
  64. package/src/core/templates.js +1 -0
  65. package/src/integration.d.ts +25 -0
  66. package/src/integration.js +14 -0
  67. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/api-feature.json +0 -552
  68. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/authentication-change.json +0 -552
  69. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/documentation-correction.json +0 -558
  70. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/infrastructure-release.json +0 -552
  71. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/novatask-saas-landing-page.json +0 -558
  72. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/small-bug-fix.json +0 -552
  73. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/static-landing-page.json +0 -558
  74. package/benchmarks/execution-profiles/results/aggregate/codex-quality-repeat5-20260831/summary.json +0 -231
  75. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/api-feature.json +0 -552
  76. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/authentication-change.json +0 -552
  77. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/documentation-correction.json +0 -558
  78. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/infrastructure-release.json +0 -552
  79. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/novatask-saas-landing-page.json +0 -558
  80. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/small-bug-fix.json +0 -552
  81. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/static-landing-page.json +0 -558
  82. package/benchmarks/execution-profiles/results/aggregate/codex-repeat5-20260831/summary.json +0 -231
  83. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/api-feature.json +0 -1624
  84. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/authentication-change.json +0 -1619
  85. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/documentation-correction.json +0 -1539
  86. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/infrastructure-release.json +0 -1633
  87. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/novatask-saas-landing-page.json +0 -1634
  88. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/small-bug-fix.json +0 -1726
  89. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/static-landing-page.json +0 -1625
  90. package/benchmarks/execution-profiles/results/aggregate/codex-tail-repeat20-20260831/summary.json +0 -826
  91. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/direct/run-001.json +0 -64
  92. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/direct/run-002.json +0 -64
  93. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/direct/run-003.json +0 -64
  94. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/direct/run-004.json +0 -64
  95. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/direct/run-005.json +0 -64
  96. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopAdaptive/run-001.json +0 -64
  97. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopAdaptive/run-002.json +0 -64
  98. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopAdaptive/run-003.json +0 -64
  99. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopAdaptive/run-004.json +0 -64
  100. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopAdaptive/run-005.json +0 -64
  101. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopBalanced/run-001.json +0 -64
  102. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopBalanced/run-002.json +0 -64
  103. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopBalanced/run-003.json +0 -64
  104. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopBalanced/run-004.json +0 -64
  105. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/api-feature/forgeloopBalanced/run-005.json +0 -64
  106. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/direct/run-001.json +0 -64
  107. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/direct/run-002.json +0 -64
  108. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/direct/run-003.json +0 -64
  109. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/direct/run-004.json +0 -64
  110. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/direct/run-005.json +0 -64
  111. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopAdaptive/run-001.json +0 -64
  112. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopAdaptive/run-002.json +0 -64
  113. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopAdaptive/run-003.json +0 -64
  114. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopAdaptive/run-004.json +0 -64
  115. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopAdaptive/run-005.json +0 -64
  116. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopBalanced/run-001.json +0 -64
  117. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopBalanced/run-002.json +0 -64
  118. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopBalanced/run-003.json +0 -64
  119. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopBalanced/run-004.json +0 -64
  120. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/authentication-change/forgeloopBalanced/run-005.json +0 -64
  121. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/direct/run-001.json +0 -64
  122. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/direct/run-002.json +0 -64
  123. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/direct/run-003.json +0 -64
  124. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/direct/run-004.json +0 -64
  125. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/direct/run-005.json +0 -64
  126. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-001.json +0 -64
  127. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-002.json +0 -64
  128. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-003.json +0 -64
  129. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-004.json +0 -64
  130. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-005.json +0 -64
  131. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopBalanced/run-001.json +0 -64
  132. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopBalanced/run-002.json +0 -64
  133. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopBalanced/run-003.json +0 -64
  134. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopBalanced/run-004.json +0 -64
  135. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/documentation-correction/forgeloopBalanced/run-005.json +0 -64
  136. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/direct/run-001.json +0 -64
  137. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/direct/run-002.json +0 -64
  138. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/direct/run-003.json +0 -64
  139. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/direct/run-004.json +0 -64
  140. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/direct/run-005.json +0 -64
  141. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-001.json +0 -64
  142. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-002.json +0 -64
  143. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-003.json +0 -64
  144. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-004.json +0 -64
  145. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-005.json +0 -64
  146. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-001.json +0 -64
  147. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-002.json +0 -64
  148. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-003.json +0 -64
  149. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-004.json +0 -64
  150. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-005.json +0 -64
  151. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/direct/run-001.json +0 -64
  152. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/direct/run-002.json +0 -64
  153. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/direct/run-003.json +0 -64
  154. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/direct/run-004.json +0 -64
  155. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/direct/run-005.json +0 -64
  156. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-001.json +0 -64
  157. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-002.json +0 -64
  158. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-003.json +0 -64
  159. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-004.json +0 -64
  160. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-005.json +0 -64
  161. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-001.json +0 -64
  162. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-002.json +0 -64
  163. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-003.json +0 -64
  164. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-004.json +0 -64
  165. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-005.json +0 -64
  166. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/direct/run-001.json +0 -64
  167. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/direct/run-002.json +0 -64
  168. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/direct/run-003.json +0 -64
  169. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/direct/run-004.json +0 -64
  170. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/direct/run-005.json +0 -64
  171. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-001.json +0 -64
  172. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-002.json +0 -64
  173. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-003.json +0 -64
  174. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-004.json +0 -64
  175. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-005.json +0 -64
  176. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-001.json +0 -64
  177. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-002.json +0 -64
  178. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-003.json +0 -64
  179. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-004.json +0 -64
  180. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-005.json +0 -64
  181. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/direct/run-001.json +0 -64
  182. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/direct/run-002.json +0 -64
  183. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/direct/run-003.json +0 -64
  184. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/direct/run-004.json +0 -64
  185. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/direct/run-005.json +0 -64
  186. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-001.json +0 -64
  187. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-002.json +0 -64
  188. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-003.json +0 -64
  189. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-004.json +0 -64
  190. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-005.json +0 -64
  191. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopBalanced/run-001.json +0 -64
  192. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopBalanced/run-002.json +0 -64
  193. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopBalanced/run-003.json +0 -64
  194. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopBalanced/run-004.json +0 -64
  195. package/benchmarks/execution-profiles/results/raw/codex-quality-repeat5-20260831/static-landing-page/forgeloopBalanced/run-005.json +0 -64
  196. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/direct/run-001.json +0 -64
  197. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/direct/run-002.json +0 -64
  198. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/direct/run-003.json +0 -64
  199. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/direct/run-004.json +0 -64
  200. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/direct/run-005.json +0 -64
  201. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopAdaptive/run-001.json +0 -64
  202. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopAdaptive/run-002.json +0 -64
  203. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopAdaptive/run-003.json +0 -64
  204. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopAdaptive/run-004.json +0 -64
  205. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopAdaptive/run-005.json +0 -64
  206. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopBalanced/run-001.json +0 -64
  207. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopBalanced/run-002.json +0 -64
  208. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopBalanced/run-003.json +0 -64
  209. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopBalanced/run-004.json +0 -64
  210. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/api-feature/forgeloopBalanced/run-005.json +0 -64
  211. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/direct/run-001.json +0 -64
  212. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/direct/run-002.json +0 -64
  213. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/direct/run-003.json +0 -64
  214. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/direct/run-004.json +0 -64
  215. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/direct/run-005.json +0 -64
  216. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopAdaptive/run-001.json +0 -64
  217. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopAdaptive/run-002.json +0 -64
  218. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopAdaptive/run-003.json +0 -64
  219. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopAdaptive/run-004.json +0 -64
  220. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopAdaptive/run-005.json +0 -64
  221. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopBalanced/run-001.json +0 -64
  222. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopBalanced/run-002.json +0 -64
  223. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopBalanced/run-003.json +0 -64
  224. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopBalanced/run-004.json +0 -64
  225. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/authentication-change/forgeloopBalanced/run-005.json +0 -64
  226. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/direct/run-001.json +0 -64
  227. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/direct/run-002.json +0 -64
  228. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/direct/run-003.json +0 -64
  229. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/direct/run-004.json +0 -64
  230. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/direct/run-005.json +0 -64
  231. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-001.json +0 -64
  232. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-002.json +0 -64
  233. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-003.json +0 -64
  234. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-004.json +0 -64
  235. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopAdaptive/run-005.json +0 -64
  236. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopBalanced/run-001.json +0 -64
  237. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopBalanced/run-002.json +0 -64
  238. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopBalanced/run-003.json +0 -64
  239. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopBalanced/run-004.json +0 -64
  240. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/documentation-correction/forgeloopBalanced/run-005.json +0 -64
  241. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/direct/run-001.json +0 -64
  242. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/direct/run-002.json +0 -64
  243. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/direct/run-003.json +0 -64
  244. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/direct/run-004.json +0 -64
  245. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/direct/run-005.json +0 -64
  246. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-001.json +0 -64
  247. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-002.json +0 -64
  248. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-003.json +0 -64
  249. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-004.json +0 -64
  250. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopAdaptive/run-005.json +0 -64
  251. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-001.json +0 -64
  252. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-002.json +0 -64
  253. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-003.json +0 -64
  254. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-004.json +0 -64
  255. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/infrastructure-release/forgeloopBalanced/run-005.json +0 -64
  256. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/direct/run-001.json +0 -64
  257. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/direct/run-002.json +0 -64
  258. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/direct/run-003.json +0 -64
  259. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/direct/run-004.json +0 -64
  260. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/direct/run-005.json +0 -64
  261. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-001.json +0 -64
  262. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-002.json +0 -64
  263. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-003.json +0 -64
  264. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-004.json +0 -64
  265. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-005.json +0 -64
  266. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-001.json +0 -64
  267. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-002.json +0 -64
  268. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-003.json +0 -64
  269. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-004.json +0 -64
  270. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/novatask-saas-landing-page/forgeloopBalanced/run-005.json +0 -64
  271. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/direct/run-001.json +0 -64
  272. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/direct/run-002.json +0 -64
  273. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/direct/run-003.json +0 -64
  274. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/direct/run-004.json +0 -64
  275. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/direct/run-005.json +0 -64
  276. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-001.json +0 -64
  277. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-002.json +0 -64
  278. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-003.json +0 -64
  279. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-004.json +0 -64
  280. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopAdaptive/run-005.json +0 -64
  281. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-001.json +0 -64
  282. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-002.json +0 -64
  283. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-003.json +0 -64
  284. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-004.json +0 -64
  285. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/small-bug-fix/forgeloopBalanced/run-005.json +0 -64
  286. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/direct/run-001.json +0 -64
  287. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/direct/run-002.json +0 -64
  288. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/direct/run-003.json +0 -64
  289. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/direct/run-004.json +0 -64
  290. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/direct/run-005.json +0 -64
  291. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-001.json +0 -64
  292. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-002.json +0 -64
  293. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-003.json +0 -64
  294. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-004.json +0 -64
  295. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopAdaptive/run-005.json +0 -64
  296. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopBalanced/run-001.json +0 -64
  297. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopBalanced/run-002.json +0 -64
  298. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopBalanced/run-003.json +0 -64
  299. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopBalanced/run-004.json +0 -64
  300. package/benchmarks/execution-profiles/results/raw/codex-repeat5-20260831/static-landing-page/forgeloopBalanced/run-005.json +0 -64
  301. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-001.json +0 -80
  302. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-002.json +0 -80
  303. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-003.json +0 -80
  304. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-004.json +0 -80
  305. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-005.json +0 -80
  306. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-006.json +0 -80
  307. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-007.json +0 -80
  308. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-008.json +0 -80
  309. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-009.json +0 -80
  310. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-010.json +0 -80
  311. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-011.json +0 -80
  312. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-012.json +0 -80
  313. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-013.json +0 -80
  314. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-014.json +0 -80
  315. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-015.json +0 -80
  316. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-016.json +0 -80
  317. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-017.json +0 -80
  318. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-018.json +0 -80
  319. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-019.json +0 -80
  320. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/direct/run-020.json +0 -80
  321. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-001.json +0 -83
  322. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-002.json +0 -83
  323. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-003.json +0 -83
  324. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-004.json +0 -83
  325. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-005.json +0 -83
  326. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-006.json +0 -83
  327. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-007.json +0 -83
  328. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-008.json +0 -83
  329. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-009.json +0 -83
  330. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-010.json +0 -83
  331. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-011.json +0 -83
  332. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-012.json +0 -83
  333. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-013.json +0 -83
  334. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-014.json +0 -83
  335. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-015.json +0 -83
  336. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-016.json +0 -83
  337. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-017.json +0 -83
  338. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-018.json +0 -83
  339. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-019.json +0 -83
  340. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopAdaptive/run-020.json +0 -83
  341. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-001.json +0 -83
  342. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-002.json +0 -83
  343. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-003.json +0 -83
  344. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-004.json +0 -83
  345. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-005.json +0 -83
  346. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-006.json +0 -83
  347. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-007.json +0 -83
  348. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-008.json +0 -83
  349. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-009.json +0 -83
  350. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-010.json +0 -83
  351. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-011.json +0 -83
  352. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-012.json +0 -83
  353. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-013.json +0 -83
  354. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-014.json +0 -83
  355. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-015.json +0 -83
  356. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-016.json +0 -83
  357. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-017.json +0 -83
  358. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-018.json +0 -83
  359. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-019.json +0 -83
  360. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/api-feature/forgeloopBalanced/run-020.json +0 -83
  361. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-001.json +0 -80
  362. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-002.json +0 -80
  363. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-003.json +0 -80
  364. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-004.json +0 -80
  365. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-005.json +0 -80
  366. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-006.json +0 -80
  367. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-007.json +0 -80
  368. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-008.json +0 -80
  369. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-009.json +0 -80
  370. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-010.json +0 -80
  371. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-011.json +0 -80
  372. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-012.json +0 -80
  373. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-013.json +0 -80
  374. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-014.json +0 -80
  375. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-015.json +0 -80
  376. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-016.json +0 -80
  377. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-017.json +0 -80
  378. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-018.json +0 -80
  379. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-019.json +0 -80
  380. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/direct/run-020.json +0 -80
  381. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-001.json +0 -85
  382. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-002.json +0 -85
  383. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-003.json +0 -85
  384. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-004.json +0 -85
  385. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-005.json +0 -85
  386. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-006.json +0 -85
  387. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-007.json +0 -85
  388. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-008.json +0 -85
  389. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-009.json +0 -85
  390. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-010.json +0 -85
  391. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-011.json +0 -85
  392. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-012.json +0 -85
  393. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-013.json +0 -85
  394. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-014.json +0 -85
  395. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-015.json +0 -85
  396. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-016.json +0 -85
  397. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-017.json +0 -85
  398. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-018.json +0 -85
  399. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-019.json +0 -85
  400. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopAdaptive/run-020.json +0 -85
  401. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-001.json +0 -85
  402. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-002.json +0 -85
  403. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-003.json +0 -85
  404. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-004.json +0 -85
  405. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-005.json +0 -85
  406. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-006.json +0 -85
  407. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-007.json +0 -85
  408. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-008.json +0 -85
  409. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-009.json +0 -85
  410. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-010.json +0 -85
  411. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-011.json +0 -85
  412. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-012.json +0 -85
  413. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-013.json +0 -85
  414. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-014.json +0 -85
  415. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-015.json +0 -85
  416. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-016.json +0 -85
  417. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-017.json +0 -85
  418. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-018.json +0 -85
  419. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-019.json +0 -85
  420. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/authentication-change/forgeloopBalanced/run-020.json +0 -85
  421. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-001.json +0 -80
  422. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-002.json +0 -80
  423. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-003.json +0 -80
  424. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-004.json +0 -80
  425. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-005.json +0 -80
  426. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-006.json +0 -80
  427. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-007.json +0 -80
  428. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-008.json +0 -80
  429. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-009.json +0 -80
  430. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-010.json +0 -80
  431. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-011.json +0 -80
  432. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-012.json +0 -80
  433. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-013.json +0 -80
  434. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-014.json +0 -80
  435. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-015.json +0 -80
  436. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-016.json +0 -80
  437. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-017.json +0 -80
  438. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-018.json +0 -80
  439. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-019.json +0 -80
  440. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/direct/run-020.json +0 -80
  441. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-001.json +0 -82
  442. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-002.json +0 -82
  443. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-003.json +0 -82
  444. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-004.json +0 -82
  445. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-005.json +0 -82
  446. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-006.json +0 -82
  447. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-007.json +0 -82
  448. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-008.json +0 -82
  449. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-009.json +0 -82
  450. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-010.json +0 -82
  451. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-011.json +0 -82
  452. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-012.json +0 -82
  453. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-013.json +0 -82
  454. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-014.json +0 -82
  455. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-015.json +0 -82
  456. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-016.json +0 -82
  457. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-017.json +0 -82
  458. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-018.json +0 -82
  459. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-019.json +0 -82
  460. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopAdaptive/run-020.json +0 -82
  461. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-001.json +0 -82
  462. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-002.json +0 -82
  463. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-003.json +0 -82
  464. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-004.json +0 -82
  465. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-005.json +0 -82
  466. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-006.json +0 -82
  467. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-007.json +0 -82
  468. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-008.json +0 -82
  469. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-009.json +0 -82
  470. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-010.json +0 -82
  471. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-011.json +0 -82
  472. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-012.json +0 -82
  473. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-013.json +0 -82
  474. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-014.json +0 -82
  475. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-015.json +0 -82
  476. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-016.json +0 -82
  477. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-017.json +0 -82
  478. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-018.json +0 -82
  479. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-019.json +0 -82
  480. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/documentation-correction/forgeloopBalanced/run-020.json +0 -82
  481. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-001.json +0 -80
  482. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-002.json +0 -80
  483. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-003.json +0 -80
  484. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-004.json +0 -80
  485. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-005.json +0 -80
  486. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-006.json +0 -80
  487. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-007.json +0 -80
  488. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-008.json +0 -80
  489. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-009.json +0 -80
  490. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-010.json +0 -80
  491. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-011.json +0 -80
  492. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-012.json +0 -80
  493. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-013.json +0 -80
  494. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-014.json +0 -80
  495. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-015.json +0 -80
  496. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-016.json +0 -80
  497. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-017.json +0 -80
  498. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-018.json +0 -80
  499. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-019.json +0 -80
  500. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/direct/run-020.json +0 -80
  501. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-001.json +0 -84
  502. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-002.json +0 -84
  503. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-003.json +0 -84
  504. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-004.json +0 -84
  505. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-005.json +0 -84
  506. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-006.json +0 -84
  507. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-007.json +0 -84
  508. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-008.json +0 -84
  509. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-009.json +0 -84
  510. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-010.json +0 -84
  511. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-011.json +0 -84
  512. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-012.json +0 -84
  513. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-013.json +0 -84
  514. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-014.json +0 -84
  515. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-015.json +0 -84
  516. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-016.json +0 -84
  517. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-017.json +0 -84
  518. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-018.json +0 -84
  519. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-019.json +0 -84
  520. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopAdaptive/run-020.json +0 -84
  521. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-001.json +0 -84
  522. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-002.json +0 -84
  523. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-003.json +0 -84
  524. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-004.json +0 -84
  525. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-005.json +0 -84
  526. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-006.json +0 -84
  527. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-007.json +0 -84
  528. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-008.json +0 -84
  529. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-009.json +0 -84
  530. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-010.json +0 -84
  531. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-011.json +0 -84
  532. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-012.json +0 -84
  533. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-013.json +0 -84
  534. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-014.json +0 -84
  535. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-015.json +0 -84
  536. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-016.json +0 -84
  537. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-017.json +0 -84
  538. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-018.json +0 -84
  539. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-019.json +0 -84
  540. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/infrastructure-release/forgeloopBalanced/run-020.json +0 -84
  541. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-001.json +0 -80
  542. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-002.json +0 -80
  543. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-003.json +0 -80
  544. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-004.json +0 -80
  545. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-005.json +0 -80
  546. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-006.json +0 -80
  547. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-007.json +0 -80
  548. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-008.json +0 -80
  549. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-009.json +0 -80
  550. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-010.json +0 -80
  551. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-011.json +0 -80
  552. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-012.json +0 -80
  553. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-013.json +0 -80
  554. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-014.json +0 -80
  555. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-015.json +0 -80
  556. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-016.json +0 -80
  557. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-017.json +0 -80
  558. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-018.json +0 -80
  559. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-019.json +0 -80
  560. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/direct/run-020.json +0 -80
  561. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-001.json +0 -89
  562. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-002.json +0 -89
  563. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-003.json +0 -89
  564. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-004.json +0 -89
  565. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-005.json +0 -89
  566. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-006.json +0 -89
  567. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-007.json +0 -89
  568. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-008.json +0 -89
  569. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-009.json +0 -89
  570. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-010.json +0 -89
  571. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-011.json +0 -89
  572. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-012.json +0 -89
  573. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-013.json +0 -89
  574. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-014.json +0 -89
  575. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-015.json +0 -89
  576. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-016.json +0 -89
  577. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-017.json +0 -89
  578. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-018.json +0 -89
  579. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-019.json +0 -89
  580. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopAdaptive/run-020.json +0 -89
  581. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-001.json +0 -89
  582. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-002.json +0 -89
  583. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-003.json +0 -89
  584. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-004.json +0 -89
  585. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-005.json +0 -89
  586. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-006.json +0 -89
  587. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-007.json +0 -89
  588. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-008.json +0 -89
  589. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-009.json +0 -89
  590. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-010.json +0 -89
  591. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-011.json +0 -89
  592. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-012.json +0 -89
  593. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-013.json +0 -89
  594. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-014.json +0 -89
  595. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-015.json +0 -89
  596. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-016.json +0 -89
  597. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-017.json +0 -89
  598. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-018.json +0 -89
  599. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-019.json +0 -89
  600. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/novatask-saas-landing-page/forgeloopBalanced/run-020.json +0 -89
  601. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-001.json +0 -80
  602. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-002.json +0 -80
  603. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-003.json +0 -80
  604. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-004.json +0 -80
  605. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-005.json +0 -80
  606. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-006.json +0 -80
  607. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-007.json +0 -80
  608. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-008.json +0 -80
  609. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-009.json +0 -80
  610. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-010.json +0 -80
  611. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-011.json +0 -80
  612. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-012.json +0 -80
  613. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-013.json +0 -80
  614. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-014.json +0 -80
  615. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-015.json +0 -80
  616. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-016.json +0 -80
  617. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-017.json +0 -80
  618. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-018.json +0 -80
  619. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-019.json +0 -80
  620. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/direct/run-020.json +0 -80
  621. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-001.json +0 -83
  622. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-002.json +0 -83
  623. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-003.json +0 -83
  624. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-004.json +0 -83
  625. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-005.json +0 -83
  626. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-006.json +0 -83
  627. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-007.json +0 -83
  628. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-008.json +0 -83
  629. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-009.json +0 -83
  630. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-010.json +0 -83
  631. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-011.json +0 -83
  632. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-012.json +0 -83
  633. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-013.json +0 -83
  634. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-014.json +0 -83
  635. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-015.json +0 -83
  636. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-016.json +0 -83
  637. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-017.json +0 -83
  638. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-018.json +0 -83
  639. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-019.json +0 -83
  640. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopAdaptive/run-020.json +0 -83
  641. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-001.json +0 -83
  642. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-002.json +0 -83
  643. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-003.json +0 -83
  644. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-004.json +0 -83
  645. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-005.json +0 -83
  646. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-006.json +0 -83
  647. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-007.json +0 -83
  648. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-008.json +0 -83
  649. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-009.json +0 -83
  650. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-010.json +0 -83
  651. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-011.json +0 -83
  652. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-012.json +0 -83
  653. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-013.json +0 -83
  654. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-014.json +0 -83
  655. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-015.json +0 -83
  656. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-016.json +0 -83
  657. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-017.json +0 -83
  658. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-018.json +0 -83
  659. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-019.json +0 -83
  660. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/small-bug-fix/forgeloopBalanced/run-020.json +0 -83
  661. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-001.json +0 -80
  662. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-002.json +0 -80
  663. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-003.json +0 -80
  664. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-004.json +0 -80
  665. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-005.json +0 -80
  666. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-006.json +0 -80
  667. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-007.json +0 -80
  668. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-008.json +0 -80
  669. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-009.json +0 -80
  670. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-010.json +0 -80
  671. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-011.json +0 -80
  672. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-012.json +0 -80
  673. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-013.json +0 -80
  674. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-014.json +0 -80
  675. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-015.json +0 -80
  676. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-016.json +0 -80
  677. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-017.json +0 -80
  678. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-018.json +0 -80
  679. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-019.json +0 -80
  680. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/direct/run-020.json +0 -80
  681. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-001.json +0 -89
  682. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-002.json +0 -89
  683. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-003.json +0 -89
  684. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-004.json +0 -89
  685. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-005.json +0 -89
  686. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-006.json +0 -89
  687. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-007.json +0 -89
  688. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-008.json +0 -89
  689. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-009.json +0 -89
  690. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-010.json +0 -89
  691. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-011.json +0 -89
  692. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-012.json +0 -89
  693. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-013.json +0 -89
  694. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-014.json +0 -89
  695. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-015.json +0 -89
  696. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-016.json +0 -89
  697. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-017.json +0 -89
  698. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-018.json +0 -89
  699. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-019.json +0 -89
  700. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopAdaptive/run-020.json +0 -89
  701. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-001.json +0 -89
  702. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-002.json +0 -89
  703. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-003.json +0 -89
  704. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-004.json +0 -89
  705. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-005.json +0 -89
  706. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-006.json +0 -89
  707. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-007.json +0 -89
  708. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-008.json +0 -89
  709. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-009.json +0 -89
  710. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-010.json +0 -89
  711. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-011.json +0 -89
  712. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-012.json +0 -89
  713. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-013.json +0 -89
  714. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-014.json +0 -89
  715. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-015.json +0 -89
  716. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-016.json +0 -89
  717. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-017.json +0 -89
  718. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-018.json +0 -89
  719. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-019.json +0 -89
  720. package/benchmarks/execution-profiles/results/raw/codex-tail-repeat20-20260831/static-landing-page/forgeloopBalanced/run-020.json +0 -89
@@ -0,0 +1,477 @@
1
+ import { spawn as nodeSpawn } from "node:child_process";
2
+ import { setTimeout as delay } from "node:timers/promises";
3
+
4
+ import { assertSafePath, ensureWithin, fileExists, readBytes } from "../filesystem.js";
5
+ import { sha256 } from "../manifest.js";
6
+ import {
7
+ E_STRUCTURAL_QUALITY_OUTPUT_LIMIT,
8
+ E_STRUCTURAL_QUALITY_PROVIDER_INVALID,
9
+ E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID,
10
+ E_STRUCTURAL_QUALITY_PROVIDER_TOOL_CONTRACT_INVALID,
11
+ E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE,
12
+ E_STRUCTURAL_QUALITY_PROVIDER_VERSION_UNSUPPORTED,
13
+ E_STRUCTURAL_QUALITY_SCAN_FAILED,
14
+ E_STRUCTURAL_QUALITY_SOURCE_FINGERPRINT_UNAVAILABLE,
15
+ E_STRUCTURAL_QUALITY_TIMEOUT,
16
+ } from "../error-codes.js";
17
+ import {
18
+ STRUCTURAL_QUALITY_DEFAULT_TIMEOUT_MS,
19
+ STRUCTURAL_QUALITY_MAX_OUTPUT_BYTES,
20
+ STRUCTURAL_QUALITY_MAX_TIMEOUT_MS,
21
+ STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
22
+ STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
23
+ STRUCTURAL_QUALITY_SENTRUX_MIN_VERSION,
24
+ STRUCTURAL_QUALITY_SENTRUX_VERIFIED_VERSIONS,
25
+ structuralQualityError,
26
+ } from "./constants.js";
27
+ import { assertStructuralQualityProvider, normalizeStructuralQualityDetection, normalizeStructuralQualitySnapshot } from "./provider.js";
28
+
29
+ const DEFAULT_EXECUTABLE = "sentrux";
30
+ const DEFAULT_ARGS = Object.freeze(["--mcp"]);
31
+ const MCP_PROTOCOL_VERSION = "2024-11-05";
32
+ const SENTRUX_RULES_PATH = ".sentrux/rules.toml";
33
+
34
+ function mcpError(code, message) {
35
+ return structuralQualityError(code, message);
36
+ }
37
+
38
+ function isRecord(value) {
39
+ return value !== null && typeof value === "object" && !Array.isArray(value);
40
+ }
41
+
42
+ function versionParts(value) {
43
+ const match = /^(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/u.exec(String(value ?? ""));
44
+ return match ? match.slice(1).map(Number) : null;
45
+ }
46
+
47
+ function versionAtLeast(actual, minimum) {
48
+ const left = versionParts(actual);
49
+ const right = versionParts(minimum);
50
+ if (!left || !right) return false;
51
+ for (let index = 0; index < 3; index += 1) {
52
+ if (left[index] !== right[index]) return left[index] > right[index];
53
+ }
54
+ return true;
55
+ }
56
+
57
+ export function sentruxCompatibilityForVersion(version) {
58
+ if (!STRUCTURAL_QUALITY_SENTRUX_VERIFIED_VERSIONS.includes(version)) {
59
+ return { supported: false, reasonCode: E_STRUCTURAL_QUALITY_PROVIDER_VERSION_UNSUPPORTED };
60
+ }
61
+ return {
62
+ supported: true,
63
+ measurementModel: STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
64
+ compatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
65
+ };
66
+ }
67
+
68
+ function parseJsonLine(line) {
69
+ try {
70
+ const value = JSON.parse(line);
71
+ if (!isRecord(value)) throw new Error("JSON-RPC message must be an object");
72
+ if (value.jsonrpc !== "2.0") throw new Error("JSON-RPC message must declare jsonrpc 2.0");
73
+ return value;
74
+ } catch (error) {
75
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, `Sentrux emitted malformed JSON-RPC: ${error.message}`);
76
+ }
77
+ }
78
+
79
+ function responseResult(message, requestId) {
80
+ if (message.id !== requestId) {
81
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux JSON-RPC response ID does not match the request");
82
+ }
83
+ if (Object.prototype.hasOwnProperty.call(message, "result") && Object.prototype.hasOwnProperty.call(message, "error")) {
84
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux JSON-RPC response contains both result and error");
85
+ }
86
+ if (Object.prototype.hasOwnProperty.call(message, "error")) {
87
+ const detail = isRecord(message.error) ? message.error.message ?? "provider returned an error" : "provider returned an invalid error";
88
+ const error = mcpError(E_STRUCTURAL_QUALITY_SCAN_FAILED, `Sentrux request failed: ${detail}`);
89
+ error.providerError = message.error;
90
+ throw error;
91
+ }
92
+ if (!Object.prototype.hasOwnProperty.call(message, "result")) {
93
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux JSON-RPC response has no result");
94
+ }
95
+ return message.result;
96
+ }
97
+
98
+ class McpStdioSession {
99
+ constructor({ projectPath, timeoutMs, maxOutputBytes, executable, args, spawnImpl, env }) {
100
+ this.projectPath = projectPath;
101
+ this.timeoutMs = Math.min(timeoutMs ?? STRUCTURAL_QUALITY_DEFAULT_TIMEOUT_MS, STRUCTURAL_QUALITY_MAX_TIMEOUT_MS);
102
+ this.maxOutputBytes = maxOutputBytes ?? STRUCTURAL_QUALITY_MAX_OUTPUT_BYTES;
103
+ this.executable = executable ?? DEFAULT_EXECUTABLE;
104
+ this.args = [...(args ?? DEFAULT_ARGS)];
105
+ this.spawnImpl = spawnImpl ?? nodeSpawn;
106
+ this.env = env;
107
+ this.child = null;
108
+ this.buffer = "";
109
+ this.nextId = 1;
110
+ this.pending = new Map();
111
+ this.outputBytes = 0;
112
+ this.stderrText = "";
113
+ this.stdoutEnded = false;
114
+ this.closed = false;
115
+ this.timeout = null;
116
+ this.protocolError = null;
117
+ }
118
+
119
+ async start() {
120
+ if (!Number.isInteger(this.timeoutMs) || this.timeoutMs < 0 || this.timeoutMs > STRUCTURAL_QUALITY_MAX_TIMEOUT_MS) {
121
+ throw mcpError(E_STRUCTURAL_QUALITY_TIMEOUT, "Sentrux timeout must be a non-negative integer no greater than 300000ms");
122
+ }
123
+ if (!Number.isInteger(this.maxOutputBytes) || this.maxOutputBytes < 1 || this.maxOutputBytes > STRUCTURAL_QUALITY_MAX_OUTPUT_BYTES) {
124
+ throw mcpError(E_STRUCTURAL_QUALITY_OUTPUT_LIMIT, "Sentrux maxOutputBytes must be between 1 and 2097152");
125
+ }
126
+ try {
127
+ this.child = this.spawnImpl(this.executable, this.args, {
128
+ cwd: this.projectPath,
129
+ shell: false,
130
+ stdio: ["pipe", "pipe", "pipe"],
131
+ ...(this.env ? { env: { ...process.env, ...this.env } } : {}),
132
+ });
133
+ } catch (error) {
134
+ throw this.spawnFailure(error);
135
+ }
136
+ if (!this.child || !this.child.stdout || !this.child.stdin || !this.child.stderr) {
137
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux process did not expose piped stdio");
138
+ }
139
+ this.child.stdout.on("data", (chunk) => this.consumeOutput(chunk, false));
140
+ this.child.stderr.on("data", (chunk) => this.consumeOutput(chunk, true));
141
+ this.child.stdout.on("end", () => {
142
+ this.stdoutEnded = true;
143
+ if (this.buffer.trim()) this.fail(mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux ended with an incomplete JSON-RPC line"));
144
+ });
145
+ this.child.on("error", (error) => this.fail(this.spawnFailure(error)));
146
+ this.child.on("close", (code, signal) => {
147
+ this.closed = true;
148
+ if (this.pending.size > 0 && !this.protocolError) {
149
+ this.fail(mcpError(E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE, `Sentrux exited before completing its JSON-RPC response (${code ?? "null"}/${signal ?? "none"})`));
150
+ }
151
+ });
152
+ this.timeout = setTimeout(() => this.fail(mcpError(E_STRUCTURAL_QUALITY_TIMEOUT, `Sentrux exceeded the ${this.timeoutMs}ms timeout`)), this.timeoutMs);
153
+ return this;
154
+ }
155
+
156
+ spawnFailure(error) {
157
+ if (error?.code === "ENOENT") return mcpError(E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE, "Sentrux executable is unavailable on PATH");
158
+ return mcpError(E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE, `Unable to start Sentrux: ${error?.message ?? String(error)}`);
159
+ }
160
+
161
+ consumeOutput(chunk, stderr) {
162
+ const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk));
163
+ this.outputBytes += bytes.byteLength;
164
+ if (this.outputBytes > this.maxOutputBytes) {
165
+ this.fail(mcpError(E_STRUCTURAL_QUALITY_OUTPUT_LIMIT, `Sentrux combined stdout/stderr exceeded ${this.maxOutputBytes} bytes`));
166
+ return;
167
+ }
168
+ if (stderr) {
169
+ this.stderrText = `${this.stderrText}${bytes.toString("utf8")}`.slice(-4096);
170
+ return;
171
+ }
172
+ this.buffer += bytes.toString("utf8");
173
+ while (true) {
174
+ const newline = this.buffer.indexOf("\n");
175
+ if (newline < 0) break;
176
+ const line = this.buffer.slice(0, newline).replace(/\r$/u, "");
177
+ this.buffer = this.buffer.slice(newline + 1);
178
+ if (!line.trim()) continue;
179
+ let message;
180
+ try {
181
+ message = parseJsonLine(line);
182
+ } catch (error) {
183
+ this.fail(error);
184
+ return;
185
+ }
186
+ if (!Object.prototype.hasOwnProperty.call(message, "id")) continue;
187
+ const pending = this.pending.get(message.id);
188
+ if (!pending) {
189
+ this.fail(mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux returned an unexpected or duplicate JSON-RPC response"));
190
+ return;
191
+ }
192
+ this.pending.delete(message.id);
193
+ try {
194
+ pending.resolve(responseResult(message, message.id));
195
+ } catch (error) {
196
+ pending.reject(error);
197
+ }
198
+ }
199
+ }
200
+
201
+ fail(error) {
202
+ if (this.protocolError) return;
203
+ this.protocolError = error;
204
+ for (const pending of this.pending.values()) pending.reject(error);
205
+ this.pending.clear();
206
+ this.terminate();
207
+ }
208
+
209
+ request(method, params = {}) {
210
+ if (this.protocolError || this.closed) return Promise.reject(this.protocolError ?? mcpError(E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE, "Sentrux process is not running"));
211
+ const id = this.nextId;
212
+ this.nextId += 1;
213
+ const message = `${JSON.stringify({ jsonrpc: "2.0", id, method, params })}\n`;
214
+ return new Promise((resolve, reject) => {
215
+ this.pending.set(id, { resolve, reject });
216
+ try {
217
+ this.child.stdin.write(message);
218
+ } catch (error) {
219
+ this.pending.delete(id);
220
+ reject(mcpError(E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE, `Unable to write to Sentrux stdin: ${error.message}`));
221
+ }
222
+ });
223
+ }
224
+
225
+ notify(method, params = {}) {
226
+ if (this.protocolError || this.closed) return;
227
+ try {
228
+ this.child.stdin.write(`${JSON.stringify({ jsonrpc: "2.0", method, params })}\n`);
229
+ } catch {
230
+ // The corresponding request will fail through the process close/error
231
+ // event; notifications have no response to reject.
232
+ }
233
+ }
234
+
235
+ async stop() {
236
+ if (!this.child) return;
237
+ if (this.timeout) clearTimeout(this.timeout);
238
+ try { this.child.stdin.end(); } catch { /* process may already be gone */ }
239
+ await delay(20).catch(() => {});
240
+ if (!this.closed) {
241
+ try { this.child.kill("SIGTERM"); } catch { /* preserve provider result */ }
242
+ await delay(100).catch(() => {});
243
+ }
244
+ if (!this.closed) {
245
+ try { this.child.kill("SIGKILL"); } catch { /* preserve provider result */ }
246
+ }
247
+ }
248
+
249
+ terminate() {
250
+ try { this.child?.kill("SIGTERM"); } catch { /* preserve original error */ }
251
+ }
252
+ }
253
+
254
+ function inspectSentruxToolContract(tools) {
255
+ if (!Array.isArray(tools)) {
256
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux tools/list response has no tools array");
257
+ }
258
+ const scan = tools.find((t) => t?.name === "scan");
259
+ const health = tools.find((t) => t?.name === "health");
260
+ if (!scan || !health) {
261
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux must expose both scan and health MCP tools");
262
+ }
263
+ const scanSchema = scan.inputSchema;
264
+ if (!isRecord(scanSchema)
265
+ || scanSchema.type !== "object"
266
+ || !Array.isArray(scanSchema.required)
267
+ || !scanSchema.required.includes("path")
268
+ || !isRecord(scanSchema.properties)
269
+ || scanSchema.properties.path?.type !== "string") {
270
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_TOOL_CONTRACT_INVALID, "Sentrux scan tool contract must be an object schema requiring a string path property");
271
+ }
272
+ const healthSchema = health.inputSchema;
273
+ if (healthSchema !== undefined && healthSchema !== null
274
+ && (!isRecord(healthSchema) || healthSchema.type !== "object")) {
275
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_TOOL_CONTRACT_INVALID, "Sentrux health tool contract must be an object schema");
276
+ }
277
+ }
278
+
279
+ async function openHandshake(options) {
280
+ const session = await new McpStdioSession(options).start();
281
+ try {
282
+ const initialized = await session.request("initialize", {
283
+ protocolVersion: MCP_PROTOCOL_VERSION,
284
+ capabilities: {},
285
+ clientInfo: { name: "forgeloop", version: "1" },
286
+ });
287
+ const serverInfo = initialized?.serverInfo ?? initialized?.server_info;
288
+ if (!isRecord(serverInfo) || serverInfo.name !== "sentrux" || typeof serverInfo.version !== "string") {
289
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, "Sentrux initialize response has an invalid serverInfo identity");
290
+ }
291
+ if (!versionAtLeast(serverInfo.version, STRUCTURAL_QUALITY_SENTRUX_MIN_VERSION)
292
+ || !sentruxCompatibilityForVersion(serverInfo.version).supported) {
293
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_VERSION_UNSUPPORTED, `Sentrux ${serverInfo.version} is older than the supported ${STRUCTURAL_QUALITY_SENTRUX_MIN_VERSION}`);
294
+ }
295
+ session.notify("notifications/initialized");
296
+ const listed = await session.request("tools/list", {});
297
+ inspectSentruxToolContract(listed?.tools);
298
+ return { session, serverInfo };
299
+ } catch (error) {
300
+ await session.stop();
301
+ throw error;
302
+ }
303
+ }
304
+
305
+ async function callTool(session, name, args = {}) {
306
+ const response = await session.request("tools/call", {
307
+ name,
308
+ arguments: args,
309
+ });
310
+ if (!isRecord(response) || response.isError === true || !Array.isArray(response.content)) {
311
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, `Sentrux ${name} tool returned an invalid MCP result`);
312
+ }
313
+ const textItems = response.content.filter((item) => item?.type === "text");
314
+ if (textItems.length !== 1 || typeof textItems[0].text !== "string") {
315
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, `Sentrux ${name} tool must return exactly one text content item`);
316
+ }
317
+ try {
318
+ const parsed = JSON.parse(textItems[0].text);
319
+ if (!isRecord(parsed)) throw new Error("tool text must contain a JSON object");
320
+ return parsed;
321
+ } catch (error) {
322
+ throw mcpError(E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID, `Sentrux ${name} tool returned malformed JSON text: ${error.message}`);
323
+ }
324
+ }
325
+
326
+ function mergedSnapshot(scan, health, projectPath) {
327
+ const snapshot = {
328
+ ...scan,
329
+ ...(scan.snapshot && isRecord(scan.snapshot) ? scan.snapshot : {}),
330
+ ...(health.snapshot && isRecord(health.snapshot) ? health.snapshot : {}),
331
+ qualitySignal: scan.qualitySignal ?? scan.quality_signal ?? scan.snapshot?.qualitySignal ?? scan.snapshot?.quality_signal
332
+ ?? health.qualitySignal ?? health.quality_signal ?? health.snapshot?.qualitySignal ?? health.snapshot?.quality_signal,
333
+ rootCauses: scan.rootCauses ?? scan.root_causes ?? scan.snapshot?.rootCauses ?? scan.snapshot?.root_causes
334
+ ?? health.rootCauses ?? health.root_causes ?? health.snapshot?.rootCauses ?? health.snapshot?.root_causes,
335
+ statistics: scan.statistics ?? scan.snapshot?.statistics ?? health.statistics ?? health.snapshot?.statistics,
336
+ diagnostics: health.diagnostics ?? scan.diagnostics ?? scan.snapshot?.diagnostics ?? null,
337
+ scan: scan.scan ?? scan,
338
+ };
339
+ if (health.crossModuleEdges !== undefined || health.cross_module_edges !== undefined) {
340
+ snapshot.statistics = {
341
+ ...(snapshot.statistics ?? {}),
342
+ crossModuleEdges: health.crossModuleEdges ?? health.cross_module_edges,
343
+ };
344
+ }
345
+ return normalizeStructuralQualitySnapshot(snapshot, { projectPath });
346
+ }
347
+
348
+ async function sentruxScopeBinding(projectPath) {
349
+ let architectureRulesFingerprint = null;
350
+ if (projectPath) {
351
+ try {
352
+ await assertSafePath(projectPath, SENTRUX_RULES_PATH);
353
+ } catch (error) {
354
+ throw mcpError(E_STRUCTURAL_QUALITY_SOURCE_FINGERPRINT_UNAVAILABLE, `Unable to fingerprint Sentrux configuration: ${error.message}`);
355
+ }
356
+ const rulesAbsolute = ensureWithin(projectPath, SENTRUX_RULES_PATH);
357
+ if (await fileExists(rulesAbsolute)) {
358
+ try {
359
+ architectureRulesFingerprint = sha256(await readBytes(rulesAbsolute));
360
+ } catch (error) {
361
+ throw mcpError(E_STRUCTURAL_QUALITY_SOURCE_FINGERPRINT_UNAVAILABLE, `Unable to fingerprint Sentrux configuration: ${error.message}`);
362
+ }
363
+ }
364
+ }
365
+ return {
366
+ architectureRulesFingerprint,
367
+ measurementCompatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
368
+ };
369
+ }
370
+
371
+ export function createSentruxStructuralQualityProvider({
372
+ projectPath,
373
+ timeoutMs = STRUCTURAL_QUALITY_DEFAULT_TIMEOUT_MS,
374
+ maxOutputBytes = STRUCTURAL_QUALITY_MAX_OUTPUT_BYTES,
375
+ executable = DEFAULT_EXECUTABLE,
376
+ args = DEFAULT_ARGS,
377
+ spawnImpl = nodeSpawn,
378
+ env,
379
+ } = {}) {
380
+ const provider = {
381
+ id: "sentrux",
382
+ async detect(input = {}) {
383
+ const options = {
384
+ projectPath: input.projectPath ?? projectPath,
385
+ timeoutMs: input.timeoutMs ?? timeoutMs,
386
+ maxOutputBytes: input.maxOutputBytes ?? maxOutputBytes,
387
+ executable,
388
+ args,
389
+ spawnImpl,
390
+ env,
391
+ };
392
+ try {
393
+ const { session, serverInfo } = await openHandshake(options);
394
+ await session.stop();
395
+ return normalizeStructuralQualityDetection({
396
+ available: true,
397
+ providerId: "sentrux",
398
+ providerVersion: serverInfo.version,
399
+ transport: "mcp-stdio",
400
+ measurementModel: STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
401
+ compatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
402
+ reasonCode: null,
403
+ });
404
+ } catch (error) {
405
+ return normalizeStructuralQualityDetection({
406
+ available: false,
407
+ providerId: "sentrux",
408
+ providerVersion: error.providerVersion ?? null,
409
+ transport: "mcp-stdio",
410
+ measurementModel: STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
411
+ compatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
412
+ reasonCode: error.code ?? E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE,
413
+ });
414
+ }
415
+ },
416
+ async scopeBinding(input = {}) {
417
+ const resolvedProjectPath = input.projectPath ?? projectPath;
418
+ return sentruxScopeBinding(resolvedProjectPath);
419
+ },
420
+ async scan(input = {}) {
421
+ const resolvedProjectPath = input.projectPath ?? projectPath;
422
+ const options = {
423
+ projectPath: resolvedProjectPath,
424
+ timeoutMs: input.timeoutMs ?? timeoutMs,
425
+ maxOutputBytes: input.maxOutputBytes ?? maxOutputBytes,
426
+ executable,
427
+ args,
428
+ spawnImpl,
429
+ env,
430
+ };
431
+ const { session, serverInfo } = await openHandshake(options);
432
+ try {
433
+ const scanResult = await callTool(session, "scan", { path: resolvedProjectPath });
434
+ const healthResult = await callTool(session, "health", {});
435
+ const providerScopeBinding = await sentruxScopeBinding(resolvedProjectPath);
436
+ return {
437
+ snapshot: mergedSnapshot(scanResult, healthResult, resolvedProjectPath),
438
+ provider: {
439
+ id: "sentrux",
440
+ version: serverInfo.version,
441
+ transport: "mcp-stdio",
442
+ executionMode: "trusted-path-mcp-stdio",
443
+ measurementModel: STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
444
+ compatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
445
+ },
446
+ detection: normalizeStructuralQualityDetection({
447
+ available: true,
448
+ providerId: "sentrux",
449
+ providerVersion: serverInfo.version,
450
+ transport: "mcp-stdio",
451
+ measurementModel: STRUCTURAL_QUALITY_MEASUREMENT_MODEL,
452
+ compatibilityKey: STRUCTURAL_QUALITY_SENTRUX_COMPATIBILITY_KEY,
453
+ reasonCode: null,
454
+ }),
455
+ providerScopeBinding,
456
+ };
457
+ } catch (error) {
458
+ if (error.code === E_STRUCTURAL_QUALITY_TIMEOUT
459
+ || error.code === E_STRUCTURAL_QUALITY_OUTPUT_LIMIT
460
+ || error.code === E_STRUCTURAL_QUALITY_PROVIDER_PROTOCOL_INVALID
461
+ || error.code === E_STRUCTURAL_QUALITY_PROVIDER_TOOL_CONTRACT_INVALID
462
+ || error.code === E_STRUCTURAL_QUALITY_PROVIDER_INVALID
463
+ || error.code === E_STRUCTURAL_QUALITY_PROVIDER_VERSION_UNSUPPORTED
464
+ || error.code === E_STRUCTURAL_QUALITY_PROVIDER_UNAVAILABLE) throw error;
465
+ throw mcpError(E_STRUCTURAL_QUALITY_SCAN_FAILED, error.message);
466
+ } finally {
467
+ await session.stop();
468
+ }
469
+ },
470
+ async observe(input = {}) {
471
+ return this.scan(input);
472
+ },
473
+ };
474
+ return assertStructuralQualityProvider(provider);
475
+ }
476
+
477
+ export { DEFAULT_EXECUTABLE as SENTRUX_EXECUTABLE, DEFAULT_ARGS as SENTRUX_ARGS, SENTRUX_RULES_PATH };