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