@attalabs/vinaya 0.23.0 → 0.24.1

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 (119) hide show
  1. package/README.md +1 -0
  2. package/aeg-root/enforcement.md +1 -1
  3. package/aeg-root/roles/developer.md +1 -1
  4. package/dist/checks/bin/check-body-bare-digits.js +7 -1
  5. package/dist/checks/bin/check-branch-topology.js +27 -1
  6. package/dist/checks/bin/check-brief-shape.js +7 -1
  7. package/dist/checks/bin/check-changeset-coverage.js +19 -1
  8. package/dist/checks/bin/check-closes-n.js +27 -1
  9. package/dist/checks/bin/check-coherence.js +27 -1
  10. package/dist/checks/bin/check-dead-branch-push.js +7 -1
  11. package/dist/checks/bin/check-dispatch-readiness.js +27 -1
  12. package/dist/checks/bin/check-doc-coverage-push.js +7 -1
  13. package/dist/checks/bin/check-doc-coverage.js +7 -1
  14. package/dist/checks/bin/check-doctrine-no-procedures.js +7 -1
  15. package/dist/checks/bin/check-doctrine-portability.js +7 -1
  16. package/dist/checks/bin/check-evidence-fresh.js +7 -1
  17. package/dist/checks/bin/check-exec-bits.js +7 -1
  18. package/dist/checks/bin/check-first-push-dispatch.js +27 -1
  19. package/dist/checks/bin/check-issue-assignment.js +27 -1
  20. package/dist/checks/bin/check-main-branch-refusal.js +13 -2
  21. package/dist/checks/bin/check-no-disk-state.js +7 -1
  22. package/dist/checks/bin/check-pr-report-density.js +7 -1
  23. package/dist/checks/bin/check-quoted-command.js +38 -12
  24. package/dist/checks/bin/check-reader-resolvable-prose.js +38 -12
  25. package/dist/checks/bin/check-registry-gates.js +8 -2
  26. package/dist/checks/bin/check-retired-vocabulary.js +38 -12
  27. package/dist/checks/bin/check-review-gate.js +7 -1
  28. package/dist/checks/bin/check-single-plan-pr.js +7 -1
  29. package/dist/checks/bin/check-test-plan.js +7 -1
  30. package/dist/checks/bin/check-token-collection-wired.js +7 -1
  31. package/dist/checks/bin/check-token-report.js +7 -1
  32. package/dist/checks/bin/check-workspace-escape.js +17 -3
  33. package/dist/index.js +405 -98
  34. package/package.json +2 -2
  35. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/anchored-region.ts +9 -4
  36. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/blast-radius-domains.ts +7 -1
  37. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/brief-render.ts +462 -0
  38. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/brief-validation.ts +405 -4
  39. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/coherence-checks.ts +19 -0
  40. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/consumer-enumeration.ts +75 -0
  41. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/dispatch-gate.ts +44 -0
  42. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/doctrine-no-procedures.ts +94 -0
  43. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/doctrine-portability.ts +128 -5
  44. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/gate-audience.ts +3 -0
  45. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/index.ts +25 -3
  46. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/parse-token-report.ts +17 -5
  47. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/pr-report-density.ts +116 -0
  48. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/premise-check.ts +35 -0
  49. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/quoted-command.ts +3 -3
  50. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/review-gate.ts +116 -7
  51. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/review-status.ts +200 -0
  52. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/test-plan-gate.ts +25 -12
  53. package/studio-standalone/_node_modules/@attalabs/aeg-core/src/verdict-extraction.ts +70 -11
  54. package/studio-standalone/apps/vinaya-studio/web/.next/BUILD_ID +1 -1
  55. package/studio-standalone/apps/vinaya-studio/web/.next/build-manifest.json +3 -3
  56. package/studio-standalone/apps/vinaya-studio/web/.next/prerender-manifest.json +3 -3
  57. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.html +1 -1
  58. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.rsc +1 -1
  59. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  60. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  61. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  62. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  63. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  64. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_not-found/page/server-reference-manifest.json +2 -2
  65. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  66. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  67. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/api/coherence/route.js.nft.json +1 -1
  68. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/page/server-reference-manifest.json +2 -2
  69. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/page.js.nft.json +1 -1
  70. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/page_client-reference-manifest.js +1 -1
  71. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/backlog/page/server-reference-manifest.json +2 -2
  72. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/backlog/page.js.nft.json +1 -1
  73. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/backlog/page_client-reference-manifest.js +1 -1
  74. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/page/server-reference-manifest.json +2 -2
  75. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/page.js.nft.json +1 -1
  76. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/page_client-reference-manifest.js +1 -1
  77. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/page/server-reference-manifest.json +2 -2
  78. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/page.js.nft.json +1 -1
  79. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/page_client-reference-manifest.js +1 -1
  80. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/page/server-reference-manifest.json +2 -2
  81. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/page.js.nft.json +1 -1
  82. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/page_client-reference-manifest.js +1 -1
  83. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/tasks/[taskId]/page/server-reference-manifest.json +2 -2
  84. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/tasks/[taskId]/page.js.nft.json +1 -1
  85. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/[name]/tranches/[slug]/tasks/[taskId]/page_client-reference-manifest.js +1 -1
  86. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/page/server-reference-manifest.json +2 -2
  87. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/page.js.nft.json +1 -1
  88. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/projects/page_client-reference-manifest.js +1 -1
  89. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/tranches/page/server-reference-manifest.json +2 -2
  90. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/tranches/page.js.nft.json +1 -1
  91. package/studio-standalone/apps/vinaya-studio/web/.next/server/app/studio/tranches/page_client-reference-manifest.js +1 -1
  92. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/[root-of-the-server]__02a-3g8._.js +1 -1
  93. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/1q96_modules_@clerk_nextjs_dist_esm_app-router_client_keyless-creator-reader_0lom2js.js +1 -1
  94. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__0053k9k._.js +1 -1
  95. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__0112h-k._.js +1 -1
  96. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__0o771t1._.js +1 -1
  97. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__0puovz5._.js +1 -1
  98. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__1hs0dcu._.js +1 -1
  99. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/{[root-of-the-server]__1mcitst._.js → [root-of-the-server]__1pndh3_._.js} +1 -1
  100. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/[root-of-the-server]__1wc4-ip._.js +1 -1
  101. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/_03x_w6q._.js +1 -1
  102. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/_0gvm3og._.js +1 -1
  103. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/_0lwxg63._.js +1 -1
  104. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/_1fqw88f._.js +2 -2
  105. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/_1n0cnq-._.js +1 -1
  106. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/apps_vinaya-studio_web_src_app_studio_projects_[name]_tranches_[slug]_05ufo8i._.js +3 -3
  107. package/studio-standalone/apps/vinaya-studio/web/.next/server/chunks/ssr/node_modules_1vo08dj._.js +2 -2
  108. package/studio-standalone/apps/vinaya-studio/web/.next/server/middleware-build-manifest.js +3 -3
  109. package/studio-standalone/apps/vinaya-studio/web/.next/server/pages/500.html +1 -1
  110. package/studio-standalone/apps/vinaya-studio/web/.next/server/server-reference-manifest.js +1 -1
  111. package/studio-standalone/apps/vinaya-studio/web/.next/server/server-reference-manifest.json +3 -3
  112. package/studio-standalone/apps/vinaya-studio/web/.next/static/chunks/{0jer_drkl1e4r.js → 0zebsmmk1bvnb.js} +4 -4
  113. package/studio-standalone/apps/vinaya-studio/web/.next/static/chunks/{20x-t0a0v129z.js → 1uogpj5w2n5ju.js} +1 -1
  114. package/studio-standalone/apps/vinaya-studio/web/.next/static/chunks/{2ou_81ahqw31e.js → 3m1kgax7j2vgs.js} +1 -1
  115. package/studio-standalone/apps/vinaya-studio/web/package.json +2 -2
  116. /package/studio-standalone/_node_modules/@attalabs/vinaya/studio-standalone/_node_modules/@attalabs/vinaya/studio-standalone/_node_modules/@attalabs/{aeg-core → vinaya/studio-standalone/_node_modules/@attalabs/aeg-core}/bin/verify-coherence.ts +0 -0
  117. /package/studio-standalone/apps/vinaya-studio/web/.next/static/{5xy_GA7G5KRuE3HDumIiw → QY2GhiI47-765D9DHGy1I}/_buildManifest.js +0 -0
  118. /package/studio-standalone/apps/vinaya-studio/web/.next/static/{5xy_GA7G5KRuE3HDumIiw → QY2GhiI47-765D9DHGy1I}/_clientMiddlewareManifest.js +0 -0
  119. /package/studio-standalone/apps/vinaya-studio/web/.next/static/{5xy_GA7G5KRuE3HDumIiw → QY2GhiI47-765D9DHGy1I}/_ssgManifest.js +0 -0
@@ -4158,8 +4158,12 @@ function isNewDiskStateFile(path, status) {
4158
4158
  return ANY_DEPTH_TRANCHES_MD.test(path) || TOKENS_FILE.test(path);
4159
4159
  }
4160
4160
  // ../../packages/aeg-core/src/main-branch-refusal.ts
4161
+ function pushesAnyBranchRef(pushRefs) {
4162
+ return pushRefs.split(`
4163
+ `).map((line) => line.trim()).filter((line) => line.length > 0).some((line) => line.split(/\s+/)[2]?.startsWith("refs/heads/") === true);
4164
+ }
4161
4165
  function checkMainBranchRefusal(facts) {
4162
- const { currentSymbolicBranch, defaultBranch } = facts;
4166
+ const { currentSymbolicBranch, defaultBranch, pushRefs = null } = facts;
4163
4167
  if (currentSymbolicBranch === null)
4164
4168
  return null;
4165
4169
  if (defaultBranch === null) {
@@ -4171,6 +4175,8 @@ function checkMainBranchRefusal(facts) {
4171
4175
  };
4172
4176
  }
4173
4177
  if (currentSymbolicBranch === defaultBranch) {
4178
+ if (pushRefs !== null && !pushesAnyBranchRef(pushRefs))
4179
+ return null;
4174
4180
  return {
4175
4181
  reason: "on-default-branch",
4176
4182
  severity: "error",
@@ -4871,6 +4877,9 @@ var CHECK_NAME = "workspace-escape";
4871
4877
  var WORKSPACE_DIRS = ["apps", "packages"];
4872
4878
  var SOURCE_EXTENSIONS = [".ts", ".tsx"];
4873
4879
  var EXCLUDED_DIRS = new Set(["node_modules", "dist", ".turbo", ".next", ".git"]);
4880
+ function isTestFile(path) {
4881
+ return /\.test\.tsx?$/.test(path);
4882
+ }
4874
4883
  function collectAllPaths(dir, out = []) {
4875
4884
  let entries;
4876
4885
  try {
@@ -4897,7 +4906,7 @@ function collectAllPaths(dir, out = []) {
4897
4906
  function main() {
4898
4907
  const allPaths = WORKSPACE_DIRS.flatMap((d) => collectAllPaths(d)).map((p) => p.split("\\").join("/"));
4899
4908
  const knownPaths = new Set(allPaths);
4900
- const sourceFiles = allPaths.filter((p) => SOURCE_EXTENSIONS.some((ext) => p.endsWith(ext))).map((p) => ({ path: p, content: readFileSync3(p, "utf8") }));
4909
+ const sourceFiles = allPaths.filter((p) => SOURCE_EXTENSIONS.some((ext) => p.endsWith(ext))).filter((p) => !isTestFile(p)).map((p) => ({ path: p, content: readFileSync3(p, "utf8") }));
4901
4910
  const findings = findWorkspaceEscapes(sourceFiles, knownPaths, WORKSPACE_DIRS);
4902
4911
  const reportable = findingsInThisDiff(findings);
4903
4912
  console.log(`${CHECK_NAME}: ${sourceFiles.length} source file(s) scanned under ${WORKSPACE_DIRS.join("/")}; ${findings.length} finding(s), ${reportable.length} in this diff`);
@@ -4915,4 +4924,9 @@ function main() {
4915
4924
  }
4916
4925
  process.exit(0);
4917
4926
  }
4918
- main();
4927
+ if (__require.main == __require.module) {
4928
+ main();
4929
+ }
4930
+ export {
4931
+ isTestFile
4932
+ };