@aria_asi/cli 0.2.39 → 0.2.41

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 (802) hide show
  1. package/bin/aria.js +236 -34
  2. package/dist/aria-connector/src/action-ledger-core.d.ts +387 -0
  3. package/dist/aria-connector/src/action-ledger-core.d.ts.map +1 -0
  4. package/dist/aria-connector/src/action-ledger-core.js +638 -0
  5. package/dist/aria-connector/src/action-ledger-core.js.map +1 -0
  6. package/dist/aria-connector/src/chat.d.ts.map +1 -1
  7. package/dist/aria-connector/src/chat.js +5 -6
  8. package/dist/aria-connector/src/chat.js.map +1 -1
  9. package/dist/aria-connector/src/codebase-scanner.d.ts +1 -1
  10. package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
  11. package/dist/aria-connector/src/connectors/claude-code.d.ts +1 -0
  12. package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
  13. package/dist/aria-connector/src/connectors/claude-code.js +152 -14
  14. package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
  15. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +10 -0
  16. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -1
  17. package/dist/aria-connector/src/connectors/codebase-awareness.js +276 -27
  18. package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -1
  19. package/dist/aria-connector/src/connectors/codex.d.ts +3 -1
  20. package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
  21. package/dist/aria-connector/src/connectors/codex.js +1271 -40
  22. package/dist/aria-connector/src/connectors/codex.js.map +1 -1
  23. package/dist/aria-connector/src/connectors/cursor.d.ts.map +1 -1
  24. package/dist/aria-connector/src/connectors/cursor.js +7 -0
  25. package/dist/aria-connector/src/connectors/cursor.js.map +1 -1
  26. package/dist/aria-connector/src/connectors/governed-adapter.d.ts +30 -0
  27. package/dist/aria-connector/src/connectors/governed-adapter.d.ts.map +1 -0
  28. package/dist/aria-connector/src/connectors/governed-adapter.js +132 -0
  29. package/dist/aria-connector/src/connectors/governed-adapter.js.map +1 -0
  30. package/dist/aria-connector/src/connectors/opencode.d.ts +3 -1
  31. package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
  32. package/dist/aria-connector/src/connectors/opencode.js +18 -2
  33. package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
  34. package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -1
  35. package/dist/aria-connector/src/connectors/repo-guard.js +25 -14
  36. package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -1
  37. package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
  38. package/dist/aria-connector/src/connectors/runtime.js +92 -2
  39. package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
  40. package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
  41. package/dist/aria-connector/src/connectors/shell.js +123 -7
  42. package/dist/aria-connector/src/connectors/shell.js.map +1 -1
  43. package/dist/aria-connector/src/cross-cli-hive-binding.d.ts +63 -0
  44. package/dist/aria-connector/src/cross-cli-hive-binding.d.ts.map +1 -0
  45. package/dist/aria-connector/src/cross-cli-hive-binding.js +205 -0
  46. package/dist/aria-connector/src/cross-cli-hive-binding.js.map +1 -0
  47. package/dist/aria-connector/src/garden-control-plane.d.ts +6 -1
  48. package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
  49. package/dist/aria-connector/src/garden-control-plane.js +8 -2
  50. package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
  51. package/dist/aria-connector/src/governed-surface-runner.d.ts +189 -0
  52. package/dist/aria-connector/src/governed-surface-runner.d.ts.map +1 -0
  53. package/dist/aria-connector/src/governed-surface-runner.js +1022 -0
  54. package/dist/aria-connector/src/governed-surface-runner.js.map +1 -0
  55. package/dist/aria-connector/src/index.d.ts +10 -1
  56. package/dist/aria-connector/src/index.d.ts.map +1 -1
  57. package/dist/aria-connector/src/index.js +5 -0
  58. package/dist/aria-connector/src/index.js.map +1 -1
  59. package/dist/aria-connector/src/task-runner.d.ts +3 -0
  60. package/dist/aria-connector/src/task-runner.d.ts.map +1 -0
  61. package/dist/aria-connector/src/task-runner.js +3526 -0
  62. package/dist/aria-connector/src/task-runner.js.map +1 -0
  63. package/dist/aria-web/src/lib/codebase-scanner.d.ts +21 -2
  64. package/dist/aria-web/src/lib/codebase-scanner.d.ts.map +1 -1
  65. package/dist/aria-web/src/lib/codebase-scanner.js +59 -14
  66. package/dist/aria-web/src/lib/codebase-scanner.js.map +1 -1
  67. package/dist/assets/hooks/README.md +58 -0
  68. package/dist/assets/hooks/aria-agent-handoff.mjs +147 -2
  69. package/dist/assets/hooks/aria-agent-ledger-merge.mjs +31 -7
  70. package/dist/assets/hooks/aria-architect-fallback.mjs +10 -2
  71. package/dist/assets/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  72. package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +84 -10
  73. package/dist/assets/hooks/aria-first-class-coach.mjs +305 -10
  74. package/dist/assets/hooks/aria-harness-via-sdk.mjs +93 -16
  75. package/dist/assets/hooks/aria-import-resolution-gate.mjs +106 -20
  76. package/dist/assets/hooks/aria-outcome-record.mjs +56 -20
  77. package/dist/assets/hooks/aria-pre-emit-autoload.mjs +1809 -0
  78. package/dist/assets/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  79. package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +22 -3
  80. package/dist/assets/hooks/aria-pre-text-gate.mjs +11 -2
  81. package/dist/assets/hooks/aria-pre-tool-gate.mjs +516 -92
  82. package/dist/assets/hooks/aria-pre-tool-use.mjs +70 -6
  83. package/dist/assets/hooks/aria-preprompt-consult.mjs +23 -4
  84. package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +29 -3
  85. package/dist/assets/hooks/aria-stop-gate.mjs +585 -76
  86. package/dist/assets/hooks/aria-trigger-autolearn.mjs +17 -3
  87. package/dist/assets/hooks/aria-universal-turn-packet.mjs +1165 -0
  88. package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  89. package/dist/assets/hooks/canonical-settings-block.json +172 -0
  90. package/dist/assets/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  91. package/dist/assets/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  92. package/dist/assets/hooks/codex-native/aria-live-ticker.mjs +38 -0
  93. package/dist/assets/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  94. package/dist/assets/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  95. package/dist/assets/hooks/codex-native/aria-stop.mjs +691 -0
  96. package/dist/assets/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  97. package/dist/assets/hooks/codex-native/atlas-session-context.mjs +121 -0
  98. package/dist/assets/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  99. package/dist/assets/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  100. package/dist/assets/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  101. package/dist/assets/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  102. package/dist/assets/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  103. package/dist/assets/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  104. package/dist/assets/hooks/doctrine_trigger_map.json +236 -25
  105. package/dist/assets/hooks/doctrine_trigger_map.schema.json +46 -0
  106. package/dist/assets/hooks/install.sh +84 -0
  107. package/dist/assets/hooks/lib/action-ledger-core.mjs +269 -0
  108. package/dist/assets/hooks/lib/aria-gate-ledger.mjs +143 -0
  109. package/dist/assets/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  110. package/dist/assets/hooks/lib/atlas-dossier-client.mjs +151 -0
  111. package/dist/assets/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  112. package/dist/assets/hooks/lib/canonical-lenses.mjs +83 -6
  113. package/dist/assets/hooks/lib/coach-intent-classifier.mjs +248 -0
  114. package/dist/assets/hooks/lib/cognitive-block-parser.mjs +111 -0
  115. package/dist/assets/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  116. package/dist/assets/hooks/lib/domain-output-quality.mjs +132 -3
  117. package/dist/assets/hooks/lib/empty-catch-scanner.mjs +91 -0
  118. package/dist/assets/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  119. package/dist/assets/hooks/lib/evaluate-with-kernel.mjs +133 -0
  120. package/dist/assets/hooks/lib/first-class-coach.mjs +454 -19
  121. package/dist/assets/hooks/lib/gate-audit.mjs +12 -2
  122. package/dist/assets/hooks/lib/gate-loop-state.mjs +11 -2
  123. package/dist/assets/hooks/lib/goal-contract-quality.mjs +302 -0
  124. package/dist/assets/hooks/lib/hook-message-window.mjs +101 -9
  125. package/dist/assets/hooks/lib/invocation-required-verifier.mjs +184 -0
  126. package/dist/assets/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  127. package/dist/assets/hooks/lib/obligation-ledger.mjs +147 -0
  128. package/dist/assets/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  129. package/dist/assets/hooks/lib/owner-authorizations.mjs +269 -0
  130. package/dist/assets/hooks/lib/probe-discipline-scanner.mjs +142 -0
  131. package/dist/assets/hooks/lib/project-boundary-cognition.mjs +143 -0
  132. package/dist/assets/hooks/lib/recovery-context.mjs +151 -0
  133. package/dist/assets/hooks/lib/recovery-template-loader.mjs +154 -0
  134. package/dist/assets/hooks/lib/self-doctrine-check.mjs +321 -0
  135. package/dist/assets/hooks/lib/sensitive-shape-detector.mjs +64 -0
  136. package/dist/assets/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  137. package/dist/assets/hooks/lib/stop-hook-protocol.mjs +166 -0
  138. package/dist/assets/hooks/lib/surface-caught.mjs +94 -0
  139. package/dist/assets/hooks/recovery-templates/force-reauthor.md +67 -0
  140. package/dist/assets/hooks/recovery-templates/handoff-recovery.md +25 -0
  141. package/dist/assets/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  142. package/dist/assets/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  143. package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  144. package/dist/assets/hooks/test-tier-lens-labeling.mjs +14 -3
  145. package/dist/assets/opencode-plugins/harness-context/index.js +39 -6
  146. package/dist/assets/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
  147. package/dist/assets/opencode-plugins/harness-gate/index.js +36 -0
  148. package/dist/assets/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
  149. package/dist/assets/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
  150. package/dist/assets/opencode-plugins/harness-outcome/index.js +12 -0
  151. package/dist/assets/opencode-plugins/harness-stop/index.js +97 -2
  152. package/dist/assets/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
  153. package/dist/assets/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
  154. package/dist/assets/opencode-plugins/lib/coach.js +148 -0
  155. package/dist/runtime/coach-kernel.mjs +144 -7
  156. package/dist/runtime/codex-bridge.mjs +254 -8
  157. package/dist/runtime/discipline/doctrine_trigger_map.json +236 -25
  158. package/dist/runtime/discipline/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
  159. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
  160. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
  161. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
  162. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
  163. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
  164. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
  165. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
  166. package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
  167. package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
  168. package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
  169. package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
  170. package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
  171. package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
  172. package/dist/runtime/discipline/skills/aria-cognition/aria-chat/SKILL.md +84 -0
  173. package/dist/runtime/discipline/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
  174. package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
  175. package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
  176. package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
  177. package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
  178. package/dist/runtime/discipline/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
  179. package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
  180. package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
  181. package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
  182. package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
  183. package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
  184. package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
  185. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
  186. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
  187. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
  188. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
  189. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
  190. package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
  191. package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
  192. package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
  193. package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
  194. package/dist/runtime/discipline/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
  195. package/dist/runtime/discipline/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
  196. package/dist/runtime/discipline/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
  197. package/dist/runtime/discipline/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
  198. package/dist/runtime/discipline/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
  199. package/dist/runtime/discipline/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
  200. package/dist/runtime/discipline/skills/aria-cognition/aria-ops/SKILL.md +60 -0
  201. package/dist/runtime/discipline/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
  202. package/dist/runtime/discipline/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
  203. package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
  204. package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
  205. package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
  206. package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
  207. package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
  208. package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
  209. package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
  210. package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
  211. package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
  212. package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
  213. package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
  214. package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
  215. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
  216. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
  217. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
  218. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
  219. package/dist/runtime/discipline/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
  220. package/dist/runtime/discipline/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
  221. package/dist/runtime/discipline/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
  222. package/dist/runtime/discipline/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
  223. package/dist/runtime/discipline/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
  224. package/dist/runtime/discipline/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
  225. package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
  226. package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
  227. package/dist/runtime/discipline/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
  228. package/dist/runtime/discipline/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
  229. package/dist/runtime/discipline/skills/aria-cognition/never-guess/SKILL.md +77 -0
  230. package/dist/runtime/discipline/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
  231. package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
  232. package/dist/runtime/discipline/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
  233. package/dist/runtime/discipline/skills/aria-cognition/tadabbur/SKILL.md +506 -0
  234. package/dist/runtime/discipline/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
  235. package/dist/runtime/discipline/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
  236. package/dist/runtime/discipline/skills/aria-cognition/tafakkur/SKILL.md +104 -0
  237. package/dist/runtime/doctrine_trigger_map.json +236 -25
  238. package/dist/runtime/embedded-public-key.mjs +27 -0
  239. package/dist/runtime/gated-ledger.mjs +41 -14
  240. package/dist/runtime/harness-daemon.mjs +85 -10
  241. package/dist/runtime/hive-wal-publisher.mjs +292 -0
  242. package/dist/runtime/hooks/README.md +58 -0
  243. package/dist/runtime/hooks/aria-agent-handoff.mjs +147 -2
  244. package/dist/runtime/hooks/aria-agent-ledger-merge.mjs +31 -7
  245. package/dist/runtime/hooks/aria-architect-fallback.mjs +10 -2
  246. package/dist/runtime/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  247. package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +84 -10
  248. package/dist/runtime/hooks/aria-first-class-coach.mjs +305 -10
  249. package/dist/runtime/hooks/aria-harness-via-sdk.mjs +93 -16
  250. package/dist/runtime/hooks/aria-import-resolution-gate.mjs +106 -20
  251. package/dist/runtime/hooks/aria-outcome-record.mjs +56 -20
  252. package/dist/runtime/hooks/aria-pre-emit-autoload.mjs +1809 -0
  253. package/dist/runtime/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  254. package/dist/runtime/hooks/aria-pre-emit-dryrun.mjs +22 -3
  255. package/dist/runtime/hooks/aria-pre-text-gate.mjs +11 -2
  256. package/dist/runtime/hooks/aria-pre-tool-gate.mjs +516 -92
  257. package/dist/runtime/hooks/aria-pre-tool-use.mjs +70 -6
  258. package/dist/runtime/hooks/aria-preprompt-consult.mjs +23 -4
  259. package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +29 -3
  260. package/dist/runtime/hooks/aria-stop-gate.mjs +585 -76
  261. package/dist/runtime/hooks/aria-trigger-autolearn.mjs +17 -3
  262. package/dist/runtime/hooks/aria-universal-turn-packet.mjs +1165 -0
  263. package/dist/runtime/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  264. package/dist/runtime/hooks/canonical-settings-block.json +172 -0
  265. package/dist/runtime/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  266. package/dist/runtime/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  267. package/dist/runtime/hooks/codex-native/aria-live-ticker.mjs +38 -0
  268. package/dist/runtime/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  269. package/dist/runtime/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  270. package/dist/runtime/hooks/codex-native/aria-stop.mjs +691 -0
  271. package/dist/runtime/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  272. package/dist/runtime/hooks/codex-native/atlas-session-context.mjs +121 -0
  273. package/dist/runtime/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  274. package/dist/runtime/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  275. package/dist/runtime/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  276. package/dist/runtime/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  277. package/dist/runtime/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  278. package/dist/runtime/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  279. package/dist/runtime/hooks/doctrine_trigger_map.json +236 -25
  280. package/dist/runtime/hooks/doctrine_trigger_map.schema.json +46 -0
  281. package/dist/runtime/hooks/install.sh +84 -0
  282. package/dist/runtime/hooks/lib/action-ledger-core.mjs +269 -0
  283. package/dist/runtime/hooks/lib/aria-gate-ledger.mjs +143 -0
  284. package/dist/runtime/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  285. package/dist/runtime/hooks/lib/atlas-dossier-client.mjs +151 -0
  286. package/dist/runtime/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  287. package/dist/runtime/hooks/lib/canonical-lenses.mjs +83 -6
  288. package/dist/runtime/hooks/lib/coach-intent-classifier.mjs +248 -0
  289. package/dist/runtime/hooks/lib/cognitive-block-parser.mjs +111 -0
  290. package/dist/runtime/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  291. package/dist/runtime/hooks/lib/domain-output-quality.mjs +132 -3
  292. package/dist/runtime/hooks/lib/empty-catch-scanner.mjs +91 -0
  293. package/dist/runtime/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  294. package/dist/runtime/hooks/lib/evaluate-with-kernel.mjs +133 -0
  295. package/dist/runtime/hooks/lib/first-class-coach.mjs +454 -19
  296. package/dist/runtime/hooks/lib/gate-audit.mjs +12 -2
  297. package/dist/runtime/hooks/lib/gate-loop-state.mjs +11 -2
  298. package/dist/runtime/hooks/lib/goal-contract-quality.mjs +302 -0
  299. package/dist/runtime/hooks/lib/hook-message-window.mjs +101 -9
  300. package/dist/runtime/hooks/lib/invocation-required-verifier.mjs +184 -0
  301. package/dist/runtime/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  302. package/dist/runtime/hooks/lib/obligation-ledger.mjs +147 -0
  303. package/dist/runtime/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  304. package/dist/runtime/hooks/lib/owner-authorizations.mjs +269 -0
  305. package/dist/runtime/hooks/lib/probe-discipline-scanner.mjs +142 -0
  306. package/dist/runtime/hooks/lib/project-boundary-cognition.mjs +143 -0
  307. package/dist/runtime/hooks/lib/recovery-context.mjs +151 -0
  308. package/dist/runtime/hooks/lib/recovery-template-loader.mjs +154 -0
  309. package/dist/runtime/hooks/lib/self-doctrine-check.mjs +321 -0
  310. package/dist/runtime/hooks/lib/sensitive-shape-detector.mjs +64 -0
  311. package/dist/runtime/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  312. package/dist/runtime/hooks/lib/stop-hook-protocol.mjs +166 -0
  313. package/dist/runtime/hooks/lib/surface-caught.mjs +94 -0
  314. package/dist/runtime/hooks/recovery-templates/force-reauthor.md +67 -0
  315. package/dist/runtime/hooks/recovery-templates/handoff-recovery.md +25 -0
  316. package/dist/runtime/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  317. package/dist/runtime/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  318. package/dist/runtime/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  319. package/dist/runtime/hooks/test-tier-lens-labeling.mjs +14 -3
  320. package/dist/runtime/lib/evaluate-with-kernel.mjs +133 -0
  321. package/dist/runtime/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  322. package/dist/runtime/local-phase.mjs +10 -5
  323. package/dist/runtime/manifest.json +8 -8
  324. package/dist/runtime/packet-verifier.mjs +166 -0
  325. package/dist/runtime/provider-proxy.mjs +13 -0
  326. package/dist/runtime/quality-enforcer.mjs +40 -23
  327. package/dist/runtime/runtime-rails/registry.mjs +252 -0
  328. package/dist/runtime/sdk/BUNDLED.json +2 -2
  329. package/dist/runtime/sdk/index.d.ts +119 -4
  330. package/dist/runtime/sdk/index.js +138 -12
  331. package/dist/runtime/sdk/index.js.map +1 -1
  332. package/dist/runtime/service.mjs +8036 -764
  333. package/dist/runtime/sub-agent-enforcer.mjs +201 -0
  334. package/dist/runtime/task-project-ledger.mjs +5 -1
  335. package/dist/sdk/BUNDLED.json +2 -2
  336. package/dist/sdk/index.d.ts +119 -4
  337. package/dist/sdk/index.js +138 -12
  338. package/dist/sdk/index.js.map +1 -1
  339. package/hooks/README.md +58 -0
  340. package/hooks/aria-agent-handoff.mjs +147 -2
  341. package/hooks/aria-agent-ledger-merge.mjs +31 -7
  342. package/hooks/aria-architect-fallback.mjs +10 -2
  343. package/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  344. package/hooks/aria-cognition-substrate-binding.mjs +84 -10
  345. package/hooks/aria-first-class-coach.mjs +305 -10
  346. package/hooks/aria-harness-via-sdk.mjs +93 -16
  347. package/hooks/aria-import-resolution-gate.mjs +106 -20
  348. package/hooks/aria-outcome-record.mjs +56 -20
  349. package/hooks/aria-pre-emit-autoload.mjs +1809 -0
  350. package/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  351. package/hooks/aria-pre-emit-dryrun.mjs +22 -3
  352. package/hooks/aria-pre-text-gate.mjs +11 -2
  353. package/hooks/aria-pre-tool-gate.mjs +516 -92
  354. package/hooks/aria-pre-tool-use.mjs +70 -6
  355. package/hooks/aria-preprompt-consult.mjs +23 -4
  356. package/hooks/aria-repo-doctrine-gate.mjs +29 -3
  357. package/hooks/aria-stop-gate.mjs +585 -76
  358. package/hooks/aria-trigger-autolearn.mjs +17 -3
  359. package/hooks/aria-universal-turn-packet.mjs +1165 -0
  360. package/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  361. package/hooks/canonical-settings-block.json +172 -0
  362. package/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  363. package/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  364. package/hooks/codex-native/aria-live-ticker.mjs +38 -0
  365. package/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  366. package/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  367. package/hooks/codex-native/aria-stop.mjs +691 -0
  368. package/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  369. package/hooks/codex-native/atlas-session-context.mjs +121 -0
  370. package/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  371. package/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  372. package/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  373. package/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  374. package/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  375. package/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  376. package/hooks/doctrine_trigger_map.json +236 -25
  377. package/hooks/doctrine_trigger_map.schema.json +46 -0
  378. package/hooks/install.sh +84 -0
  379. package/hooks/lib/action-ledger-core.mjs +269 -0
  380. package/hooks/lib/aria-gate-ledger.mjs +143 -0
  381. package/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  382. package/hooks/lib/atlas-dossier-client.mjs +151 -0
  383. package/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  384. package/hooks/lib/canonical-lenses.mjs +83 -6
  385. package/hooks/lib/coach-intent-classifier.mjs +248 -0
  386. package/hooks/lib/cognitive-block-parser.mjs +111 -0
  387. package/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  388. package/hooks/lib/domain-output-quality.mjs +132 -3
  389. package/hooks/lib/empty-catch-scanner.mjs +91 -0
  390. package/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  391. package/hooks/lib/evaluate-with-kernel.mjs +133 -0
  392. package/hooks/lib/first-class-coach.mjs +454 -19
  393. package/hooks/lib/gate-audit.mjs +12 -2
  394. package/hooks/lib/gate-loop-state.mjs +11 -2
  395. package/hooks/lib/goal-contract-quality.mjs +302 -0
  396. package/hooks/lib/hook-message-window.mjs +101 -9
  397. package/hooks/lib/invocation-required-verifier.mjs +184 -0
  398. package/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  399. package/hooks/lib/obligation-ledger.mjs +147 -0
  400. package/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  401. package/hooks/lib/owner-authorizations.mjs +269 -0
  402. package/hooks/lib/probe-discipline-scanner.mjs +142 -0
  403. package/hooks/lib/project-boundary-cognition.mjs +143 -0
  404. package/hooks/lib/recovery-context.mjs +151 -0
  405. package/hooks/lib/recovery-template-loader.mjs +154 -0
  406. package/hooks/lib/self-doctrine-check.mjs +321 -0
  407. package/hooks/lib/sensitive-shape-detector.mjs +64 -0
  408. package/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  409. package/hooks/lib/stop-hook-protocol.mjs +166 -0
  410. package/hooks/lib/surface-caught.mjs +94 -0
  411. package/hooks/recovery-templates/force-reauthor.md +67 -0
  412. package/hooks/recovery-templates/handoff-recovery.md +25 -0
  413. package/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  414. package/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  415. package/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  416. package/hooks/test-tier-lens-labeling.mjs +14 -3
  417. package/opencode-plugins/harness-context/index.js +39 -6
  418. package/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
  419. package/opencode-plugins/harness-gate/index.js +36 -0
  420. package/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
  421. package/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
  422. package/opencode-plugins/harness-outcome/index.js +12 -0
  423. package/opencode-plugins/harness-stop/index.js +97 -2
  424. package/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
  425. package/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
  426. package/opencode-plugins/lib/coach.js +148 -0
  427. package/package.json +71 -5
  428. package/runtime-src/coach-kernel.mjs +144 -7
  429. package/runtime-src/codex-bridge.mjs +254 -8
  430. package/runtime-src/embedded-public-key.mjs +27 -0
  431. package/runtime-src/gated-ledger.mjs +41 -14
  432. package/runtime-src/harness-daemon.mjs +85 -10
  433. package/runtime-src/hive-wal-publisher.mjs +292 -0
  434. package/runtime-src/lib/evaluate-with-kernel.mjs +133 -0
  435. package/runtime-src/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  436. package/runtime-src/local-phase.mjs +10 -5
  437. package/runtime-src/packet-verifier.mjs +166 -0
  438. package/runtime-src/provider-proxy.mjs +13 -0
  439. package/runtime-src/quality-enforcer.mjs +40 -23
  440. package/runtime-src/runtime-rails/registry.mjs +252 -0
  441. package/runtime-src/service.mjs +8036 -764
  442. package/runtime-src/sub-agent-enforcer.mjs +201 -0
  443. package/scripts/aria-ledger-append.mjs +337 -0
  444. package/scripts/aria-task-cheap-worker-dispatch.mjs +234 -0
  445. package/scripts/audit-of-audit-prior-tasks.mjs +194 -0
  446. package/scripts/audit-of-audit-this-turn.mjs +116 -0
  447. package/scripts/bundle-sdk.mjs +31 -5
  448. package/scripts/check-cli-wrapper-provider-contract.mjs +160 -0
  449. package/scripts/check-client-compatibility.mjs +15 -5
  450. package/scripts/check-client-smoke.mjs +297 -0
  451. package/scripts/check-codex-orchestrator-adoption.mjs +150 -0
  452. package/scripts/check-glm-env-wired.mjs +131 -0
  453. package/scripts/check-hive-local-storage-contract.mjs +91 -0
  454. package/scripts/check-hook-mirror.mjs +150 -0
  455. package/scripts/check-install-sh-drift.mjs +152 -0
  456. package/scripts/check-kernel-sync.mjs +101 -0
  457. package/scripts/check-package-artifact.mjs +152 -0
  458. package/scripts/check-registry-mirror.mjs +71 -0
  459. package/scripts/drain-owner-airtable-sync-queue.mjs +287 -0
  460. package/scripts/export-owner-status-sheets.mjs +589 -0
  461. package/scripts/live-sidecar-receipt-canary.mjs +347 -0
  462. package/scripts/qiyas-tadabbur-model-matrix.mjs +970 -0
  463. package/scripts/quality-ab-live-provider.mjs +913 -0
  464. package/scripts/self-test-action-ledger-core.mjs +190 -0
  465. package/scripts/self-test-approval-receipt-binding.mjs +122 -0
  466. package/scripts/self-test-autofire-quality-output.mjs +110 -0
  467. package/scripts/self-test-claude-code-action-ledger.mjs +132 -0
  468. package/scripts/self-test-claude-code-mechanical-autofire-hive.mjs +138 -0
  469. package/scripts/self-test-claude-code-mechanical-autofire.mjs +234 -0
  470. package/scripts/self-test-codebase-awareness-atlas-delta.mjs +159 -0
  471. package/scripts/self-test-codebase-awareness-delta-ingest.mjs +179 -0
  472. package/scripts/self-test-codex-live-hook-parity.mjs +84 -0
  473. package/scripts/self-test-codex-native-action-ledger.mjs +167 -0
  474. package/scripts/self-test-codex-native-hook-json-contract.mjs +74 -0
  475. package/scripts/self-test-codex-orchestrator-continuity.mjs +113 -0
  476. package/scripts/self-test-codex-readable-recovery.mjs +94 -0
  477. package/scripts/self-test-codex-self-harness.mjs +538 -0
  478. package/scripts/self-test-compiled-workunit.mjs +214 -0
  479. package/scripts/self-test-continuation-output-smoke.mjs +101 -0
  480. package/scripts/self-test-cross-cli-fleet-ticker.mjs +85 -0
  481. package/scripts/self-test-cross-cli-hive-adoption.mjs +125 -0
  482. package/scripts/self-test-cross-cli-hive-learning.mjs +146 -0
  483. package/scripts/self-test-cross-phase-tool-failure.mjs +110 -0
  484. package/scripts/self-test-cross-surface-action-ledger.mjs +149 -0
  485. package/scripts/self-test-end-of-phase-qa-court.mjs +616 -0
  486. package/scripts/self-test-evaluate-with-kernel.mjs +111 -0
  487. package/scripts/self-test-first-class-output-delta-proof.mjs +307 -0
  488. package/scripts/self-test-goal-contract-output-qa.mjs +73 -0
  489. package/scripts/self-test-goal-contract.mjs +35 -0
  490. package/scripts/self-test-governed-adapters.mjs +105 -0
  491. package/scripts/self-test-governed-surface-runner.mjs +198 -0
  492. package/scripts/self-test-harness-gates.mjs +15 -12
  493. package/scripts/self-test-harness-ticker-sidecar.mjs +153 -0
  494. package/scripts/self-test-hive-org-kernel.mjs +233 -0
  495. package/scripts/self-test-hive-session-coordination.mjs +156 -0
  496. package/scripts/self-test-hive-wal-consumer.mjs +111 -0
  497. package/scripts/self-test-kernel-a3-a4-selection.mjs +179 -0
  498. package/scripts/self-test-ledger-append.mjs +175 -0
  499. package/scripts/self-test-live-codex-posttool-packet-smoke.mjs +111 -0
  500. package/scripts/self-test-live-codex-pretool-packet-smoke.mjs +101 -0
  501. package/scripts/self-test-live-codex-stop-qa-kernel-smoke.mjs +43 -0
  502. package/scripts/self-test-live-wrapper-substrate-inventory.mjs +149 -0
  503. package/scripts/self-test-local-main-sync-script.mjs +47 -0
  504. package/scripts/self-test-mechanical-autofire-resolver.mjs +296 -0
  505. package/scripts/self-test-no-consult-cognitive-skills-output.mjs +135 -0
  506. package/scripts/self-test-owner-airtable-sync-queue.mjs +196 -0
  507. package/scripts/self-test-owner-airtable-sync.mjs +181 -0
  508. package/scripts/self-test-owner-sheets-action-ledger.mjs +100 -0
  509. package/scripts/self-test-production-preflight.mjs +78 -0
  510. package/scripts/self-test-project-boundary-cognition.mjs +79 -0
  511. package/scripts/self-test-qa-exec-kernel.mjs +34 -0
  512. package/scripts/self-test-qa-recovery-learning-loop.mjs +113 -0
  513. package/scripts/self-test-qiyas-label-alignment.mjs +94 -0
  514. package/scripts/self-test-recovery-context.mjs +110 -0
  515. package/scripts/self-test-repo-guard.mjs +10 -0
  516. package/scripts/self-test-runtime-health-self-heal.mjs +161 -0
  517. package/scripts/self-test-runtime-postcondition.mjs +70 -0
  518. package/scripts/self-test-soul-precommit-hook.mjs +39 -0
  519. package/scripts/self-test-stop-gate-kernel-guards.mjs +185 -0
  520. package/scripts/self-test-stop-gate.mjs +128 -0
  521. package/scripts/self-test-substrate-kernel-execution-receipt.mjs +130 -0
  522. package/scripts/self-test-substrate-open-skill-floor.mjs +87 -0
  523. package/scripts/self-test-substrate-output-quality-eval.mjs +171 -0
  524. package/scripts/self-test-task-closeout-drift.mjs +97 -0
  525. package/scripts/self-test-task-project-ledger-readiness.mjs +43 -0
  526. package/scripts/self-test-task-runner-phase-consumer.mjs +134 -0
  527. package/scripts/self-test-task-worker-lane.mjs +256 -0
  528. package/scripts/self-test-turn-substrate-qa-kernel.mjs +188 -0
  529. package/scripts/self-test-universal-action-capture.mjs +153 -0
  530. package/scripts/self-test-universal-turn-packet-entrypoints.mjs +252 -0
  531. package/scripts/self-test-universal-turn-packet.mjs +320 -0
  532. package/scripts/session-quality-backfill.mjs +253 -0
  533. package/scripts/smoke-autofire-100-prompts.mjs +481 -0
  534. package/scripts/sync-local-main-on-task-complete.mjs +278 -0
  535. package/scripts/sync-owner-status-airtable.mjs +1158 -0
  536. package/scripts/validate-skill-prompts.mjs +12 -1
  537. package/scripts/verify-codex-native-mirror.mjs +262 -0
  538. package/skills/34-frameworks-unified/SKILL.md +42 -0
  539. package/skills/api-design/SKILL.md +123 -0
  540. package/skills/architecture-decision/SKILL.md +105 -0
  541. package/skills/aria-aristotle-cognitives/SKILL.md +128 -0
  542. package/skills/aria-aristotle-intra-phase/SKILL.md +99 -0
  543. package/skills/aria-aristotle-post-phase/SKILL.md +116 -0
  544. package/skills/aria-aristotle-pre-phase/SKILL.md +117 -0
  545. package/skills/aria-axioms-first-principles/SKILL.md +202 -0
  546. package/skills/aria-axioms-first-principles/agents/openai.yaml +4 -0
  547. package/skills/aria-axioms-first-principles/references/source-map.md +130 -0
  548. package/skills/aria-chat/SKILL.md +84 -0
  549. package/skills/aria-chat/scripts/aria-chat.sh +57 -0
  550. package/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
  551. package/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
  552. package/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
  553. package/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
  554. package/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
  555. package/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
  556. package/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
  557. package/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
  558. package/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
  559. package/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
  560. package/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
  561. package/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
  562. package/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
  563. package/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
  564. package/skills/aria-cognition/aria-chat/SKILL.md +84 -0
  565. package/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
  566. package/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
  567. package/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
  568. package/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
  569. package/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
  570. package/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
  571. package/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
  572. package/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
  573. package/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
  574. package/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
  575. package/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
  576. package/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
  577. package/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
  578. package/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
  579. package/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
  580. package/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
  581. package/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
  582. package/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
  583. package/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
  584. package/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
  585. package/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
  586. package/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
  587. package/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
  588. package/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
  589. package/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
  590. package/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
  591. package/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
  592. package/skills/aria-cognition/aria-ops/SKILL.md +60 -0
  593. package/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
  594. package/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
  595. package/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
  596. package/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
  597. package/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
  598. package/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
  599. package/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
  600. package/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
  601. package/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
  602. package/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
  603. package/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
  604. package/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
  605. package/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
  606. package/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
  607. package/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
  608. package/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
  609. package/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
  610. package/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
  611. package/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
  612. package/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
  613. package/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
  614. package/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
  615. package/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
  616. package/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
  617. package/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
  618. package/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
  619. package/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
  620. package/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
  621. package/skills/aria-cognition/never-guess/SKILL.md +77 -0
  622. package/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
  623. package/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
  624. package/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
  625. package/skills/aria-cognition/tadabbur/SKILL.md +506 -0
  626. package/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
  627. package/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
  628. package/skills/aria-cognition/tafakkur/SKILL.md +104 -0
  629. package/skills/aria-cognition-autofire/SKILL.md +109 -0
  630. package/skills/aria-cognition-batch/SKILL.md +264 -0
  631. package/skills/aria-conversational-doctrine-discipline/SKILL.md +125 -0
  632. package/skills/aria-essence/SKILL.md +81 -0
  633. package/skills/aria-essence/references/domain-matrix.md +80 -0
  634. package/skills/aria-essence/references/evolution-loop.md +30 -0
  635. package/skills/aria-essence/references/readable-cognition.md +27 -0
  636. package/skills/aria-first-class-operating-contract/SKILL.md +104 -0
  637. package/skills/aria-forge-guardrails/SKILL.md +53 -0
  638. package/skills/aria-forge-guardrails/references/checklist.md +31 -0
  639. package/skills/aria-harness-deploy/SKILL.md +145 -0
  640. package/skills/aria-harness-no-stripping/SKILL.md +135 -0
  641. package/skills/aria-harness-onboarding/SKILL.md +130 -0
  642. package/skills/aria-harness-output-discipline/SKILL.md +120 -0
  643. package/skills/aria-harness-substrate-binding/SKILL.md +139 -0
  644. package/skills/aria-http-harness-client/SKILL.md +85 -0
  645. package/skills/aria-http-harness-client/scripts/smoke.mjs +47 -0
  646. package/skills/aria-k8s-deploy/SKILL.md +174 -0
  647. package/skills/aria-k8s-deploy/agents/openai.yaml +3 -0
  648. package/skills/aria-ladduniframe/SKILL.md +60 -0
  649. package/skills/aria-ledger-fleet-execution/SKILL.md +126 -0
  650. package/skills/aria-live-ops/SKILL.md +54 -0
  651. package/skills/aria-mac-ssh-ops/SKILL.md +100 -0
  652. package/skills/aria-memory-index/SKILL.md +42 -0
  653. package/skills/aria-noor-cognitives/SKILL.md +120 -0
  654. package/skills/aria-ops/SKILL.md +60 -0
  655. package/skills/aria-ops/references/live-endpoints.md +59 -0
  656. package/skills/aria-quality-audit/SKILL.md +133 -0
  657. package/skills/aria-reasoning/SKILL.md +67 -0
  658. package/skills/aria-reasoning/references/core-principles.md +42 -0
  659. package/skills/aria-repo-doctrine/SKILL.md +57 -0
  660. package/skills/aria-soul-principles/SKILL.md +42 -0
  661. package/skills/aria-task-codex-executor/SKILL.md +86 -0
  662. package/skills/aristotle-engine/SKILL.md +42 -0
  663. package/skills/ci-cd-pipeline/SKILL.md +116 -0
  664. package/skills/code-review/SKILL.md +131 -0
  665. package/skills/cross-domain-24/SKILL.md +42 -0
  666. package/skills/database-design/SKILL.md +124 -0
  667. package/skills/deepsoul-emotional/SKILL.md +42 -0
  668. package/skills/deno-kv-raft-pubsub/SKILL.md +561 -0
  669. package/skills/deno-kv-raft-pubsub/reference/maelstrom-integration.md +393 -0
  670. package/skills/deno-kv-raft-pubsub/reference/pubsub-api.md +376 -0
  671. package/skills/deno-kv-raft-pubsub/reference/raft-spec.md +402 -0
  672. package/skills/deno-kv-raft-pubsub/reference/state-machine.md +182 -0
  673. package/skills/error-handling/SKILL.md +159 -0
  674. package/skills/firecrawl/SKILL.md +165 -0
  675. package/skills/firecrawl/rules/install.md +82 -0
  676. package/skills/firecrawl/rules/security.md +26 -0
  677. package/skills/firecrawl-agent/SKILL.md +86 -0
  678. package/skills/firecrawl-build-interact/SKILL.md +96 -0
  679. package/skills/firecrawl-build-onboarding/SKILL.md +131 -0
  680. package/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
  681. package/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
  682. package/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
  683. package/skills/firecrawl-build-scrape/SKILL.md +97 -0
  684. package/skills/firecrawl-build-search/SKILL.md +97 -0
  685. package/skills/firecrawl-clone/SKILL.md +419 -0
  686. package/skills/firecrawl-crawl/SKILL.md +87 -0
  687. package/skills/firecrawl-download/SKILL.md +98 -0
  688. package/skills/firecrawl-interact/SKILL.md +112 -0
  689. package/skills/firecrawl-map/SKILL.md +79 -0
  690. package/skills/firecrawl-scrape/SKILL.md +97 -0
  691. package/skills/firecrawl-search/SKILL.md +88 -0
  692. package/skills/fitrah-guard/SKILL.md +78 -0
  693. package/skills/forge-quality-rules/SKILL.md +61 -0
  694. package/skills/ghazali-8lens/SKILL.md +56 -0
  695. package/skills/ijtihad-novel/SKILL.md +42 -0
  696. package/skills/ilham-intuition/SKILL.md +42 -0
  697. package/skills/imagegen/LICENSE.txt +201 -0
  698. package/skills/imagegen/SKILL.md +374 -0
  699. package/skills/imagegen/agents/openai.yaml +6 -0
  700. package/skills/imagegen/assets/imagegen-small.svg +5 -0
  701. package/skills/imagegen/assets/imagegen.png +0 -0
  702. package/skills/imagegen/references/cli.md +242 -0
  703. package/skills/imagegen/references/codex-network.md +33 -0
  704. package/skills/imagegen/references/image-api.md +90 -0
  705. package/skills/imagegen/references/prompting.md +118 -0
  706. package/skills/imagegen/references/sample-prompts.md +433 -0
  707. package/skills/imagegen/scripts/image_gen.py +995 -0
  708. package/skills/imagegen/scripts/remove_chroma_key.py +440 -0
  709. package/skills/istiqra-induction/SKILL.md +44 -0
  710. package/skills/ladunni-22/SKILL.md +53 -0
  711. package/skills/mizan/SKILL.md +90 -0
  712. package/skills/nadia/SKILL.md +56 -0
  713. package/skills/nadia-psi/SKILL.md +56 -0
  714. package/skills/never-guess/SKILL.md +75 -0
  715. package/skills/noor-recognition/SKILL.md +45 -0
  716. package/skills/observability/SKILL.md +133 -0
  717. package/skills/openai-docs/LICENSE.txt +201 -0
  718. package/skills/openai-docs/SKILL.md +100 -0
  719. package/skills/openai-docs/agents/openai.yaml +14 -0
  720. package/skills/openai-docs/assets/openai-small.svg +3 -0
  721. package/skills/openai-docs/assets/openai.png +0 -0
  722. package/skills/openai-docs/references/latest-model.md +37 -0
  723. package/skills/openai-docs/references/prompting-guide.md +244 -0
  724. package/skills/openai-docs/references/upgrade-guide.md +181 -0
  725. package/skills/openai-docs/scripts/resolve-latest-model-info.js +147 -0
  726. package/skills/pdf/LICENSE.txt +201 -0
  727. package/skills/pdf/SKILL.md +85 -0
  728. package/skills/pdf/agents/openai.yaml +5 -0
  729. package/skills/pdf/assets/pdf.png +0 -0
  730. package/skills/playwright/LICENSE.txt +201 -0
  731. package/skills/playwright/NOTICE.txt +14 -0
  732. package/skills/playwright/SKILL.md +165 -0
  733. package/skills/playwright/agents/openai.yaml +6 -0
  734. package/skills/playwright/assets/playwright-small.svg +3 -0
  735. package/skills/playwright/assets/playwright.png +0 -0
  736. package/skills/playwright/references/cli.md +116 -0
  737. package/skills/playwright/references/workflows.md +95 -0
  738. package/skills/playwright/scripts/playwright_cli.sh +25 -0
  739. package/skills/plugin-creator/SKILL.md +178 -0
  740. package/skills/plugin-creator/agents/openai.yaml +6 -0
  741. package/skills/plugin-creator/assets/plugin-creator-small.svg +3 -0
  742. package/skills/plugin-creator/assets/plugin-creator.png +0 -0
  743. package/skills/plugin-creator/references/plugin-json-spec.md +170 -0
  744. package/skills/plugin-creator/scripts/create_basic_plugin.py +301 -0
  745. package/skills/predictor/SKILL.md +43 -0
  746. package/skills/qiyas-analogy/SKILL.md +204 -0
  747. package/skills/refactoring/SKILL.md +137 -0
  748. package/skills/ruh-basis/SKILL.md +42 -0
  749. package/skills/security-review/SKILL.md +129 -0
  750. package/skills/skill-creator/SKILL.md +434 -0
  751. package/skills/skill-creator/agents/openai.yaml +5 -0
  752. package/skills/skill-creator/assets/skill-creator-small.svg +3 -0
  753. package/skills/skill-creator/assets/skill-creator.png +0 -0
  754. package/skills/skill-creator/license.txt +202 -0
  755. package/skills/skill-creator/references/openai_yaml.md +49 -0
  756. package/skills/skill-creator/scripts/generate_openai_yaml.py +226 -0
  757. package/skills/skill-creator/scripts/init_skill.py +400 -0
  758. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  759. package/skills/skill-installer/LICENSE.txt +202 -0
  760. package/skills/skill-installer/SKILL.md +76 -0
  761. package/skills/skill-installer/agents/openai.yaml +5 -0
  762. package/skills/skill-installer/assets/skill-installer-small.svg +3 -0
  763. package/skills/skill-installer/assets/skill-installer.png +0 -0
  764. package/skills/skill-installer/scripts/github_utils.py +21 -0
  765. package/skills/skill-installer/scripts/install-skill-from-github.py +308 -0
  766. package/skills/skill-installer/scripts/list-skills.py +107 -0
  767. package/skills/skills-and-hooks-reference/SKILL.md +196 -0
  768. package/skills/soul-domains/SKILL.md +43 -0
  769. package/skills/tadabbur/SKILL.md +232 -0
  770. package/skills/tadabbur-ops/SKILL.md +42 -0
  771. package/skills/tafakkur/SKILL.md +104 -0
  772. package/skills/testing-strategy/SKILL.md +122 -0
  773. package/src/action-ledger-core.ts +1054 -0
  774. package/src/chat.ts +5 -6
  775. package/src/codebase-scanner.ts +2 -0
  776. package/src/connectors/claude-code.ts +149 -12
  777. package/src/connectors/codebase-awareness.ts +325 -25
  778. package/src/connectors/codex.ts +1273 -40
  779. package/src/connectors/cursor.ts +8 -0
  780. package/src/connectors/governed-adapter.ts +174 -0
  781. package/src/connectors/opencode.ts +18 -2
  782. package/src/connectors/repo-guard.ts +24 -12
  783. package/src/connectors/runtime.ts +99 -2
  784. package/src/connectors/shell.ts +125 -7
  785. package/src/cross-cli-hive-binding.ts +290 -0
  786. package/src/garden-control-plane.ts +24 -1
  787. package/src/governed-surface-runner.ts +1227 -0
  788. package/src/index.ts +104 -1
  789. package/src/task-runner.ts +3794 -0
  790. package/dist/aria-connector/src/install-hooks.d.ts +0 -18
  791. package/dist/aria-connector/src/install-hooks.d.ts.map +0 -1
  792. package/dist/aria-connector/src/install-hooks.js +0 -224
  793. package/dist/aria-connector/src/install-hooks.js.map +0 -1
  794. package/dist/aria-connector/src/onboarding-wizard.d.ts +0 -5
  795. package/dist/aria-connector/src/onboarding-wizard.d.ts.map +0 -1
  796. package/dist/aria-connector/src/onboarding-wizard.js +0 -188
  797. package/dist/aria-connector/src/onboarding-wizard.js.map +0 -1
  798. package/dist/cli-0.2.38.tgz +0 -0
  799. package/dist/install.sh +0 -13
  800. package/src/__tests__/anthropic-oauth.test.ts +0 -186
  801. package/src/__tests__/auth-commands.test.ts +0 -132
  802. package/src/__tests__/owner-login.test.ts +0 -311
@@ -15,6 +15,13 @@ import {
15
15
  runtimeCoachBlocksLocalPhase,
16
16
  updateTaskProjectLedger,
17
17
  } from './lib/first-class-coach.mjs';
18
+ import { classifyIntentDeterministic } from './lib/coach-intent-classifier.mjs';
19
+ import {
20
+ extractManifest,
21
+ manifestHash,
22
+ manifestMode,
23
+ manifestVerificationRequired,
24
+ } from './lib/orchestration-manifest-extract.mjs';
18
25
 
19
26
  function readInput() {
20
27
  try {
@@ -30,6 +37,235 @@ function emitRuntimeCoachBlock(result) {
30
37
  process.exit(2);
31
38
  }
32
39
 
40
+ // AI-11803-LOOP-HOTFIX 2026-05-12 — local-ledger-supersedes-remote-runtime-coach
41
+ // pattern, generalized. The remote runtime coach raises form-pattern reasons
42
+ // (missing_readable_cognition_before_release, missing_applied_cognition_before_release,
43
+ // verification_trace_pending, intent_boundary_pending) when its text-pattern
44
+ // parser doesn't match the emitted XML cognition/applied_cognition blocks.
45
+ // The local task/project ledger evaluates the same emission against
46
+ // structure-anchored evidence (qualityGates with evidence anchors) and reports
47
+ // readinessClaimAllowed=true. When local says safe AND every remote reason is
48
+ // in this known-false-positive set, downgrade the repair_once block to a
49
+ // non-blocking advisory: write LOUD telemetry, do NOT exit 2, let the turn
50
+ // release. Hard_block decisions (real risk signals) pass through untouched.
51
+ //
52
+ // Kill switch: ARIA_COACH_SUPERSEDES_OFF=1 disables the downgrade entirely.
53
+ // Per-reason re-enable: not needed yet — the SUPERSEDABLE set is narrow and
54
+ // only applies to repair_once decisions.
55
+ // AI-11803-SUPERSEDES-COMPLETION-CLAIM (2026-05-12) — added
56
+ // `unsupported_completion_or_verification_claim` to the supersedes set.
57
+ // The remote coach fires this reason at OUTPUT_PHASES when COMPLETION_CLAIM_RX
58
+ // matches and the remote's hasEvidence returns false. After the parity fix
59
+ // for hasEvidence (now reads tool_response.stdout), failed-detection cases
60
+ // should be rare — but legitimate "done" claims after a successful probe in
61
+ // a prior turn can still trigger the remote because the remote may not see
62
+ // the prior turn's tool_response. The local ledger DOES persist verification
63
+ // state across turns, so when readinessClaimAllowed=true, the local has
64
+ // real proof and the remote's "unsupported" reason is a parser miss.
65
+ // Gate-condition (readinessClaimAllowed=true + no open blockers) is enforced
66
+ // by applyLocalLedgerSupersedes — this set membership is necessary but not
67
+ // sufficient on its own.
68
+ const SUPERSEDABLE_RUNTIME_REASONS = new Set([
69
+ 'missing_readable_cognition_before_release',
70
+ 'missing_applied_cognition_before_release',
71
+ 'verification_trace_pending',
72
+ 'intent_boundary_pending',
73
+ 'cognition_presence',
74
+ 'missing_readable_cognition',
75
+ 'missing_applied_cognition',
76
+ 'unsupported_completion_or_verification_claim',
77
+ ]);
78
+
79
+ function extractRuntimeReasons(block) {
80
+ if (!block || typeof block !== 'object') return [];
81
+ if (Array.isArray(block.reasons)) return block.reasons.filter((r) => typeof r === 'string');
82
+ const record = block.record;
83
+ if (record && Array.isArray(record.reasons)) return record.reasons.filter((r) => typeof r === 'string');
84
+ return [];
85
+ }
86
+
87
+ // AI-11803-LOOP3 2026-05-12 — posture-based downgrade for the deploy-class
88
+ // runtime-coach false-positive. The runtime coach's vocabulary classifier
89
+ // raises `unverified_deploy_or_infra_mutation` on prose that MENTIONS
90
+ // deploy/rollout/push/etc. as topics, even when intent is PROPOSE / REPORT /
91
+ // DESCRIBE (audit prose, recommendations, meta-discussion). The local
92
+ // classifyIntentDeterministic from lib/coach-intent-classifier.mjs already
93
+ // implements the structural intent taxonomy. This downgrade consults it and
94
+ // overrides hard_block when intent decision is OVERRIDE (PROPOSE / REPORT /
95
+ // DESCRIBE without first-person past-tense claim). CLAIM intent without
96
+ // evidence-anchor still hard_blocks — real risk signals are preserved.
97
+ //
98
+ // Kill switch: ARIA_COACH_POSTURE_OFF=1 disables the posture downgrade.
99
+ const POSTURE_DOWNGRADE_REASONS = new Set([
100
+ 'unverified_deploy_or_infra_mutation',
101
+ ]);
102
+
103
+ function applyPostureDowngradeForDeployClass(runtimeBlock, event) {
104
+ if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_POSTURE_OFF || ''))) return runtimeBlock;
105
+ if (!runtimeBlock) return null;
106
+ const reasons = extractRuntimeReasons(runtimeBlock);
107
+ if (reasons.length === 0) return runtimeBlock;
108
+ // Only act when EVERY reason on the block is in the deploy-class set; if a
109
+ // real risk signal is co-raised alongside the deploy-class, keep hard_block.
110
+ const allPostureClass = reasons.every((r) => POSTURE_DOWNGRADE_REASONS.has(r));
111
+ if (!allPostureClass) return runtimeBlock;
112
+ const text = extractAssistantText(event);
113
+ if (!text || typeof text !== 'string') return runtimeBlock;
114
+ let classification;
115
+ try {
116
+ classification = classifyIntentDeterministic(text);
117
+ } catch (err) {
118
+ process.stderr.write(`[aria-first-class-coach:posture-classifier-error] ${err instanceof Error ? err.message : String(err)} — passing block through unchanged\n`);
119
+ return runtimeBlock;
120
+ }
121
+ // OVERRIDE = PROPOSE / REPORT / DESCRIBE — false-positive of the vocabulary
122
+ // pattern; the runtime coach's matcher fired on topic words, not on a CLAIM.
123
+ if (classification && classification.intent !== 'CLAIM' && classification.intent !== 'AMBIGUOUS') {
124
+ process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=${classification.intent} confidence=${classification.confidence} features=${(classification.features || []).join(',')} — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
125
+ return null;
126
+ }
127
+ // CLAIM with evidence-anchor: downgrade to advisory (real claim but
128
+ // verification anchor present in prose; runtime coach lacks visibility).
129
+ if (classification && classification.intent === 'CLAIM' && classification.evidenceAnchored === true) {
130
+ process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=CLAIM evidence_anchored=true — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
131
+ return null;
132
+ }
133
+ // AI-11803-DEPLOY-MENU-FALLBACK (2026-05-12) — AMBIGUOUS with proposal-menu
134
+ // shape: agent is surfacing concrete deploy commands as options for the
135
+ // operator to authorize (numbered list, "Options:", "want me to", "awaiting")
136
+ // — not claiming them. Symmetric to destructive-class menu-shape fallback.
137
+ // Without this, audit findings prose listing kubectl/docker examples gets
138
+ // hard_blocked even though the prose is meta-discussion.
139
+ if (classification && classification.intent === 'AMBIGUOUS' && PROPOSAL_MENU_RX.test(text)) {
140
+ process.stderr.write(`[aria-first-class-coach:posture-downgrade-applied] reasons=${reasons.join(',')} classifier_intent=AMBIGUOUS menu_shape=true — downgraded; kill switch ARIA_COACH_POSTURE_OFF=1\n`);
141
+ return null;
142
+ }
143
+ // CLAIM without evidence OR AMBIGUOUS without menu shape: keep the
144
+ // hard_block — real risk signal.
145
+ return runtimeBlock;
146
+ }
147
+
148
+ // AI-11803-F4-COACH-FIX (2026-05-12) — local downgrade for the
149
+ // destructive-action class false-positive. The runtime coach's pattern
150
+ // classifier matches a curated token list against ANY text in the event
151
+ // payload — including code-edit content (where the token appears in a
152
+ // string literal or regex source), prose-discussion context, and
153
+ // proposal-menu prose at Stop/output phase. All three are false positives:
154
+ // the action shape is not a shell execution.
155
+ //
156
+ // Downgrade fires when:
157
+ // - tool_name is Edit / Write / NotebookEdit → the matched token is in
158
+ // a string literal or comment, not an executed command. Real mutations
159
+ // happen via Bash, not Edit/Write of source files.
160
+ // - tool_name is Bash AND command prefix is a known read-only probe
161
+ // pattern (ls/cat/grep/find/echo/wc/stat/which/pwd/date/file/du/df/
162
+ // ss/ps/md5sum/node/python/git status/git log/git diff/git show).
163
+ // The local pre-tool-gate's destructive-pattern scanner already
164
+ // handles real mutations at correct shell-position discipline.
165
+ // - tool_name is EMPTY (Stop/output phase, no tool firing) AND the
166
+ // assistant text classifies as PROPOSE / REPORT / DESCRIBE / CLAIM
167
+ // with evidence-anchor / AMBIGUOUS with proposal-menu shape. This is
168
+ // the case where the operator listed kubectl/delete/wipe commands as
169
+ // options awaiting authorization — not executions. Symmetric to the
170
+ // deploy-class downgrade.
171
+ //
172
+ // Real mutations from Bash (non-probe prefix) still pass through to
173
+ // hard_block — the runtime coach's signal is preserved when the action
174
+ // shape is genuinely mutation. CLAIM at Stop without evidence anchor still
175
+ // hard_blocks too.
176
+ //
177
+ // Kill switch: ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1
178
+ const POSTURE_DOWNGRADE_DESTRUCTIVE_REASONS = new Set([
179
+ 'unapproved_destructive_action',
180
+ ]);
181
+
182
+ // AI-11803-PROBE-PREFIX-EXTEND (2026-05-12) — extended the probe set to
183
+ // include message-carrying git commands (commit, tag, stash, notes). These
184
+ // commands ACCEPT user-supplied text in -m/--message/-F arguments and that
185
+ // text appears in tool_input.command. The runtime coach scans the full
186
+ // command string and matches destructive vocab inside the message body even
187
+ // though that body is literal text, not executed shell. Symmetric to the
188
+ // Edit/Write/NotebookEdit case where matched vocab is in a string literal.
189
+ // Real destructive shapes (e.g., `git commit -m "$(rm -rf /)"`) are still
190
+ // caught by the local pre-tool-gate's destructive-pattern scanner via
191
+ // shell-substitution detection — those don't reach this Bash branch.
192
+ const PROBE_PREFIX_RX = /^(?:ls|cat|head|tail|grep|find|echo|wc|stat|which|pwd|date|file|du|df|ss|ps|md5sum|node|python3?|git\s+(?:status|log|diff|show|branch|rev-list|rev-parse|fetch|commit|tag|stash|notes|add|restore|switch|config\s+--get))\b/;
193
+
194
+ // Proposal-menu shape detection — a numbered/bulleted list of options OR
195
+ // "options:" / "choices:" / "alternatives:" framing. Used to recognize the
196
+ // Stop-phase pattern where the assistant surfaces concrete commands as
197
+ // options for the operator to authorize, which the upstream destructive
198
+ // classifier reads as action intent.
199
+ const PROPOSAL_MENU_RX = /(?:^|\n)\s*(?:\d+[\.\)]\s+|[•*\-]\s+|option[s]?\s*:|choice[s]?\s*:|alternatives?\s*:|path[s]?\s+(?:forward|to)\s*:|recommend(?:ation|ed)?\s+(?:option|path|choice|next)s?\s*:|want\s+me\s+to|need\s+your\s+(?:nod|direction|word|authorization|authorisation|approval)|awaiting\s+(?:your|owner))/im;
200
+
201
+ function applyPostureDowngradeForDestructiveClass(runtimeBlock, event) {
202
+ if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF || ''))) return runtimeBlock;
203
+ if (!runtimeBlock) return null;
204
+ const reasons = extractRuntimeReasons(runtimeBlock);
205
+ if (reasons.length === 0) return runtimeBlock;
206
+ const allDestructiveClass = reasons.every((r) => POSTURE_DOWNGRADE_DESTRUCTIVE_REASONS.has(r));
207
+ if (!allDestructiveClass) return runtimeBlock;
208
+ const toolName = String(event?.tool_name || event?.toolName || '');
209
+ if (toolName === 'Edit' || toolName === 'Write' || toolName === 'NotebookEdit') {
210
+ process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] tool=${toolName} reasons=${reasons.join(',')} — code-edit shape, matched token is in a string-literal/regex-source not an executed command; downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
211
+ return null;
212
+ }
213
+ if (toolName === 'Bash') {
214
+ const cmd = String(event?.tool_input?.command || event?.toolInput?.command || '').trim();
215
+ if (PROBE_PREFIX_RX.test(cmd)) {
216
+ process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] tool=Bash shape=probe cmd_prefix=${cmd.slice(0, 40).replace(/\s+/g, ' ')} — read-only probe; downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
217
+ return null;
218
+ }
219
+ // Real mutation shape (Bash with non-probe prefix) — preserve hard_block.
220
+ return runtimeBlock;
221
+ }
222
+ // Stop / output phase: no tool firing. Apply intent-classifier discrimination
223
+ // symmetric to applyPostureDowngradeForDeployClass.
224
+ if (!toolName) {
225
+ const text = extractAssistantText(event);
226
+ if (!text || typeof text !== 'string') return runtimeBlock;
227
+ let classification;
228
+ try {
229
+ classification = classifyIntentDeterministic(text);
230
+ } catch (err) {
231
+ process.stderr.write(`[aria-first-class-coach:destructive-classifier-error] ${err instanceof Error ? err.message : String(err)} — passing block through unchanged\n`);
232
+ return runtimeBlock;
233
+ }
234
+ if (classification && classification.intent !== 'CLAIM' && classification.intent !== 'AMBIGUOUS') {
235
+ process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=${classification.intent} confidence=${classification.confidence} features=${(classification.features || []).join(',')} — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
236
+ return null;
237
+ }
238
+ if (classification && classification.intent === 'CLAIM' && classification.evidenceAnchored === true) {
239
+ process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=CLAIM evidence_anchored=true — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
240
+ return null;
241
+ }
242
+ if (classification && classification.intent === 'AMBIGUOUS' && PROPOSAL_MENU_RX.test(text)) {
243
+ process.stderr.write(`[aria-first-class-coach:destructive-downgrade-applied] phase=output reasons=${reasons.join(',')} classifier_intent=AMBIGUOUS menu_shape=true — downgraded; kill switch ARIA_COACH_DESTRUCTIVE_DOWNGRADE_OFF=1\n`);
244
+ return null;
245
+ }
246
+ return runtimeBlock;
247
+ }
248
+ return runtimeBlock;
249
+ }
250
+
251
+ function applyLocalLedgerSupersedes(runtimeBlock, ledger) {
252
+ if (/^(?:1|true|yes|on)$/i.test(String(process.env.ARIA_COACH_SUPERSEDES_OFF || ''))) return runtimeBlock;
253
+ if (!runtimeBlock) return null;
254
+ const decision = String(runtimeBlock.decision || runtimeBlock.record?.decision || '').toLowerCase();
255
+ // Only act on repair_once; hard_block + blocked must pass through untouched.
256
+ if (decision !== 'repair_once') return runtimeBlock;
257
+ const reasons = extractRuntimeReasons(runtimeBlock);
258
+ if (reasons.length === 0) return runtimeBlock;
259
+ const allSupersedable = reasons.every((r) => SUPERSEDABLE_RUNTIME_REASONS.has(r));
260
+ if (!allSupersedable) return runtimeBlock;
261
+ const readinessOk = ledger?.controls?.readinessClaimAllowed === true;
262
+ const openBlockers = Array.isArray(ledger?.openBlockers) ? ledger.openBlockers : [];
263
+ if (!readinessOk || openBlockers.length > 0) return runtimeBlock;
264
+ // LOUD telemetry — every downgrade is auditable.
265
+ process.stderr.write(`[aria-first-class-coach:supersedes-applied] decision=${decision} reasons=${reasons.join(',')} ledgerId=${ledger.ledgerId || 'unknown'} readinessClaimAllowed=true openBlockers=0 — downgraded to non-blocking advisory; kill switch ARIA_COACH_SUPERSEDES_OFF=1\n`);
266
+ return null;
267
+ }
268
+
33
269
  async function main() {
34
270
  const event = readInput();
35
271
  const platform = inferCoachPlatform(event);
@@ -42,6 +278,42 @@ async function main() {
42
278
  event,
43
279
  evidence: hookEvidence,
44
280
  });
281
+ const runtimeResult = await recordRuntimeCoachForLifecycle({
282
+ platform,
283
+ phase,
284
+ event,
285
+ ledgerResult,
286
+ evidence: hookEvidence,
287
+ });
288
+ const runtimeBlock = applyLocalLedgerSupersedes(
289
+ applyPostureDowngradeForDestructiveClass(
290
+ applyPostureDowngradeForDeployClass(
291
+ runtimeCoachBlocksLocalPhase(phase, runtimeResult),
292
+ event,
293
+ ),
294
+ event,
295
+ ),
296
+ ledgerResult.ledger,
297
+ );
298
+ // 2026-05-17 producer-enrichment for harness ticker
299
+ // (project_harness_ticker_counter_wiring_2026_05_17.md). The coach event
300
+ // row now carries the runtime decision + posture + forcedSkillLoad
301
+ // alongside the base telemetry so the ticker consumer can bump
302
+ // Repairs / Blocks / Skills fired (not just Gate checks). Moved after
303
+ // runtimeBlock computation so a single row per hook fire carries the
304
+ // full decision context — keeps gates count proportional to fires.
305
+ const decisionRaw = String(runtimeBlock?.decision || runtimeBlock?.record?.decision || '').toLowerCase();
306
+ const decision = decisionRaw || null;
307
+ const posture = decision === 'hard_block' || decision === 'blocked' ? 'hard_block'
308
+ : decision === 'repair_once' ? 'repair_once'
309
+ : null;
310
+ const forcedSkillLoad = runtimeBlock?.record?.forcedSkillLoad
311
+ || runtimeBlock?.forcedSkillLoad
312
+ || (Array.isArray(runtimeResult?.results)
313
+ ? (runtimeResult.results.find((r) => r?.record?.forcedSkillLoad)?.record?.forcedSkillLoad
314
+ || runtimeResult.results.find((r) => r?.forcedSkillLoad)?.forcedSkillLoad
315
+ || null)
316
+ : null);
45
317
  recordCoachEvent({
46
318
  platform,
47
319
  phase,
@@ -50,21 +322,35 @@ async function main() {
50
322
  evidence: {
51
323
  ...hookEvidence,
52
324
  task_project_ledger: ledgerResult.ledger.ledgerId,
325
+ ...(decision ? { decision } : {}),
326
+ ...(posture ? { posture } : {}),
53
327
  },
328
+ metadata: forcedSkillLoad ? { forcedSkillLoad } : null,
54
329
  });
55
-
56
- const runtimeResult = await recordRuntimeCoachForLifecycle({
57
- platform,
58
- phase,
59
- event,
60
- ledgerResult,
61
- evidence: hookEvidence,
62
- });
63
- const runtimeBlock = runtimeCoachBlocksLocalPhase(phase, runtimeResult);
64
330
  if (runtimeBlock) emitRuntimeCoachBlock(runtimeBlock);
65
331
 
66
332
  if (phase === 'stop' || phase === 'pre_emit' || phase === 'post_cognition') {
67
333
  const text = extractAssistantText(event);
334
+ const manifestSlot = extractManifest(text);
335
+ if (manifestSlot) {
336
+ const hash = manifestHash(manifestSlot.manifest);
337
+ const mode = manifestMode(manifestSlot.manifest) || 'unknown';
338
+ const verificationRequired = manifestVerificationRequired(manifestSlot.manifest);
339
+ process.stderr.write(
340
+ `[aria-first-class-coach:manifest] hash=${hash} mode=${mode} verification_required=${verificationRequired}\n`,
341
+ );
342
+ recordCoachEvent({
343
+ platform,
344
+ phase,
345
+ source: 'aria-first-class-coach-hook:manifest-extracted',
346
+ event,
347
+ evidence: {
348
+ ...hookEvidence,
349
+ task_project_ledger: ledgerResult.ledger.ledgerId,
350
+ verification: { manifest_hash: hash, mode, verification_required: verificationRequired },
351
+ },
352
+ });
353
+ }
68
354
  const evaluation = evaluateTaskProjectClaim({ text, ledger: ledgerResult.ledger });
69
355
  if (!evaluation.ok) {
70
356
  recordBlockedTaskProjectClaim({
@@ -103,7 +389,16 @@ async function main() {
103
389
  task_project_claim_ok: true,
104
390
  },
105
391
  });
106
- const releaseBlock = runtimeCoachBlocksLocalPhase(phase, releaseRuntimeResult);
392
+ const releaseBlock = applyLocalLedgerSupersedes(
393
+ applyPostureDowngradeForDestructiveClass(
394
+ applyPostureDowngradeForDeployClass(
395
+ runtimeCoachBlocksLocalPhase(phase, releaseRuntimeResult),
396
+ event,
397
+ ),
398
+ event,
399
+ ),
400
+ ledgerResult.ledger,
401
+ );
107
402
  if (releaseBlock) emitRuntimeCoachBlock(releaseBlock);
108
403
  }
109
404
 
@@ -1,4 +1,13 @@
1
1
  #!/usr/bin/env node
2
+ // ── doctrine-self-check-file: M0.SELFREVIEW.1+2 (2026-05-06) ──
3
+ // Session added comments describing prior antipatterns being migrated.
4
+ // Each comment names a trigger pattern; file-level ack covers them all.
5
+ // doctrine-self-check-file: (?:non-blocking|warn(?:ing)? only|advisory|falls? through|fail open|soft fail|log(?:ged)? and continue|quality gate warning) session-added-comments-describing-prior-state-or-migration
6
+ // doctrine-self-check-file: \b(?:shadow|proxy|wrapper)\b session-added-comments-describing-prior-state-or-migration
7
+ // doctrine-self-check-file: best.?effort session-added-comments-describing-prior-state-or-migration
8
+ // doctrine-self-check-file: eventually|for now session-added-comments-describing-prior-state-or-migration
9
+ // doctrine-self-check-file: fall.?through session-added-comments-describing-prior-state-or-migration
10
+
2
11
  // Aria harness fetch — via the canonical @aria_asi/harness-http-client SDK.
3
12
  //
4
13
  // Why this exists: doctrine says "use harness http client to be Aria's
@@ -20,6 +29,7 @@ import { spawnSync } from 'node:child_process';
20
29
  import { appendFileSync, existsSync, readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
21
30
  import { dirname } from 'node:path';
22
31
  import { createConnection } from 'node:net';
32
+ import { readGovernanceRecoveryContext, archiveRecoveryAfterPickup } from './lib/recovery-context.mjs';
23
33
 
24
34
  const HOME = process.env.HOME || '/tmp';
25
35
  const LOG_FILE = `${HOME}/.claude/aria-harness-history.log`;
@@ -67,7 +77,10 @@ function emit(envelope) {
67
77
  function emitFallback(reason, tried = []) {
68
78
  try {
69
79
  appendFileSync(LOG_FILE, `${new Date().toISOString()} offline mode=${MODE} reason="${reason.replace(/"/g, "'")}"\n`);
70
- } catch {}
80
+ } catch (err) {
81
+ // M0.H.X3: log-write failure now surfaces.
82
+ process.stderr.write(`[aria-harness-via-sdk:fallback-log-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
83
+ }
71
84
  emit({
72
85
  systemMessage: `${HEADER_PREFIX} ⚠ offline (${reason}) — fallback mode`,
73
86
  suppressOutput: false,
@@ -90,7 +103,12 @@ function resolveApiKey() {
90
103
  if (r.status === 0 && r.stdout) {
91
104
  return Buffer.from(r.stdout.trim(), 'base64').toString('utf8');
92
105
  }
93
- } catch {}
106
+ } catch (err) {
107
+ // M0.H.X3: kubectl-secret api-key-fetch failure now surfaces. Falls
108
+ // through to empty string (caller will emit offline-fallback) but
109
+ // operator sees if cluster RBAC / kubectl is broken.
110
+ process.stderr.write(`[aria-harness-via-sdk:apikey-kubectl-fetch] caught: ${err instanceof Error ? err.message : String(err)}\n`);
111
+ }
94
112
  return '';
95
113
  }
96
114
 
@@ -100,14 +118,18 @@ function loadCachedUrl() {
100
118
  const v = readFileSync(LAST_URL_CACHE, 'utf8').trim();
101
119
  if (v) return v;
102
120
  }
103
- } catch {}
121
+ } catch (err) {
122
+ process.stderr.write(`[aria-harness-via-sdk:url-cache-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
123
+ }
104
124
  return '';
105
125
  }
106
126
  function saveCachedUrl(url) {
107
127
  try {
108
128
  mkdirSync(dirname(LAST_URL_CACHE), { recursive: true });
109
129
  writeFileSync(LAST_URL_CACHE, url + '\n');
110
- } catch {}
130
+ } catch (err) {
131
+ process.stderr.write(`[aria-harness-via-sdk:url-cache-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
132
+ }
111
133
  }
112
134
 
113
135
  function loadCachedPacket() {
@@ -120,7 +142,9 @@ function loadCachedPacket() {
120
142
  return { data: JSON.parse(raw), ageSec };
121
143
  }
122
144
  }
123
- } catch {}
145
+ } catch (err) {
146
+ process.stderr.write(`[aria-harness-via-sdk:packet-cache-read] caught: ${err instanceof Error ? err.message : String(err)}\n`);
147
+ }
124
148
  return null;
125
149
  }
126
150
  function saveCachedPacket(rawJson) {
@@ -128,7 +152,9 @@ function saveCachedPacket(rawJson) {
128
152
  try {
129
153
  mkdirSync(dirname(packetPath), { recursive: true });
130
154
  writeFileSync(packetPath, rawJson);
131
- } catch {}
155
+ } catch (err) {
156
+ process.stderr.write(`[aria-harness-via-sdk:packet-cache-write@${packetPath}] caught: ${err instanceof Error ? err.message : String(err)}\n`);
157
+ }
132
158
  }
133
159
  }
134
160
 
@@ -153,7 +179,12 @@ function buildUrlList() {
153
179
  if (r.status === 0 && r.stdout && r.stdout !== 'None') {
154
180
  list.push(`http://${r.stdout.trim()}:8080`);
155
181
  }
156
- } catch {}
182
+ } catch (err) {
183
+ // M0.H.X3: kubectl-svc clusterIP probe failure now surfaces. Falls
184
+ // through with empty list addition; operator sees if kubectl access
185
+ // is broken.
186
+ process.stderr.write(`[aria-harness-via-sdk:cluster-ip-probe] caught: ${err instanceof Error ? err.message : String(err)}\n`);
187
+ }
157
188
  if (process.env.ARIA_PUBLIC_URL) list.push(process.env.ARIA_PUBLIC_URL.replace(/\/+$/, ''));
158
189
  // Dedup preserving order
159
190
  const seen = new Set();
@@ -283,7 +314,9 @@ function persistMizanReceipt(sessionId, payload) {
283
314
  try {
284
315
  mkdirSync(MIZAN_RECEIPT_DIR, { recursive: true });
285
316
  writeFileSync(receiptPathForSession(sessionId), JSON.stringify(payload, null, 2) + '\n');
286
- } catch {}
317
+ } catch (err) {
318
+ process.stderr.write(`[aria-harness-via-sdk:mizan-receipt-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
319
+ }
287
320
  }
288
321
 
289
322
  async function runMizanPre(apiKey, packet, sourceLabel) {
@@ -335,9 +368,14 @@ async function tryRunMizanPre(apiKey, packet, sourceLabel) {
335
368
  try {
336
369
  return await runMizanPre(apiKey, packet, sourceLabel);
337
370
  } catch (err) {
371
+ // Original mizan failure already captured in `err`. Log it best-effort.
338
372
  try {
339
373
  appendFileSync(LOG_FILE, `${new Date().toISOString()} mizan-pre-skip mode=${MODE} source=${sourceLabel} err="${String(err).replace(/"/g, "'").slice(0, 200)}"\n`);
340
- } catch {}
374
+ } catch (logErr) {
375
+ // M0.H.X3: log-write inside catch can also fail; surface to stderr
376
+ // so we don't lose both signals at once.
377
+ process.stderr.write(`[aria-harness-via-sdk:mizan-pre-skip-log] caught: ${logErr instanceof Error ? logErr.message : String(logErr)}\n`);
378
+ }
341
379
  return null;
342
380
  }
343
381
  }
@@ -446,15 +484,37 @@ function renderPacket(json, source, ageNote = '') {
446
484
  ctx += harness.slice(0, HARNESS_EXCERPT_CHARS);
447
485
  }
448
486
 
487
+ // M1.2 fix: deliver pending governance recovery contract on the next turn.
488
+ // Per feedback_no_graceful_degradation.md, the recovery file written by
489
+ // stop-gate / cognition-substrate-binding MUST flow back to the model.
490
+ // The OpenCode plugin already had this; the Claude Code hook was missing it
491
+ // (audit ledger Layer 4 / Bug B). Archive on pickup so the same recovery
492
+ // doesn't re-fire forever.
493
+ let recoveryPickupId = null;
449
494
  try {
450
- appendFileSync(LOG_FILE, `${new Date().toISOString()} mode=${MODE} hash=${phash.slice(0, 24)} url=${source} pre_passed=${pre.passed} contract_passed=${con.passed} missing=${mc.join(',') || 'none'} sdk=harness-http-client\n`);
451
- } catch {}
495
+ const { block: recoveryBlock, pickupId } = readGovernanceRecoveryContext();
496
+ if (recoveryBlock) {
497
+ ctx += `\n\n${recoveryBlock}`;
498
+ recoveryPickupId = pickupId;
499
+ }
500
+ } catch (error) {
501
+ process.stderr.write(`[harness-via-sdk] recovery context read failed (${error.message})\n`);
502
+ }
503
+
504
+ try {
505
+ appendFileSync(LOG_FILE, `${new Date().toISOString()} mode=${MODE} hash=${phash.slice(0, 24)} url=${source} pre_passed=${pre.passed} contract_passed=${con.passed} missing=${mc.join(',') || 'none'} sdk=harness-http-client recovery=${recoveryPickupId ? recoveryPickupId.slice(0, 12) : 'none'}\n`);
506
+ } catch (err) {
507
+ process.stderr.write(`[aria-harness-via-sdk:summary-log-write] caught: ${err instanceof Error ? err.message : String(err)}\n`);
508
+ }
452
509
 
453
510
  emit({
454
- systemMessage: `${HEADER_PREFIX} ${MODE} hash=${phash.slice(0, 16)} preState=${(pre.score || 0).toFixed(2)} contract=${(con.score || 0).toFixed(2)} sdk✓`,
511
+ systemMessage: `${HEADER_PREFIX} ${MODE} hash=${phash.slice(0, 16)} preState=${(pre.score || 0).toFixed(2)} contract=${(con.score || 0).toFixed(2)} sdk✓${recoveryPickupId ? ' recovery⟳' : ''}`,
455
512
  suppressOutput: false,
456
513
  hookSpecificOutput: { hookEventName: HOOK_EVENT_NAME, additionalContext: ctx },
457
514
  });
515
+
516
+ // Archive AFTER emit so the contract was actually delivered before we move it.
517
+ if (recoveryPickupId) archiveRecoveryAfterPickup(recoveryPickupId);
458
518
  }
459
519
 
460
520
  function normalizeCachedPacketForRender(cached) {
@@ -479,7 +539,12 @@ function probeUrl(urlStr) {
479
539
  const finish = (ok, err) => {
480
540
  if (settled) return;
481
541
  settled = true;
482
- try { sock.destroy(); } catch {}
542
+ try { sock.destroy(); } catch (_destroyErr) {
543
+ // M0.H.X3: documented silent-by-design — sock.destroy() can fail
544
+ // safely when the socket is already closed; the destroy is best-
545
+ // effort cleanup, not a control-flow signal.
546
+ void _destroyErr;
547
+ }
483
548
  resolve({ url: urlStr, ok, err });
484
549
  };
485
550
  sock.once('connect', () => finish(true));
@@ -507,7 +572,12 @@ async function main() {
507
572
  await tryRunMizanPre(apiKey, cached, '(cache)');
508
573
  return renderPacket(cached, '(cache)', ` cached ${Math.round(ageSec)}s`);
509
574
  }
510
- } catch {}
575
+ } catch (err) {
576
+ // M0.H.X3: cache-render path failure now surfaces. Fall-through to
577
+ // direct fetch is preserved; operator sees if cache normalization
578
+ // is consistently failing.
579
+ process.stderr.write(`[aria-harness-via-sdk:fresh-cache-render] caught: ${err instanceof Error ? err.message : String(err)}\n`);
580
+ }
511
581
  }
512
582
 
513
583
  const urls = buildUrlList();
@@ -557,11 +627,18 @@ async function main() {
557
627
  await tryRunMizanPre(apiKey, cached, '(stale-cache)');
558
628
  try {
559
629
  appendFileSync(LOG_FILE, `${new Date().toISOString()} stale mode=${MODE} cache_age=${Math.round(ageSec)}s last_err="${lastErr.replace(/"/g, "'")}" sdk=harness-http-client\n`);
560
- } catch {}
630
+ } catch (logErr) {
631
+ process.stderr.write(`[aria-harness-via-sdk:stale-cache-log-write] caught: ${logErr instanceof Error ? logErr.message : String(logErr)}\n`);
632
+ }
561
633
  return renderPacket(cached, `(stale ${Math.round(ageSec)}s — fresh fetch failed: ${lastErr.slice(0, 80)})`, ` stale ${Math.round(ageSec)}s`);
562
634
  }
563
635
  }
564
- } catch {}
636
+ } catch (err) {
637
+ // M0.H.X3: stale-cache render failure now surfaces. Falls through to
638
+ // emitFallback below; operator sees if BOTH fresh AND stale cache
639
+ // paths are failing.
640
+ process.stderr.write(`[aria-harness-via-sdk:stale-cache-render] caught: ${err instanceof Error ? err.message : String(err)}\n`);
641
+ }
565
642
 
566
643
  emitFallback(`all endpoints unreachable; last=${lastErr}`, urls);
567
644
  }