@event4u/agent-config 16.2.0 → 16.4.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 (651) hide show
  1. package/.augment-plugin/marketplace.json +3 -3
  2. package/.augment-plugin/plugin.json +1 -1
  3. package/.claude-plugin/marketplace.json +1 -1
  4. package/CHANGELOG.md +337 -234
  5. package/README.md +15 -13
  6. package/agents/templates/.ai-council.yml.example +26 -8
  7. package/dist/agent-src/commands/analyze/inbox.md +11 -8
  8. package/dist/agent-src/commands/analyze/roadmap-repos.md +1 -1
  9. package/dist/agent-src/commands/bug/fix.md +17 -2
  10. package/dist/agent-src/commands/bug/investigate.md +1 -1
  11. package/dist/agent-src/commands/commit/in-chunks.md +40 -31
  12. package/dist/agent-src/commands/commit.md +72 -33
  13. package/dist/agent-src/commands/condense.md +2 -8
  14. package/dist/agent-src/commands/council/debate.md +11 -7
  15. package/dist/agent-src/commands/council/default.md +10 -9
  16. package/dist/agent-src/commands/council.md +1 -1
  17. package/dist/agent-src/commands/estimate-ticket.md +1 -1
  18. package/dist/agent-src/commands/feature/explore.md +3 -3
  19. package/dist/agent-src/commands/feature/plan.md +2 -2
  20. package/dist/agent-src/commands/feature/roadmap.md +1 -1
  21. package/dist/agent-src/commands/fix/ci.md +18 -4
  22. package/dist/agent-src/commands/fix/commit-messages.md +48 -23
  23. package/dist/agent-src/commands/fix/pr-comments.md +3 -6
  24. package/dist/agent-src/commands/implement-ticket.md +4 -4
  25. package/dist/agent-src/commands/jira-ticket.md +1 -1
  26. package/dist/agent-src/commands/memory/add.md +4 -16
  27. package/dist/agent-src/commands/memory/load.md +5 -6
  28. package/dist/agent-src/commands/memory/promote.md +3 -16
  29. package/dist/agent-src/commands/mission/upgrade.md +3 -2
  30. package/dist/agent-src/commands/optimize/agents-dir.md +2 -2
  31. package/dist/agent-src/commands/optimize/deep.md +4 -2
  32. package/dist/agent-src/commands/optimize/rtk.md +4 -26
  33. package/dist/agent-src/commands/pr/create/description-only.md +18 -15
  34. package/dist/agent-src/commands/pr/create.md +42 -34
  35. package/dist/agent-src/commands/pr/merge.md +136 -9
  36. package/dist/agent-src/commands/prepare-for-review.md +13 -11
  37. package/dist/agent-src/commands/project/analyze.md +7 -35
  38. package/dist/agent-src/commands/refine-ticket.md +1 -1
  39. package/dist/agent-src/commands/review/changes.md +14 -19
  40. package/dist/agent-src/commands/roadmap/create.md +1 -1
  41. package/dist/agent-src/commands/roadmap/materialize.md +1 -1
  42. package/dist/agent-src/commands/roadmap/next.md +10 -1
  43. package/dist/agent-src/commands/roadmap/process-full.md +56 -42
  44. package/dist/agent-src/commands/roadmap/resolve-blockers.md +411 -0
  45. package/dist/agent-src/commands/roadmap/triage-parked.md +325 -0
  46. package/dist/agent-src/commands/roadmap.md +18 -4
  47. package/dist/agent-src/commands/tests/create.md +17 -3
  48. package/dist/agent-src/commands/tests/execute.md +22 -5
  49. package/dist/agent-src/commands/worktree/create.md +7 -3
  50. package/dist/agent-src/commands/worktree/verify.md +2 -1
  51. package/dist/agent-src/contexts/authority/decision-revisit-gate-enforcement.md +43 -0
  52. package/dist/agent-src/contexts/communication/rules-auto/design-fidelity-enforcement.md +24 -0
  53. package/dist/agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +5 -3
  54. package/dist/agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +7 -9
  55. package/dist/agent-src/contexts/contracts/command-suggestion-flow.md +8 -6
  56. package/dist/agent-src/contexts/contracts/frugality-charter.md +8 -5
  57. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +7 -7
  58. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +0 -1
  59. package/dist/agent-src/contexts/execution/evidence-discipline.md +2 -2
  60. package/dist/agent-src/contexts/execution/non-interactive-contract.md +5 -8
  61. package/dist/agent-src/contexts/execution/rdp-gate.md +4 -4
  62. package/dist/agent-src/contexts/execution/roadmap-execution-contract.md +9 -8
  63. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +99 -54
  64. package/dist/agent-src/contexts/execution/session-canary-enforcement-history.md +67 -0
  65. package/dist/agent-src/contexts/execution/subagent-routing.md +8 -8
  66. package/dist/agent-src/contexts/execution/subagent-steering.md +6 -4
  67. package/dist/agent-src/contexts/execution/terminal-states.md +2 -2
  68. package/dist/agent-src/contexts/execution/toolchain-resolver.md +95 -7
  69. package/dist/agent-src/contexts/subagent-configuration.md +1 -1
  70. package/dist/agent-src/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  71. package/dist/agent-src/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  72. package/dist/agent-src/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  73. package/dist/agent-src/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  74. package/dist/agent-src/guidelines/agent-infra/layered-settings.md +13 -1
  75. package/dist/agent-src/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  76. package/dist/agent-src/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  77. package/dist/agent-src/guidelines/agent-infra/size-and-scope.md +36 -0
  78. package/dist/agent-src/guidelines/php/git.md +15 -2
  79. package/dist/agent-src/rules/active-remediation.md +1 -2
  80. package/dist/agent-src/rules/analysis-skill-routing.md +0 -1
  81. package/dist/agent-src/rules/architecture.md +0 -1
  82. package/dist/agent-src/rules/artifact-drafting-protocol.md +0 -1
  83. package/dist/agent-src/rules/artifact-engagement-recording.md +0 -1
  84. package/dist/agent-src/rules/augment-edit-discipline.md +0 -1
  85. package/dist/agent-src/rules/autonomous-execution.md +1 -1
  86. package/dist/agent-src/rules/brand-consistency.md +0 -1
  87. package/dist/agent-src/rules/brand-source-of-truth.md +0 -1
  88. package/dist/agent-src/rules/broken-access-control.md +1 -1
  89. package/dist/agent-src/rules/cli-output-handling.md +0 -1
  90. package/dist/agent-src/rules/code-comment-discipline.md +0 -1
  91. package/dist/agent-src/rules/code-provenance.md +0 -1
  92. package/dist/agent-src/rules/command-suggestion-policy.md +1 -1
  93. package/dist/agent-src/rules/commit-conventions.md +1 -2
  94. package/dist/agent-src/rules/communication-through-line.md +1 -2
  95. package/dist/agent-src/rules/content-quoting-floor.md +1 -2
  96. package/dist/agent-src/rules/context-hygiene.md +6 -6
  97. package/dist/agent-src/rules/copilot-routing.md +1 -2
  98. package/dist/agent-src/rules/council-availability.md +4 -4
  99. package/dist/agent-src/rules/cross-source-consistency.md +4 -6
  100. package/dist/agent-src/rules/decision-revisit-gate.md +17 -35
  101. package/dist/agent-src/rules/delegation-policy.md +2 -3
  102. package/dist/agent-src/rules/design-fidelity.md +12 -16
  103. package/dist/agent-src/rules/design-review-after-ui-write.md +3 -3
  104. package/dist/agent-src/rules/devcontainer-routing.md +1 -2
  105. package/dist/agent-src/rules/doc-screenshot-hygiene.md +1 -1
  106. package/dist/agent-src/rules/docker-commands.md +0 -1
  107. package/dist/agent-src/rules/domain-adoption-policy.md +0 -1
  108. package/dist/agent-src/rules/domain-safety-disclaimer.md +1 -1
  109. package/dist/agent-src/rules/domain-safety-pii.md +1 -1
  110. package/dist/agent-src/rules/domain-safety-retention.md +1 -1
  111. package/dist/agent-src/rules/downstream-changes.md +0 -1
  112. package/dist/agent-src/rules/engineering-safety-floor.md +1 -1
  113. package/dist/agent-src/rules/evaluator-independence.md +3 -2
  114. package/dist/agent-src/rules/external-code-graph-interop.md +0 -1
  115. package/dist/agent-src/rules/external-reference-deep-dive.md +0 -1
  116. package/dist/agent-src/rules/fast-path-marker-visibility.md +2 -2
  117. package/dist/agent-src/rules/finance-safety-floor.md +1 -1
  118. package/dist/agent-src/rules/fix-what-you-see.md +6 -32
  119. package/dist/agent-src/rules/framework-neutrality-in-generic-skills.md +0 -1
  120. package/dist/agent-src/rules/git-history-discipline.md +2 -2
  121. package/dist/agent-src/rules/guidelines.md +0 -1
  122. package/dist/agent-src/rules/history-discipline.md +0 -1
  123. package/dist/agent-src/rules/icon-consistency.md +0 -1
  124. package/dist/agent-src/rules/image-likeness-and-rights.md +1 -1
  125. package/dist/agent-src/rules/improve-before-implement.md +0 -1
  126. package/dist/agent-src/rules/invite-challenge.md +0 -1
  127. package/dist/agent-src/rules/laravel-routing.md +1 -2
  128. package/dist/agent-src/rules/laravel-translations.md +0 -1
  129. package/dist/agent-src/rules/legal-safety-floor.md +3 -3
  130. package/dist/agent-src/rules/lethal-trifecta-guard.md +1 -1
  131. package/dist/agent-src/rules/linked-projects-onboarding-gate.md +0 -1
  132. package/dist/agent-src/rules/low-impact-corpus-privacy-floor.md +1 -1
  133. package/dist/agent-src/rules/markdown-safe-codeblocks.md +0 -1
  134. package/dist/agent-src/rules/media-governance-routing.md +13 -17
  135. package/dist/agent-src/rules/media-sync-ground-truth.md +0 -1
  136. package/dist/agent-src/rules/minimal-safe-diff.md +0 -1
  137. package/dist/agent-src/rules/missing-skill-recovery.md +0 -1
  138. package/dist/agent-src/rules/missing-tool-handling.md +0 -1
  139. package/dist/agent-src/rules/model-recommendation.md +0 -1
  140. package/dist/agent-src/rules/neighbour-precedence.md +64 -0
  141. package/dist/agent-src/rules/no-attribution-footers.md +0 -1
  142. package/dist/agent-src/rules/no-decorative-emojis-in-git-surfaces.md +0 -1
  143. package/dist/agent-src/rules/no-pr-progress-comments.md +0 -1
  144. package/dist/agent-src/rules/no-roadmap-references.md +0 -1
  145. package/dist/agent-src/rules/notes-first-reasoning.md +0 -1
  146. package/dist/agent-src/rules/onboarding-gate.md +0 -1
  147. package/dist/agent-src/rules/output-discipline.md +0 -1
  148. package/dist/agent-src/rules/package-ci-checks.md +0 -1
  149. package/dist/agent-src/rules/persona-governance.md +4 -5
  150. package/dist/agent-src/rules/php-coding.md +0 -1
  151. package/dist/agent-src/rules/prefer-enums-over-literals.md +0 -1
  152. package/dist/agent-src/rules/preservation-guard.md +0 -1
  153. package/dist/agent-src/rules/provider-lifecycle-discipline.md +3 -4
  154. package/dist/agent-src/rules/question-not-instruction.md +1 -1
  155. package/dist/agent-src/rules/reviewer-awareness.md +0 -1
  156. package/dist/agent-src/rules/roadmap-ci-steps-policy.md +0 -1
  157. package/dist/agent-src/rules/roadmap-progress-sync.md +4 -7
  158. package/dist/agent-src/rules/role-mode-adherence.md +0 -1
  159. package/dist/agent-src/rules/rule-type-governance.md +0 -1
  160. package/dist/agent-src/rules/runtime-safety.md +1 -1
  161. package/dist/agent-src/rules/scale-discipline.md +0 -1
  162. package/dist/agent-src/rules/secret-vcs-guard.md +1 -1
  163. package/dist/agent-src/rules/security-sensitive-stop.md +3 -3
  164. package/dist/agent-src/rules/self-repair-loop.md +0 -1
  165. package/dist/agent-src/rules/senior-engineering-discipline.md +0 -1
  166. package/dist/agent-src/rules/session-canary.md +7 -62
  167. package/dist/agent-src/rules/settings-ask-protocol.md +6 -6
  168. package/dist/agent-src/rules/size-enforcement.md +0 -1
  169. package/dist/agent-src/rules/skill-improvement-trigger.md +2 -3
  170. package/dist/agent-src/rules/skill-quality.md +0 -1
  171. package/dist/agent-src/rules/slash-command-routing-policy.md +0 -1
  172. package/dist/agent-src/rules/source-confidentiality.md +1 -1
  173. package/dist/agent-src/rules/source-discovery-gate.md +0 -1
  174. package/dist/agent-src/rules/source-of-truth.md +0 -1
  175. package/dist/agent-src/rules/spreadsheet-source-quality.md +1 -2
  176. package/dist/agent-src/rules/strategy-safety-floor.md +1 -1
  177. package/dist/agent-src/rules/symfony-routing.md +1 -2
  178. package/dist/agent-src/rules/think-before-action.md +0 -1
  179. package/dist/agent-src/rules/token-budget-discipline.md +12 -46
  180. package/dist/agent-src/rules/token-efficiency.md +0 -1
  181. package/dist/agent-src/rules/token-optimizer-maintenance.md +0 -1
  182. package/dist/agent-src/rules/tool-safety.md +1 -1
  183. package/dist/agent-src/rules/ui-audit-gate.md +1 -2
  184. package/dist/agent-src/rules/untrusted-input-defense.md +1 -1
  185. package/dist/agent-src/rules/upstream-proposal.md +0 -1
  186. package/dist/agent-src/rules/user-interaction.md +0 -1
  187. package/dist/agent-src/rules/user-interrupt-priority.md +1 -1
  188. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
  189. package/dist/agent-src/scripts/deferral_carry.ts +339 -0
  190. package/dist/agent-src/scripts/gate_budget.ts +47 -23
  191. package/dist/agent-src/scripts/gate_execute.ts +12 -4
  192. package/dist/agent-src/scripts/update_roadmap_progress.ts +4 -1
  193. package/dist/agent-src/skills/ai-council/SKILL.md +7 -4
  194. package/dist/agent-src/skills/ai-council/references/cost-and-redaction.md +21 -11
  195. package/dist/agent-src/skills/ai-council/references/procedure.md +12 -6
  196. package/dist/agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
  197. package/dist/agent-src/skills/api-design/data/manifest.json +2 -2
  198. package/dist/agent-src/skills/api-testing/SKILL.md +17 -0
  199. package/dist/agent-src/skills/bug-analyzer/SKILL.md +1 -1
  200. package/dist/agent-src/skills/code-intelligence/SKILL.md +14 -2
  201. package/dist/agent-src/skills/command-routing/SKILL.md +3 -4
  202. package/dist/agent-src/skills/conventional-commits-writing/SKILL.md +127 -139
  203. package/dist/agent-src/skills/corpus-grounding/ATTRIBUTION.md +39 -0
  204. package/dist/agent-src/skills/corpus-grounding/SKILL.md +8 -2
  205. package/dist/agent-src/skills/database/data/manifest.json +2 -2
  206. package/dist/agent-src/skills/database/data/query-tuning.csv +13 -13
  207. package/dist/agent-src/skills/design-system-capture/SKILL.md +0 -3
  208. package/dist/agent-src/skills/design-system-capture/references/import-procedure.md +1 -1
  209. package/dist/agent-src/skills/estimate-ticket/SKILL.md +1 -1
  210. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +2 -2
  211. package/dist/agent-src/skills/fe-design/SKILL.md +1 -1
  212. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  213. package/dist/agent-src/skills/git-workflow/SKILL.md +44 -44
  214. package/dist/agent-src/skills/git-workflow/references/branch-update.md +312 -0
  215. package/dist/agent-src/skills/git-workflow/references/commit-subject.md +205 -0
  216. package/dist/agent-src/skills/iconography/SKILL.md +1 -1
  217. package/dist/agent-src/skills/jira-integration/SKILL.md +3 -3
  218. package/dist/agent-src/skills/js-library-packaging/SKILL.md +2 -2
  219. package/dist/agent-src/skills/merge-conflicts/SKILL.md +10 -4
  220. package/dist/agent-src/skills/monorepo-workspace/SKILL.md +1 -1
  221. package/dist/agent-src/skills/po-discovery/SKILL.md +1 -1
  222. package/dist/agent-src/skills/quality-tools/SKILL.md +11 -1
  223. package/dist/agent-src/skills/quality-tools/references/go-tools.md +76 -0
  224. package/dist/agent-src/skills/quality-tools/references/python-tools.md +104 -0
  225. package/dist/agent-src/skills/refine-ticket/SKILL.md +4 -4
  226. package/dist/agent-src/skills/review-routing/SKILL.md +2 -2
  227. package/dist/agent-src/skills/roadmap-writing/SKILL.md +2 -2
  228. package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +5 -3
  229. package/dist/agent-src/skills/source-discovery/SKILL.md +1 -1
  230. package/dist/agent-src/skills/storybook-workshop/SKILL.md +3 -3
  231. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +4 -2
  232. package/dist/agent-src/skills/test-case-discovery/SKILL.md +7 -0
  233. package/dist/agent-src/skills/test-driven-development/SKILL.md +17 -0
  234. package/dist/agent-src/skills/test-performance/SKILL.md +19 -1
  235. package/dist/agent-src/skills/testing-anti-patterns/SKILL.md +1 -1
  236. package/dist/agent-src/skills/ui-component-architect/SKILL.md +2 -2
  237. package/dist/agent-src/skills/using-git-worktrees/SKILL.md +1 -1
  238. package/dist/agent-src/skills/verify-repair-loop/SKILL.md +2 -2
  239. package/dist/agent-src/templates/AGENTS.md +1 -1
  240. package/dist/agent-src/templates/agent-settings.md +46 -129
  241. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +3 -3
  242. package/dist/agent-src/templates/command.md +2 -2
  243. package/dist/agent-src/templates/roadmaps.md +6 -1
  244. package/dist/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  245. package/dist/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  246. package/dist/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
  247. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  248. package/dist/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  249. package/dist/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  250. package/dist/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  251. package/dist/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  252. package/dist/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
  253. package/dist/agent-src/templates/skill.md +1 -1
  254. package/dist/cli/registry.js +2 -1
  255. package/dist/cli-delegate/archive_completed_roadmaps.js +92 -12
  256. package/dist/cli-delegate/check_update_banner.js +207 -120
  257. package/dist/cli-delegate/chunk-523HCFYO.js +90 -0
  258. package/dist/cli-delegate/{chunk-FP36SWJD.js → chunk-5GPULQBE.js} +2797 -338
  259. package/dist/cli-delegate/{chunk-IGD6ERX6.js → chunk-6SRJTYJS.js} +42 -176
  260. package/dist/cli-delegate/chunk-6V5FMA3P.js +186 -0
  261. package/dist/cli-delegate/{chunk-M2DPGFZ4.js → chunk-6V6TA25H.js} +22 -152
  262. package/dist/cli-delegate/chunk-6YQC2HLF.js +415 -0
  263. package/dist/cli-delegate/{chunk-E4XIZDIB.js → chunk-7HKRE54K.js} +1 -64
  264. package/dist/cli-delegate/chunk-7IQE3D5S.js +191 -0
  265. package/dist/cli-delegate/{chunk-YJ72UIAK.js → chunk-AED2VQGM.js} +1245 -249
  266. package/dist/cli-delegate/{chunk-7HQ52DHU.js → chunk-AL3RZ22D.js} +1 -1
  267. package/dist/cli-delegate/chunk-DEIV7XP7.js +108 -0
  268. package/dist/cli-delegate/{chunk-DBH4AHDK.js → chunk-ED7KCMLB.js} +9 -11
  269. package/dist/cli-delegate/chunk-F3QDG2GT.js +2569 -0
  270. package/dist/cli-delegate/{chunk-6KFEC3G7.js → chunk-G5VVIZRC.js} +3 -3
  271. package/dist/cli-delegate/{chunk-FC75PGJE.js → chunk-H76PHZBI.js} +149 -61
  272. package/dist/cli-delegate/chunk-IAYTIIQW.js +67 -0
  273. package/dist/cli-delegate/chunk-JQOM7TTM.js +1201 -0
  274. package/dist/cli-delegate/chunk-KB5FZ655.js +208 -0
  275. package/dist/cli-delegate/{chunk-7RQP4UDH.js → chunk-KR6EM23A.js} +235 -1455
  276. package/dist/cli-delegate/{chunk-LTYVIY76.js → chunk-KXXWJTDO.js} +6 -11
  277. package/dist/cli-delegate/{chunk-T7L2QK3K.js → chunk-LQOCRFWT.js} +1 -1
  278. package/dist/cli-delegate/{chunk-6KM6ORRY.js → chunk-MDPPKQCQ.js} +58 -9
  279. package/dist/cli-delegate/{chunk-4XFP2Y3E.js → chunk-MSUL5NYP.js} +5 -5
  280. package/dist/cli-delegate/chunk-OAFSJBHH.js +272 -0
  281. package/dist/cli-delegate/{chunk-4E2W63DA.js → chunk-OKJUIAPS.js} +62 -1
  282. package/dist/cli-delegate/{chunk-QAJS5YWY.js → chunk-PHD7OOLE.js} +2 -1
  283. package/dist/cli-delegate/{chunk-P6ZHP5W2.js → chunk-PWX7CKMD.js} +4 -4
  284. package/dist/cli-delegate/{chunk-NDJLNC6Q.js → chunk-T6BP34WI.js} +1 -0
  285. package/dist/cli-delegate/{chunk-7XGBX6ZH.js → chunk-T7XSJSUQ.js} +1144 -589
  286. package/dist/cli-delegate/chunk-ULQRUR23.js +208 -0
  287. package/dist/cli-delegate/chunk-WQWXGIWB.js +1779 -0
  288. package/dist/cli-delegate/{chunk-RGNIWTEA.js → chunk-XQTPXKFA.js} +1 -1
  289. package/dist/cli-delegate/{chunk-NUHLI2RX.js → chunk-YCU3TIXH.js} +2 -0
  290. package/dist/cli-delegate/chunk-ZBZV2G5R.js +210 -0
  291. package/dist/cli-delegate/{chunk-WGXTVKCQ.js → chunk-ZUZKZYCN.js} +5 -3
  292. package/dist/cli-delegate/cmd_analyze_session.js +223 -43
  293. package/dist/cli-delegate/cmd_brand_status.js +3 -2
  294. package/dist/cli-delegate/cmd_conformance.js +1252 -249
  295. package/dist/cli-delegate/cmd_converge.js +3 -3
  296. package/dist/cli-delegate/cmd_doctor.js +19 -9
  297. package/dist/cli-delegate/cmd_doctor_neighbours.js +30 -0
  298. package/dist/cli-delegate/cmd_explain.js +45 -21
  299. package/dist/cli-delegate/cmd_export.js +13 -10
  300. package/dist/cli-delegate/cmd_fleet.js +3 -3
  301. package/dist/cli-delegate/cmd_git_convention.js +1851 -0
  302. package/dist/cli-delegate/cmd_handoff.js +44 -22
  303. package/dist/cli-delegate/cmd_mcp_available.js +3 -2
  304. package/dist/cli-delegate/cmd_memory_get.js +3 -1
  305. package/dist/cli-delegate/cmd_migrate.js +3 -3
  306. package/dist/cli-delegate/cmd_packs_active.js +5 -4
  307. package/dist/cli-delegate/cmd_preflight.js +6 -6
  308. package/dist/cli-delegate/cmd_prune.js +14 -11
  309. package/dist/cli-delegate/cmd_refresh.js +2 -1
  310. package/dist/cli-delegate/cmd_route_audit.js +10 -8
  311. package/dist/cli-delegate/cmd_route_explain.js +4 -4
  312. package/dist/cli-delegate/cmd_session_recycle.js +10 -7
  313. package/dist/cli-delegate/cmd_settings_check.js +54 -7
  314. package/dist/cli-delegate/cmd_settings_get.js +18 -8
  315. package/dist/cli-delegate/cmd_settings_migrate.js +13 -10
  316. package/dist/cli-delegate/cmd_settings_set.js +4 -4
  317. package/dist/cli-delegate/cmd_sync.js +14 -11
  318. package/dist/cli-delegate/cmd_uninstall.js +15 -12
  319. package/dist/cli-delegate/cmd_update.js +7 -7
  320. package/dist/cli-delegate/cmd_upgrade.js +9 -8
  321. package/dist/cli-delegate/cmd_validate.js +15 -12
  322. package/dist/cli-delegate/cmd_versions.js +5 -5
  323. package/dist/cli-delegate/deferral_carry.js +16 -0
  324. package/dist/cli-delegate/gate_budget.js +1 -1
  325. package/dist/cli-delegate/gate_execute.js +3 -3
  326. package/dist/cli-delegate/roadmap_gates.js +6 -6
  327. package/dist/cli-delegate/update_roadmap_progress.js +1 -1
  328. package/dist/discovery/deprecation-report.md +1 -1
  329. package/dist/discovery/discovery-manifest.json +232 -141
  330. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  331. package/dist/discovery/discovery-manifest.summary.md +3 -3
  332. package/dist/discovery/dormancy-report.md +1 -1
  333. package/dist/discovery/orphan-report.md +1 -1
  334. package/dist/discovery/packs.json +26 -9
  335. package/dist/discovery/trust-report.md +3 -3
  336. package/dist/discovery/workspaces.json +7 -4
  337. package/dist/hooks/dispatch.js +5655 -6623
  338. package/dist/hooks/dispatch.sha256 +1 -1
  339. package/dist/install/claudePathsPlan.js +47 -6
  340. package/dist/install/claudeRuleRewrite.js +7 -0
  341. package/dist/install/emit_host_rules_cli.js +39 -36
  342. package/dist/install/globalRuleScope.js +87 -0
  343. package/dist/install/host_rule_ownership.js +160 -0
  344. package/dist/install/install.mjs +2336 -1249
  345. package/dist/install/installThinLayer.js +289 -0
  346. package/dist/install/installedRuleLinks.js +262 -0
  347. package/dist/install/wizard-plan.js +24 -0
  348. package/dist/mcp/awesome-mcp-servers.row.md +1 -1
  349. package/dist/mcp/mcp-cloudflare-catalogue.json +2 -2
  350. package/dist/mcp/registry-manifest.json +5 -5
  351. package/dist/mcp/server.json +2 -2
  352. package/dist/mcp/server.mjs +36504 -30986
  353. package/dist/router.json +1 -1
  354. package/dist/scripts/_lib/agent_settings.js +26 -120
  355. package/dist/scripts/_lib/claude_settings_hooks.js +10 -8
  356. package/dist/scripts/_lib/compile_time_toggles.js +12 -21
  357. package/dist/scripts/_lib/git_convention.js +232 -0
  358. package/dist/scripts/_lib/global_deploy_inventory.js +730 -0
  359. package/dist/scripts/_lib/installed_layer.js +704 -0
  360. package/dist/scripts/_lib/lean_projection_mode.js +218 -15
  361. package/dist/scripts/_lib/package_root.js +68 -0
  362. package/dist/scripts/_lib/rule_consequence_class.js +45 -0
  363. package/dist/scripts/_lib/rule_injection.js +67 -10
  364. package/dist/scripts/_lib/rule_law_section.js +122 -0
  365. package/dist/scripts/_lib/settings_removed_keys.js +168 -0
  366. package/dist/scripts/_lib/thin_rules.js +535 -0
  367. package/dist/scripts/_lib/windsurf_render.js +60 -0
  368. package/dist/scripts/condense.js +14 -26
  369. package/dist/scripts/project_thin_rules.js +14 -294
  370. package/dist/server/app.js +2 -1
  371. package/dist/server/gitKeysGate.js +105 -0
  372. package/dist/server/routes/settings.js +67 -8
  373. package/dist/server/routes/wizard.js +4 -0
  374. package/dist/server/schemas/settings.js +29 -81
  375. package/dist/shared/skillRanking.js +103 -16
  376. package/dist/ui/assets/{index-Cwq4d0hX.js → index-C3djEJah.js} +2 -2
  377. package/dist/ui/index.html +1 -1
  378. package/docs/MIGRATION.md +72 -1
  379. package/docs/contracts/settings-classes.md +39 -67
  380. package/docs/guidelines/agent-infra/active-remediation-mechanics.md +39 -0
  381. package/docs/guidelines/agent-infra/context-hygiene-mechanics.md +1 -1
  382. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +8 -10
  383. package/docs/guidelines/agent-infra/frontier-reasoning-operating-profile.md +3 -2
  384. package/docs/guidelines/agent-infra/layered-settings.md +13 -1
  385. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
  386. package/docs/guidelines/agent-infra/self-improvement-pipeline.md +10 -3
  387. package/docs/guidelines/agent-infra/size-and-scope.md +36 -0
  388. package/docs/guidelines/php/git.md +15 -2
  389. package/package.json +1 -1
  390. package/src/agent-src/scripts/archive_completed_roadmaps.ts +115 -20
  391. package/src/agent-src/scripts/deferral_carry.ts +339 -0
  392. package/src/agent-src/scripts/gate_budget.ts +47 -23
  393. package/src/agent-src/scripts/gate_execute.ts +12 -4
  394. package/src/agent-src/scripts/update_roadmap_progress.ts +4 -1
  395. package/src/agent-src/templates/AGENTS.md +1 -1
  396. package/src/agent-src/templates/scripts/work_engine/_lib/agent_settings.ts +0 -6
  397. package/src/agent-src/templates/scripts/work_engine/directives/backend/_self_fix.ts +11 -7
  398. package/src/agent-src/templates/scripts/work_engine/directives/ui/apply.ts +48 -6
  399. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/decision_trace.ts +3 -2
  400. package/src/agent-src/templates/scripts/work_engine/hooks/builtin/memory_visibility.ts +2 -1
  401. package/src/agent-src/templates/scripts/work_engine/hooks/settings.ts +0 -6
  402. package/src/agent-src/templates/scripts/work_engine/scoring/decision_engine.ts +9 -12
  403. package/src/agent-src/templates/scripts/work_engine/scoring/memory_visibility.ts +2 -1
  404. package/src/agent-src/templates/scripts/work_engine/stack/runner.ts +774 -109
  405. package/src/config/agent-settings.template.yml +141 -334
  406. package/src/config/agents-paths.yml +16 -0
  407. package/src/config/assurance-capability-registry.json +7 -3
  408. package/src/config/ci-local-parity.yml +3 -0
  409. package/src/config/continuity-surface.json +10 -3
  410. package/src/config/discovery/packs.yml +17 -1
  411. package/src/config/evaluator-budgets.json +23 -10
  412. package/src/config/gate-coverage.yml +138 -3
  413. package/src/config/gate-violation-baselines.json +64 -16
  414. package/src/config/gitignore-block.txt +19 -0
  415. package/src/config/hook-bundle-budget.json +25 -0
  416. package/src/config/hook-token-budget.json +6 -1
  417. package/src/config/host-instruction-limits.json +33 -0
  418. package/src/config/release-gate-locality.yml +2 -1
  419. package/src/config/routing-coverage-seed.json +67 -4
  420. package/src/config/rule-activation-census.json +7 -3
  421. package/src/config/rule-consequence-class.json +161 -0
  422. package/src/config/rule-law-ceilings.json +105 -0
  423. package/src/config/rule-obligations.json +833 -0
  424. package/src/install/claudePathsPlan.ts +46 -4
  425. package/src/install/claudeRuleRewrite.ts +10 -1
  426. package/src/install/emit_host_rules_cli.ts +43 -34
  427. package/src/install/globalRuleScope.ts +109 -0
  428. package/src/install/host_rule_ownership.ts +170 -0
  429. package/src/install/installThinLayer.ts +378 -0
  430. package/src/install/installedRuleLinks.ts +308 -0
  431. package/src/install/wizard-plan.ts +24 -0
  432. package/src/scripts/_cli/cmd_analyze_session.ts +9 -15
  433. package/src/scripts/_cli/cmd_conformance.ts +13 -2
  434. package/src/scripts/_cli/cmd_doctor.ts +33 -81
  435. package/src/scripts/_cli/cmd_doctor_neighbours.ts +426 -0
  436. package/src/scripts/_cli/cmd_explain.ts +72 -14
  437. package/src/scripts/_cli/cmd_git_convention.ts +637 -0
  438. package/src/scripts/_cli/cmd_settings_check.ts +66 -8
  439. package/src/scripts/_cli/cmd_settings_get.ts +18 -3
  440. package/src/scripts/_cli/doctor_execution.ts +72 -1
  441. package/src/scripts/_dispatch.bash +53 -4
  442. package/src/scripts/_lib/agent_settings.ts +26 -124
  443. package/src/scripts/_lib/blocked_by_marker.ts +1 -1
  444. package/src/scripts/_lib/claude_settings_hooks.ts +10 -8
  445. package/src/scripts/_lib/compile_time_toggles.ts +12 -21
  446. package/src/scripts/_lib/dispatch_import_closure.ts +163 -0
  447. package/src/scripts/_lib/estate_offsets.ts +241 -0
  448. package/src/scripts/_lib/exemption_shape.ts +143 -0
  449. package/src/scripts/_lib/fnv.ts +23 -0
  450. package/src/scripts/_lib/foreign_scan.ts +106 -0
  451. package/src/scripts/_lib/git_base_ref.ts +92 -0
  452. package/src/scripts/_lib/git_convention.ts +291 -0
  453. package/src/scripts/_lib/git_convention_carrier.ts +389 -0
  454. package/src/scripts/_lib/git_convention_grammar.ts +246 -0
  455. package/src/scripts/_lib/git_convention_measure.ts +344 -0
  456. package/src/scripts/_lib/gitignore_block.ts +314 -0
  457. package/src/scripts/_lib/global_deploy_inventory.ts +106 -0
  458. package/src/scripts/_lib/graph_feeder_record.ts +437 -0
  459. package/src/scripts/_lib/hook_settings.ts +73 -0
  460. package/src/scripts/_lib/host_capability.ts +40 -19
  461. package/src/scripts/_lib/host_hook_merge.ts +165 -0
  462. package/src/scripts/_lib/installed_layer.ts +963 -0
  463. package/src/scripts/_lib/json_merge.ts +82 -0
  464. package/src/scripts/_lib/json_pointers.ts +93 -11
  465. package/src/scripts/_lib/knowledge_global.ts +14 -1
  466. package/src/scripts/_lib/lean_projection_mode.ts +275 -15
  467. package/src/scripts/_lib/machine_wake.ts +16 -3
  468. package/src/scripts/_lib/module_reach.ts +456 -0
  469. package/src/scripts/_lib/neighbour_census.ts +760 -0
  470. package/src/scripts/_lib/neighbour_contradictions.ts +236 -0
  471. package/src/scripts/_lib/neighbour_scan.ts +122 -0
  472. package/src/scripts/_lib/neighbour_tool_use.ts +187 -0
  473. package/src/scripts/_lib/prompt_shape.ts +46 -0
  474. package/src/scripts/_lib/ratification_artifact.ts +220 -1
  475. package/src/scripts/_lib/ratification_subject.ts +92 -0
  476. package/src/scripts/_lib/release_findings_ingest.ts +15 -7
  477. package/src/scripts/_lib/release_highlights.ts +5 -0
  478. package/src/scripts/_lib/release_migration_gate.ts +19 -3
  479. package/src/scripts/_lib/reserved_name_sweep.ts +73 -0
  480. package/src/scripts/_lib/review_coverage.ts +134 -0
  481. package/src/scripts/_lib/rule_consequence_class.ts +71 -0
  482. package/src/scripts/_lib/rule_injection.ts +130 -10
  483. package/src/scripts/_lib/rule_law_section.ts +147 -0
  484. package/src/scripts/_lib/rule_layer_overlap.ts +58 -0
  485. package/src/scripts/_lib/rule_obligations.ts +205 -0
  486. package/src/scripts/_lib/self_repair.ts +1 -1
  487. package/src/scripts/_lib/settings_removed_keys.ts +173 -0
  488. package/src/scripts/_lib/skill_origin.ts +254 -0
  489. package/src/scripts/_lib/structured_ask.ts +64 -21
  490. package/src/scripts/_lib/test_red_state.ts +5 -0
  491. package/src/scripts/_lib/thin_rules.ts +620 -0
  492. package/src/scripts/_lib/touched_file_quality.ts +570 -0
  493. package/src/scripts/_lib/turn_end_refusals.ts +77 -2
  494. package/src/scripts/_lib/windsurf_render.ts +63 -0
  495. package/src/scripts/_lib/worker_budget.ts +1 -1
  496. package/src/scripts/adr/regenerate_index.ts +16 -1
  497. package/src/scripts/ai_council/cli_call_budget.ts +13 -5
  498. package/src/scripts/ai_council/clients.ts +26 -57
  499. package/src/scripts/ai_council/config.ts +8 -8
  500. package/src/scripts/ai_council/modification_review.ts +100 -0
  501. package/src/scripts/ai_council/modification_review_questions.ts +90 -0
  502. package/src/scripts/ai_council/orchestrator.ts +5 -5
  503. package/src/scripts/ai_council/spend_gate.ts +18 -7
  504. package/src/scripts/ai_council/vendor_defaults.ts +45 -0
  505. package/src/scripts/ai_team/config.ts +11 -16
  506. package/src/scripts/audit_skill_overlap.ts +261 -0
  507. package/src/scripts/audit_user_type_axis.ts +20 -8
  508. package/src/scripts/before_complete_hook.ts +243 -12
  509. package/src/scripts/bench_ab_clone.ts +1 -2
  510. package/src/scripts/bench_concern_spawn_path.ts +129 -0
  511. package/src/scripts/bench_graph_feeder_latency.ts +584 -0
  512. package/src/scripts/bench_touched_file_quality.ts +238 -0
  513. package/src/scripts/check_agent_artifact_location.ts +36 -0
  514. package/src/scripts/check_branch_freshness.ts +147 -24
  515. package/src/scripts/check_enforcement_coverage.ts +130 -0
  516. package/src/scripts/check_enforcement_matrix.ts +377 -20
  517. package/src/scripts/check_estate_count.ts +130 -153
  518. package/src/scripts/check_evaluator_budgets.ts +4 -0
  519. package/src/scripts/check_finding_dispositions.ts +196 -21
  520. package/src/scripts/check_gate_coverage.ts +4 -3
  521. package/src/scripts/check_gate_reachability.ts +48 -1
  522. package/src/scripts/check_generator_sync.ts +48 -0
  523. package/src/scripts/check_hook_bundle_composition.ts +477 -0
  524. package/src/scripts/check_kernel_edit_ratified.ts +132 -14
  525. package/src/scripts/check_memory.ts +7 -1
  526. package/src/scripts/check_pack_size.ts +1 -1
  527. package/src/scripts/check_release_highlights.ts +10 -0
  528. package/src/scripts/check_release_manifest_content.ts +189 -0
  529. package/src/scripts/check_release_pr_shape.ts +38 -15
  530. package/src/scripts/check_standing_rule_delivery.ts +129 -13
  531. package/src/scripts/check_suppression_hygiene.ts +2 -5
  532. package/src/scripts/check_verify_expectation_delta.ts +521 -0
  533. package/src/scripts/ci_settle.ts +42 -5
  534. package/src/scripts/classify_merge_risk.ts +320 -0
  535. package/src/scripts/closure_scan.ts +91 -1
  536. package/src/scripts/code_graph/detect.ts +127 -7
  537. package/src/scripts/code_graph/foreign.ts +194 -0
  538. package/src/scripts/code_graph/query.ts +217 -4
  539. package/src/scripts/code_graph/types.ts +26 -2
  540. package/src/scripts/code_graph/validate.ts +3 -1
  541. package/src/scripts/code_graph/verbs.ts +103 -0
  542. package/src/scripts/command_suggester/settings.ts +8 -108
  543. package/src/scripts/command_suggester/types.ts +4 -5
  544. package/src/scripts/compile_hook_manifest.ts +33 -1
  545. package/src/scripts/condense.ts +14 -27
  546. package/src/scripts/consumer_matrix.ts +102 -0
  547. package/src/scripts/context_hygiene_hook.ts +13 -23
  548. package/src/scripts/cost/preflight.mjs +12 -1
  549. package/src/scripts/council_cli.ts +7 -7
  550. package/src/scripts/dispatch_r2_reviewer.ts +24 -11
  551. package/src/scripts/estate_exemption_shape.ts +202 -0
  552. package/src/scripts/explain_run.ts +8 -13
  553. package/src/scripts/generate_git_convention_grammar.ts +127 -0
  554. package/src/scripts/generate_host_cost_table.ts +21 -4
  555. package/src/scripts/handoff_context_hook.ts +86 -37
  556. package/src/scripts/hook_manifest.json +1 -1
  557. package/src/scripts/hook_manifest.yaml +175 -15
  558. package/src/scripts/hooks/block_config_weakening.ts +115 -7
  559. package/src/scripts/hooks/block_plumbing_writes.ts +37 -5
  560. package/src/scripts/hooks/code_graph_context_hook.ts +252 -23
  561. package/src/scripts/hooks/concern_failure_policy.ts +280 -0
  562. package/src/scripts/hooks/concern_registry.ts +2 -0
  563. package/src/scripts/hooks/delegation_nudge_hook.ts +2 -3
  564. package/src/scripts/hooks/dispatch_hook.ts +52 -52
  565. package/src/scripts/hooks/evidence_independence.ts +12 -4
  566. package/src/scripts/hooks/exit_codes.ts +2 -1
  567. package/src/scripts/hooks/host_lowering.json +1 -1
  568. package/src/scripts/hooks/host_lowering.ts +19 -1
  569. package/src/scripts/hooks/mcp_usage_observation_hook.ts +121 -0
  570. package/src/scripts/hooks/one_question_per_ask_hook.ts +41 -25
  571. package/src/scripts/hooks/payload_stub.ts +10 -1
  572. package/src/scripts/hooks/push_settle_hook.ts +4 -3
  573. package/src/scripts/hooks/rule_inject_hook.ts +795 -60
  574. package/src/scripts/hooks/state_io.ts +8 -4
  575. package/src/scripts/hooks/table_fingerprint.ts +21 -0
  576. package/src/scripts/hooks/telemetry_usage_hook.ts +24 -7
  577. package/src/scripts/hooks/turn_end_gate_hook.ts +85 -0
  578. package/src/scripts/hooks_status.ts +112 -0
  579. package/src/scripts/injection_scan_hook.ts +7 -0
  580. package/src/scripts/install-hooks.sh +42 -14
  581. package/src/scripts/install.ts +78 -215
  582. package/src/scripts/installed_layer_report.ts +103 -0
  583. package/src/scripts/language_mirror_hook.ts +15 -6
  584. package/src/scripts/learning_sidecar.ts +119 -8
  585. package/src/scripts/lint_blocker_citations.ts +198 -0
  586. package/src/scripts/lint_evidence_artifacts.ts +9 -0
  587. package/src/scripts/lint_hook_concern_budget.ts +10 -21
  588. package/src/scripts/lint_hook_manifest.ts +53 -0
  589. package/src/scripts/lint_major_migration_sections.ts +156 -26
  590. package/src/scripts/lint_pack_boundaries.ts +465 -29
  591. package/src/scripts/lint_roadmap_blockers.ts +282 -29
  592. package/src/scripts/lint_roadmap_complexity.ts +4 -2
  593. package/src/scripts/lint_rule_law_section.ts +647 -0
  594. package/src/scripts/lint_rule_skill_pack_reach.ts +17 -0
  595. package/src/scripts/lint_settings_classes.ts +1 -1
  596. package/src/scripts/lint_ticked_unmet_criteria.ts +165 -0
  597. package/src/scripts/lint_workflow_security.ts +173 -6
  598. package/src/scripts/mcp_server/consumer_tool_catalog.json +53 -0
  599. package/src/scripts/mcp_server/graph_tools.ts +72 -3
  600. package/src/scripts/measure_routing_signal.ts +54 -16
  601. package/src/scripts/measure_skill_ranker_baseline.ts +221 -8
  602. package/src/scripts/memory_learn_hook.ts +91 -6
  603. package/src/scripts/model_rule_injection.ts +55 -8
  604. package/src/scripts/onboarding_gate_hook.ts +7 -6
  605. package/src/scripts/print_required_checks.ts +15 -3
  606. package/src/scripts/probe_host_compliance.ts +33 -5
  607. package/src/scripts/probe_turnaround.ts +183 -3
  608. package/src/scripts/project_thin_rules.ts +34 -327
  609. package/src/scripts/ratification_header.ts +77 -0
  610. package/src/scripts/refusal_envelope.ts +138 -0
  611. package/src/scripts/release_publication.ts +29 -3
  612. package/src/scripts/report_dispatch_import_closure.ts +76 -0
  613. package/src/scripts/report_evidence_temperature.ts +657 -0
  614. package/src/scripts/report_installed_rule_links.ts +274 -0
  615. package/src/scripts/report_label_agreement.ts +233 -0
  616. package/src/scripts/report_module_reach.ts +212 -0
  617. package/src/scripts/report_obligation_mechanism.ts +228 -0
  618. package/src/scripts/report_parked_blockers.ts +222 -0
  619. package/src/scripts/report_required_checks_drift.ts +196 -0
  620. package/src/scripts/report_single_token_triggers.ts +277 -0
  621. package/src/scripts/report_skill_ranker_confusion.ts +543 -0
  622. package/src/scripts/report_standing_payload_by_host.ts +188 -15
  623. package/src/scripts/report_verification_record_coverage.ts +306 -0
  624. package/src/scripts/routing_doctor.ts +2 -2
  625. package/src/scripts/rule_activation_census.ts +5 -2
  626. package/src/scripts/rule_trigger_eval.ts +9 -9
  627. package/src/scripts/schemas/agent-settings.schema.json +17 -31
  628. package/src/scripts/schemas/command.schema.json +1 -1
  629. package/src/scripts/schemas/review-findings.schema.json +3 -2
  630. package/src/scripts/schemas/rule.schema.json +5 -0
  631. package/src/scripts/schemas/skill.schema.json +1 -1
  632. package/src/scripts/self_review_gate.ts +101 -9
  633. package/src/scripts/skill_tools/score_skill_relevance.ts +314 -40
  634. package/src/scripts/sweep_skill_ranker_signals.ts +129 -0
  635. package/src/scripts/sync_gitignore.ts +29 -235
  636. package/src/scripts/sync_pr_branch.ts +403 -132
  637. package/src/scripts/trigger_eval_grandfather.json +0 -21
  638. package/src/server/schemas/settings.ts +42 -176
  639. package/src/shared/skillRanking.ts +169 -14
  640. package/dist/cli-delegate/chunk-5R7HOLAF.js +0 -99
  641. package/dist/cli-delegate/chunk-JNMVLWLR.js +0 -4457
  642. package/dist/cli-delegate/chunk-YDPILCOL.js +0 -152
  643. package/src/scripts/_lib/config_chain.ts +0 -477
  644. package/src/scripts/_lib/conformance_report.ts +0 -403
  645. package/src/scripts/_lib/eval_discrimination.ts +0 -95
  646. package/src/scripts/_lib/evaluator_promotion.ts +0 -225
  647. package/src/scripts/_lib/file_slicer.ts +0 -117
  648. package/src/scripts/_lib/legacy_boundary_map.ts +0 -228
  649. package/src/scripts/_lib/minimality_tiebreak.ts +0 -168
  650. package/src/scripts/_lib/overbuild_lens_contract.ts +0 -196
  651. package/src/scripts/_lib/role_split.ts +0 -338
@@ -2,7 +2,7 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  blocker_class,
4
4
  collect
5
- } from "./chunk-QAJS5YWY.js";
5
+ } from "./chunk-PHD7OOLE.js";
6
6
  import {
7
7
  GATE_BUDGET_LEDGER_REL,
8
8
  appendGateBudgetReceipt,
@@ -10,7 +10,7 @@ import {
10
10
  parseBudgetUsd,
11
11
  readGateBudgetCaps,
12
12
  readGateBudgetLedger
13
- } from "./chunk-DBH4AHDK.js";
13
+ } from "./chunk-ED7KCMLB.js";
14
14
  import {
15
15
  __commonJS,
16
16
  __require
@@ -7471,19 +7471,13 @@ var MERGEABLE_KEYS = [
7471
7471
  // weak-host-lift-tiering + token-program-integration verdicts; ADR
7472
7472
  // records the whitelist addition). Wins over rule_loading_tier.
7473
7473
  "discipline_profile",
7474
- "memory.cadence",
7475
7474
  "personal.bot_icon",
7476
7475
  "personal.autonomy",
7477
7476
  // Knowledge-card global cross-project sharing is a USER-GLOBAL setting
7478
7477
  // (ADR-100 / road-to-structure-grounding-v2). Whitelisted so the
7479
7478
  // ~/.event4u/agent-config/agent-settings.yml values are honoured.
7480
7479
  "knowledge.global_sharing.enabled",
7481
- "knowledge.global_sharing.allowed_tiers",
7482
- "knowledge.global_sharing.redaction.enabled",
7483
- "knowledge.global_sharing.redaction.halt_on_trigger",
7484
- "knowledge.global_sharing.auto_promote_threshold",
7485
- "knowledge.global_sharing.freshness.hypothesis_after_days",
7486
- "knowledge.global_sharing.freshness.stale_after_days"
7480
+ "knowledge.global_sharing.allowed_tiers"
7487
7481
  ];
7488
7482
  var _DEFAULTS = {};
7489
7483
  var ANCHOR_AGENT_SETTINGS = "agent-settings";
@@ -7919,7 +7913,7 @@ Nothing has been executed. Re-run with \`--confirm\` to execute it and record th
7919
7913
  code: 1
7920
7914
  };
7921
7915
  }
7922
- if (budgeted !== null) {
7916
+ if (budgeted !== null && budgeted.estimateUsd !== null) {
7923
7917
  appendGateBudgetReceipt(repoRoot, {
7924
7918
  kind: "consumption",
7925
7919
  blocker: id,
@@ -7942,7 +7936,8 @@ Nothing has been executed. Re-run with \`--confirm\` to execute it and record th
7942
7936
  return {
7943
7937
  outcome: "resolved",
7944
7938
  report: `${id} resolved. Ran \`${command}\` (exit 0); evidence appended in ${rel} and the status flipped to resolved ${when}.
7945
- ` + (budgeted === null ? "" : `Receipt appended to ${LEDGER_REL} ($${budgeted.estimateUsd.toFixed(2)} estimated).
7939
+ ` + (budgeted === null ? "" : budgeted.estimateUsd === null ? `No receipt appended to ${LEDGER_REL}: the entry states no USD estimate and no cap is configured, so there is no figure to record.
7940
+ ` : `Receipt appended to ${LEDGER_REL} ($${budgeted.estimateUsd.toFixed(2)} estimated).
7946
7941
  `) + // The dashboard is derived from the file this just rewrote, so it
7947
7942
  // is now stale. Saying so is the same follow-up `renderResumed`
7948
7943
  // already prints for its own file-move suggestion.
@@ -2,7 +2,7 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  resolve_with_fallback,
4
4
  write_target
5
- } from "./chunk-NDJLNC6Q.js";
5
+ } from "./chunk-T6BP34WI.js";
6
6
 
7
7
  // src/scripts/_lib/installed_lock.ts
8
8
  import { randomBytes } from "node:crypto";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OY53J6II.js";
5
5
  import {
6
6
  write_target
7
- } from "./chunk-NDJLNC6Q.js";
7
+ } from "./chunk-T6BP34WI.js";
8
8
  import {
9
9
  __export,
10
10
  __toESM
@@ -97,15 +97,11 @@ function build_claude_hook_matrix(manifest_path) {
97
97
  const claude_events = (platforms["claude"] ?? {}) || {};
98
98
  const aliasesAll = manifest["native_event_aliases"] ?? {};
99
99
  const aliases = (aliasesAll["claude"] ?? {}) || {};
100
- const ac_to_native = {};
101
- for (const [native, ac] of Object.entries(aliases)) {
102
- ac_to_native[String(ac)] = native;
103
- }
104
100
  const matrix = {};
105
- for (const [ac_event, concerns] of Object.entries(claude_events)) {
101
+ for (const [native, ac_raw] of Object.entries(aliases)) {
102
+ const ac_event = String(ac_raw);
103
+ const concerns = claude_events[ac_event];
106
104
  if (!concerns || Array.isArray(concerns) && concerns.length === 0) continue;
107
- const native = ac_to_native[ac_event];
108
- if (native === void 0) continue;
109
105
  const dispatchArgs = `--platform claude --event ${ac_event} --native-event ${native} --project-dir "$CLAUDE_PROJECT_DIR" --min-version ${String(hook_spec)}`;
110
106
  matrix[native] = `B=""; [ -f "$CLAUDE_PROJECT_DIR/node_modules/@event4u/agent-config/dist/hooks/dispatch.js" ] && B="$CLAUDE_PROJECT_DIR/node_modules/@event4u/agent-config/dist/hooks/dispatch.js"; [ -z "$B" ] && [ -f "$CLAUDE_PROJECT_DIR/dist/hooks/dispatch.js" ] && [ -f "$CLAUDE_PROJECT_DIR/src/scripts/hook_manifest.yaml" ] && B="$CLAUDE_PROJECT_DIR/dist/hooks/dispatch.js"; if [ -n "$B" ] && command -v node >/dev/null 2>&1; then exec node "$B" ${dispatchArgs}; fi; BIN="$CLAUDE_PROJECT_DIR/agent-config"; [ -x "$BIN" ] || BIN=agent-config; command -v "$BIN" >/dev/null 2>&1 || exit 0; "$BIN" dispatch:hook ${dispatchArgs}`;
111
107
  }
@@ -219,6 +215,8 @@ __export(global_deploy_inventory_exports, {
219
215
  reap_stale: () => reap_stale,
220
216
  reap_tagged_orphans: () => reap_tagged_orphans,
221
217
  record_deploy: () => record_deploy,
218
+ recorded_absolute_files: () => recorded_absolute_files,
219
+ recorded_rel_files: () => recorded_rel_files,
222
220
  save_inventory: () => save_inventory
223
221
  });
224
222
  import { randomBytes } from "node:crypto";
@@ -237,6 +235,14 @@ function expanduser(p) {
237
235
  }
238
236
  return p;
239
237
  }
238
+ function expanduser_at(p, home) {
239
+ if (home === void 0 || home === null || home === "") return expanduser(p);
240
+ if (p === "~") return home;
241
+ if (p.startsWith("~/") || process.platform === "win32" && p.startsWith("~\\")) {
242
+ return path2.join(home, p.slice(2));
243
+ }
244
+ return p;
245
+ }
240
246
  function resolve_path(p) {
241
247
  try {
242
248
  return fs2.realpathSync(p);
@@ -633,6 +639,45 @@ function difference(prev, current) {
633
639
  }
634
640
  return out;
635
641
  }
642
+ function recorded_rel_files(tool_id, anchor, inventory) {
643
+ const inv = inventory ?? load_inventory();
644
+ const tools = inv["tools"] ?? {};
645
+ const entry = tools[tool_id];
646
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
647
+ return /* @__PURE__ */ new Set();
648
+ }
649
+ const e = entry;
650
+ const recorded_anchor = e["anchor"];
651
+ const files = e["files"];
652
+ if (typeof recorded_anchor !== "string" || !Array.isArray(files)) {
653
+ return /* @__PURE__ */ new Set();
654
+ }
655
+ if (resolve_path(expanduser(recorded_anchor)) !== resolve_path(expanduser(anchor))) {
656
+ return /* @__PURE__ */ new Set();
657
+ }
658
+ return new Set(files.filter((f) => typeof f === "string"));
659
+ }
660
+ function recorded_absolute_files(inventory, home) {
661
+ const inv = inventory ?? load_inventory();
662
+ const tools = inv["tools"] ?? {};
663
+ const out = /* @__PURE__ */ new Set();
664
+ if (typeof tools !== "object" || tools === null || Array.isArray(tools)) return out;
665
+ for (const entry of Object.values(tools)) {
666
+ if (typeof entry !== "object" || entry === null || Array.isArray(entry)) continue;
667
+ const e = entry;
668
+ const anchor = e["anchor"];
669
+ const files = e["files"];
670
+ if (typeof anchor !== "string" || !Array.isArray(files)) continue;
671
+ const expanded = expanduser_at(anchor, home);
672
+ for (const rel of files) {
673
+ if (typeof rel !== "string") continue;
674
+ const lexical = path2.resolve(expanded, rel);
675
+ out.add(lexical);
676
+ out.add(resolve_path(lexical));
677
+ }
678
+ }
679
+ return out;
680
+ }
636
681
  function sorted_strings(items) {
637
682
  return items.filter((i) => typeof i === "string").sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
638
683
  }
@@ -685,7 +730,7 @@ function normalizeHostManifest(input) {
685
730
  };
686
731
  }
687
732
  var HOST_CAPABILITY_REGISTRY = {
688
- claude: { subagent_spawn: true, parallel_spawn: true, structured_ask: false }
733
+ claude: { subagent_spawn: true, parallel_spawn: true, structured_ask: true }
689
734
  };
690
735
  function resolveHostCapabilities(hostId, override) {
691
736
  if (override !== void 0 && override !== null && typeof override === "object" && !Array.isArray(override)) {
@@ -812,6 +857,8 @@ export {
812
857
  build_claude_hook_matrix,
813
858
  ensure_managed_hooks,
814
859
  remove_managed_hooks,
860
+ INVENTORY_BASENAME,
861
+ inventory_path,
815
862
  load_inventory,
816
863
  save_inventory,
817
864
  expected_deploy_files,
@@ -819,6 +866,8 @@ export {
819
866
  reap_tagged_orphans,
820
867
  record_deploy,
821
868
  is_ancestor,
869
+ recorded_rel_files,
870
+ recorded_absolute_files,
822
871
  global_deploy_inventory_exports,
823
872
  TOOL_TO_HOST,
824
873
  residualReport,
@@ -3,18 +3,18 @@ import {
3
3
  pruneAgedRefusalState,
4
4
  readSessionCounts,
5
5
  statePathFor
6
- } from "./chunk-YJ72UIAK.js";
7
- import {
8
- readHookStdin
9
- } from "./chunk-F7DQWYR5.js";
6
+ } from "./chunk-AED2VQGM.js";
10
7
  import {
11
8
  current_branch,
12
9
  git_common_dir,
13
10
  git_dir
14
- } from "./chunk-E4XIZDIB.js";
11
+ } from "./chunk-IAYTIIQW.js";
15
12
  import {
16
13
  write_atomic
17
14
  } from "./chunk-MWRD5YOH.js";
15
+ import {
16
+ readHookStdin
17
+ } from "./chunk-F7DQWYR5.js";
18
18
 
19
19
  // src/scripts/_lib/envelope_grounding.ts
20
20
  import { execFileSync } from "node:child_process";
@@ -0,0 +1,272 @@
1
+ import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
+
3
+ // src/scripts/_lib/cc_transcript.ts
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import { homedir } from "node:os";
7
+ var DEFAULT_PROJECTS_ROOT = path.join(homedir(), ".claude", "projects");
8
+ function projectStoreSlug(cwd) {
9
+ return cwd.replace(/[^A-Za-z0-9-]/g, "-");
10
+ }
11
+ function billableInputTokens(u) {
12
+ return u.input_tokens + u.cache_read_input_tokens + u.cache_creation_input_tokens;
13
+ }
14
+ function weightedInputUnits(u) {
15
+ const knownSplit = u.ephemeral_5m_input_tokens + u.ephemeral_1h_input_tokens;
16
+ const unaccounted = Math.max(0, u.cache_creation_input_tokens - knownSplit);
17
+ return u.input_tokens * 1 + u.cache_read_input_tokens * 0.1 + (u.ephemeral_5m_input_tokens + unaccounted) * 1.25 + u.ephemeral_1h_input_tokens * 2;
18
+ }
19
+ function numOr0(value) {
20
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
21
+ }
22
+ function toTokenCounts(raw) {
23
+ const cc = raw?.cache_creation ?? {};
24
+ return {
25
+ input_tokens: numOr0(raw?.input_tokens),
26
+ cache_read_input_tokens: numOr0(raw?.cache_read_input_tokens),
27
+ cache_creation_input_tokens: numOr0(raw?.cache_creation_input_tokens),
28
+ output_tokens: numOr0(raw?.output_tokens),
29
+ ephemeral_5m_input_tokens: numOr0(cc.ephemeral_5m_input_tokens),
30
+ ephemeral_1h_input_tokens: numOr0(cc.ephemeral_1h_input_tokens)
31
+ };
32
+ }
33
+ function measureContentBytes(raw) {
34
+ const content = raw.message?.content;
35
+ if (content === void 0 || content === null) return null;
36
+ if (typeof content === "string") return Buffer.byteLength(content, "utf8");
37
+ try {
38
+ return Buffer.byteLength(JSON.stringify(content), "utf8");
39
+ } catch {
40
+ return null;
41
+ }
42
+ }
43
+ function classifyBucket(raw) {
44
+ const hasAgentId = typeof raw.agentId === "string" && raw.agentId.length > 0;
45
+ return hasAgentId || raw.isSidechain === true ? "subagent" : "main";
46
+ }
47
+ function dedupKey(raw) {
48
+ const id = typeof raw.message?.id === "string" ? raw.message.id : "";
49
+ const reqId = typeof raw.requestId === "string" ? raw.requestId : "";
50
+ return `${id}\0${reqId}`;
51
+ }
52
+ function parseLine(line) {
53
+ if (line.trim().length === 0) return null;
54
+ try {
55
+ return JSON.parse(line);
56
+ } catch {
57
+ return null;
58
+ }
59
+ }
60
+ function listTranscriptFiles(opts = {}) {
61
+ const root = opts.root ?? DEFAULT_PROJECTS_ROOT;
62
+ const base = opts.projectDir ? path.isAbsolute(opts.projectDir) ? opts.projectDir : path.join(root, opts.projectDir) : root;
63
+ if (!fs.existsSync(base)) return [];
64
+ const cutoffMs = opts.maxAgeDays !== void 0 ? (opts.now ?? /* @__PURE__ */ new Date()).getTime() - opts.maxAgeDays * 24 * 60 * 60 * 1e3 : null;
65
+ const out = [];
66
+ const stack = [base];
67
+ while (stack.length > 0) {
68
+ const dir = stack.pop();
69
+ let entries;
70
+ try {
71
+ entries = fs.readdirSync(dir, { withFileTypes: true });
72
+ } catch {
73
+ continue;
74
+ }
75
+ for (const entry of entries) {
76
+ const full = path.join(dir, entry.name);
77
+ if (entry.isDirectory()) {
78
+ stack.push(full);
79
+ continue;
80
+ }
81
+ if (!entry.isFile() || !entry.name.endsWith(".jsonl")) continue;
82
+ if (cutoffMs !== null) {
83
+ let mtimeMs;
84
+ try {
85
+ mtimeMs = fs.statSync(full).mtimeMs;
86
+ } catch {
87
+ continue;
88
+ }
89
+ if (mtimeMs < cutoffMs) continue;
90
+ }
91
+ out.push(full);
92
+ }
93
+ }
94
+ return out.sort();
95
+ }
96
+ function scanTranscripts(opts = {}) {
97
+ const files = listTranscriptFiles(opts);
98
+ const seen = /* @__PURE__ */ new Set();
99
+ const records = [];
100
+ let totalSeen = 0;
101
+ for (const file of files) {
102
+ let text;
103
+ try {
104
+ text = fs.readFileSync(file, "utf-8");
105
+ } catch {
106
+ continue;
107
+ }
108
+ for (const line of text.split("\n")) {
109
+ const raw = parseLine(line);
110
+ if (!raw || raw.type !== "assistant" || !raw.message?.usage) continue;
111
+ totalSeen += 1;
112
+ const key = dedupKey(raw);
113
+ if (seen.has(key)) continue;
114
+ seen.add(key);
115
+ records.push({
116
+ bucket: classifyBucket(raw),
117
+ agentId: typeof raw.agentId === "string" ? raw.agentId : null,
118
+ model: typeof raw.message.model === "string" ? raw.message.model : "unknown",
119
+ timestamp: typeof raw.timestamp === "string" ? raw.timestamp : null,
120
+ usage: toTokenCounts(raw.message.usage),
121
+ content_bytes: opts.measureBytes === true ? measureContentBytes(raw) : null
122
+ });
123
+ }
124
+ }
125
+ const dedupedCount = records.length;
126
+ return {
127
+ records,
128
+ totalSeen,
129
+ dedupedCount,
130
+ dedup_ratio: totalSeen > 0 ? (totalSeen - dedupedCount) / totalSeen : 0
131
+ };
132
+ }
133
+ function measureBytesPerToken(records) {
134
+ let bytes = 0;
135
+ let tokens = 0;
136
+ let n = 0;
137
+ for (const rec of records) {
138
+ if (rec.content_bytes === null || rec.usage.output_tokens <= 0) continue;
139
+ bytes += rec.content_bytes;
140
+ tokens += rec.usage.output_tokens;
141
+ n += 1;
142
+ }
143
+ if (n === 0 || tokens <= 0) return null;
144
+ return {
145
+ basis: "measured",
146
+ content_bytes: bytes,
147
+ output_tokens: tokens,
148
+ bytes_per_token: bytes / tokens,
149
+ records: n
150
+ };
151
+ }
152
+ function derivedBytes(tokens, factor) {
153
+ if (factor === null) return null;
154
+ return {
155
+ basis: "derived",
156
+ tokens,
157
+ factor,
158
+ bytes: Math.round(tokens * factor.bytes_per_token)
159
+ };
160
+ }
161
+ function emptyAggregate(bucket) {
162
+ return {
163
+ bucket,
164
+ calls: 0,
165
+ input_tokens: 0,
166
+ cache_read_input_tokens: 0,
167
+ cache_creation_input_tokens: 0,
168
+ output_tokens: 0,
169
+ ephemeral_5m_input_tokens: 0,
170
+ ephemeral_1h_input_tokens: 0,
171
+ read_share: 0,
172
+ weighted_input_units: 0
173
+ };
174
+ }
175
+ function aggregateByBucket(records) {
176
+ const buckets = {
177
+ main: emptyAggregate("main"),
178
+ subagent: emptyAggregate("subagent")
179
+ };
180
+ for (const rec of records) {
181
+ const agg = buckets[rec.bucket];
182
+ agg.calls += 1;
183
+ agg.input_tokens += rec.usage.input_tokens;
184
+ agg.cache_read_input_tokens += rec.usage.cache_read_input_tokens;
185
+ agg.cache_creation_input_tokens += rec.usage.cache_creation_input_tokens;
186
+ agg.output_tokens += rec.usage.output_tokens;
187
+ agg.ephemeral_5m_input_tokens += rec.usage.ephemeral_5m_input_tokens;
188
+ agg.ephemeral_1h_input_tokens += rec.usage.ephemeral_1h_input_tokens;
189
+ }
190
+ for (const bucket of Object.values(buckets)) {
191
+ const billable = billableInputTokens(bucket);
192
+ bucket.read_share = billable > 0 ? bucket.cache_read_input_tokens / billable : 0;
193
+ bucket.weighted_input_units = weightedInputUnits(bucket);
194
+ }
195
+ return buckets;
196
+ }
197
+
198
+ // src/scripts/_lib/spawn_env.ts
199
+ var DENY_EXACT = /* @__PURE__ */ new Set([
200
+ // dynamic loader
201
+ "LD_PRELOAD",
202
+ "LD_LIBRARY_PATH",
203
+ "LD_AUDIT",
204
+ "DYLD_INSERT_LIBRARIES",
205
+ "DYLD_LIBRARY_PATH",
206
+ "DYLD_FRAMEWORK_PATH",
207
+ "GCONV_PATH",
208
+ // git command-injection
209
+ "GIT_EXTERNAL_DIFF",
210
+ "GIT_SSH",
211
+ "GIT_SSH_COMMAND",
212
+ "GIT_PROXY_COMMAND",
213
+ "GIT_PAGER",
214
+ "PAGER",
215
+ // git config-injection: GIT_ALTERNATE_OBJECT_DIRECTORIES can point git at
216
+ // attacker-controlled object stores; the GIT_CONFIG* family is handled by
217
+ // prefix below (it is a general arbitrary-config-injection primitive).
218
+ "GIT_ALTERNATE_OBJECT_DIRECTORIES",
219
+ // git path-redirection: GIT_DIR / GIT_INDEX_FILE / GIT_NAMESPACE point a
220
+ // child's git at an attacker-controlled repo, index file, or ref namespace
221
+ // — ordinary git ops then read and write attacker state (low severity,
222
+ // same family as GIT_ALTERNATE_OBJECT_DIRECTORIES above).
223
+ "GIT_DIR",
224
+ "GIT_INDEX_FILE",
225
+ "GIT_NAMESPACE",
226
+ // resolver hijack: HOSTALIASES remaps hostnames via an attacker file,
227
+ // redirecting any network fetch the child performs (CWE-427-adjacent).
228
+ "HOSTALIASES",
229
+ // runtime auto-exec hooks
230
+ "NODE_OPTIONS",
231
+ "BASH_ENV",
232
+ "ENV",
233
+ "PYTHONPATH",
234
+ "PYTHONSTARTUP",
235
+ "PYTHONINSPECT",
236
+ "PERL5OPT",
237
+ "PERL5LIB",
238
+ "RUBYOPT",
239
+ // shell field-splitting
240
+ "IFS"
241
+ ]);
242
+ function isDeniedByFamily(name) {
243
+ if (name.startsWith("LD_") || name.startsWith("DYLD_")) return true;
244
+ if (name.startsWith("GIT_") && name.endsWith("_COMMAND")) return true;
245
+ if (name === "GIT_CONFIG" || name.startsWith("GIT_CONFIG_")) return true;
246
+ return false;
247
+ }
248
+ function hardenedSpawnEnv(overrides = {}) {
249
+ const out = {};
250
+ for (const [key, value] of Object.entries(process.env)) {
251
+ if (value === void 0) continue;
252
+ if (DENY_EXACT.has(key)) continue;
253
+ if (isDeniedByFamily(key)) continue;
254
+ out[key] = value;
255
+ }
256
+ for (const [key, value] of Object.entries(overrides)) {
257
+ out[key] = value;
258
+ }
259
+ return out;
260
+ }
261
+
262
+ export {
263
+ DEFAULT_PROJECTS_ROOT,
264
+ projectStoreSlug,
265
+ billableInputTokens,
266
+ weightedInputUnits,
267
+ scanTranscripts,
268
+ measureBytesPerToken,
269
+ derivedBytes,
270
+ aggregateByBucket,
271
+ hardenedSpawnEnv
272
+ };
@@ -2,6 +2,12 @@ import { createRequire as __acCreateRequire } from 'node:module'; const require
2
2
  import {
3
3
  write_atomic
4
4
  } from "./chunk-MWRD5YOH.js";
5
+ import {
6
+ require_dist
7
+ } from "./chunk-OY53J6II.js";
8
+ import {
9
+ __toESM
10
+ } from "./chunk-J55WI3RR.js";
5
11
 
6
12
  // src/scripts/_lib/installed_tools.ts
7
13
  import * as fs from "node:fs";
@@ -324,6 +330,57 @@ function _today() {
324
330
  return (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
325
331
  }
326
332
 
333
+ // src/install/recordedOwnership.ts
334
+ var YAML = __toESM(require_dist(), 1);
335
+ import { existsSync, readFileSync as readFileSync2 } from "node:fs";
336
+ import { homedir as homedir2 } from "node:os";
337
+ import { isAbsolute, join as join2, resolve } from "node:path";
338
+ var NO_RECORDED_HASHES = /* @__PURE__ */ new Map();
339
+ function classifyOwnership(recordedSha256, onDiskSha256) {
340
+ if (recordedSha256 === void 0 || recordedSha256 === null) return "unknown";
341
+ if (onDiskSha256 === null) return "unknown";
342
+ return recordedSha256 === onDiskSha256 ? "recorded-unchanged" : "recorded-modified";
343
+ }
344
+ function readRecordedHashes(manifestPath, projectRoot) {
345
+ if (!existsSync(manifestPath)) return NO_RECORDED_HASHES;
346
+ let doc;
347
+ try {
348
+ doc = YAML.parse(readFileSync2(manifestPath, "utf8"));
349
+ } catch {
350
+ return NO_RECORDED_HASHES;
351
+ }
352
+ if (doc === null || typeof doc !== "object" || Array.isArray(doc)) return NO_RECORDED_HASHES;
353
+ const tools = doc["tools"];
354
+ if (!Array.isArray(tools)) return NO_RECORDED_HASHES;
355
+ const out = /* @__PURE__ */ new Map();
356
+ for (const tool of tools) {
357
+ if (tool === null || typeof tool !== "object" || Array.isArray(tool)) continue;
358
+ const files = tool["files"];
359
+ if (!Array.isArray(files)) continue;
360
+ for (const entry of files) {
361
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) continue;
362
+ const rec = entry;
363
+ const raw = rec["path"];
364
+ if (typeof raw !== "string" || raw.length === 0) continue;
365
+ const sha = rec["sha256"];
366
+ const expanded = expanduser2(raw);
367
+ const target = isAbsolute(expanded) ? resolve(expanded) : resolve(projectRoot, expanded);
368
+ out.set(target, typeof sha === "string" && sha.length > 0 ? sha : null);
369
+ }
370
+ }
371
+ return out;
372
+ }
373
+ function expanduser2(p) {
374
+ if (p === "~") return homedir2();
375
+ if (p.startsWith("~/") || process.platform === "win32" && p.startsWith("~\\")) {
376
+ return join2(homedir2(), p.slice(2));
377
+ }
378
+ return p;
379
+ }
380
+ function recordedHashesForRoot(root, env) {
381
+ return readRecordedHashes(manifest_path(root, env), root);
382
+ }
383
+
327
384
  export {
328
385
  SCHEMA_VERSIONS_SUPPORTED,
329
386
  DEFAULT_DEPLOY_ROOTS,
@@ -331,5 +388,9 @@ export {
331
388
  read_manifest,
332
389
  write_manifest,
333
390
  ScopeMismatchError,
334
- upsert_tool
391
+ upsert_tool,
392
+ NO_RECORDED_HASHES,
393
+ classifyOwnership,
394
+ readRecordedHashes,
395
+ recordedHashesForRoot
335
396
  };
@@ -884,7 +884,8 @@ function main(argv) {
884
884
  return 0;
885
885
  }
886
886
  let sweep_out = "";
887
- if (!args.check && args.archive && unarchived_complete(collect(roadmap_root)).length > 0) {
887
+ const before = collect(roadmap_root);
888
+ if (!args.check && args.archive && unarchived_complete(before).length + pending_iron_law_3(before).length > 0) {
888
889
  const swept = run_archival_sweep(repo_root);
889
890
  sweep_out = swept.stdout;
890
891
  if (swept.stderr) {
@@ -1,11 +1,11 @@
1
1
  import { createRequire as __acCreateRequire } from 'node:module'; const require = globalThis.require ?? __acCreateRequire(import.meta.url);
2
- import {
3
- artefact_roots
4
- } from "./chunk-NUHLI2RX.js";
5
2
  import {
6
3
  DEFAULT_PROJECT_FILE,
7
4
  logger
8
- } from "./chunk-FC75PGJE.js";
5
+ } from "./chunk-H76PHZBI.js";
6
+ import {
7
+ artefact_roots
8
+ } from "./chunk-YCU3TIXH.js";
9
9
 
10
10
  // src/scripts/config/profiles.ts
11
11
  import * as fs from "node:fs";
@@ -161,6 +161,7 @@ function _ensure_breadcrumb(legacy_root) {
161
161
  }
162
162
 
163
163
  export {
164
+ DEFAULT_EVENT4U_ROOT_RELATIVE,
164
165
  event4u_root,
165
166
  legacy_xdg_root,
166
167
  resolve_with_fallback,