@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
@@ -0,0 +1,914 @@
1
+ // VENDORED from ~/.aria/atlas/src/kernel/deterministic-cognitive-kernel.mjs on 2026-05-17.
2
+ // Source SHA256: fe6cf08b85a6ea0be0a430c363e1dc9f02900a88815078ac20e0935573fccb93
3
+ // Source bytes: 26025
4
+ // Drift gate: packages/aria-connector/scripts/check-kernel-sync.mjs
5
+ // DO NOT EDIT this file directly. Sync via the gate script when atlas updates.
6
+ // Doctrine: G0 (Phase 0 of Claude→Codex parity §12); kernel is the deterministic
7
+ // cognitive engine (Tadabbur-12 + Qiyas-15 + classification). Vendoring keeps
8
+ // the connector usable without cross-repo dep until atlas ships as a package.
9
+ import { createHash } from 'node:crypto';
10
+
11
+ export const TADABBUR_STAGES = [
12
+ 'embed',
13
+ 'excavate',
14
+ 'root_trace',
15
+ 'multi_lens',
16
+ 'pattern',
17
+ 'consequence',
18
+ 'dwelling',
19
+ 'collapse',
20
+ 'principle',
21
+ 'inversion',
22
+ 'personal',
23
+ 'voice',
24
+ ];
25
+
26
+ export const QIYAS_PERSPECTIVES = [
27
+ 'owner_now',
28
+ 'owner_future',
29
+ 'operator_client',
30
+ 'investor_or_buyer',
31
+ 'llm_consumer',
32
+ 'human_end_user',
33
+ 'skeptic',
34
+ 'compliance',
35
+ 'engineering_quality',
36
+ 'cognitive_load',
37
+ 'scale',
38
+ 'islamic_scholar',
39
+ 'clinical_scholar',
40
+ 'red_team_attacker',
41
+ 'future_self',
42
+ ];
43
+
44
+ const SEVERITY_WEIGHT = {
45
+ critical: 100,
46
+ high: 80,
47
+ medium: 55,
48
+ low: 25,
49
+ info: 5,
50
+ };
51
+
52
+ export const MANDATORY_KERNEL_SKILLS = Object.freeze([
53
+ 'aria-first-class-operating-contract',
54
+ ]);
55
+
56
+ // Output-emit failure action_classes — produced by classify() when the
57
+ // observation describes an assistant emission whose attrs reveal a
58
+ // known doctrine-violation shape. Listed here so consumers (and the
59
+ // evaluate-with-kernel helper) can map these to `force_reauthor`
60
+ // without re-implementing the detection rules.
61
+ export const OUTPUT_EMIT_FAILURE_CLASSES = Object.freeze([
62
+ 'claim_without_evidence',
63
+ 'sycophancy_shape',
64
+ 'mechanism_description_only',
65
+ 'restatement_no_advance',
66
+ ]);
67
+
68
+ // A3 (2026-05-17) — atlas orchestrates per-turn skill + runtime selection.
69
+ // Keyed by observation.kind. Returned from compileCognitiveOptions as
70
+ // selectedSkillIds / selectedRuntimeIds INSIDE compilationCore so they
71
+ // participate in the deterministic compilation_hash. Autoload consumer
72
+ // UNIONs selectedSkillIds with the manifest floor (additive, fallback-safe).
73
+ export const SKILL_SELECTION_MAP = Object.freeze({
74
+ output_emit: [
75
+ 'aria-readable-output',
76
+ 'aria-harness-output-discipline',
77
+ 'aria-aristotle-post-phase',
78
+ 'aria-harness-substrate-binding',
79
+ ],
80
+ goal_contract_eval: [
81
+ 'aria-cognition-autofire',
82
+ 'aria-aristotle-pre-phase',
83
+ 'aria-readable-output',
84
+ ],
85
+ edit: [
86
+ 'never-guess',
87
+ 'aria-repo-doctrine',
88
+ 'aria-quality-audit',
89
+ 'aria-aristotle-pre-phase',
90
+ 'aria-aristotle-post-phase',
91
+ 'aria-harness-substrate-binding',
92
+ ],
93
+ deploy: [
94
+ 'never-guess',
95
+ 'aria-quality-audit',
96
+ 'aria-axioms-first-principles',
97
+ 'aria-aristotle-pre-phase',
98
+ 'aria-aristotle-post-phase',
99
+ 'predictor',
100
+ 'aria-harness-no-stripping',
101
+ ],
102
+ sensitive_artifact_in_tool_input: [
103
+ 'never-guess',
104
+ 'aria-harness-no-stripping',
105
+ 'aria-axioms-first-principles',
106
+ 'fitrah-guard',
107
+ ],
108
+ default: [
109
+ 'never-guess',
110
+ 'mizan',
111
+ 'aria-cognition-autofire',
112
+ 'aria-aristotle-pre-phase',
113
+ 'aria-aristotle-post-phase',
114
+ 'aria-readable-output',
115
+ ],
116
+ });
117
+
118
+ export const RUNTIME_SELECTION_MAP = Object.freeze({
119
+ output_emit: ['tadabbur:12', 'qiyas:15', 'noor:recognition', 'mizan:proportion'],
120
+ goal_contract_eval: ['tadabbur:12', 'qiyas:15', 'mizan:proportion'],
121
+ edit: ['tadabbur:12', 'qiyas:15', 'noor:recognition', 'mizan:proportion'],
122
+ deploy: ['tadabbur:12', 'qiyas:15', 'noor:recognition', 'mizan:proportion', 'aristotle:8-lens'],
123
+ sensitive_artifact_in_tool_input: ['mizan:proportion', 'fitrah:axiom-guard', 'noor:recognition'],
124
+ default: ['tadabbur:12', 'qiyas:15', 'noor:recognition'],
125
+ });
126
+
127
+ // Reinforcement by classification.action_class — adds skills when a known
128
+ // failure shape is detected. Stacks on top of the kind-keyed base set.
129
+ export const ACTION_CLASS_REINFORCE_MAP = Object.freeze({
130
+ sycophancy_shape: ['aria-harness-substrate-binding', 'aria-harness-output-discipline', 'never-guess', 'aria-axioms-first-principles'],
131
+ claim_without_evidence: ['never-guess', 'aria-quality-audit', 'aria-harness-substrate-binding', 'aria-aristotle-post-phase'],
132
+ mechanism_description_only: ['aria-readable-output', 'aria-harness-output-discipline', 'aria-cognition-autofire'],
133
+ restatement_no_advance: ['aria-readable-output', 'aria-cognition-autofire', 'aria-aristotle-post-phase'],
134
+ sensitive_artifact_emit: ['never-guess', 'aria-harness-no-stripping', 'fitrah-guard'],
135
+ });
136
+
137
+ // A4 (2026-05-17) — recent end-phase court verdicts feed back into next-turn
138
+ // skill selection. When the previous turn's court verdict ∈ FAILURE set,
139
+ // reinforce quality + audit skills. This is the closed-loop upgrade
140
+ // mechanism that makes hard-gating unnecessary at run-of-turn boundary.
141
+ export const COURT_FAILURE_VERDICTS = Object.freeze([
142
+ 'partial',
143
+ 'blocked',
144
+ 'force_reauthor',
145
+ 'unverified',
146
+ 'block',
147
+ ]);
148
+
149
+ export const COURT_FAILURE_REINFORCE_SKILLS = Object.freeze([
150
+ 'aria-quality-audit',
151
+ 'aria-harness-no-stripping',
152
+ 'never-guess',
153
+ 'aria-aristotle-post-phase',
154
+ 'aria-harness-substrate-binding',
155
+ ]);
156
+
157
+ export function selectSkillsAndRuntimes(observation = {}, classification = {}, priorCourtVerdicts = []) {
158
+ const kind = observation && typeof observation.kind === 'string' ? observation.kind : 'default';
159
+ const baseKey = Object.prototype.hasOwnProperty.call(SKILL_SELECTION_MAP, kind) ? kind : 'default';
160
+ const skills = new Set([
161
+ ...MANDATORY_KERNEL_SKILLS,
162
+ ...(SKILL_SELECTION_MAP[baseKey] || SKILL_SELECTION_MAP.default),
163
+ ]);
164
+ const runtimes = new Set(RUNTIME_SELECTION_MAP[baseKey] || RUNTIME_SELECTION_MAP.default);
165
+ const actionClass = classification && typeof classification.action_class === 'string' ? classification.action_class : null;
166
+ const reinforce = actionClass ? ACTION_CLASS_REINFORCE_MAP[actionClass] : null;
167
+ if (Array.isArray(reinforce)) for (const s of reinforce) skills.add(s);
168
+ let courtFeedbackApplied = false;
169
+ const failureVerdictsObserved = [];
170
+ if (Array.isArray(priorCourtVerdicts)) {
171
+ for (const v of priorCourtVerdicts) {
172
+ const verdictStr = typeof v === 'string' ? v : (v && typeof v.verdict === 'string' ? v.verdict : null);
173
+ if (verdictStr && COURT_FAILURE_VERDICTS.includes(verdictStr)) {
174
+ courtFeedbackApplied = true;
175
+ failureVerdictsObserved.push(verdictStr);
176
+ for (const s of COURT_FAILURE_REINFORCE_SKILLS) skills.add(s);
177
+ }
178
+ }
179
+ }
180
+ return {
181
+ selectedSkillIds: [...skills].sort(),
182
+ selectedRuntimeIds: [...runtimes].sort(),
183
+ selectionMeta: {
184
+ schema: 'aria.deterministic_cognitive_kernel.skill_runtime_selection.v1',
185
+ keyUsed: baseKey,
186
+ actionClassReinforced: actionClass && Array.isArray(reinforce) ? actionClass : null,
187
+ courtFeedbackApplied,
188
+ priorCourtVerdictCount: Array.isArray(priorCourtVerdicts) ? priorCourtVerdicts.length : 0,
189
+ failureVerdictsObserved,
190
+ },
191
+ };
192
+ }
193
+
194
+ function isOutputEmitKind(observation) {
195
+ return observation.kind === 'output_emit' || observation.kind === 'goal_contract_eval';
196
+ }
197
+
198
+ // Tool-input sealed-material branch — produced when a caller (pre-tool gate,
199
+ // post-tool gate) has run a structural-shape detector over a tool's source
200
+ // payload (Edit.new_string, Write.content, Bash command body) and found a
201
+ // match. The caller does the shape detection (it's policy-bound to a
202
+ // specific list of vendor prefixes / markers); the kernel routes the
203
+ // classified finding through the same option-set machinery as every other
204
+ // hard-risk class so blast_radius + reversibility are policy-driven, not
205
+ // inline-regex driven.
206
+ function isSensitiveArtifactKind(observation) {
207
+ return observation.kind === 'sensitive_artifact_in_tool_input';
208
+ }
209
+
210
+ function classifySensitiveArtifact(observation) {
211
+ if (!isSensitiveArtifactKind(observation)) return null;
212
+ const a = observation.attrs || {};
213
+ // shapeMatched=true means the caller's shape detector confirmed structural
214
+ // sealed-material presence (PEM marker, vendor prefix, JWT bearer header,
215
+ // high-entropy env assignment, etc). shapeMatched=false → not a leak.
216
+ return a.shapeMatched === true ? 'sensitive_artifact_emit' : null;
217
+ }
218
+
219
+ // Doctrine-violation branch — produced by aria-repo-doctrine-gate.mjs and
220
+ // any other hook that detects stub / mock / placeholder / pending semantics
221
+ // in doctrine-bound source paths. The caller does the pattern detection
222
+ // (with line-aware guards: comment-only, multiline-string-masked, policy-
223
+ // rule-definition lines excluded); the kernel classifies the surfaced
224
+ // violations through the same option-set machinery as every other risk
225
+ // class so blast_radius + reversibility are policy-driven.
226
+ function isDoctrineViolationKind(observation) {
227
+ return observation.kind === 'doctrine_violation_check';
228
+ }
229
+
230
+ function classifyDoctrineViolation(observation) {
231
+ if (!isDoctrineViolationKind(observation)) return null;
232
+ const a = observation.attrs || {};
233
+ // violationCount > 0 with at least one rule that classifies as production-
234
+ // path-breaking (stub_semantics, placeholder_semantics, todo_stub_semantics,
235
+ // http_501_pending, mock_import, direct_llm_bypass, direct_llm_sdk_bypass)
236
+ // → block. violationCount === 0 → null (caller need not block).
237
+ return Number(a.violationCount || 0) > 0 ? 'doctrine_violation' : null;
238
+ }
239
+
240
+ // Mizan-service R8 — silent fallback default detection. Used by the mizan
241
+ // /v1/mizan/check service when scanning code drafts for `|| 'unknown'` /
242
+ // `|| 'default'` / `|| 'fallback'` patterns that mask config failures.
243
+ // Migration target: the mizan service's current vocabulary regex moves to
244
+ // caller-side detection + this kernel kind for blast_radius routing.
245
+ function isSilentFallbackDefaultKind(observation) {
246
+ return observation.kind === 'silent_fallback_default_check';
247
+ }
248
+
249
+ function classifySilentFallbackDefault(observation) {
250
+ if (!isSilentFallbackDefaultKind(observation)) return null;
251
+ const a = observation.attrs || {};
252
+ // matchedSites: caller-side count of `|| 'unknown'/'default'/'fallback'`
253
+ // patterns found in the draft. > 0 → block; 0 → null.
254
+ return Number(a.matchedSites || 0) > 0 ? 'silent_fallback_default' : null;
255
+ }
256
+
257
+ // Mizan-service R11 — console.log secrets detection. Used by the mizan
258
+ // service when scanning code drafts for `console.log(...)` calls that
259
+ // reference TOKEN/PASSWORD/SECRET/API_KEY/JWT/BEARER identifier shapes.
260
+ // Caller-side detection feeds matchedSites + identifierShape; the kernel
261
+ // routes via blast_radius=owner_trust_or_breach.
262
+ function isConsoleLogSecretsKind(observation) {
263
+ return observation.kind === 'console_log_secrets_check';
264
+ }
265
+
266
+ function classifyConsoleLogSecrets(observation) {
267
+ if (!isConsoleLogSecretsKind(observation)) return null;
268
+ const a = observation.attrs || {};
269
+ return Number(a.matchedSites || 0) > 0 ? 'console_log_secrets' : null;
270
+ }
271
+
272
+ function classifyOutputEmit(observation) {
273
+ if (!isOutputEmitKind(observation)) return null;
274
+ const a = observation.attrs || {};
275
+ const hasCompletionLang = a.hasCompletionLang === true;
276
+ const hasAgreementLang = a.hasAgreementLang === true;
277
+ const hasAdvanceLang = a.hasAdvanceLang === true;
278
+ const hasVerifyBlock = a.hasVerifyBlock === true;
279
+ const evidenceAnchorCount = Number(a.evidenceAnchorCount || 0);
280
+ const lensCount = Number(a.lensCount || 0);
281
+ const codeBlockCount = Number(a.codeBlockCount || 0);
282
+ const continuationRequested = a.continuationRequested === true;
283
+ const textLength = Number(a.textLength || 0);
284
+
285
+ // Order matters: most specific first. Completion-claim-without-evidence
286
+ // is the highest-severity failure (false done is the worst owner harm).
287
+ if (hasCompletionLang && !hasVerifyBlock && evidenceAnchorCount < 1) {
288
+ return 'claim_without_evidence';
289
+ }
290
+ // Agreement-shape with no evidence backing it — the "you're right" pattern.
291
+ if (hasAgreementLang && evidenceAnchorCount < 2) {
292
+ return 'sycophancy_shape';
293
+ }
294
+ // Goal-contract case: user asked for continuation, response describes
295
+ // mechanism instead of advancing concrete state. Requires textLength > 500
296
+ // so short planning text ("continue. edit X to add Y") doesn't trip this —
297
+ // pre-execution planning emits are short by nature and aren't the failure
298
+ // mode we're trying to catch; the failure mode is long emits that explain
299
+ // *instead of* doing the work.
300
+ if (observation.kind === 'goal_contract_eval' && continuationRequested && !hasAdvanceLang && textLength > 500) {
301
+ return 'mechanism_description_only';
302
+ }
303
+ // Long output emission with zero concrete advance verbs and no cognition
304
+ // lenses — text-without-thinking.
305
+ if (observation.kind === 'output_emit' && textLength > 500 && !hasAdvanceLang && lensCount === 0 && codeBlockCount === 0) {
306
+ return 'restatement_no_advance';
307
+ }
308
+ return null; // No failure pattern detected; classify() falls through
309
+ }
310
+
311
+ function stableStringify(value) {
312
+ if (Array.isArray(value)) return `[${value.map(stableStringify).join(',')}]`;
313
+ if (value && typeof value === 'object') {
314
+ return `{${Object.keys(value).sort().map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`).join(',')}}`;
315
+ }
316
+ return JSON.stringify(value);
317
+ }
318
+
319
+ export function stableHash(value) {
320
+ return createHash('sha256').update(stableStringify(value)).digest('hex');
321
+ }
322
+
323
+ function coerceEvidence(evidence = []) {
324
+ return evidence.map((anchor, index) => ({
325
+ anchor_id: anchor.evidence_sha256 || anchor.evidenceSha256 || stableHash({ index, anchor }),
326
+ anchor_type: anchor.anchor_type || anchor.anchorType || 'unknown',
327
+ source: anchor.source_path_or_endpoint || anchor.sourcePathOrEndpoint || anchor.source || 'unknown',
328
+ observed: anchor.observed || '',
329
+ expected: anchor.expected || null,
330
+ freshness: anchor.collected_at || anchor.collectedAt || null,
331
+ }));
332
+ }
333
+
334
+ function sourceTrust(observation, evidence) {
335
+ const directEvidence = evidence.some((anchor) => ['command', 'endpoint', 'runtime', 'exception'].includes(anchor.anchor_type));
336
+ if (directEvidence) return 'direct_observed';
337
+ if (observation.source === 'atlas' || observation.source === 'hive') return 'substrate_recorded';
338
+ if (evidence.length > 0) return 'evidence_attached';
339
+ return 'unverified';
340
+ }
341
+
342
+ function classify(observation, evidence) {
343
+ const source = observation.source || 'unknown';
344
+ const kind = observation.kind || 'unknown';
345
+ const attrs = observation.attrs || {};
346
+ const title = observation.title || '';
347
+
348
+ // Doctrine-violation branch: when aria-repo-doctrine-gate (or any other
349
+ // hook) has detected stub / mock / placeholder / pending semantics in
350
+ // doctrine-bound source paths, classification short-circuits here.
351
+ // action_class drives downstream constraint mutations capping autonomy
352
+ // and producing a class-specific recovery directive.
353
+ const doctrineViolationClass = classifyDoctrineViolation(observation);
354
+ if (doctrineViolationClass) {
355
+ return {
356
+ domain: 'agent_repo_doctrine',
357
+ action_class: doctrineViolationClass,
358
+ resource_class: source,
359
+ environment: 'workspace',
360
+ blast_radius: 'file_or_module',
361
+ reversibility: 'edit_revertible',
362
+ has_tests: false,
363
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
364
+ };
365
+ }
366
+
367
+ // Mizan R8 — silent fallback default detection in code drafts.
368
+ const silentFallbackClass = classifySilentFallbackDefault(observation);
369
+ if (silentFallbackClass) {
370
+ return {
371
+ domain: 'agent_repo_doctrine',
372
+ action_class: silentFallbackClass,
373
+ resource_class: source,
374
+ environment: 'workspace',
375
+ blast_radius: 'file_or_module',
376
+ reversibility: 'edit_revertible',
377
+ has_tests: false,
378
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
379
+ };
380
+ }
381
+
382
+ // Mizan R11 — console.log secrets detection in code drafts.
383
+ const consoleLogSecretsClass = classifyConsoleLogSecrets(observation);
384
+ if (consoleLogSecretsClass) {
385
+ return {
386
+ domain: 'agent_safety',
387
+ action_class: consoleLogSecretsClass,
388
+ resource_class: source,
389
+ environment: 'workspace',
390
+ blast_radius: 'owner_trust_or_breach',
391
+ reversibility: 'unrecoverable_if_emitted',
392
+ has_tests: false,
393
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
394
+ };
395
+ }
396
+
397
+ // Sensitive-artifact branch: when a tool-input shape-detector confirms
398
+ // structural sealed material (PEM marker, vendor prefix, JWT bearer,
399
+ // high-entropy env assignment) in the tool source body, classification
400
+ // short-circuits here. action_class drives downstream constraint mutations
401
+ // that cap autonomy at observe_only — the artifact MUST NOT be emitted.
402
+ const sensitiveArtifactClass = classifySensitiveArtifact(observation);
403
+ if (sensitiveArtifactClass) {
404
+ return {
405
+ domain: 'agent_safety',
406
+ action_class: sensitiveArtifactClass,
407
+ resource_class: source,
408
+ environment: 'tool_input_payload',
409
+ blast_radius: 'owner_trust_or_breach',
410
+ reversibility: 'unrecoverable_if_emitted',
411
+ has_tests: false,
412
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
413
+ };
414
+ }
415
+
416
+ // Output-emit branch: when the observation describes an assistant emission
417
+ // whose attrs reveal a doctrine-violation shape, classification short-circuits
418
+ // here. action_class drives downstream constraint mutations and the helper's
419
+ // force_reauthor decision.
420
+ const outputEmitClass = classifyOutputEmit(observation);
421
+ if (outputEmitClass) {
422
+ return {
423
+ domain: 'agent_output_quality',
424
+ action_class: outputEmitClass,
425
+ resource_class: source,
426
+ environment: 'agent_output',
427
+ blast_radius: 'owner_trust',
428
+ reversibility: 're_authorable',
429
+ has_tests: false,
430
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
431
+ };
432
+ }
433
+ // Output-emit observations that did NOT match any failure pattern still
434
+ // classify into a benign output-emit class so constrainOptions can leave
435
+ // them untouched (and the helper returns decision=allow).
436
+ if (isOutputEmitKind(observation)) {
437
+ return {
438
+ domain: 'agent_output_quality',
439
+ action_class: 'output_emit_ok',
440
+ resource_class: source,
441
+ environment: 'agent_output',
442
+ blast_radius: 'owner_trust',
443
+ reversibility: 're_authorable',
444
+ has_tests: false,
445
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
446
+ };
447
+ }
448
+
449
+ const isLiveInfra = source === 'k8s' || source === 'systemd' || source === 'runtime-health';
450
+ const isCliState = source === 'cli-state' || kind.includes('gate') || title.toLowerCase().includes('gate');
451
+ const isRepoState = source === 'repo-state';
452
+ const isDependencyAudit = source === 'dependency-audit' || kind === 'npm_vulnerability';
453
+ const isCompositeRisk = source === 'sentinel-composite';
454
+ const isCode = source === 'codebase' || source === 'repo' || isRepoState || isDependencyAudit || isCompositeRisk || kind.includes('code') || Boolean(attrs.path);
455
+ const hasTests = Boolean(attrs.hasTests || attrs.testCommand || attrs.test_command);
456
+ const environment = isLiveInfra ? 'live_runtime' : isCode ? 'workspace' : 'unknown';
457
+ const blastRadius = isLiveInfra ? 'service_or_cluster' : isCompositeRisk ? 'app_or_repo' : isDependencyAudit ? 'dependency_graph' : isRepoState ? 'file_or_commit_group' : isCode ? 'file_or_module' : 'unknown';
458
+ return {
459
+ domain: isLiveInfra ? 'runtime_operations' : isCliState ? 'agent_control' : isCompositeRisk ? 'compound_app_risk' : isDependencyAudit ? 'dependency_security' : isRepoState ? 'repo_state' : isCode ? 'codebase' : observation.domain || 'general',
460
+ action_class: isLiveInfra ? 'live_system_repair' : isCliState ? 'control_plane_repair' : isCompositeRisk ? 'compound_repair_plan' : isDependencyAudit ? 'dependency_update' : isRepoState ? 'repo_organization' : isCode ? 'code_change' : 'triage',
461
+ resource_class: source,
462
+ environment,
463
+ blast_radius: blastRadius,
464
+ reversibility: isLiveInfra ? 'requires_explicit_rollback' : isDependencyAudit ? 'lockfile_revertible' : isRepoState ? 'git_revertible' : isCode ? 'branch_revertible' : 'unknown',
465
+ has_tests: hasTests,
466
+ evidence_strength: evidence.length >= 2 ? 'multi_anchor' : evidence.length === 1 ? 'single_anchor' : 'none',
467
+ };
468
+ }
469
+
470
+ function baseOptions(observation, classification, verificationPredicate) {
471
+ const common = {
472
+ observation_id: observation.id || observation.observation_id || observation.dedupe_key || stableHash(observation).slice(0, 16),
473
+ domain: classification.domain,
474
+ verification_predicate: verificationPredicate,
475
+ learning_target: `${classification.domain}:${observation.kind || 'unknown'}`,
476
+ };
477
+ return [
478
+ {
479
+ ...common,
480
+ option_id: 'observe_only',
481
+ action_class: 'observe',
482
+ autonomy_level: 1,
483
+ title: 'Preserve evidence and explain',
484
+ expected_outcome: 'The operator sees the issue, evidence, impact, and next verification predicate.',
485
+ evidence_required: ['current observation evidence'],
486
+ blast_radius: 'none',
487
+ reversibility: 'not_applicable',
488
+ constraints_applied: [],
489
+ rejected: false,
490
+ rejection_reasons: [],
491
+ },
492
+ {
493
+ ...common,
494
+ option_id: 'propose_repair',
495
+ action_class: 'proposal',
496
+ autonomy_level: 2,
497
+ title: 'Propose repair with verification',
498
+ expected_outcome: 'The operator receives a repair plan, command or patch plan, verification, and rollback path.',
499
+ evidence_required: ['current observation evidence', 'verification command or probe'],
500
+ blast_radius: classification.blast_radius,
501
+ reversibility: classification.reversibility,
502
+ constraints_applied: [],
503
+ rejected: false,
504
+ rejection_reasons: [],
505
+ },
506
+ {
507
+ ...common,
508
+ option_id: 'sandbox_repair',
509
+ action_class: classification.action_class === 'code_change' ? 'branch_patch' : 'controlled_workspace_action',
510
+ autonomy_level: 3,
511
+ title: 'Apply in safe workspace',
512
+ expected_outcome: 'The repair is applied only in a controlled workspace or branch and verified before merge or live action.',
513
+ evidence_required: ['tests or isolated probe', 'rollback path'],
514
+ blast_radius: classification.blast_radius,
515
+ reversibility: classification.reversibility,
516
+ constraints_applied: [],
517
+ rejected: false,
518
+ rejection_reasons: [],
519
+ },
520
+ {
521
+ ...common,
522
+ option_id: 'allowlisted_repair',
523
+ action_class: 'allowlisted_execution',
524
+ autonomy_level: 4,
525
+ title: 'Execute allowlisted repair',
526
+ expected_outcome: 'A pre-approved low-risk action executes and is verified with readback.',
527
+ evidence_required: ['allowlist match', 'preflight', 'verification readback', 'rollback path'],
528
+ blast_radius: classification.blast_radius,
529
+ reversibility: classification.reversibility,
530
+ constraints_applied: [],
531
+ rejected: false,
532
+ rejection_reasons: [],
533
+ },
534
+ ];
535
+ }
536
+
537
+ function rejectOption(option, reason, constraint) {
538
+ return {
539
+ ...option,
540
+ rejected: true,
541
+ rejection_reasons: Array.from(new Set([...(option.rejection_reasons || []), reason])),
542
+ constraints_applied: Array.from(new Set([...(option.constraints_applied || []), constraint])),
543
+ };
544
+ }
545
+
546
+ function constrainOptions(options, observation, classification, trust) {
547
+ const mutations = [];
548
+ let next = options.map((option) => ({ ...option }));
549
+ const addMutation = (stage, mutation_type, reason, changed_field = 'options') => {
550
+ mutations.push({ stage, mutation_type, reason, changed_field });
551
+ };
552
+
553
+ // Output-emit failure classes — block every repair option (autonomy >= 2),
554
+ // leaving observe_only as the survivor. Class-specific reasons run BEFORE
555
+ // the generic trust=unverified block so rejection_reasons[0] carries the
556
+ // class-specific recovery directive, not the boilerplate unverified prose.
557
+ if (classification.action_class === 'doctrine_violation') {
558
+ // Severity-respecting authority. High severity (multi-rule or critical
559
+ // rule like direct_llm_bypass) → reject observe_only too, forcing
560
+ // decision='block'. Medium → keep observe_only viable (decision will be
561
+ // observe_only) but reject higher autonomy. Low → kernel can downgrade
562
+ // the gate's block to advisory by leaving observe_only as the only
563
+ // viable option. This is what makes the kernel AUTHORITATIVE rather
564
+ // than additive on the doctrine-gate's block decision.
565
+ const sev = observation.severity || 'medium';
566
+ if (sev === 'high' || sev === 'critical') {
567
+ next = next.map((option) => rejectOption(option, 'High-severity doctrine violation: multiple violations or critical rule (direct_llm_bypass / mock_import). Production path cannot ship — isolate under tests/specs/fixtures/examples/demos/mocks or add explicit ARIA_ALLOW_STUB marker.', 'truth_over_deception'));
568
+ addMutation('inversion', 'option_rejected', 'High-severity doctrine violation — all options rejected, block authoritative.');
569
+ } else if (sev === 'medium') {
570
+ next = next.map((option) => option.autonomy_level >= 2
571
+ ? rejectOption(option, 'Doctrine-bound source path carries stub / mock / placeholder / pending semantics. Re-author with real implementation or move pattern under tests/fixtures/examples/mocks.', 'truth_over_deception')
572
+ : option);
573
+ addMutation('root_trace', 'option_rejected', 'Medium-severity doctrine violation — re-author required at observe_only floor.');
574
+ } else {
575
+ // Low severity — keep observe_only viable; kernel decision will be
576
+ // observe_only, allowing the gate to downgrade its block to advisory.
577
+ next = next.map((option) => option.autonomy_level >= 3
578
+ ? rejectOption(option, 'Single low-impact doctrine violation — observe-only path: surface evidence to operator before any state-changing action.', 'reflection_before_action')
579
+ : option);
580
+ addMutation('consequence', 'option_rejected', 'Low-severity doctrine violation — observe-only path remains viable.');
581
+ }
582
+ }
583
+
584
+ if (classification.action_class === 'sensitive_artifact_emit') {
585
+ next = next.map((option) => option.autonomy_level >= 2
586
+ ? rejectOption(option, 'Structural sealed-material shape detected in tool input payload — emission would be unrecoverable. Redact the artifact, re-author the tool input, then resubmit. Observe-only path: surface evidence to operator without state change.', 'sacred_trust')
587
+ : option);
588
+ addMutation('inversion', 'option_rejected', 'Sensitive artifact in tool input — emission would breach trust irreversibly.');
589
+ }
590
+
591
+ // Mizan R8 — silent fallback default (|| 'unknown' / 'default' / 'fallback')
592
+ // masks config failures. Reject above observe_only — caller must surface
593
+ // the masked config rather than ship the silent fallback.
594
+ if (classification.action_class === 'silent_fallback_default') {
595
+ next = next.map((option) => option.autonomy_level >= 2
596
+ ? rejectOption(option, "Silent fallback default detected (`|| 'unknown'` / `|| 'default'` / `|| 'fallback'`). These mask config failures. Replace with explicit validation that surfaces missing config, or refuse the action.", 'truth_over_deception')
597
+ : option);
598
+ addMutation('root_trace', 'option_rejected', 'Silent fallback default — config failure must be surfaced, not masked.');
599
+ }
600
+
601
+ // Mizan R11 — console.log with secret-shape identifiers (TOKEN/PASSWORD/
602
+ // SECRET/API_KEY/JWT/BEARER) reachable by caller's pattern matcher. Reject
603
+ // ALL options including observe_only — emitted logs persist; this is
604
+ // unrecoverable_if_emitted.
605
+ if (classification.action_class === 'console_log_secrets') {
606
+ next = next.map((option) => rejectOption(option, 'console.log call references a secret-shape identifier (TOKEN/PASSWORD/SECRET/API_KEY/JWT/BEARER). Logs persist; emission is unrecoverable. Remove the log statement or redact the value before logging.', 'sacred_trust'));
607
+ addMutation('inversion', 'option_rejected', 'console.log secret — emission would breach trust irreversibly; all options rejected.');
608
+ }
609
+
610
+ if (classification.action_class === 'claim_without_evidence') {
611
+ next = next.map((option) => option.autonomy_level >= 2
612
+ ? rejectOption(option, 'Completion language present but no verify-block and no command-anchor evidence — claim cannot stand. Re-author with verify-block citing probe output OR explicit refusal-to-claim.', 'evidence_ledger_before_readiness_claim')
613
+ : option);
614
+ addMutation('root_trace', 'option_rejected', 'Completion claim emitted without evidence — false-done risk.');
615
+ }
616
+
617
+ if (classification.action_class === 'sycophancy_shape') {
618
+ next = next.map((option) => option.autonomy_level >= 2
619
+ ? rejectOption(option, 'Agreement-shape detected with thin evidence backing — re-author with concrete state words (committed, ran, observed, verified) anchored to command output, OR push back on the user with substrate-cited reasoning.', 'truth_over_deception')
620
+ : option);
621
+ addMutation('inversion', 'option_rejected', 'Sycophancy shape — agreement without earned truth content.');
622
+ }
623
+
624
+ if (classification.action_class === 'mechanism_description_only') {
625
+ next = next.map((option) => option.autonomy_level >= 2
626
+ ? rejectOption(option, 'User requested continuation but response describes mechanism rather than advancing state — re-author with concrete state changes (file edits, commands run, predicates verified).', 'complete_implementation_not_claim_only')
627
+ : option);
628
+ addMutation('consequence', 'option_rejected', 'Mechanism described, goal not advanced.');
629
+ }
630
+
631
+ if (classification.action_class === 'restatement_no_advance') {
632
+ next = next.map((option) => option.autonomy_level >= 2
633
+ ? rejectOption(option, 'Long output with no advance verbs and zero cognition lenses — text without thinking. Re-author with substrate-anchored cognition that changes the artifact.', 'reflection_before_action')
634
+ : option);
635
+ addMutation('voice', 'option_rejected', 'Restatement without advance.');
636
+ }
637
+
638
+ if (trust === 'unverified') {
639
+ next = next.map((option) => option.autonomy_level > 1
640
+ ? rejectOption(option, 'Evidence is absent; action requires observation first.', 'truth_over_deception')
641
+ : option);
642
+ addMutation('embed', 'option_rejected', 'Unverified observations cannot produce repair actions.');
643
+ }
644
+
645
+ if (classification.action_class === 'live_system_repair') {
646
+ next = next.map((option) => option.autonomy_level > 2
647
+ ? rejectOption(option, 'Live runtime or cluster repair requires explicit authority and separate preflight.', 'no_harm')
648
+ : option);
649
+ addMutation('consequence', 'option_rejected', 'Live infra findings are capped at proposal level until authority and preflight exist.');
650
+ }
651
+
652
+ if (classification.action_class === 'control_plane_repair') {
653
+ next = next.map((option) => option.autonomy_level > 2
654
+ ? rejectOption(option, 'Control-plane repair can deadlock agent surfaces; require proposal and replay evidence first.', 'sacred_trust')
655
+ : option);
656
+ addMutation('inversion', 'option_rejected', 'Gate or CLI-state repairs require replay proof before higher autonomy.');
657
+ }
658
+
659
+ if (classification.action_class === 'code_change' && !classification.has_tests) {
660
+ next = next.map((option) => option.autonomy_level > 2
661
+ ? rejectOption(option, 'Code repair lacks tests; branch mutation must wait for a verification fixture.', 'verified_behavior_not_assumption')
662
+ : option);
663
+ addMutation('root_trace', 'verification_added', 'Code action requires tests or fixture before branch-level autonomy.');
664
+ }
665
+
666
+ if (classification.action_class === 'dependency_update') {
667
+ const allowlistedDependencyUpdate = Boolean(observation.attrs?.allowlistedDependencyUpdate);
668
+ next = next.map((option) => {
669
+ if (option.autonomy_level > 2 && (!allowlistedDependencyUpdate || !classification.has_tests)) {
670
+ return rejectOption(
671
+ option,
672
+ allowlistedDependencyUpdate
673
+ ? 'Dependency update lacks test evidence; lockfile mutation cannot exceed proposal level.'
674
+ : 'Dependency updates require explicit allowlist, lockfile diff review, and tests before mutation.',
675
+ 'no_harm',
676
+ );
677
+ }
678
+ return option;
679
+ });
680
+ addMutation('consequence', 'option_rejected', 'Dependency security findings are capped at proposal level until allowlist and tests exist.');
681
+ }
682
+
683
+ if (classification.action_class === 'compound_repair_plan') {
684
+ next = next.map((option) => option.autonomy_level > 2
685
+ ? rejectOption(option, 'Compound app-risk remediation spans multiple findings and requires an approved grouped repair plan before mutation.', 'mizan')
686
+ : option);
687
+ addMutation('multi_lens', 'option_rejected', 'Compound app-risk findings stay at proposal level until linked findings and tests are scoped together.');
688
+ }
689
+
690
+ if (classification.action_class === 'repo_organization') {
691
+ const hiveOwned = Boolean(observation.attrs?.hiveOwned || observation.attrs?.hiveTouch);
692
+ const allowlistedRepoAction = Boolean(observation.attrs?.allowlistedRepoAction);
693
+ next = next.map((option) => {
694
+ if (option.autonomy_level > 3 || (!hiveOwned && option.autonomy_level > 2)) {
695
+ return rejectOption(
696
+ option,
697
+ hiveOwned
698
+ ? 'Repo organization is git-revertible but still needs explicit allowlist before level-4 execution.'
699
+ : 'Repo state has no matching Hive ownership; only proposal-level organization is allowed.',
700
+ 'sacred_trust',
701
+ );
702
+ }
703
+ if (!allowlistedRepoAction && option.autonomy_level > 3) {
704
+ return rejectOption(option, 'Repo organization lacks an allowlisted action contract.', 'no_harm');
705
+ }
706
+ return option;
707
+ });
708
+ addMutation('consequence', 'option_rejected', hiveOwned
709
+ ? 'Hive-owned repo state can reach safe-workspace organization but not allowlisted execution by default.'
710
+ : 'Unowned repo state is capped at proposal level until a Hive owner or explicit authority is present.');
711
+ }
712
+
713
+ const needsOwnerDecision = (observation.severity === 'critical' || observation.severity === 'high') && classification.blast_radius !== 'none';
714
+ if (needsOwnerDecision) {
715
+ next = next.map((option) => option.autonomy_level >= 2
716
+ ? {
717
+ ...option,
718
+ evidence_required: Array.from(new Set([...(option.evidence_required || []), 'owner approval or scoped authority'])),
719
+ constraints_applied: Array.from(new Set([...(option.constraints_applied || []), 'sacred_trust'])),
720
+ }
721
+ : option);
722
+ addMutation('multi_lens', 'verification_added', 'High-impact findings require authority evidence before action.');
723
+ }
724
+
725
+ if (mutations.length === 0) {
726
+ next = next.map((option) => ({
727
+ ...option,
728
+ learning_target: `${option.learning_target}:baseline_no_change_guard`,
729
+ }));
730
+ addMutation('principle', 'learning_signal_added', 'No risk-specific mutation appeared; record baseline fixture for future comparison.', 'learning_target');
731
+ }
732
+
733
+ return { options: next, mutations };
734
+ }
735
+
736
+ function tadabburPass(options, observation, classification, trust, baseMutations) {
737
+ const byStage = new Map(baseMutations.map((mutation) => [mutation.stage, mutation]));
738
+ const rows = TADABBUR_STAGES.map((stage) => byStage.get(stage) || {
739
+ stage,
740
+ mutation_type: 'uncertainty_recorded',
741
+ reason: `${stage} preserved uncertainty for ${classification.domain}.`,
742
+ changed_field: 'uncertainty',
743
+ });
744
+ const meaningful = rows.some((row) => row.mutation_type !== 'uncertainty_recorded');
745
+ return {
746
+ ok: meaningful,
747
+ stage_count: rows.length,
748
+ rows,
749
+ invalid_reason: meaningful ? null : 'tadabbur produced no downstream option, constraint, verification, or learning mutation',
750
+ source_trust: trust,
751
+ object: observation.title || observation.kind || observation.id || 'observation',
752
+ };
753
+ }
754
+
755
+ function qiyasVerdict(perspective, option, observation, classification) {
756
+ if (option.rejected) {
757
+ return {
758
+ verdict: 'reject',
759
+ reason: option.rejection_reasons[0] || 'Option rejected by prior constraints.',
760
+ changed_field: 'option.rejected',
761
+ required_evidence: null,
762
+ learning_implication: `${perspective}: rejected option remains a training negative.`,
763
+ };
764
+ }
765
+ if (option.autonomy_level >= 3 && classification.action_class !== 'code_change') {
766
+ return {
767
+ verdict: 'downgrade',
768
+ reason: 'Higher autonomy does not survive cross-perspective review for non-code live or control-plane actions.',
769
+ changed_field: 'autonomy_level',
770
+ required_evidence: 'explicit scoped authority, preflight, and rollback proof',
771
+ learning_implication: `${perspective}: cap non-code live autonomy.`,
772
+ };
773
+ }
774
+ if (perspective === 'skeptic' || perspective === 'compliance' || perspective === 'engineering_quality') {
775
+ return {
776
+ verdict: 'requires_evidence',
777
+ reason: 'The option needs a concrete readback predicate before it can be trusted externally.',
778
+ changed_field: 'verification_predicate',
779
+ required_evidence: option.verification_predicate,
780
+ learning_implication: `${perspective}: evidence requirement must render in the option.`,
781
+ };
782
+ }
783
+ if (perspective === 'red_team_attacker' && (observation.severity === 'critical' || observation.severity === 'high')) {
784
+ return {
785
+ verdict: 'requires_evidence',
786
+ reason: 'High-impact actions can be abused if authority boundaries are missing.',
787
+ changed_field: 'evidence_required',
788
+ required_evidence: 'authority boundary and audit receipt',
789
+ learning_implication: 'red_team_attacker: authority evidence should be mandatory for high-impact actions.',
790
+ };
791
+ }
792
+ return {
793
+ verdict: 'accept',
794
+ reason: 'Option remains bounded and evidence-aware for this perspective.',
795
+ changed_field: null,
796
+ required_evidence: null,
797
+ learning_implication: `${perspective}: no additional constraint.`,
798
+ };
799
+ }
800
+
801
+ function qiyasPass(options, observation, classification) {
802
+ const rows = [];
803
+ let next = options.map((option) => ({ ...option }));
804
+ for (const option of next) {
805
+ for (const perspective of QIYAS_PERSPECTIVES) {
806
+ const verdict = qiyasVerdict(perspective, option, observation, classification);
807
+ rows.push({ option_id: option.option_id, perspective, ...verdict });
808
+ }
809
+ }
810
+ const evidenceRequirements = rows
811
+ .filter((row) => row.verdict === 'requires_evidence' && row.required_evidence)
812
+ .map((row) => row.required_evidence);
813
+ if (evidenceRequirements.length) {
814
+ next = next.map((option) => option.rejected ? option : ({
815
+ ...option,
816
+ evidence_required: Array.from(new Set([...(option.evidence_required || []), ...evidenceRequirements])),
817
+ constraints_applied: Array.from(new Set([...(option.constraints_applied || []), 'qiyas_evidence_required'])),
818
+ }));
819
+ }
820
+ return {
821
+ ok: rows.length === options.length * QIYAS_PERSPECTIVES.length,
822
+ perspective_count: QIYAS_PERSPECTIVES.length,
823
+ rows,
824
+ options: next,
825
+ };
826
+ }
827
+
828
+ function rankOptions(options, observation, classification) {
829
+ const severity = SEVERITY_WEIGHT[observation.severity] ?? 0;
830
+ return options
831
+ .map((option) => {
832
+ const rejectionPenalty = option.rejected ? -1000 : 0;
833
+ const autonomyPenalty = option.autonomy_level * 4;
834
+ const evidenceBonus = (option.evidence_required || []).length;
835
+ const usefulness = option.option_id === 'propose_repair' ? 20 : option.option_id === 'observe_only' ? 10 : 5;
836
+ const score = severity + usefulness + evidenceBonus - autonomyPenalty + rejectionPenalty;
837
+ return { ...option, rank_score: Number(score.toFixed(2)) };
838
+ })
839
+ .sort((a, b) => b.rank_score - a.rank_score || a.autonomy_level - b.autonomy_level || a.option_id.localeCompare(b.option_id));
840
+ }
841
+
842
+ function reflexionSeed(compilation) {
843
+ return {
844
+ schema: 'aria.deterministic_cognitive_kernel.reflexion_seed.v1',
845
+ prediction: `Option ${compilation.options[0]?.option_id || 'none'} is the safest useful next action for ${compilation.observation.title || compilation.observation.kind}.`,
846
+ action: 'not_executed_yet',
847
+ outcome: 'pending',
848
+ delta: null,
849
+ lesson: null,
850
+ promotion_gate: 'Outcome receipt with verification readback is required before rule promotion.',
851
+ next_compilation_effect: 'pending_outcome',
852
+ };
853
+ }
854
+
855
+ export function compileCognitiveOptions(observationInput, { verificationPredicate = null, policy = {} } = {}) {
856
+ const evidence = coerceEvidence(observationInput.evidence || []);
857
+ const observation = {
858
+ id: observationInput.id ?? observationInput.observation_id ?? null,
859
+ title: observationInput.title || observationInput.summary || observationInput.kind || 'observation',
860
+ summary: observationInput.summary || observationInput.title || '',
861
+ source: observationInput.source || 'unknown',
862
+ kind: observationInput.kind || 'unknown',
863
+ severity: observationInput.severity || 'medium',
864
+ attrs: observationInput.attrs || {},
865
+ evidence,
866
+ };
867
+ // A4 (2026-05-17) — caller-supplied prior end-phase court verdicts feed
868
+ // into skill selection so failure modes from the last turn reinforce the
869
+ // quality skill set on this turn. Accepted top-level OR under attrs so
870
+ // both autoload and direct callers can pass them.
871
+ const priorCourtVerdicts = Array.isArray(observationInput.priorCourtVerdicts)
872
+ ? observationInput.priorCourtVerdicts
873
+ : (Array.isArray(observationInput.attrs?.priorCourtVerdicts) ? observationInput.attrs.priorCourtVerdicts : []);
874
+ const trust = sourceTrust(observation, evidence);
875
+ const classification = classify(observation, evidence);
876
+ const verification = verificationPredicate || observationInput.verification_predicate || 'Verify expected state with the domain-specific probe before claiming closure.';
877
+ const base = baseOptions(observation, classification, verification);
878
+ const constrained = constrainOptions(base, observation, classification, trust, policy);
879
+ const tadabbur = tadabburPass(constrained.options, observation, classification, trust, constrained.mutations);
880
+ const qiyas = qiyasPass(constrained.options, observation, classification);
881
+ const ranked = rankOptions(qiyas.options, observation, classification);
882
+ const acceptance = {
883
+ tadabbur_12: tadabbur.ok && tadabbur.stage_count === 12,
884
+ qiyas_15: qiyas.ok && qiyas.perspective_count === 15,
885
+ cognition_mutated_output: constrained.mutations.length > 0,
886
+ deterministic_hash: true,
887
+ };
888
+ // A3 (2026-05-17) — atlas-driven skill + runtime selection. Lives INSIDE
889
+ // compilationCore so it participates in compilation_hash (caller can
890
+ // verify selection is deterministic given identical observation +
891
+ // classification + priorCourtVerdicts).
892
+ const selection = selectSkillsAndRuntimes(observation, classification, priorCourtVerdicts);
893
+ const compilationCore = {
894
+ schema: 'aria.deterministic_cognitive_kernel.compilation.v1',
895
+ observation,
896
+ classification,
897
+ source_trust: trust,
898
+ options: ranked,
899
+ tadabbur,
900
+ qiyas,
901
+ acceptance,
902
+ policy,
903
+ selectedSkillIds: selection.selectedSkillIds,
904
+ selectedRuntimeIds: selection.selectedRuntimeIds,
905
+ selectionMeta: selection.selectionMeta,
906
+ };
907
+ const compilation = {
908
+ ...compilationCore,
909
+ reflexion: null,
910
+ compilation_hash: stableHash(compilationCore),
911
+ };
912
+ compilation.reflexion = reflexionSeed(compilation);
913
+ return compilation;
914
+ }