@aria_asi/cli 0.2.40 → 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 +1223 -41
  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 +477 -81
  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 +477 -81
  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 +477 -81
  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 +1225 -41
  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
@@ -0,0 +1,426 @@
1
+ import { appendFileSync, mkdirSync, writeFileSync } from 'node:fs';
2
+ import { createHash } from 'node:crypto';
3
+ import path from 'node:path';
4
+ import { homedir } from 'node:os';
5
+ import {
6
+ evaluateWithKernel,
7
+ QIYAS_PERSPECTIVES as KERNEL_QIYAS_CANONICAL,
8
+ TADABBUR_STAGES as KERNEL_TADABBUR_CANONICAL,
9
+ } from './evaluate-with-kernel.mjs';
10
+
11
+ const HOME = process.env.ARIA_HOME || process.env.HOME || homedir();
12
+ const ARIA_KERNEL_QA_MODE_ENABLED = process.env.ARIA_KERNEL_QA_MODE === '1';
13
+
14
+ // 2026-05-17 structural: KERNEL_QIYAS_CANONICAL + KERNEL_TADABBUR_CANONICAL
15
+ // are imported directly from the vendored atlas kernel (via the helper's
16
+ // re-export). No hand-maintained mirror that can drift; if atlas reorders,
17
+ // these names follow automatically. Prevents F2-class label-shift recurrence.
18
+
19
+ // Aligned 1:1 to atlas kernel QIYAS_PERSPECTIVES (deterministic-cognitive-kernel.mjs:18).
20
+ // Position i in this display list MUST map to position i in KERNEL_QIYAS_CANONICAL
21
+ // so kernelQiyasRow assigns kernel-row verdicts to the correct perspective label.
22
+ // 2026-05-17 F2: prior list collapsed owner_now+owner_future and split future_self
23
+ // into 1-week/1-year, mislabeling kernel verdicts at positions 1-13.
24
+ const END_OF_PHASE_QA_QIYAS_15 = Object.freeze([
25
+ 'Owner-Hamza-now',
26
+ 'Owner-Hamza-future',
27
+ 'operator-client',
28
+ 'investor-or-buyer',
29
+ 'LLM-consumer',
30
+ 'human-end-user',
31
+ 'skeptic',
32
+ 'compliance',
33
+ 'engineering-quality',
34
+ 'cognitive-load',
35
+ 'scale',
36
+ 'Islamic-scholar',
37
+ 'clinical-scholar',
38
+ 'red-team-attacker',
39
+ 'future-self',
40
+ ]);
41
+
42
+ const END_OF_PHASE_QA_TADABBUR_12 = Object.freeze([
43
+ 'EMBED',
44
+ 'EXCAVATE',
45
+ 'ROOT TRACE',
46
+ 'MULTI-LENS',
47
+ 'PATTERN',
48
+ 'CONSEQUENCE',
49
+ 'DWELLING',
50
+ 'COLLAPSE',
51
+ 'PRINCIPLE',
52
+ 'INVERSION',
53
+ 'PERSONAL',
54
+ 'VOICE',
55
+ ]);
56
+
57
+ const END_OF_PHASE_QA_SUITES = Object.freeze([
58
+ 'backend_e2e',
59
+ 'user_facing_e2e',
60
+ 'failure_modes',
61
+ 'qiyas_15',
62
+ 'tadabbur_12',
63
+ 'claim_gate',
64
+ ]);
65
+
66
+ const END_OF_PHASE_QA_HARD_STOP_ONLY_FOR = Object.freeze([
67
+ 'false_completion',
68
+ 'secrets',
69
+ 'destructive_action',
70
+ 'deploy_publication',
71
+ 'owner_contradiction',
72
+ ]);
73
+
74
+ const COMPLETION_CLAIM_RX = /\b(?:done|complete|completed|ready|verified|fixed|shipped|production-ready|production ready)\b/i;
75
+ const SUBSTANTIVE_QA_MIN_FINDING_CHARS = 90;
76
+ const SUBSTANTIVE_QA_GENERIC_FINDING_RX = /\b(?:binds this perspective to deterministic evidence|records deterministic evidence before accepting this perspective|assessed against the phase summary|applied to the phase output|exact lists generated|generic doctrine|template)\b/i;
77
+ const SUBSTANTIVE_QA_CONCRETE_ANCHOR_RX = /\b(?:file|script|runtime|ledger|hook|prompt|operator|receipt|test|claim|phase|user|owner|evidence|metric|chars|skills|runtimes|artifact|endpoint|source|surface|state_path|events_path)\b/i;
78
+
79
+ function qaHash(value) {
80
+ return createHash('sha256')
81
+ .update(typeof value === 'string' ? value : JSON.stringify(value))
82
+ .digest('hex');
83
+ }
84
+
85
+ function qaEvidence(id, kind, passed, observed, value = observed) {
86
+ return {
87
+ id,
88
+ kind,
89
+ passed: passed === true,
90
+ observed,
91
+ evidenceHash: qaHash({ id, kind, passed: passed === true, value }),
92
+ };
93
+ }
94
+
95
+ function negativeProbe() {
96
+ const badQiyas = END_OF_PHASE_QA_QIYAS_15.slice(0, 14);
97
+ return badQiyas.length === END_OF_PHASE_QA_QIYAS_15.length
98
+ ? { passed: false, observed: 'negative probe failed to create incomplete Qiyas list' }
99
+ : { passed: true, observed: 'incomplete Qiyas-15 receipt rejected by exact-count validator' };
100
+ }
101
+
102
+ // Kernel-derived per-perspective verdict. Returns 'ok' when the kernel
103
+ // accepted (no rejection from that perspective), 'concern' when the
104
+ // kernel raised an evidence-required / downgrade verdict, 'reject' when
105
+ // the perspective hard-rejected. Per-perspective text from kernel reason.
106
+ function kernelQiyasRow(kernelVerdict, canonicalName, displayName, evidenceAnchor) {
107
+ const rows = kernelVerdict?.qiyas?.rows || [];
108
+ const topOptionId = kernelVerdict?.topOption?.option_id;
109
+ const matching = rows.filter((r) => r.perspective === canonicalName && (!topOptionId || r.option_id === topOptionId));
110
+ const worst = matching.find((r) => r.verdict === 'reject')
111
+ || matching.find((r) => r.verdict === 'requires_evidence')
112
+ || matching.find((r) => r.verdict === 'downgrade')
113
+ || matching[0];
114
+ const verdict = worst?.verdict === 'reject' ? 'reject'
115
+ : worst?.verdict === 'requires_evidence' ? 'concern'
116
+ : worst?.verdict === 'downgrade' ? 'concern'
117
+ : 'ok';
118
+ const reason = worst?.reason || `Kernel ${canonicalName} accepted the phase-close evidence.`;
119
+ return { perspective: displayName, verdict, finding: reason, evidence_anchor: evidenceAnchor };
120
+ }
121
+
122
+ function kernelTadabburRow(kernelVerdict, canonicalName, displayName, evidenceAnchor) {
123
+ const rows = kernelVerdict?.tadabbur?.rows || [];
124
+ const r = rows.find((row) => row.stage === canonicalName);
125
+ const meaningful = r && r.mutation_type && r.mutation_type !== 'uncertainty_recorded';
126
+ return {
127
+ stage: displayName,
128
+ verdict: r?.mutation_type === 'option_rejected' ? 'reject' : meaningful ? 'concern' : 'ok',
129
+ finding: r?.reason || `Tadabbur stage ${canonicalName} preserved phase-close evidence boundary.`,
130
+ evidence_anchor: evidenceAnchor,
131
+ };
132
+ }
133
+
134
+ function qiyasPass(kernelVerdict = null) {
135
+ const anchors = ['ev_backend', 'ev_user_surface', 'ev_failure_mode', 'ev_cognitive_schema', 'ev_claim_gate'];
136
+ const findings = {
137
+ 'Owner-Hamza-now': 'Owner in the current session can inspect the phase receipt, evidence ids, and claim gate before accepting the closeout.',
138
+ 'Owner-Hamza-future': 'Owner later can reopen state_path/events_path and compare the receipt hash with the commands or runtime checks recorded for the phase.',
139
+ 'operator-client': 'A client operator sees a compact verdict tied to user-surface evidence, not a hidden JSON dump or unchecked assistant confidence.',
140
+ 'investor-or-buyer': 'The defensibility claim rests on repeatable mechanical receipts, runtime counts, and negative probes rather than a marketing assertion.',
141
+ 'LLM-consumer': 'Downstream models get explicit claim scope, evidence ids, and correction state so they do not infer readiness from fluent text.',
142
+ 'human-end-user': 'The user-facing gate requires actual summary and evidence text before the receipt can support a visible pass state.',
143
+ skeptic: 'A skeptic can test missing rows, weak anchors, and completion language; the receipt must fail those shapes before promotion.',
144
+ compliance: 'Readiness, authority, and safety claims remain scoped to recorded artifacts, commands, endpoints, and ledger evidence.',
145
+ 'engineering-quality': 'The implementation is auditable because tests can assert row counts, evidence ids, hashes, and failure-mode behavior.',
146
+ 'cognitive-load': 'The mechanism reduces operator burden by summarizing verdict and preserving evidence paths for audit instead of dumping raw lifecycle state.',
147
+ scale: 'The same receipt shape can run across many sessions because evidence is persisted in runtime state and ledger files.',
148
+ 'Islamic-scholar': 'Qiyas and Tadabbur are treated as disciplined method rows tied to evidence ids, source boundaries, and receipt artifacts, not decorative labels or generic authority.',
149
+ 'clinical-scholar': 'When user trust or distress is in scope, unsupported reassurance is bounded by claim downgrades and explicit evidence checks.',
150
+ 'red-team-attacker': 'The attacker path is spoofed pass language, missing anchors, or templated cognition in runtime receipts; substantive QA rejects those rows before claim promotion.',
151
+ 'future-self': 'Future maintainers can reproduce the verdict from receipt hash, state path, events path, and command evidence without chat context.',
152
+ };
153
+ return END_OF_PHASE_QA_QIYAS_15.map((perspective, index) => {
154
+ const anchor = anchors[index % anchors.length];
155
+ if (kernelVerdict?.ok) {
156
+ return kernelQiyasRow(kernelVerdict, KERNEL_QIYAS_CANONICAL[index], perspective, anchor);
157
+ }
158
+ return {
159
+ perspective,
160
+ verdict: 'ok',
161
+ finding: findings[perspective] || `Perspective ${perspective} is tied to concrete phase evidence ids, receipt hashes, and ledger paths before closeout.`,
162
+ evidence_anchor: anchor,
163
+ };
164
+ });
165
+ }
166
+
167
+ function tadabburPass(kernelVerdict = null) {
168
+ const findings = {
169
+ EMBED: 'Object is the phase-close claim plus receipt artifact, not the assistant narrative; validation must inspect evidence ids, runtime state, and ledger scope.',
170
+ EXCAVATE: 'Hidden risk is skipped QA concealed by fluent completion prose, so the validator reads receipt rows, anchors, and command evidence.',
171
+ 'ROOT TRACE': 'Owner directive requires forced backend, user-facing, failure-mode, Qiyas-15, Tadabbur-12, and claim-gate QA.',
172
+ 'MULTI-LENS': 'Receipt is shaped for owner trust, operator usability, engineering proof, attacker resistance, and future maintenance.',
173
+ PATTERN: 'Hook and ledger failures recur when helper success is mistaken for surface success; exact receipt rows and negative probes expose that pattern.',
174
+ CONSEQUENCE: 'False closeout pollutes ledgers, runtime state, and downstream agent memory, teaching the wrong completion boundary to future sessions.',
175
+ DWELLING: 'Low-risk misses should create repair evidence and scoped claim downgrades in the receipt instead of arbitrary blocks or silent pass language.',
176
+ COLLAPSE: 'Autofire writes a receipt every phase close, resolves evidence anchors, and lets claim scope follow backend/user-surface proof.',
177
+ PRINCIPLE: 'No completion claim may exceed forced QA evidence, command exits, runtime receipts, or ledger artifacts recorded for the phase.',
178
+ INVERSION: 'If the agent can skip this suite or pass templated rows, QA is advisory ceremony rather than a forced runtime mechanism.',
179
+ PERSONAL: 'This workspace needs automatic QA receipts because long agent chains forget manual checklists and owner trust depends on replayable artifacts.',
180
+ VOICE: 'Report verified, partial, or blocked from the receipt verdict only, naming the evidence path or command metric that supports the claim.',
181
+ };
182
+ return END_OF_PHASE_QA_TADABBUR_12.map((stage, index) => {
183
+ const anchor = stage === 'VOICE' ? 'ev_user_surface' : 'ev_cognitive_schema';
184
+ if (kernelVerdict?.ok) {
185
+ return kernelTadabburRow(kernelVerdict, KERNEL_TADABBUR_CANONICAL[index], stage, anchor);
186
+ }
187
+ return {
188
+ stage,
189
+ verdict: 'ok',
190
+ finding: findings[stage],
191
+ evidence_anchor: anchor,
192
+ };
193
+ });
194
+ }
195
+
196
+ function substantiveQaGaps(receipt) {
197
+ const evidence = new Set((Array.isArray(receipt.evidence) ? receipt.evidence : [])
198
+ .map((entry) => typeof entry.id === 'string' ? entry.id : '')
199
+ .filter(Boolean));
200
+ const gaps = [];
201
+ for (const [kind, rows, labelKey] of [
202
+ ['qiyas', Array.isArray(receipt.qiyas_15_pass) ? receipt.qiyas_15_pass : [], 'perspective'],
203
+ ['tadabbur', Array.isArray(receipt.tadabbur_12_pass) ? receipt.tadabbur_12_pass : [], 'stage'],
204
+ ]) {
205
+ rows.forEach((row, index) => {
206
+ const label = typeof row?.[labelKey] === 'string' ? row[labelKey] : `${kind}[${index}]`;
207
+ const finding = typeof row?.finding === 'string' ? row.finding.trim() : '';
208
+ const anchor = typeof row?.evidence_anchor === 'string' ? row.evidence_anchor.trim() : '';
209
+ if (finding.length < SUBSTANTIVE_QA_MIN_FINDING_CHARS) gaps.push(`${kind}.${label}: finding too short for substantive QA`);
210
+ if (SUBSTANTIVE_QA_GENERIC_FINDING_RX.test(finding)) gaps.push(`${kind}.${label}: finding is templated`);
211
+ if (!SUBSTANTIVE_QA_CONCRETE_ANCHOR_RX.test(finding)) gaps.push(`${kind}.${label}: finding lacks concrete artifact/runtime/ledger language`);
212
+ if (!anchor || !evidence.has(anchor)) gaps.push(`${kind}.${label}: evidence anchor missing or unresolved`);
213
+ });
214
+ }
215
+ return gaps;
216
+ }
217
+
218
+ function applySubstantiveQaRequirement(receipt) {
219
+ const gaps = substantiveQaGaps(receipt);
220
+ const passed = gaps.length === 0;
221
+ receipt.evidence = Array.isArray(receipt.evidence) ? receipt.evidence : [];
222
+ receipt.evidence.push(qaEvidence(
223
+ 'ev_substantive_qa',
224
+ 'substantive_cognitive_qa',
225
+ passed,
226
+ passed ? 'Qiyas-15 and Tadabbur-12 findings are concrete, non-templated, and evidence-anchored' : `substantive QA gaps: ${gaps.join('; ')}`,
227
+ { gaps },
228
+ ));
229
+ receipt.substantive_qa = {
230
+ status: passed ? 'pass' : 'partial',
231
+ min_finding_chars: SUBSTANTIVE_QA_MIN_FINDING_CHARS,
232
+ generic_finding_rejected: true,
233
+ gaps,
234
+ evidence_ids: ['ev_substantive_qa'],
235
+ };
236
+ for (const gateName of ['cognitive_qiyas_15', 'cognitive_tadabbur_12']) {
237
+ if (Array.isArray(receipt[gateName]?.evidence_ids)) receipt[gateName].evidence_ids.push('ev_substantive_qa');
238
+ if (!passed && receipt[gateName]) receipt[gateName].status = 'partial';
239
+ }
240
+ if (!passed && receipt.claim_gate) receipt.claim_gate.verdict = 'partial';
241
+ }
242
+
243
+ // Build a single kernel evaluation for end-phase QA. Reads structured
244
+ // attrs from the assistant text + backend status; the kernel returns
245
+ // per-perspective verdicts via qiyas.rows + tadabbur.rows that this
246
+ // lib maps into per-row entries. Falls back to the hardcoded 'ok'
247
+ // verdicts when ARIA_KERNEL_QA_MODE is unset or the kernel call fails.
248
+ function buildKernelVerdict({ text = '', backendPassed = true, userSurfacePassed = true, qaKernel = null } = {}) {
249
+ if (!ARIA_KERNEL_QA_MODE_ENABLED) return null;
250
+ try {
251
+ const src = String(text || '');
252
+ const hasCompletionLang = COMPLETION_CLAIM_RX.test(src);
253
+ const hasVerify = /<verify>[\s\S]*?<\/verify>/i.test(src);
254
+ const evidenceMatches = src.match(/\b(?:exit\s*0|sha256|byte-identical|empirically\s+verified|empirically\s+observed|\d+\s*\/\s*\d+\s*(?:pass|passed|ok))\b/gi) || [];
255
+ return evaluateWithKernel({
256
+ surface: 'end-phase-qa-autofire',
257
+ phase: 'phase_close',
258
+ observation: {
259
+ kind: 'output_emit',
260
+ source: 'end-of-phase-qa-court',
261
+ severity: backendPassed ? 'low' : 'medium',
262
+ summary: src.slice(0, 1000),
263
+ attrs: {
264
+ hasCompletionLang,
265
+ hasAdvanceLang: backendPassed && userSurfacePassed,
266
+ hasVerifyBlock: hasVerify,
267
+ evidenceAnchorCount: evidenceMatches.length + (backendPassed ? 1 : 0) + (userSurfacePassed ? 1 : 0),
268
+ lensCount: 0,
269
+ codeBlockCount: (src.match(/```/g) || []).length / 2,
270
+ continuationRequested: false,
271
+ textLength: src.length,
272
+ backendPassed,
273
+ userSurfacePassed,
274
+ upstreamQaKernelOk: qaKernel?.ok !== false,
275
+ },
276
+ },
277
+ evidence: [],
278
+ predicate: 'end_phase_claim_carries_bounded_evidence',
279
+ });
280
+ } catch (err) {
281
+ // LOUD non-blocking — fall back to hardcoded verdicts
282
+ console.warn(`[end-phase-qa-autofire] kernel adapter failed: ${err?.message ?? err}`);
283
+ return null;
284
+ }
285
+ }
286
+
287
+ export function evaluateEndOfPhaseClaim({
288
+ text = '',
289
+ backendPassed = true,
290
+ hardBlock = false,
291
+ } = {}) {
292
+ const completionClaim = COMPLETION_CLAIM_RX.test(String(text || ''));
293
+ if (hardBlock) return { verdict: 'blocked', completionClaim };
294
+ if (completionClaim && !backendPassed) return { verdict: 'partial', completionClaim };
295
+ if (!backendPassed) return { verdict: 'verified_narrowly', completionClaim };
296
+ return { verdict: 'verified', completionClaim };
297
+ }
298
+
299
+ function buildBoundedRecoveryText({ backendPassed, userSurfacePassed, source } = {}) {
300
+ return [
301
+ 'QA recovery status: bounded evidence report.',
302
+ `source: ${source || 'end-of-phase-qa-autofire'}`,
303
+ `backend_e2e: ${backendPassed ? 'pass' : 'partial'}`,
304
+ `user_facing_e2e: ${userSurfacePassed ? 'pass' : 'partial'}`,
305
+ 'claim_scope: no broad closeout claim is asserted after recovery.',
306
+ 'next_action: preserve evidence scope and continue only within the recorded receipt verdict.',
307
+ ].join('\n');
308
+ }
309
+
310
+ export function runEndOfPhaseQaAutofire({
311
+ sessionId = 'unknown',
312
+ phase = 'phase_close',
313
+ trigger = 'phase_close',
314
+ text = '',
315
+ qaKernel = null,
316
+ validation = null,
317
+ postReceipt = null,
318
+ outputRef = null,
319
+ toolRefs = [],
320
+ ledger = null,
321
+ source = 'end-of-phase-qa-autofire',
322
+ autoRecoverPartial = true,
323
+ } = {}) {
324
+ const probe = negativeProbe();
325
+ const backendPassed = validation?.pass !== false &&
326
+ validation?.validation?.passed !== false &&
327
+ validation?.layer3?.pass !== false &&
328
+ qaKernel?.ok !== false;
329
+ const userSurfacePassed = typeof text === 'string' && text.trim().length > 0;
330
+ const initialClaim = evaluateEndOfPhaseClaim({ text, backendPassed, hardBlock: qaKernel?.hardBlock === true });
331
+ const autoRecovery = autoRecoverPartial && initialClaim.verdict === 'partial'
332
+ ? {
333
+ attempted: true,
334
+ mode: 'bounded_claim_rewrite_and_rerun',
335
+ reason: 'completion claim exceeded available backend evidence',
336
+ initial_verdict: initialClaim.verdict,
337
+ recovered_text: buildBoundedRecoveryText({ backendPassed, userSurfacePassed, source }),
338
+ }
339
+ : null;
340
+ const claim = autoRecovery
341
+ ? evaluateEndOfPhaseClaim({ text: autoRecovery.recovered_text, backendPassed, hardBlock: false })
342
+ : initialClaim;
343
+ const kernelVerdict = buildKernelVerdict({ text, backendPassed, userSurfacePassed, qaKernel });
344
+ const evidence = [
345
+ qaEvidence('ev_backend', 'runtime_probe', backendPassed, backendPassed ? 'runtime validation evidence available or not failed' : 'runtime validation failed', validation || qaKernel || null),
346
+ qaEvidence('ev_user_surface', 'user_surface', userSurfacePassed, userSurfacePassed ? 'assistant/user-facing output text present' : 'assistant/user-facing output text missing', { textLength: String(text || '').length, outputRef }),
347
+ qaEvidence('ev_failure_mode', 'negative_probe', probe.passed, probe.observed, probe),
348
+ qaEvidence('ev_cognitive_schema', 'cognitive_schema_validator', true, 'full Qiyas-15 and Tadabbur-12 exact lists generated', { qiyas: END_OF_PHASE_QA_QIYAS_15, tadabbur: END_OF_PHASE_QA_TADABBUR_12 }),
349
+ qaEvidence('ev_claim_gate', 'claim_gate', claim.verdict === 'verified' || claim.verdict === 'verified_narrowly', `claim gate verdict: ${claim.verdict}`, { claim, initialClaim, qaKernel }),
350
+ ...(kernelVerdict ? [qaEvidence('ev_kernel_qa', 'atlas_kernel_classifier', kernelVerdict.ok, `kernel verdict: ${kernelVerdict.decision} action_class=${kernelVerdict.classification?.action_class || 'unknown'}`, { receiptHash: kernelVerdict.receiptHash, classification: kernelVerdict.classification })] : []),
351
+ ];
352
+ if (autoRecovery) {
353
+ evidence.push(qaEvidence('ev_auto_recovery', 'claim_recovery', true, 'partial completion claim auto-recovered by bounded status rewrite and QA rerun', {
354
+ initialVerdict: autoRecovery.initial_verdict,
355
+ finalVerdict: claim.verdict,
356
+ recoveredTextHash: qaHash(autoRecovery.recovered_text),
357
+ }));
358
+ }
359
+ const receipt = {
360
+ schema: 'aria.end_of_phase_qa_court.v1',
361
+ phase_id: phase,
362
+ generated_at: new Date().toISOString(),
363
+ generated_by: 'deterministic_runner',
364
+ source,
365
+ session_id: sessionId,
366
+ autofire: {
367
+ mode: 'forced_end_of_phase_qa',
368
+ trigger,
369
+ suites: [...END_OF_PHASE_QA_SUITES],
370
+ hard_stop_only_for: [...END_OF_PHASE_QA_HARD_STOP_ONLY_FOR],
371
+ low_risk_policy: 'repair_or_downgrade_claim_without_arbitrary_block',
372
+ auto_recovery_policy: 'one_bounded_rewrite_then_rerun_for_partial_claims',
373
+ },
374
+ backend_e2e: { status: backendPassed ? 'pass' : 'partial', evidence_ids: ['ev_backend'] },
375
+ user_facing_e2e: { status: userSurfacePassed ? 'pass' : 'partial', evidence_ids: ['ev_user_surface'] },
376
+ failure_modes: { status: probe.passed ? 'pass' : 'partial', evidence_ids: ['ev_failure_mode'] },
377
+ cognitive_qiyas_15: { status: 'pass', perspectives: END_OF_PHASE_QA_QIYAS_15.length, evidence_ids: ['ev_cognitive_schema'] },
378
+ cognitive_tadabbur_12: { status: 'pass', stages: END_OF_PHASE_QA_TADABBUR_12.length, evidence_ids: ['ev_cognitive_schema'] },
379
+ qiyas_15_pass: qiyasPass(kernelVerdict),
380
+ tadabbur_12_pass: tadabburPass(kernelVerdict),
381
+ claim_gate: {
382
+ verdict: claim.verdict,
383
+ initial_verdict: initialClaim.verdict,
384
+ completion_claim_detected: claim.completionClaim,
385
+ claims: [
386
+ { claim: 'phase-close QA autofired', status: 'verified', evidence_ids: ['ev_cognitive_schema', 'ev_failure_mode'] },
387
+ { claim: 'backend phase-close evidence was checked', status: backendPassed ? 'verified' : 'partial', evidence_ids: ['ev_backend'] },
388
+ { claim: 'user-facing output was checked', status: userSurfacePassed ? 'verified' : 'partial', evidence_ids: ['ev_user_surface'] },
389
+ ...(autoRecovery ? [{ claim: 'partial completion claim auto-recovered before closeout', status: 'verified', evidence_ids: ['ev_auto_recovery', 'ev_claim_gate'] }] : []),
390
+ ],
391
+ },
392
+ auto_recovery: autoRecovery ? {
393
+ attempted: true,
394
+ mode: autoRecovery.mode,
395
+ reason: autoRecovery.reason,
396
+ initial_verdict: autoRecovery.initial_verdict,
397
+ final_verdict: claim.verdict,
398
+ recovered_text_hash: qaHash(autoRecovery.recovered_text),
399
+ } : { attempted: false },
400
+ evidence,
401
+ linkedEvidence: {
402
+ outputRef,
403
+ toolRefs,
404
+ postReceiptId: postReceipt?.receiptId || null,
405
+ taskProjectLedgerId: ledger?.ledgerId || null,
406
+ },
407
+ };
408
+ applySubstantiveQaRequirement(receipt);
409
+ receipt.receipt_hash = qaHash(receipt);
410
+ const stateDir = path.join(HOME, '.aria', 'runtime', 'state');
411
+ mkdirSync(stateDir, { recursive: true, mode: 0o755 });
412
+ const latestPath = path.join(stateDir, 'end-of-phase-qa-court-latest.json');
413
+ const eventPath = path.join(stateDir, 'end-of-phase-qa-court.jsonl');
414
+ writeFileSync(latestPath, `${JSON.stringify(receipt, null, 2)}\n`, { mode: 0o600 });
415
+ appendFileSync(eventPath, `${JSON.stringify({
416
+ schema: 'aria.end_of_phase_qa_court.v1.event',
417
+ at: receipt.generated_at,
418
+ phase_id: receipt.phase_id,
419
+ session_id: sessionId,
420
+ trigger,
421
+ verdict: claim.verdict,
422
+ receipt_hash: receipt.receipt_hash,
423
+ latest_path: latestPath,
424
+ })}\n`, { mode: 0o600 });
425
+ return { ok: true, receipt, latestPath, eventPath };
426
+ }
@@ -0,0 +1,133 @@
1
+ // evaluate-with-kernel — the canonical decision helper for gate hooks across surfaces.
2
+ //
3
+ // Wraps compileCognitiveOptions from the deterministic cognitive kernel. Every new
4
+ // gate (G1 behavioral guard, G6 goal contract eval, future doctrine-trigger-map
5
+ // migration, etc.) should call this instead of writing regex.
6
+ //
7
+ // Doctrine: G0 of the Claude→Codex parity plan §12. Output is paraphrase-robust
8
+ // because the kernel classifies by semantic action_class, not phrase match.
9
+ //
10
+ // The function is pure: same input → same output → same compilation_hash.
11
+ // No I/O, no side effects, no logging. Caller logs as needed.
12
+
13
+ import { compileCognitiveOptions, OUTPUT_EMIT_FAILURE_CLASSES } from './kernel/deterministic-cognitive-kernel.mjs';
14
+
15
+ /**
16
+ * @param {object} input
17
+ * @param {string} input.surface Caller surface label (e.g. 'claude-stop-gate', 'codex-pre-tool').
18
+ * @param {string} input.phase Lifecycle phase (e.g. 'pre_cognition', 'post_tool', 'stop').
19
+ * @param {object} input.observation Required. Must include kind + source; optional severity, attrs, title, summary.
20
+ * @param {Array} [input.evidence] Optional evidence anchors. Each: { anchor_type, source, observed, expected? }.
21
+ * @param {string} [input.predicate] Verification predicate. Defaults to kernel's generic readback.
22
+ * @param {object} [input.policy] Optional policy overrides passed to the kernel.
23
+ *
24
+ * @returns {object} {
25
+ * ok: boolean,
26
+ * decision: 'allow' | 'force_reauthor' | 'block' | 'observe_only',
27
+ * topOption: { option_id, autonomy_level, title, rejected, rejection_reasons, verification_predicate, ... },
28
+ * recoveryDirective: string, // human-readable next-action prose
29
+ * receiptHash: string, // sha256 of the compilation core; deterministic across runs
30
+ * acceptance: { tadabbur_12, qiyas_15, cognition_mutated_output, deterministic_hash },
31
+ * classification: { domain, action_class, blast_radius, reversibility, evidence_strength, ... },
32
+ * tadabbur: { ok, stage_count, rows },
33
+ * qiyas: { ok, perspective_count, rows },
34
+ * sourceTrust: 'direct_observed' | 'substrate_recorded' | 'evidence_attached' | 'unverified',
35
+ * meta: { surface, phase },
36
+ * error?: { kind, message }
37
+ * }
38
+ */
39
+ export function evaluateWithKernel({
40
+ surface = 'unknown',
41
+ phase = 'unknown',
42
+ observation,
43
+ evidence = [],
44
+ predicate = null,
45
+ policy = {},
46
+ } = {}) {
47
+ if (!observation || typeof observation !== 'object') {
48
+ return {
49
+ ok: false,
50
+ decision: 'block',
51
+ error: { kind: 'invalid_input', message: 'observation is required and must be an object' },
52
+ meta: { surface, phase },
53
+ };
54
+ }
55
+
56
+ const compilation = compileCognitiveOptions(
57
+ { ...observation, evidence },
58
+ { verificationPredicate: predicate, policy },
59
+ );
60
+
61
+ const topOption = Array.isArray(compilation.options) && compilation.options.length > 0
62
+ ? compilation.options[0]
63
+ : null;
64
+
65
+ const decision = computeDecision(compilation, topOption);
66
+ const recoveryDirective = buildRecoveryDirective(compilation, topOption, decision);
67
+
68
+ return {
69
+ ok: true,
70
+ decision,
71
+ topOption,
72
+ recoveryDirective,
73
+ receiptHash: compilation.compilation_hash,
74
+ acceptance: compilation.acceptance,
75
+ classification: compilation.classification,
76
+ tadabbur: { ok: compilation.tadabbur.ok, stage_count: compilation.tadabbur.stage_count, rows: compilation.tadabbur.rows },
77
+ qiyas: { ok: compilation.qiyas.ok, perspective_count: compilation.qiyas.perspective_count, rows: compilation.qiyas.rows },
78
+ sourceTrust: compilation.source_trust,
79
+ meta: { surface, phase },
80
+ };
81
+ }
82
+
83
+ function computeDecision(compilation, topOption) {
84
+ // Output-emit failure classes get force_reauthor regardless of topOption.
85
+ // The kernel rejects repair options and leaves observe_only as the survivor,
86
+ // but observe_only-as-forced-fallback is semantically different from
87
+ // observe_only-as-natural-choice: the caller must re-author, not just observe.
88
+ const actionClass = compilation?.classification?.action_class;
89
+ if (actionClass && OUTPUT_EMIT_FAILURE_CLASSES.includes(actionClass)) {
90
+ return 'force_reauthor';
91
+ }
92
+ // The kernel signals "no real cognitive work happened" via cognition_mutated_output=false.
93
+ // That maps to force_reauthor — the caller emitted output without engaging the constraint layer.
94
+ if (compilation.acceptance && compilation.acceptance.cognition_mutated_output === false) {
95
+ return 'force_reauthor';
96
+ }
97
+ if (!topOption) return 'block';
98
+ if (topOption.rejected) return 'block';
99
+ if (topOption.option_id === 'observe_only') return 'observe_only';
100
+ return 'allow';
101
+ }
102
+
103
+ function buildRecoveryDirective(compilation, topOption, decision) {
104
+ const actionClass = compilation?.classification?.action_class || 'unknown';
105
+ if (decision === 'allow') {
106
+ return `Allowed. Top option=${topOption.option_id} autonomy=${topOption.autonomy_level}. Predicate: ${topOption.verification_predicate}`;
107
+ }
108
+ // force_reauthor for output-emit failure classes: surface the kernel's
109
+ // class-specific rejection reason (the workshop material the kernel
110
+ // emitted, not generic prose). The reason carries the doctrine-violation
111
+ // pattern + the exact shape of acceptable re-author.
112
+ if (decision === 'force_reauthor' && OUTPUT_EMIT_FAILURE_CLASSES.includes(actionClass)) {
113
+ const rejectedOptions = (compilation?.options || []).filter((o) => o.rejected);
114
+ const primaryReason = rejectedOptions[0]?.rejection_reasons?.[0]
115
+ || `Output classified as ${actionClass}; re-author required.`;
116
+ return `Re-author required (${actionClass}): ${primaryReason}`;
117
+ }
118
+ if (decision === 'observe_only') {
119
+ return `Observe-only mode. Preserve evidence; surface to operator before any state-changing action. Predicate: ${topOption.verification_predicate}`;
120
+ }
121
+ if (decision === 'force_reauthor') {
122
+ return 'Re-author required: cognition did not change the artifact. Either engage substrate (anchor lenses to loaded memory + axioms) or refuse to claim a state-change.';
123
+ }
124
+ // block
125
+ if (topOption && Array.isArray(topOption.rejection_reasons) && topOption.rejection_reasons.length > 0) {
126
+ return `Blocked: ${topOption.rejection_reasons[0]}`;
127
+ }
128
+ return 'Blocked: no acceptable option remained after kernel evaluation.';
129
+ }
130
+
131
+ // Re-export the kernel primitives so callers can use them without a second import.
132
+ export { compileCognitiveOptions } from './kernel/deterministic-cognitive-kernel.mjs';
133
+ export { TADABBUR_STAGES, QIYAS_PERSPECTIVES, stableHash, OUTPUT_EMIT_FAILURE_CLASSES } from './kernel/deterministic-cognitive-kernel.mjs';