@aria_asi/cli 0.2.40 → 0.2.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (802) hide show
  1. package/bin/aria.js +236 -34
  2. package/dist/aria-connector/src/action-ledger-core.d.ts +387 -0
  3. package/dist/aria-connector/src/action-ledger-core.d.ts.map +1 -0
  4. package/dist/aria-connector/src/action-ledger-core.js +638 -0
  5. package/dist/aria-connector/src/action-ledger-core.js.map +1 -0
  6. package/dist/aria-connector/src/chat.d.ts.map +1 -1
  7. package/dist/aria-connector/src/chat.js +5 -6
  8. package/dist/aria-connector/src/chat.js.map +1 -1
  9. package/dist/aria-connector/src/codebase-scanner.d.ts +1 -1
  10. package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
  11. package/dist/aria-connector/src/connectors/claude-code.d.ts +1 -0
  12. package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
  13. package/dist/aria-connector/src/connectors/claude-code.js +152 -14
  14. package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
  15. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +10 -0
  16. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -1
  17. package/dist/aria-connector/src/connectors/codebase-awareness.js +276 -27
  18. package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -1
  19. package/dist/aria-connector/src/connectors/codex.d.ts +3 -1
  20. package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
  21. package/dist/aria-connector/src/connectors/codex.js +1223 -41
  22. package/dist/aria-connector/src/connectors/codex.js.map +1 -1
  23. package/dist/aria-connector/src/connectors/cursor.d.ts.map +1 -1
  24. package/dist/aria-connector/src/connectors/cursor.js +7 -0
  25. package/dist/aria-connector/src/connectors/cursor.js.map +1 -1
  26. package/dist/aria-connector/src/connectors/governed-adapter.d.ts +30 -0
  27. package/dist/aria-connector/src/connectors/governed-adapter.d.ts.map +1 -0
  28. package/dist/aria-connector/src/connectors/governed-adapter.js +132 -0
  29. package/dist/aria-connector/src/connectors/governed-adapter.js.map +1 -0
  30. package/dist/aria-connector/src/connectors/opencode.d.ts +3 -1
  31. package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
  32. package/dist/aria-connector/src/connectors/opencode.js +18 -2
  33. package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
  34. package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -1
  35. package/dist/aria-connector/src/connectors/repo-guard.js +25 -14
  36. package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -1
  37. package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
  38. package/dist/aria-connector/src/connectors/runtime.js +92 -2
  39. package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
  40. package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
  41. package/dist/aria-connector/src/connectors/shell.js +123 -7
  42. package/dist/aria-connector/src/connectors/shell.js.map +1 -1
  43. package/dist/aria-connector/src/cross-cli-hive-binding.d.ts +63 -0
  44. package/dist/aria-connector/src/cross-cli-hive-binding.d.ts.map +1 -0
  45. package/dist/aria-connector/src/cross-cli-hive-binding.js +205 -0
  46. package/dist/aria-connector/src/cross-cli-hive-binding.js.map +1 -0
  47. package/dist/aria-connector/src/garden-control-plane.d.ts +6 -1
  48. package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
  49. package/dist/aria-connector/src/garden-control-plane.js +8 -2
  50. package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
  51. package/dist/aria-connector/src/governed-surface-runner.d.ts +189 -0
  52. package/dist/aria-connector/src/governed-surface-runner.d.ts.map +1 -0
  53. package/dist/aria-connector/src/governed-surface-runner.js +1022 -0
  54. package/dist/aria-connector/src/governed-surface-runner.js.map +1 -0
  55. package/dist/aria-connector/src/index.d.ts +10 -1
  56. package/dist/aria-connector/src/index.d.ts.map +1 -1
  57. package/dist/aria-connector/src/index.js +5 -0
  58. package/dist/aria-connector/src/index.js.map +1 -1
  59. package/dist/aria-connector/src/task-runner.d.ts +3 -0
  60. package/dist/aria-connector/src/task-runner.d.ts.map +1 -0
  61. package/dist/aria-connector/src/task-runner.js +3526 -0
  62. package/dist/aria-connector/src/task-runner.js.map +1 -0
  63. package/dist/aria-web/src/lib/codebase-scanner.d.ts +21 -2
  64. package/dist/aria-web/src/lib/codebase-scanner.d.ts.map +1 -1
  65. package/dist/aria-web/src/lib/codebase-scanner.js +59 -14
  66. package/dist/aria-web/src/lib/codebase-scanner.js.map +1 -1
  67. package/dist/assets/hooks/README.md +58 -0
  68. package/dist/assets/hooks/aria-agent-handoff.mjs +147 -2
  69. package/dist/assets/hooks/aria-agent-ledger-merge.mjs +31 -7
  70. package/dist/assets/hooks/aria-architect-fallback.mjs +10 -2
  71. package/dist/assets/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  72. package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +84 -10
  73. package/dist/assets/hooks/aria-first-class-coach.mjs +305 -10
  74. package/dist/assets/hooks/aria-harness-via-sdk.mjs +93 -16
  75. package/dist/assets/hooks/aria-import-resolution-gate.mjs +106 -20
  76. package/dist/assets/hooks/aria-outcome-record.mjs +56 -20
  77. package/dist/assets/hooks/aria-pre-emit-autoload.mjs +1809 -0
  78. package/dist/assets/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  79. package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +22 -3
  80. package/dist/assets/hooks/aria-pre-text-gate.mjs +11 -2
  81. package/dist/assets/hooks/aria-pre-tool-gate.mjs +477 -81
  82. package/dist/assets/hooks/aria-pre-tool-use.mjs +70 -6
  83. package/dist/assets/hooks/aria-preprompt-consult.mjs +23 -4
  84. package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +29 -3
  85. package/dist/assets/hooks/aria-stop-gate.mjs +585 -76
  86. package/dist/assets/hooks/aria-trigger-autolearn.mjs +17 -3
  87. package/dist/assets/hooks/aria-universal-turn-packet.mjs +1165 -0
  88. package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  89. package/dist/assets/hooks/canonical-settings-block.json +172 -0
  90. package/dist/assets/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  91. package/dist/assets/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  92. package/dist/assets/hooks/codex-native/aria-live-ticker.mjs +38 -0
  93. package/dist/assets/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  94. package/dist/assets/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  95. package/dist/assets/hooks/codex-native/aria-stop.mjs +691 -0
  96. package/dist/assets/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  97. package/dist/assets/hooks/codex-native/atlas-session-context.mjs +121 -0
  98. package/dist/assets/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  99. package/dist/assets/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  100. package/dist/assets/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  101. package/dist/assets/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  102. package/dist/assets/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  103. package/dist/assets/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  104. package/dist/assets/hooks/doctrine_trigger_map.json +236 -25
  105. package/dist/assets/hooks/doctrine_trigger_map.schema.json +46 -0
  106. package/dist/assets/hooks/install.sh +84 -0
  107. package/dist/assets/hooks/lib/action-ledger-core.mjs +269 -0
  108. package/dist/assets/hooks/lib/aria-gate-ledger.mjs +143 -0
  109. package/dist/assets/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  110. package/dist/assets/hooks/lib/atlas-dossier-client.mjs +151 -0
  111. package/dist/assets/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  112. package/dist/assets/hooks/lib/canonical-lenses.mjs +83 -6
  113. package/dist/assets/hooks/lib/coach-intent-classifier.mjs +248 -0
  114. package/dist/assets/hooks/lib/cognitive-block-parser.mjs +111 -0
  115. package/dist/assets/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  116. package/dist/assets/hooks/lib/domain-output-quality.mjs +132 -3
  117. package/dist/assets/hooks/lib/empty-catch-scanner.mjs +91 -0
  118. package/dist/assets/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  119. package/dist/assets/hooks/lib/evaluate-with-kernel.mjs +133 -0
  120. package/dist/assets/hooks/lib/first-class-coach.mjs +454 -19
  121. package/dist/assets/hooks/lib/gate-audit.mjs +12 -2
  122. package/dist/assets/hooks/lib/gate-loop-state.mjs +11 -2
  123. package/dist/assets/hooks/lib/goal-contract-quality.mjs +302 -0
  124. package/dist/assets/hooks/lib/hook-message-window.mjs +101 -9
  125. package/dist/assets/hooks/lib/invocation-required-verifier.mjs +184 -0
  126. package/dist/assets/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  127. package/dist/assets/hooks/lib/obligation-ledger.mjs +147 -0
  128. package/dist/assets/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  129. package/dist/assets/hooks/lib/owner-authorizations.mjs +269 -0
  130. package/dist/assets/hooks/lib/probe-discipline-scanner.mjs +142 -0
  131. package/dist/assets/hooks/lib/project-boundary-cognition.mjs +143 -0
  132. package/dist/assets/hooks/lib/recovery-context.mjs +151 -0
  133. package/dist/assets/hooks/lib/recovery-template-loader.mjs +154 -0
  134. package/dist/assets/hooks/lib/self-doctrine-check.mjs +321 -0
  135. package/dist/assets/hooks/lib/sensitive-shape-detector.mjs +64 -0
  136. package/dist/assets/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  137. package/dist/assets/hooks/lib/stop-hook-protocol.mjs +166 -0
  138. package/dist/assets/hooks/lib/surface-caught.mjs +94 -0
  139. package/dist/assets/hooks/recovery-templates/force-reauthor.md +67 -0
  140. package/dist/assets/hooks/recovery-templates/handoff-recovery.md +25 -0
  141. package/dist/assets/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  142. package/dist/assets/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  143. package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  144. package/dist/assets/hooks/test-tier-lens-labeling.mjs +14 -3
  145. package/dist/assets/opencode-plugins/harness-context/index.js +39 -6
  146. package/dist/assets/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
  147. package/dist/assets/opencode-plugins/harness-gate/index.js +36 -0
  148. package/dist/assets/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
  149. package/dist/assets/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
  150. package/dist/assets/opencode-plugins/harness-outcome/index.js +12 -0
  151. package/dist/assets/opencode-plugins/harness-stop/index.js +97 -2
  152. package/dist/assets/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
  153. package/dist/assets/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
  154. package/dist/assets/opencode-plugins/lib/coach.js +148 -0
  155. package/dist/runtime/coach-kernel.mjs +144 -7
  156. package/dist/runtime/codex-bridge.mjs +254 -8
  157. package/dist/runtime/discipline/doctrine_trigger_map.json +236 -25
  158. package/dist/runtime/discipline/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
  159. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
  160. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
  161. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
  162. package/dist/runtime/discipline/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
  163. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
  164. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
  165. package/dist/runtime/discipline/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
  166. package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
  167. package/dist/runtime/discipline/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
  168. package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
  169. package/dist/runtime/discipline/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
  170. package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
  171. package/dist/runtime/discipline/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
  172. package/dist/runtime/discipline/skills/aria-cognition/aria-chat/SKILL.md +84 -0
  173. package/dist/runtime/discipline/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
  174. package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
  175. package/dist/runtime/discipline/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
  176. package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
  177. package/dist/runtime/discipline/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
  178. package/dist/runtime/discipline/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
  179. package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
  180. package/dist/runtime/discipline/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
  181. package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
  182. package/dist/runtime/discipline/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
  183. package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
  184. package/dist/runtime/discipline/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
  185. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
  186. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
  187. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
  188. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
  189. package/dist/runtime/discipline/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
  190. package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
  191. package/dist/runtime/discipline/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
  192. package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
  193. package/dist/runtime/discipline/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
  194. package/dist/runtime/discipline/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
  195. package/dist/runtime/discipline/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
  196. package/dist/runtime/discipline/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
  197. package/dist/runtime/discipline/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
  198. package/dist/runtime/discipline/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
  199. package/dist/runtime/discipline/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
  200. package/dist/runtime/discipline/skills/aria-cognition/aria-ops/SKILL.md +60 -0
  201. package/dist/runtime/discipline/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
  202. package/dist/runtime/discipline/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
  203. package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
  204. package/dist/runtime/discipline/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
  205. package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
  206. package/dist/runtime/discipline/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
  207. package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
  208. package/dist/runtime/discipline/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
  209. package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
  210. package/dist/runtime/discipline/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
  211. package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
  212. package/dist/runtime/discipline/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
  213. package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
  214. package/dist/runtime/discipline/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
  215. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
  216. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
  217. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
  218. package/dist/runtime/discipline/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
  219. package/dist/runtime/discipline/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
  220. package/dist/runtime/discipline/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
  221. package/dist/runtime/discipline/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
  222. package/dist/runtime/discipline/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
  223. package/dist/runtime/discipline/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
  224. package/dist/runtime/discipline/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
  225. package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
  226. package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
  227. package/dist/runtime/discipline/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
  228. package/dist/runtime/discipline/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
  229. package/dist/runtime/discipline/skills/aria-cognition/never-guess/SKILL.md +77 -0
  230. package/dist/runtime/discipline/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
  231. package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
  232. package/dist/runtime/discipline/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
  233. package/dist/runtime/discipline/skills/aria-cognition/tadabbur/SKILL.md +506 -0
  234. package/dist/runtime/discipline/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
  235. package/dist/runtime/discipline/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
  236. package/dist/runtime/discipline/skills/aria-cognition/tafakkur/SKILL.md +104 -0
  237. package/dist/runtime/doctrine_trigger_map.json +236 -25
  238. package/dist/runtime/embedded-public-key.mjs +27 -0
  239. package/dist/runtime/gated-ledger.mjs +41 -14
  240. package/dist/runtime/harness-daemon.mjs +85 -10
  241. package/dist/runtime/hive-wal-publisher.mjs +292 -0
  242. package/dist/runtime/hooks/README.md +58 -0
  243. package/dist/runtime/hooks/aria-agent-handoff.mjs +147 -2
  244. package/dist/runtime/hooks/aria-agent-ledger-merge.mjs +31 -7
  245. package/dist/runtime/hooks/aria-architect-fallback.mjs +10 -2
  246. package/dist/runtime/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  247. package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +84 -10
  248. package/dist/runtime/hooks/aria-first-class-coach.mjs +305 -10
  249. package/dist/runtime/hooks/aria-harness-via-sdk.mjs +93 -16
  250. package/dist/runtime/hooks/aria-import-resolution-gate.mjs +106 -20
  251. package/dist/runtime/hooks/aria-outcome-record.mjs +56 -20
  252. package/dist/runtime/hooks/aria-pre-emit-autoload.mjs +1809 -0
  253. package/dist/runtime/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  254. package/dist/runtime/hooks/aria-pre-emit-dryrun.mjs +22 -3
  255. package/dist/runtime/hooks/aria-pre-text-gate.mjs +11 -2
  256. package/dist/runtime/hooks/aria-pre-tool-gate.mjs +477 -81
  257. package/dist/runtime/hooks/aria-pre-tool-use.mjs +70 -6
  258. package/dist/runtime/hooks/aria-preprompt-consult.mjs +23 -4
  259. package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +29 -3
  260. package/dist/runtime/hooks/aria-stop-gate.mjs +585 -76
  261. package/dist/runtime/hooks/aria-trigger-autolearn.mjs +17 -3
  262. package/dist/runtime/hooks/aria-universal-turn-packet.mjs +1165 -0
  263. package/dist/runtime/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  264. package/dist/runtime/hooks/canonical-settings-block.json +172 -0
  265. package/dist/runtime/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  266. package/dist/runtime/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  267. package/dist/runtime/hooks/codex-native/aria-live-ticker.mjs +38 -0
  268. package/dist/runtime/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  269. package/dist/runtime/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  270. package/dist/runtime/hooks/codex-native/aria-stop.mjs +691 -0
  271. package/dist/runtime/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  272. package/dist/runtime/hooks/codex-native/atlas-session-context.mjs +121 -0
  273. package/dist/runtime/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  274. package/dist/runtime/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  275. package/dist/runtime/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  276. package/dist/runtime/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  277. package/dist/runtime/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  278. package/dist/runtime/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  279. package/dist/runtime/hooks/doctrine_trigger_map.json +236 -25
  280. package/dist/runtime/hooks/doctrine_trigger_map.schema.json +46 -0
  281. package/dist/runtime/hooks/install.sh +84 -0
  282. package/dist/runtime/hooks/lib/action-ledger-core.mjs +269 -0
  283. package/dist/runtime/hooks/lib/aria-gate-ledger.mjs +143 -0
  284. package/dist/runtime/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  285. package/dist/runtime/hooks/lib/atlas-dossier-client.mjs +151 -0
  286. package/dist/runtime/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  287. package/dist/runtime/hooks/lib/canonical-lenses.mjs +83 -6
  288. package/dist/runtime/hooks/lib/coach-intent-classifier.mjs +248 -0
  289. package/dist/runtime/hooks/lib/cognitive-block-parser.mjs +111 -0
  290. package/dist/runtime/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  291. package/dist/runtime/hooks/lib/domain-output-quality.mjs +132 -3
  292. package/dist/runtime/hooks/lib/empty-catch-scanner.mjs +91 -0
  293. package/dist/runtime/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  294. package/dist/runtime/hooks/lib/evaluate-with-kernel.mjs +133 -0
  295. package/dist/runtime/hooks/lib/first-class-coach.mjs +454 -19
  296. package/dist/runtime/hooks/lib/gate-audit.mjs +12 -2
  297. package/dist/runtime/hooks/lib/gate-loop-state.mjs +11 -2
  298. package/dist/runtime/hooks/lib/goal-contract-quality.mjs +302 -0
  299. package/dist/runtime/hooks/lib/hook-message-window.mjs +101 -9
  300. package/dist/runtime/hooks/lib/invocation-required-verifier.mjs +184 -0
  301. package/dist/runtime/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  302. package/dist/runtime/hooks/lib/obligation-ledger.mjs +147 -0
  303. package/dist/runtime/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  304. package/dist/runtime/hooks/lib/owner-authorizations.mjs +269 -0
  305. package/dist/runtime/hooks/lib/probe-discipline-scanner.mjs +142 -0
  306. package/dist/runtime/hooks/lib/project-boundary-cognition.mjs +143 -0
  307. package/dist/runtime/hooks/lib/recovery-context.mjs +151 -0
  308. package/dist/runtime/hooks/lib/recovery-template-loader.mjs +154 -0
  309. package/dist/runtime/hooks/lib/self-doctrine-check.mjs +321 -0
  310. package/dist/runtime/hooks/lib/sensitive-shape-detector.mjs +64 -0
  311. package/dist/runtime/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  312. package/dist/runtime/hooks/lib/stop-hook-protocol.mjs +166 -0
  313. package/dist/runtime/hooks/lib/surface-caught.mjs +94 -0
  314. package/dist/runtime/hooks/recovery-templates/force-reauthor.md +67 -0
  315. package/dist/runtime/hooks/recovery-templates/handoff-recovery.md +25 -0
  316. package/dist/runtime/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  317. package/dist/runtime/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  318. package/dist/runtime/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  319. package/dist/runtime/hooks/test-tier-lens-labeling.mjs +14 -3
  320. package/dist/runtime/lib/evaluate-with-kernel.mjs +133 -0
  321. package/dist/runtime/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  322. package/dist/runtime/local-phase.mjs +10 -5
  323. package/dist/runtime/manifest.json +8 -8
  324. package/dist/runtime/packet-verifier.mjs +166 -0
  325. package/dist/runtime/provider-proxy.mjs +13 -0
  326. package/dist/runtime/quality-enforcer.mjs +40 -23
  327. package/dist/runtime/runtime-rails/registry.mjs +252 -0
  328. package/dist/runtime/sdk/BUNDLED.json +2 -2
  329. package/dist/runtime/sdk/index.d.ts +119 -4
  330. package/dist/runtime/sdk/index.js +138 -12
  331. package/dist/runtime/sdk/index.js.map +1 -1
  332. package/dist/runtime/service.mjs +8036 -764
  333. package/dist/runtime/sub-agent-enforcer.mjs +201 -0
  334. package/dist/runtime/task-project-ledger.mjs +5 -1
  335. package/dist/sdk/BUNDLED.json +2 -2
  336. package/dist/sdk/index.d.ts +119 -4
  337. package/dist/sdk/index.js +138 -12
  338. package/dist/sdk/index.js.map +1 -1
  339. package/hooks/README.md +58 -0
  340. package/hooks/aria-agent-handoff.mjs +147 -2
  341. package/hooks/aria-agent-ledger-merge.mjs +31 -7
  342. package/hooks/aria-architect-fallback.mjs +10 -2
  343. package/hooks/aria-claim-evidence-stop-gate.mjs +240 -0
  344. package/hooks/aria-cognition-substrate-binding.mjs +84 -10
  345. package/hooks/aria-first-class-coach.mjs +305 -10
  346. package/hooks/aria-harness-via-sdk.mjs +93 -16
  347. package/hooks/aria-import-resolution-gate.mjs +106 -20
  348. package/hooks/aria-outcome-record.mjs +56 -20
  349. package/hooks/aria-pre-emit-autoload.mjs +1809 -0
  350. package/hooks/aria-pre-emit-autoload.mjs.before-orchestration-redesign +1400 -0
  351. package/hooks/aria-pre-emit-dryrun.mjs +22 -3
  352. package/hooks/aria-pre-text-gate.mjs +11 -2
  353. package/hooks/aria-pre-tool-gate.mjs +477 -81
  354. package/hooks/aria-pre-tool-use.mjs +70 -6
  355. package/hooks/aria-preprompt-consult.mjs +23 -4
  356. package/hooks/aria-repo-doctrine-gate.mjs +29 -3
  357. package/hooks/aria-stop-gate.mjs +585 -76
  358. package/hooks/aria-trigger-autolearn.mjs +17 -3
  359. package/hooks/aria-universal-turn-packet.mjs +1165 -0
  360. package/hooks/aria-userprompt-abandon-detect.mjs +9 -1
  361. package/hooks/canonical-settings-block.json +172 -0
  362. package/hooks/codex-native/aria-harness-ticker-sidecar.mjs +92 -0
  363. package/hooks/codex-native/aria-hive-wal-consumer.mjs +86 -0
  364. package/hooks/codex-native/aria-live-ticker.mjs +38 -0
  365. package/hooks/codex-native/aria-post-tool-use.mjs +236 -0
  366. package/hooks/codex-native/aria-pre-tool-use.mjs +362 -0
  367. package/hooks/codex-native/aria-stop.mjs +691 -0
  368. package/hooks/codex-native/aria-userprompt-submit.mjs +623 -0
  369. package/hooks/codex-native/atlas-session-context.mjs +121 -0
  370. package/hooks/codex-native/lib/evaluate-with-kernel.mjs +257 -0
  371. package/hooks/codex-native/lib/hive-wal-consumer.mjs +452 -0
  372. package/hooks/codex-native/lib/kernel/deterministic-cognitive-kernel.mjs +914 -0
  373. package/hooks/codex-native/lib/project-boundary-cognition.mjs +143 -0
  374. package/hooks/codex-native/lib/runtime-client.mjs +3567 -0
  375. package/hooks/codex-native/lib/task-project-ledger.mjs +294 -0
  376. package/hooks/doctrine_trigger_map.json +236 -25
  377. package/hooks/doctrine_trigger_map.schema.json +46 -0
  378. package/hooks/install.sh +84 -0
  379. package/hooks/lib/action-ledger-core.mjs +269 -0
  380. package/hooks/lib/aria-gate-ledger.mjs +143 -0
  381. package/hooks/lib/ast-stub-shape-detector.mjs +107 -0
  382. package/hooks/lib/atlas-dossier-client.mjs +151 -0
  383. package/hooks/lib/atlas-orchestrator-postwire.mjs +221 -0
  384. package/hooks/lib/canonical-lenses.mjs +83 -6
  385. package/hooks/lib/coach-intent-classifier.mjs +248 -0
  386. package/hooks/lib/cognitive-block-parser.mjs +111 -0
  387. package/hooks/lib/doctrine-trigger-map-loader.mjs +137 -0
  388. package/hooks/lib/domain-output-quality.mjs +132 -3
  389. package/hooks/lib/empty-catch-scanner.mjs +91 -0
  390. package/hooks/lib/end-phase-qa-autofire.mjs +426 -0
  391. package/hooks/lib/evaluate-with-kernel.mjs +133 -0
  392. package/hooks/lib/first-class-coach.mjs +454 -19
  393. package/hooks/lib/gate-audit.mjs +12 -2
  394. package/hooks/lib/gate-loop-state.mjs +11 -2
  395. package/hooks/lib/goal-contract-quality.mjs +302 -0
  396. package/hooks/lib/hook-message-window.mjs +101 -9
  397. package/hooks/lib/invocation-required-verifier.mjs +184 -0
  398. package/hooks/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  399. package/hooks/lib/obligation-ledger.mjs +147 -0
  400. package/hooks/lib/orchestration-manifest-extract.mjs +217 -0
  401. package/hooks/lib/owner-authorizations.mjs +269 -0
  402. package/hooks/lib/probe-discipline-scanner.mjs +142 -0
  403. package/hooks/lib/project-boundary-cognition.mjs +143 -0
  404. package/hooks/lib/recovery-context.mjs +151 -0
  405. package/hooks/lib/recovery-template-loader.mjs +154 -0
  406. package/hooks/lib/self-doctrine-check.mjs +321 -0
  407. package/hooks/lib/sensitive-shape-detector.mjs +64 -0
  408. package/hooks/lib/skill-autoload-gate-impl.mjs +226 -1
  409. package/hooks/lib/stop-hook-protocol.mjs +166 -0
  410. package/hooks/lib/surface-caught.mjs +94 -0
  411. package/hooks/recovery-templates/force-reauthor.md +67 -0
  412. package/hooks/recovery-templates/handoff-recovery.md +25 -0
  413. package/hooks/scripts/check-hard-risk-prefix.mjs +99 -0
  414. package/hooks/skills/aria-conversational-doctrine-discipline/SKILL.md +101 -0
  415. package/hooks/test-aria-preturn-memory-gate.mjs +2 -2
  416. package/hooks/test-tier-lens-labeling.mjs +14 -3
  417. package/opencode-plugins/harness-context/index.js +39 -6
  418. package/opencode-plugins/harness-context/task-project-ledger.mjs +5 -1
  419. package/opencode-plugins/harness-gate/index.js +36 -0
  420. package/opencode-plugins/harness-gate/lib/atlas-dossier-client.js +1 -0
  421. package/opencode-plugins/harness-gate/lib/recovery-grants.js +79 -0
  422. package/opencode-plugins/harness-outcome/index.js +12 -0
  423. package/opencode-plugins/harness-stop/index.js +97 -2
  424. package/opencode-plugins/harness-stop/lib/atlas-dossier-client.js +1 -0
  425. package/opencode-plugins/harness-stop/lib/domain-output-quality.js +15 -2
  426. package/opencode-plugins/lib/coach.js +148 -0
  427. package/package.json +71 -5
  428. package/runtime-src/coach-kernel.mjs +144 -7
  429. package/runtime-src/codex-bridge.mjs +254 -8
  430. package/runtime-src/embedded-public-key.mjs +27 -0
  431. package/runtime-src/gated-ledger.mjs +41 -14
  432. package/runtime-src/harness-daemon.mjs +85 -10
  433. package/runtime-src/hive-wal-publisher.mjs +292 -0
  434. package/runtime-src/lib/evaluate-with-kernel.mjs +133 -0
  435. package/runtime-src/lib/kernel/deterministic-cognitive-kernel.mjs +906 -0
  436. package/runtime-src/local-phase.mjs +10 -5
  437. package/runtime-src/packet-verifier.mjs +166 -0
  438. package/runtime-src/provider-proxy.mjs +13 -0
  439. package/runtime-src/quality-enforcer.mjs +40 -23
  440. package/runtime-src/runtime-rails/registry.mjs +252 -0
  441. package/runtime-src/service.mjs +8036 -764
  442. package/runtime-src/sub-agent-enforcer.mjs +201 -0
  443. package/scripts/aria-ledger-append.mjs +337 -0
  444. package/scripts/aria-task-cheap-worker-dispatch.mjs +234 -0
  445. package/scripts/audit-of-audit-prior-tasks.mjs +194 -0
  446. package/scripts/audit-of-audit-this-turn.mjs +116 -0
  447. package/scripts/bundle-sdk.mjs +31 -5
  448. package/scripts/check-cli-wrapper-provider-contract.mjs +160 -0
  449. package/scripts/check-client-compatibility.mjs +15 -5
  450. package/scripts/check-client-smoke.mjs +297 -0
  451. package/scripts/check-codex-orchestrator-adoption.mjs +150 -0
  452. package/scripts/check-glm-env-wired.mjs +131 -0
  453. package/scripts/check-hive-local-storage-contract.mjs +91 -0
  454. package/scripts/check-hook-mirror.mjs +150 -0
  455. package/scripts/check-install-sh-drift.mjs +152 -0
  456. package/scripts/check-kernel-sync.mjs +101 -0
  457. package/scripts/check-package-artifact.mjs +152 -0
  458. package/scripts/check-registry-mirror.mjs +71 -0
  459. package/scripts/drain-owner-airtable-sync-queue.mjs +287 -0
  460. package/scripts/export-owner-status-sheets.mjs +589 -0
  461. package/scripts/live-sidecar-receipt-canary.mjs +347 -0
  462. package/scripts/qiyas-tadabbur-model-matrix.mjs +970 -0
  463. package/scripts/quality-ab-live-provider.mjs +913 -0
  464. package/scripts/self-test-action-ledger-core.mjs +190 -0
  465. package/scripts/self-test-approval-receipt-binding.mjs +122 -0
  466. package/scripts/self-test-autofire-quality-output.mjs +110 -0
  467. package/scripts/self-test-claude-code-action-ledger.mjs +132 -0
  468. package/scripts/self-test-claude-code-mechanical-autofire-hive.mjs +138 -0
  469. package/scripts/self-test-claude-code-mechanical-autofire.mjs +234 -0
  470. package/scripts/self-test-codebase-awareness-atlas-delta.mjs +159 -0
  471. package/scripts/self-test-codebase-awareness-delta-ingest.mjs +179 -0
  472. package/scripts/self-test-codex-live-hook-parity.mjs +84 -0
  473. package/scripts/self-test-codex-native-action-ledger.mjs +167 -0
  474. package/scripts/self-test-codex-native-hook-json-contract.mjs +74 -0
  475. package/scripts/self-test-codex-orchestrator-continuity.mjs +113 -0
  476. package/scripts/self-test-codex-readable-recovery.mjs +94 -0
  477. package/scripts/self-test-codex-self-harness.mjs +538 -0
  478. package/scripts/self-test-compiled-workunit.mjs +214 -0
  479. package/scripts/self-test-continuation-output-smoke.mjs +101 -0
  480. package/scripts/self-test-cross-cli-fleet-ticker.mjs +85 -0
  481. package/scripts/self-test-cross-cli-hive-adoption.mjs +125 -0
  482. package/scripts/self-test-cross-cli-hive-learning.mjs +146 -0
  483. package/scripts/self-test-cross-phase-tool-failure.mjs +110 -0
  484. package/scripts/self-test-cross-surface-action-ledger.mjs +149 -0
  485. package/scripts/self-test-end-of-phase-qa-court.mjs +616 -0
  486. package/scripts/self-test-evaluate-with-kernel.mjs +111 -0
  487. package/scripts/self-test-first-class-output-delta-proof.mjs +307 -0
  488. package/scripts/self-test-goal-contract-output-qa.mjs +73 -0
  489. package/scripts/self-test-goal-contract.mjs +35 -0
  490. package/scripts/self-test-governed-adapters.mjs +105 -0
  491. package/scripts/self-test-governed-surface-runner.mjs +198 -0
  492. package/scripts/self-test-harness-gates.mjs +15 -12
  493. package/scripts/self-test-harness-ticker-sidecar.mjs +153 -0
  494. package/scripts/self-test-hive-org-kernel.mjs +233 -0
  495. package/scripts/self-test-hive-session-coordination.mjs +156 -0
  496. package/scripts/self-test-hive-wal-consumer.mjs +111 -0
  497. package/scripts/self-test-kernel-a3-a4-selection.mjs +179 -0
  498. package/scripts/self-test-ledger-append.mjs +175 -0
  499. package/scripts/self-test-live-codex-posttool-packet-smoke.mjs +111 -0
  500. package/scripts/self-test-live-codex-pretool-packet-smoke.mjs +101 -0
  501. package/scripts/self-test-live-codex-stop-qa-kernel-smoke.mjs +43 -0
  502. package/scripts/self-test-live-wrapper-substrate-inventory.mjs +149 -0
  503. package/scripts/self-test-local-main-sync-script.mjs +47 -0
  504. package/scripts/self-test-mechanical-autofire-resolver.mjs +296 -0
  505. package/scripts/self-test-no-consult-cognitive-skills-output.mjs +135 -0
  506. package/scripts/self-test-owner-airtable-sync-queue.mjs +196 -0
  507. package/scripts/self-test-owner-airtable-sync.mjs +181 -0
  508. package/scripts/self-test-owner-sheets-action-ledger.mjs +100 -0
  509. package/scripts/self-test-production-preflight.mjs +78 -0
  510. package/scripts/self-test-project-boundary-cognition.mjs +79 -0
  511. package/scripts/self-test-qa-exec-kernel.mjs +34 -0
  512. package/scripts/self-test-qa-recovery-learning-loop.mjs +113 -0
  513. package/scripts/self-test-qiyas-label-alignment.mjs +94 -0
  514. package/scripts/self-test-recovery-context.mjs +110 -0
  515. package/scripts/self-test-repo-guard.mjs +10 -0
  516. package/scripts/self-test-runtime-health-self-heal.mjs +161 -0
  517. package/scripts/self-test-runtime-postcondition.mjs +70 -0
  518. package/scripts/self-test-soul-precommit-hook.mjs +39 -0
  519. package/scripts/self-test-stop-gate-kernel-guards.mjs +185 -0
  520. package/scripts/self-test-stop-gate.mjs +128 -0
  521. package/scripts/self-test-substrate-kernel-execution-receipt.mjs +130 -0
  522. package/scripts/self-test-substrate-open-skill-floor.mjs +87 -0
  523. package/scripts/self-test-substrate-output-quality-eval.mjs +171 -0
  524. package/scripts/self-test-task-closeout-drift.mjs +97 -0
  525. package/scripts/self-test-task-project-ledger-readiness.mjs +43 -0
  526. package/scripts/self-test-task-runner-phase-consumer.mjs +134 -0
  527. package/scripts/self-test-task-worker-lane.mjs +256 -0
  528. package/scripts/self-test-turn-substrate-qa-kernel.mjs +188 -0
  529. package/scripts/self-test-universal-action-capture.mjs +153 -0
  530. package/scripts/self-test-universal-turn-packet-entrypoints.mjs +252 -0
  531. package/scripts/self-test-universal-turn-packet.mjs +320 -0
  532. package/scripts/session-quality-backfill.mjs +253 -0
  533. package/scripts/smoke-autofire-100-prompts.mjs +481 -0
  534. package/scripts/sync-local-main-on-task-complete.mjs +278 -0
  535. package/scripts/sync-owner-status-airtable.mjs +1158 -0
  536. package/scripts/validate-skill-prompts.mjs +12 -1
  537. package/scripts/verify-codex-native-mirror.mjs +262 -0
  538. package/skills/34-frameworks-unified/SKILL.md +42 -0
  539. package/skills/api-design/SKILL.md +123 -0
  540. package/skills/architecture-decision/SKILL.md +105 -0
  541. package/skills/aria-aristotle-cognitives/SKILL.md +128 -0
  542. package/skills/aria-aristotle-intra-phase/SKILL.md +99 -0
  543. package/skills/aria-aristotle-post-phase/SKILL.md +116 -0
  544. package/skills/aria-aristotle-pre-phase/SKILL.md +117 -0
  545. package/skills/aria-axioms-first-principles/SKILL.md +202 -0
  546. package/skills/aria-axioms-first-principles/agents/openai.yaml +4 -0
  547. package/skills/aria-axioms-first-principles/references/source-map.md +130 -0
  548. package/skills/aria-chat/SKILL.md +84 -0
  549. package/skills/aria-chat/scripts/aria-chat.sh +57 -0
  550. package/skills/aria-cognition/34-frameworks-unified/SKILL.md +42 -0
  551. package/skills/aria-cognition/aria-aristotle-cognitives/SKILL.md +128 -0
  552. package/skills/aria-cognition/aria-aristotle-intra-phase/SKILL.md +99 -0
  553. package/skills/aria-cognition/aria-aristotle-post-phase/SKILL.md +118 -0
  554. package/skills/aria-cognition/aria-aristotle-pre-phase/SKILL.md +117 -0
  555. package/skills/aria-cognition/aria-axioms-first-principles/SKILL.md +202 -0
  556. package/skills/aria-cognition/aria-axioms-first-principles/agents/openai.yaml +4 -0
  557. package/skills/aria-cognition/aria-axioms-first-principles/references/source-map.md +130 -0
  558. package/skills/aria-cognition/aria-backend-architect/SKILL.md +124 -0
  559. package/skills/aria-cognition/aria-backend-architect/references/backend-cookbook.md +417 -0
  560. package/skills/aria-cognition/aria-business-audit/SKILL.md +133 -0
  561. package/skills/aria-cognition/aria-business-audit/references/audit-cookbook.md +247 -0
  562. package/skills/aria-cognition/aria-business-frame/SKILL.md +138 -0
  563. package/skills/aria-cognition/aria-business-frame/references/business-cookbook.md +154 -0
  564. package/skills/aria-cognition/aria-chat/SKILL.md +84 -0
  565. package/skills/aria-cognition/aria-chat/scripts/aria-chat.sh +57 -0
  566. package/skills/aria-cognition/aria-cognition-autofire/SKILL.md +137 -0
  567. package/skills/aria-cognition/aria-cognition-batch/SKILL.md +264 -0
  568. package/skills/aria-cognition/aria-decision-mizan/SKILL.md +136 -0
  569. package/skills/aria-cognition/aria-decision-mizan/references/decision-frameworks.md +287 -0
  570. package/skills/aria-cognition/aria-first-class-operating-contract/SKILL.md +104 -0
  571. package/skills/aria-cognition/aria-frontend-architect/SKILL.md +123 -0
  572. package/skills/aria-cognition/aria-frontend-architect/references/frontend-cookbook.md +358 -0
  573. package/skills/aria-cognition/aria-fullstack-orchestrator/SKILL.md +127 -0
  574. package/skills/aria-cognition/aria-fullstack-orchestrator/references/fullstack-cookbook.md +383 -0
  575. package/skills/aria-cognition/aria-gtm-architect/SKILL.md +126 -0
  576. package/skills/aria-cognition/aria-gtm-architect/references/gtm-cookbook.md +235 -0
  577. package/skills/aria-cognition/aria-harness-deploy/SKILL.md +145 -0
  578. package/skills/aria-cognition/aria-harness-no-stripping/SKILL.md +135 -0
  579. package/skills/aria-cognition/aria-harness-onboarding/SKILL.md +130 -0
  580. package/skills/aria-cognition/aria-harness-output-discipline/SKILL.md +120 -0
  581. package/skills/aria-cognition/aria-harness-substrate-binding/SKILL.md +139 -0
  582. package/skills/aria-cognition/aria-http-harness-client/SKILL.md +85 -0
  583. package/skills/aria-cognition/aria-http-harness-client/scripts/smoke.mjs +47 -0
  584. package/skills/aria-cognition/aria-k8s-deploy/SKILL.md +174 -0
  585. package/skills/aria-cognition/aria-k8s-deploy/agents/openai.yaml +3 -0
  586. package/skills/aria-cognition/aria-ladduniframe/SKILL.md +60 -0
  587. package/skills/aria-cognition/aria-ledger-fleet-execution/SKILL.md +126 -0
  588. package/skills/aria-cognition/aria-live-ops/SKILL.md +54 -0
  589. package/skills/aria-cognition/aria-mac-ssh-ops/SKILL.md +100 -0
  590. package/skills/aria-cognition/aria-memory-index/SKILL.md +42 -0
  591. package/skills/aria-cognition/aria-noor-cognitives/SKILL.md +120 -0
  592. package/skills/aria-cognition/aria-ops/SKILL.md +60 -0
  593. package/skills/aria-cognition/aria-ops/references/live-endpoints.md +59 -0
  594. package/skills/aria-cognition/aria-quality-audit/SKILL.md +133 -0
  595. package/skills/aria-cognition/aria-readable-output/SKILL.md +239 -0
  596. package/skills/aria-cognition/aria-readable-output/references/layout-cookbook.md +366 -0
  597. package/skills/aria-cognition/aria-reasoning/SKILL.md +67 -0
  598. package/skills/aria-cognition/aria-reasoning/references/core-principles.md +42 -0
  599. package/skills/aria-cognition/aria-repo-audit/SKILL.md +135 -0
  600. package/skills/aria-cognition/aria-repo-audit/references/repo-audit-cookbook.md +375 -0
  601. package/skills/aria-cognition/aria-research-orchestrator/SKILL.md +138 -0
  602. package/skills/aria-cognition/aria-research-orchestrator/references/research-patterns.md +270 -0
  603. package/skills/aria-cognition/aria-retention-engine/SKILL.md +120 -0
  604. package/skills/aria-cognition/aria-retention-engine/references/retention-cookbook.md +271 -0
  605. package/skills/aria-cognition/aria-revenue-engine/SKILL.md +128 -0
  606. package/skills/aria-cognition/aria-revenue-engine/references/revenue-cookbook.md +227 -0
  607. package/skills/aria-cognition/aria-senior-code-audit/SKILL.md +233 -0
  608. package/skills/aria-cognition/aria-senior-code-audit/references/audit-checklist.md +369 -0
  609. package/skills/aria-cognition/aria-senior-code-cookbook/SKILL.md +288 -0
  610. package/skills/aria-cognition/aria-senior-code-cookbook/references/engineering-cookbook.md +489 -0
  611. package/skills/aria-cognition/aria-soul-principles/SKILL.md +42 -0
  612. package/skills/aria-cognition/aria-task-codex-executor/SKILL.md +86 -0
  613. package/skills/aria-cognition/aristotle-engine/SKILL.md +42 -0
  614. package/skills/aria-cognition/cross-domain-24/SKILL.md +42 -0
  615. package/skills/aria-cognition/deepsoul-emotional/SKILL.md +42 -0
  616. package/skills/aria-cognition/fitrah-guard/SKILL.md +78 -0
  617. package/skills/aria-cognition/ghazali-8lens/SKILL.md +227 -29
  618. package/skills/aria-cognition/ghazali-8lens/references/ghazali-8lens-cookbook.md +797 -0
  619. package/skills/aria-cognition/ijtihad-novel/SKILL.md +42 -0
  620. package/skills/aria-cognition/ilham-intuition/SKILL.md +42 -0
  621. package/skills/aria-cognition/never-guess/SKILL.md +77 -0
  622. package/skills/aria-cognition/noor-recognition/SKILL.md +45 -0
  623. package/skills/aria-cognition/qiyas-analogy/SKILL.md +174 -14
  624. package/skills/aria-cognition/ruh-basis/SKILL.md +42 -0
  625. package/skills/aria-cognition/tadabbur/SKILL.md +506 -0
  626. package/skills/aria-cognition/tadabbur/references/tadabbur-cookbook.md +921 -0
  627. package/skills/aria-cognition/tadabbur-ops/SKILL.md +42 -0
  628. package/skills/aria-cognition/tafakkur/SKILL.md +104 -0
  629. package/skills/aria-cognition-autofire/SKILL.md +109 -0
  630. package/skills/aria-cognition-batch/SKILL.md +264 -0
  631. package/skills/aria-conversational-doctrine-discipline/SKILL.md +125 -0
  632. package/skills/aria-essence/SKILL.md +81 -0
  633. package/skills/aria-essence/references/domain-matrix.md +80 -0
  634. package/skills/aria-essence/references/evolution-loop.md +30 -0
  635. package/skills/aria-essence/references/readable-cognition.md +27 -0
  636. package/skills/aria-first-class-operating-contract/SKILL.md +104 -0
  637. package/skills/aria-forge-guardrails/SKILL.md +53 -0
  638. package/skills/aria-forge-guardrails/references/checklist.md +31 -0
  639. package/skills/aria-harness-deploy/SKILL.md +145 -0
  640. package/skills/aria-harness-no-stripping/SKILL.md +135 -0
  641. package/skills/aria-harness-onboarding/SKILL.md +130 -0
  642. package/skills/aria-harness-output-discipline/SKILL.md +120 -0
  643. package/skills/aria-harness-substrate-binding/SKILL.md +139 -0
  644. package/skills/aria-http-harness-client/SKILL.md +85 -0
  645. package/skills/aria-http-harness-client/scripts/smoke.mjs +47 -0
  646. package/skills/aria-k8s-deploy/SKILL.md +174 -0
  647. package/skills/aria-k8s-deploy/agents/openai.yaml +3 -0
  648. package/skills/aria-ladduniframe/SKILL.md +60 -0
  649. package/skills/aria-ledger-fleet-execution/SKILL.md +126 -0
  650. package/skills/aria-live-ops/SKILL.md +54 -0
  651. package/skills/aria-mac-ssh-ops/SKILL.md +100 -0
  652. package/skills/aria-memory-index/SKILL.md +42 -0
  653. package/skills/aria-noor-cognitives/SKILL.md +120 -0
  654. package/skills/aria-ops/SKILL.md +60 -0
  655. package/skills/aria-ops/references/live-endpoints.md +59 -0
  656. package/skills/aria-quality-audit/SKILL.md +133 -0
  657. package/skills/aria-reasoning/SKILL.md +67 -0
  658. package/skills/aria-reasoning/references/core-principles.md +42 -0
  659. package/skills/aria-repo-doctrine/SKILL.md +57 -0
  660. package/skills/aria-soul-principles/SKILL.md +42 -0
  661. package/skills/aria-task-codex-executor/SKILL.md +86 -0
  662. package/skills/aristotle-engine/SKILL.md +42 -0
  663. package/skills/ci-cd-pipeline/SKILL.md +116 -0
  664. package/skills/code-review/SKILL.md +131 -0
  665. package/skills/cross-domain-24/SKILL.md +42 -0
  666. package/skills/database-design/SKILL.md +124 -0
  667. package/skills/deepsoul-emotional/SKILL.md +42 -0
  668. package/skills/deno-kv-raft-pubsub/SKILL.md +561 -0
  669. package/skills/deno-kv-raft-pubsub/reference/maelstrom-integration.md +393 -0
  670. package/skills/deno-kv-raft-pubsub/reference/pubsub-api.md +376 -0
  671. package/skills/deno-kv-raft-pubsub/reference/raft-spec.md +402 -0
  672. package/skills/deno-kv-raft-pubsub/reference/state-machine.md +182 -0
  673. package/skills/error-handling/SKILL.md +159 -0
  674. package/skills/firecrawl/SKILL.md +165 -0
  675. package/skills/firecrawl/rules/install.md +82 -0
  676. package/skills/firecrawl/rules/security.md +26 -0
  677. package/skills/firecrawl-agent/SKILL.md +86 -0
  678. package/skills/firecrawl-build-interact/SKILL.md +96 -0
  679. package/skills/firecrawl-build-onboarding/SKILL.md +131 -0
  680. package/skills/firecrawl-build-onboarding/references/auth-flow.md +39 -0
  681. package/skills/firecrawl-build-onboarding/references/project-setup.md +20 -0
  682. package/skills/firecrawl-build-onboarding/references/sdk-installation.md +17 -0
  683. package/skills/firecrawl-build-scrape/SKILL.md +97 -0
  684. package/skills/firecrawl-build-search/SKILL.md +97 -0
  685. package/skills/firecrawl-clone/SKILL.md +419 -0
  686. package/skills/firecrawl-crawl/SKILL.md +87 -0
  687. package/skills/firecrawl-download/SKILL.md +98 -0
  688. package/skills/firecrawl-interact/SKILL.md +112 -0
  689. package/skills/firecrawl-map/SKILL.md +79 -0
  690. package/skills/firecrawl-scrape/SKILL.md +97 -0
  691. package/skills/firecrawl-search/SKILL.md +88 -0
  692. package/skills/fitrah-guard/SKILL.md +78 -0
  693. package/skills/forge-quality-rules/SKILL.md +61 -0
  694. package/skills/ghazali-8lens/SKILL.md +56 -0
  695. package/skills/ijtihad-novel/SKILL.md +42 -0
  696. package/skills/ilham-intuition/SKILL.md +42 -0
  697. package/skills/imagegen/LICENSE.txt +201 -0
  698. package/skills/imagegen/SKILL.md +374 -0
  699. package/skills/imagegen/agents/openai.yaml +6 -0
  700. package/skills/imagegen/assets/imagegen-small.svg +5 -0
  701. package/skills/imagegen/assets/imagegen.png +0 -0
  702. package/skills/imagegen/references/cli.md +242 -0
  703. package/skills/imagegen/references/codex-network.md +33 -0
  704. package/skills/imagegen/references/image-api.md +90 -0
  705. package/skills/imagegen/references/prompting.md +118 -0
  706. package/skills/imagegen/references/sample-prompts.md +433 -0
  707. package/skills/imagegen/scripts/image_gen.py +995 -0
  708. package/skills/imagegen/scripts/remove_chroma_key.py +440 -0
  709. package/skills/istiqra-induction/SKILL.md +44 -0
  710. package/skills/ladunni-22/SKILL.md +53 -0
  711. package/skills/mizan/SKILL.md +90 -0
  712. package/skills/nadia/SKILL.md +56 -0
  713. package/skills/nadia-psi/SKILL.md +56 -0
  714. package/skills/never-guess/SKILL.md +75 -0
  715. package/skills/noor-recognition/SKILL.md +45 -0
  716. package/skills/observability/SKILL.md +133 -0
  717. package/skills/openai-docs/LICENSE.txt +201 -0
  718. package/skills/openai-docs/SKILL.md +100 -0
  719. package/skills/openai-docs/agents/openai.yaml +14 -0
  720. package/skills/openai-docs/assets/openai-small.svg +3 -0
  721. package/skills/openai-docs/assets/openai.png +0 -0
  722. package/skills/openai-docs/references/latest-model.md +37 -0
  723. package/skills/openai-docs/references/prompting-guide.md +244 -0
  724. package/skills/openai-docs/references/upgrade-guide.md +181 -0
  725. package/skills/openai-docs/scripts/resolve-latest-model-info.js +147 -0
  726. package/skills/pdf/LICENSE.txt +201 -0
  727. package/skills/pdf/SKILL.md +85 -0
  728. package/skills/pdf/agents/openai.yaml +5 -0
  729. package/skills/pdf/assets/pdf.png +0 -0
  730. package/skills/playwright/LICENSE.txt +201 -0
  731. package/skills/playwright/NOTICE.txt +14 -0
  732. package/skills/playwright/SKILL.md +165 -0
  733. package/skills/playwright/agents/openai.yaml +6 -0
  734. package/skills/playwright/assets/playwright-small.svg +3 -0
  735. package/skills/playwright/assets/playwright.png +0 -0
  736. package/skills/playwright/references/cli.md +116 -0
  737. package/skills/playwright/references/workflows.md +95 -0
  738. package/skills/playwright/scripts/playwright_cli.sh +25 -0
  739. package/skills/plugin-creator/SKILL.md +178 -0
  740. package/skills/plugin-creator/agents/openai.yaml +6 -0
  741. package/skills/plugin-creator/assets/plugin-creator-small.svg +3 -0
  742. package/skills/plugin-creator/assets/plugin-creator.png +0 -0
  743. package/skills/plugin-creator/references/plugin-json-spec.md +170 -0
  744. package/skills/plugin-creator/scripts/create_basic_plugin.py +301 -0
  745. package/skills/predictor/SKILL.md +43 -0
  746. package/skills/qiyas-analogy/SKILL.md +204 -0
  747. package/skills/refactoring/SKILL.md +137 -0
  748. package/skills/ruh-basis/SKILL.md +42 -0
  749. package/skills/security-review/SKILL.md +129 -0
  750. package/skills/skill-creator/SKILL.md +434 -0
  751. package/skills/skill-creator/agents/openai.yaml +5 -0
  752. package/skills/skill-creator/assets/skill-creator-small.svg +3 -0
  753. package/skills/skill-creator/assets/skill-creator.png +0 -0
  754. package/skills/skill-creator/license.txt +202 -0
  755. package/skills/skill-creator/references/openai_yaml.md +49 -0
  756. package/skills/skill-creator/scripts/generate_openai_yaml.py +226 -0
  757. package/skills/skill-creator/scripts/init_skill.py +400 -0
  758. package/skills/skill-creator/scripts/quick_validate.py +101 -0
  759. package/skills/skill-installer/LICENSE.txt +202 -0
  760. package/skills/skill-installer/SKILL.md +76 -0
  761. package/skills/skill-installer/agents/openai.yaml +5 -0
  762. package/skills/skill-installer/assets/skill-installer-small.svg +3 -0
  763. package/skills/skill-installer/assets/skill-installer.png +0 -0
  764. package/skills/skill-installer/scripts/github_utils.py +21 -0
  765. package/skills/skill-installer/scripts/install-skill-from-github.py +308 -0
  766. package/skills/skill-installer/scripts/list-skills.py +107 -0
  767. package/skills/skills-and-hooks-reference/SKILL.md +196 -0
  768. package/skills/soul-domains/SKILL.md +43 -0
  769. package/skills/tadabbur/SKILL.md +232 -0
  770. package/skills/tadabbur-ops/SKILL.md +42 -0
  771. package/skills/tafakkur/SKILL.md +104 -0
  772. package/skills/testing-strategy/SKILL.md +122 -0
  773. package/src/action-ledger-core.ts +1054 -0
  774. package/src/chat.ts +5 -6
  775. package/src/codebase-scanner.ts +2 -0
  776. package/src/connectors/claude-code.ts +149 -12
  777. package/src/connectors/codebase-awareness.ts +325 -25
  778. package/src/connectors/codex.ts +1225 -41
  779. package/src/connectors/cursor.ts +8 -0
  780. package/src/connectors/governed-adapter.ts +174 -0
  781. package/src/connectors/opencode.ts +18 -2
  782. package/src/connectors/repo-guard.ts +24 -12
  783. package/src/connectors/runtime.ts +99 -2
  784. package/src/connectors/shell.ts +125 -7
  785. package/src/cross-cli-hive-binding.ts +290 -0
  786. package/src/garden-control-plane.ts +24 -1
  787. package/src/governed-surface-runner.ts +1227 -0
  788. package/src/index.ts +104 -1
  789. package/src/task-runner.ts +3794 -0
  790. package/dist/aria-connector/src/install-hooks.d.ts +0 -18
  791. package/dist/aria-connector/src/install-hooks.d.ts.map +0 -1
  792. package/dist/aria-connector/src/install-hooks.js +0 -224
  793. package/dist/aria-connector/src/install-hooks.js.map +0 -1
  794. package/dist/aria-connector/src/onboarding-wizard.d.ts +0 -5
  795. package/dist/aria-connector/src/onboarding-wizard.d.ts.map +0 -1
  796. package/dist/aria-connector/src/onboarding-wizard.js +0 -188
  797. package/dist/aria-connector/src/onboarding-wizard.js.map +0 -1
  798. package/dist/cli-0.2.38.tgz +0 -0
  799. package/dist/install.sh +0 -13
  800. package/src/__tests__/anthropic-oauth.test.ts +0 -186
  801. package/src/__tests__/auth-commands.test.ts +0 -132
  802. package/src/__tests__/owner-login.test.ts +0 -311
@@ -0,0 +1,1022 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { appendFileSync, existsSync, readFileSync } from 'node:fs';
3
+ import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
4
+ import { homedir } from 'node:os';
5
+ import path from 'node:path';
6
+ import { HarnessClient } from './harness-client.js';
7
+ export const GOVERNED_SURFACES = Object.freeze([
8
+ 'codex',
9
+ 'claude-code',
10
+ 'opencode',
11
+ 'shell',
12
+ 'aria-chat',
13
+ 'cursor',
14
+ 'future:fixture',
15
+ ]);
16
+ export const GOVERNED_MUTATING_ACTIONS = Object.freeze(new Set([
17
+ 'write',
18
+ 'delete',
19
+ 'build',
20
+ 'deploy',
21
+ 'install',
22
+ 'hook',
23
+ 'connector-mutation',
24
+ ]));
25
+ export const DEFAULT_SANDBOX_ROOT = '/tmp/aria-playground-surfaces';
26
+ export const DEFAULT_SANDBOX_NAMESPACE = 'aria-playground';
27
+ export const UNIVERSAL_TURN_PACKET_SKILL_FLOOR = 50;
28
+ export const UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR = 16;
29
+ export const UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR = 24;
30
+ export const UNIVERSAL_TURN_PACKET_MAPPING_FLOOR = 24;
31
+ export const UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR = 6;
32
+ export const UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR = 6;
33
+ export const UNIVERSAL_TURN_PACKET_HIVE_OBSERVER_FLOOR = 1;
34
+ export const UNIVERSAL_TURN_PACKET_HIVE_SOURCE_FLOOR = 1;
35
+ export const UNIVERSAL_TURN_PACKET_HIVE_SIBLING_BROADCAST_FLOOR = 1;
36
+ export const UNIVERSAL_TURN_PACKET_SKILLS = Object.freeze([
37
+ 'aria-cognition-autofire',
38
+ 'aria-first-class-operating-contract',
39
+ 'aria-cognition-batch',
40
+ 'aria-quality-audit',
41
+ 'aria-repo-doctrine',
42
+ 'aria-http-harness-client',
43
+ 'aria-harness-substrate-binding',
44
+ 'aria-axioms-first-principles',
45
+ 'never-guess',
46
+ 'tadabbur',
47
+ 'tadabbur-ops',
48
+ 'tafakkur',
49
+ 'qiyas-analogy',
50
+ 'forge-quality-rules',
51
+ 'aria-task-codex-executor',
52
+ 'aria-backend-architect',
53
+ 'aria-harness-no-stripping',
54
+ 'aria-readable-output',
55
+ 'aria-ledger-fleet-execution',
56
+ 'predictor',
57
+ 'aria-aristotle-pre-phase',
58
+ 'aria-aristotle-intra-phase',
59
+ 'aria-aristotle-post-phase',
60
+ 'mizan',
61
+ 'ghazali-8lens',
62
+ 'aria-noor-cognitives',
63
+ 'aria-business-frame',
64
+ 'aria-business-audit',
65
+ 'aria-revenue-engine',
66
+ 'aria-retention-engine',
67
+ 'aria-gtm-architect',
68
+ 'aria-senior-code-cookbook',
69
+ 'aria-senior-code-audit',
70
+ 'testing-strategy',
71
+ 'security-review',
72
+ 'architecture-decision',
73
+ 'api-design',
74
+ 'observability',
75
+ 'error-handling',
76
+ 'aria-decision-mizan',
77
+ 'aria-aristotle-cognitives',
78
+ 'aria-forge-guardrails',
79
+ 'aria-harness-deploy',
80
+ 'aria-harness-onboarding',
81
+ 'aria-harness-output-discipline',
82
+ 'aria-frontend-architect',
83
+ 'aria-fullstack-orchestrator',
84
+ 'aria-research-orchestrator',
85
+ 'cross-domain-24',
86
+ 'fitrah-guard',
87
+ 'noor-recognition',
88
+ 'ladunni-22',
89
+ 'ijtihad-novel',
90
+ 'ilham-intuition',
91
+ 'istiqra-induction',
92
+ 'ruh-basis',
93
+ 'soul-domains',
94
+ 'deepsoul-emotional',
95
+ ]);
96
+ export const UNIVERSAL_TURN_PACKET_PHASES = Object.freeze([
97
+ 'pre_cognition',
98
+ 'pre_tool',
99
+ 'intra_tool',
100
+ 'intra_cognition',
101
+ 'post_tool',
102
+ 'post_cognition',
103
+ ]);
104
+ const ACTIVE_LOCAL_PRODUCTION_MARKERS = Object.freeze([
105
+ path.join(homedir(), '.codex'),
106
+ path.join(homedir(), '.claude'),
107
+ path.join(homedir(), '.opencode'),
108
+ path.join(homedir(), '.aria', 'wrappers'),
109
+ ]);
110
+ function normalizePath(value) {
111
+ if (!value)
112
+ return null;
113
+ return path.resolve(value);
114
+ }
115
+ function uniqueStrings(values) {
116
+ return [...new Set(values.filter((item) => typeof item === 'string' && item.trim().length > 0).map((item) => item.trim()))];
117
+ }
118
+ function stringArray(value) {
119
+ return Array.isArray(value)
120
+ ? value.filter((item) => typeof item === 'string' && item.trim().length > 0)
121
+ : [];
122
+ }
123
+ function objectRecord(value) {
124
+ return value && typeof value === 'object' ? value : {};
125
+ }
126
+ export function governedPathIsUnder(child, parent) {
127
+ if (!child || !parent)
128
+ return false;
129
+ const relative = path.relative(parent, child);
130
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
131
+ }
132
+ export async function governedFileSha256(filePath) {
133
+ try {
134
+ const contents = await readFile(filePath);
135
+ return createHash('sha256').update(contents).digest('hex');
136
+ }
137
+ catch (error) {
138
+ if (error.code === 'ENOENT')
139
+ return null;
140
+ throw error;
141
+ }
142
+ }
143
+ function sessionLedgerPath(root, sessionId) {
144
+ const safeSession = String(sessionId || 'surface-runner').replace(/[^a-zA-Z0-9_-]/g, '_');
145
+ return path.join(root, `aria-discoveries-${safeSession}.jsonl`);
146
+ }
147
+ function countLines(filePath) {
148
+ if (!existsSync(filePath))
149
+ return 0;
150
+ const content = readFileSync(filePath, 'utf8');
151
+ if (!content)
152
+ return 0;
153
+ return content.endsWith('\n') ? content.split('\n').length - 1 : content.split('\n').length;
154
+ }
155
+ function blocked(reason, extra = {}) {
156
+ return {
157
+ ok: false,
158
+ blocked: true,
159
+ allowed: false,
160
+ executed: false,
161
+ reason,
162
+ ...extra,
163
+ };
164
+ }
165
+ async function postJson(url, body, timeoutMs) {
166
+ const controller = new AbortController();
167
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
168
+ try {
169
+ const response = await fetch(url, {
170
+ method: 'POST',
171
+ headers: { 'content-type': 'application/json' },
172
+ body: JSON.stringify(body),
173
+ signal: controller.signal,
174
+ });
175
+ const text = await response.text();
176
+ let data = null;
177
+ try {
178
+ data = text ? JSON.parse(text) : null;
179
+ }
180
+ catch {
181
+ data = { raw: text };
182
+ }
183
+ return { ok: response.ok, status: response.status, data };
184
+ }
185
+ finally {
186
+ clearTimeout(timer);
187
+ }
188
+ }
189
+ async function getJson(url, timeoutMs) {
190
+ const startedAt = Date.now();
191
+ const controller = new AbortController();
192
+ const timer = setTimeout(() => controller.abort(), timeoutMs);
193
+ try {
194
+ const response = await fetch(url, { signal: controller.signal });
195
+ const text = await response.text();
196
+ let data = null;
197
+ try {
198
+ data = text ? JSON.parse(text) : null;
199
+ }
200
+ catch {
201
+ data = { raw: text };
202
+ }
203
+ return { ok: response.ok, status: response.status, data, elapsedMs: Date.now() - startedAt };
204
+ }
205
+ finally {
206
+ clearTimeout(timer);
207
+ }
208
+ }
209
+ function normalizeValidation(data) {
210
+ const outer = data && typeof data === 'object' ? data : {};
211
+ const payload = outer.validation && typeof outer.validation === 'object'
212
+ ? outer.validation
213
+ : outer;
214
+ const passed = payload.passed === true || payload.pass === true || payload.allowed === true;
215
+ const severity = payload.severity === 'pass' || payload.severity === 'warn' || payload.severity === 'block'
216
+ ? payload.severity
217
+ : passed ? 'pass' : 'block';
218
+ return {
219
+ passed,
220
+ severity,
221
+ violations: Array.isArray(payload.violations) ? payload.violations.filter((item) => typeof item === 'string') : [],
222
+ gateTriggers: Array.isArray(payload.gateTriggers) ? payload.gateTriggers.filter((item) => typeof item === 'string') : [],
223
+ raw: data,
224
+ };
225
+ }
226
+ export class GovernedSurfaceRunner {
227
+ runtimeUrl;
228
+ sandboxRoot;
229
+ governanceLedgerRoot;
230
+ allowedNamespaces;
231
+ allowedTargetRoots;
232
+ allowActiveLocalProductionTargets;
233
+ sessionId;
234
+ client;
235
+ constructor(policy = {}) {
236
+ this.runtimeUrl = (policy.runtimeUrl ?? process.env.ARIA_RUNTIME_URL ?? 'http://127.0.0.1:4319').replace(/\/+$/, '');
237
+ this.sandboxRoot = normalizePath(policy.sandboxRoot ?? DEFAULT_SANDBOX_ROOT) ?? DEFAULT_SANDBOX_ROOT;
238
+ this.governanceLedgerRoot = normalizePath(policy.governanceLedgerRoot ?? path.join(homedir(), '.claude')) ?? path.join(homedir(), '.claude');
239
+ this.allowedNamespaces = new Set(policy.allowedNamespaces ?? [DEFAULT_SANDBOX_NAMESPACE]);
240
+ this.allowedTargetRoots = (policy.allowedTargetRoots ?? [this.sandboxRoot])
241
+ .map((root) => normalizePath(root))
242
+ .filter((root) => Boolean(root));
243
+ this.allowActiveLocalProductionTargets = policy.allowActiveLocalProductionTargets === true;
244
+ this.sessionId = policy.sessionId ?? 'surface-runner';
245
+ this.client = new HarnessClient({ runtimeBaseUrl: this.runtimeUrl });
246
+ }
247
+ assertRequest(request) {
248
+ const namespace = request.sandbox?.namespace ?? request.target?.namespace ?? DEFAULT_SANDBOX_NAMESPACE;
249
+ const target = normalizePath(request.target?.path);
250
+ if (!this.allowedNamespaces.has(namespace)) {
251
+ return blocked('namespace_not_allowed', { namespace, target });
252
+ }
253
+ if (target && !this.allowedTargetRoots.some((root) => governedPathIsUnder(target, root))) {
254
+ return blocked('target_outside_allowed_roots', { namespace, target });
255
+ }
256
+ if (!this.allowActiveLocalProductionTargets && target) {
257
+ const activeTarget = ACTIVE_LOCAL_PRODUCTION_MARKERS.find((marker) => governedPathIsUnder(target, marker));
258
+ if (activeTarget) {
259
+ return blocked('active_local_production_target', { namespace, target, runtimeData: { marker: activeTarget } });
260
+ }
261
+ }
262
+ return {
263
+ ok: true,
264
+ blocked: false,
265
+ allowed: true,
266
+ executed: false,
267
+ namespace,
268
+ target,
269
+ surfaceId: request.surfaceId,
270
+ action: request.action,
271
+ };
272
+ }
273
+ async checkAction(request) {
274
+ const local = this.assertRequest(request);
275
+ if (!local.ok)
276
+ return local;
277
+ const isMutating = GOVERNED_MUTATING_ACTIONS.has(request.action);
278
+ if (!isMutating)
279
+ return local;
280
+ if (request.verify?.verified !== true || !request.verify.receipt) {
281
+ return blocked('mutating_action_requires_verified_receipt', {
282
+ action: request.action,
283
+ surfaceId: request.surfaceId,
284
+ namespace: local.namespace,
285
+ target: local.target,
286
+ });
287
+ }
288
+ if (this.allowActiveLocalProductionTargets && request.verify.productionApproved !== true) {
289
+ return blocked('active_local_production_target_requires_production_approval', {
290
+ action: request.action,
291
+ surfaceId: request.surfaceId,
292
+ namespace: local.namespace,
293
+ target: local.target,
294
+ });
295
+ }
296
+ try {
297
+ const runtime = await postJson(`${this.runtimeUrl}/check-action`, {
298
+ action: request.action,
299
+ target: local.target,
300
+ surfaceId: request.surfaceId,
301
+ reason: request.reason ?? 'governed surface action',
302
+ sandbox: request.sandbox,
303
+ verify: request.verify,
304
+ }, request.runtimeTimeoutMs ?? 3000);
305
+ const data = runtime.data && typeof runtime.data === 'object' ? runtime.data : {};
306
+ const result = data.result && typeof data.result === 'object' ? data.result : {};
307
+ const allowed = runtime.ok && (data.allowed === true || result.allowed === true);
308
+ if (!allowed) {
309
+ return blocked('runtime_action_denied_or_unavailable', {
310
+ action: request.action,
311
+ surfaceId: request.surfaceId,
312
+ namespace: local.namespace,
313
+ target: local.target,
314
+ runtimeStatus: runtime.status,
315
+ runtimeData: runtime.data,
316
+ });
317
+ }
318
+ return {
319
+ ok: true,
320
+ blocked: false,
321
+ allowed: true,
322
+ executed: false,
323
+ action: request.action,
324
+ surfaceId: request.surfaceId,
325
+ namespace: local.namespace,
326
+ target: local.target,
327
+ runtimeStatus: runtime.status,
328
+ runtimeData: runtime.data,
329
+ };
330
+ }
331
+ catch (error) {
332
+ return blocked('runtime_action_check_failed', {
333
+ action: request.action,
334
+ surfaceId: request.surfaceId,
335
+ namespace: local.namespace,
336
+ target: local.target,
337
+ runtimeStatus: error instanceof Error ? error.name : 'error',
338
+ });
339
+ }
340
+ }
341
+ async run(request, executor) {
342
+ const verdict = await this.checkAction(request);
343
+ if (!verdict.ok || verdict.blocked || verdict.allowed !== true)
344
+ return verdict;
345
+ const result = await executor();
346
+ return {
347
+ ...verdict,
348
+ ok: true,
349
+ blocked: false,
350
+ allowed: true,
351
+ executed: true,
352
+ result,
353
+ };
354
+ }
355
+ async validateOutput(args) {
356
+ try {
357
+ const runtime = await postJson(`${this.runtimeUrl}/validate-output`, {
358
+ text: args.text,
359
+ surfaceId: args.surfaceId ?? 'codex',
360
+ sessionId: args.sessionId ?? this.sessionId,
361
+ isOwner: false,
362
+ context: { source: 'governed-surface-runner' },
363
+ }, args.timeoutMs ?? 3000);
364
+ if (!runtime.ok) {
365
+ return {
366
+ passed: false,
367
+ severity: 'block',
368
+ violations: [`runtime_status_${runtime.status}`],
369
+ gateTriggers: ['governed-output-validation'],
370
+ raw: runtime.data,
371
+ };
372
+ }
373
+ const verdict = normalizeValidation(runtime.data);
374
+ if (/unsupported completion|complete without proof|ready without evidence/i.test(args.text)) {
375
+ return {
376
+ ...verdict,
377
+ passed: false,
378
+ severity: 'block',
379
+ violations: [...verdict.violations, 'unsupported_completion_claim'],
380
+ gateTriggers: [...verdict.gateTriggers, 'governed-output-validation'],
381
+ };
382
+ }
383
+ return verdict;
384
+ }
385
+ catch (error) {
386
+ if (error instanceof Error && error.name === 'AbortError') {
387
+ let recoveryProbe = {
388
+ ok: false,
389
+ status: null,
390
+ elapsedMs: null,
391
+ error: 'not_run',
392
+ };
393
+ try {
394
+ const health = await getJson(`${this.runtimeUrl}/health`, 2000);
395
+ recoveryProbe = {
396
+ ok: health.ok,
397
+ status: health.status,
398
+ elapsedMs: health.elapsedMs,
399
+ };
400
+ }
401
+ catch (probeError) {
402
+ recoveryProbe = {
403
+ ok: false,
404
+ status: null,
405
+ elapsedMs: null,
406
+ error: probeError instanceof Error ? probeError.name : String(probeError),
407
+ };
408
+ }
409
+ return {
410
+ passed: false,
411
+ severity: 'block',
412
+ violations: ['validation_timeout_inconclusive'],
413
+ gateTriggers: ['governed-output-validation', 'repo-doctrine-timeout-recovery'],
414
+ error: 'AbortError',
415
+ raw: {
416
+ doctrineRuntimeReceipt: {
417
+ schema: 'aria.repo_doctrine_runtime_receipt.v1',
418
+ ok: recoveryProbe.ok === true,
419
+ runtimeActive: true,
420
+ productionIntent: true,
421
+ pathClassifications: [],
422
+ verificationSurface: 'GET /health after /validate-output timeout',
423
+ doctrineHits: ['timeout_requires_inconclusive_recovery'],
424
+ timeoutVerdict: recoveryProbe.ok === true ? 'verified_after_retry' : 'runtime_unhealthy',
425
+ recoveryProbe,
426
+ noFakeValidation: true,
427
+ },
428
+ },
429
+ };
430
+ }
431
+ return {
432
+ passed: false,
433
+ severity: 'block',
434
+ violations: ['normal_validation_did_not_return_bounded_verdict'],
435
+ gateTriggers: ['governed-output-validation'],
436
+ error: error instanceof Error ? error.name : String(error),
437
+ };
438
+ }
439
+ }
440
+ async buildUniversalTurnPacket(args) {
441
+ const sessionId = args.sessionId ?? this.sessionId;
442
+ const requiredSkills = uniqueStrings([
443
+ ...UNIVERSAL_TURN_PACKET_SKILLS,
444
+ ...(args.requiredSkills ?? []),
445
+ ]);
446
+ const correctionFindings = stringArray(args.correctionFindings);
447
+ const runtime = await postJson(`${this.runtimeUrl}/build-system-prompt`, {
448
+ sessionId,
449
+ surface: args.surfaceId,
450
+ message: args.userText,
451
+ requiredSkills,
452
+ allowOwnerBypass: true,
453
+ injection: {
454
+ harness: {
455
+ packet: {
456
+ sessionId,
457
+ surfaceId: args.surfaceId,
458
+ sandboxNamespace: DEFAULT_SANDBOX_NAMESPACE,
459
+ universalTurnPacket: true,
460
+ phaseContract: UNIVERSAL_TURN_PACKET_PHASES,
461
+ correctionFindings,
462
+ ...(args.ownerApproval ? { ownerApproval: args.ownerApproval } : {}),
463
+ },
464
+ },
465
+ task: args.userText,
466
+ docs: [
467
+ {
468
+ title: 'Universal turn-packet contract',
469
+ content: 'Load the same skill floor before cognition and carry the packet through tool, QA, correction, and learning phases.',
470
+ },
471
+ ],
472
+ files: {},
473
+ loadedAt: new Date().toISOString(),
474
+ },
475
+ metadata: {
476
+ source: 'governed-surface-runner',
477
+ universalTurnPacket: true,
478
+ skillExecutionMode: 'mechanical-receipt',
479
+ requiredSkills,
480
+ correctionFindings,
481
+ ...(args.ownerApproval ? { ownerApproval: args.ownerApproval } : {}),
482
+ },
483
+ ...(args.ownerApproval ? { ownerApproval: args.ownerApproval } : {}),
484
+ skillExecutionMode: 'mechanical-receipt',
485
+ }, args.timeoutMs ?? 5000);
486
+ const data = objectRecord(runtime.data);
487
+ const loadedSkillIds = stringArray(data.loadedSkillIds);
488
+ const runtimeMissingSkillIds = stringArray(data.missingSkillIds);
489
+ const missingSkillIds = uniqueStrings([
490
+ ...runtimeMissingSkillIds,
491
+ ...requiredSkills.filter((skill) => !loadedSkillIds.includes(skill)),
492
+ ]);
493
+ const missingCookbooks = Array.isArray(data.missingCookbooks) ? data.missingCookbooks : [];
494
+ const prompt = typeof data.prompt === 'string' ? data.prompt : '';
495
+ const promptHash = prompt ? createHash('sha256').update(prompt).digest('hex') : null;
496
+ const skillExecutionMode = typeof data.skillExecutionMode === 'string' ? data.skillExecutionMode : 'unknown';
497
+ const skillExecutionReceipt = objectRecord(data.skillExecutionReceipt);
498
+ const firedSkillIds = stringArray(skillExecutionReceipt.firedSkillIds);
499
+ const substrateKernelExecution = Object.keys(objectRecord(data.substrateKernelExecution)).length
500
+ ? objectRecord(data.substrateKernelExecution)
501
+ : Object.keys(objectRecord(skillExecutionReceipt.substrateKernelExecution)).length
502
+ ? objectRecord(skillExecutionReceipt.substrateKernelExecution)
503
+ : null;
504
+ const executedSkillIds = uniqueStrings([
505
+ ...stringArray(skillExecutionReceipt.executedSkillIds),
506
+ ...stringArray(substrateKernelExecution?.executedSkillIds),
507
+ ]);
508
+ const executedOperatorIds = uniqueStrings([
509
+ ...stringArray(skillExecutionReceipt.executedOperatorIds),
510
+ ...stringArray(substrateKernelExecution?.executedOperatorIds),
511
+ ]);
512
+ const executionBackedSkillIds = executedSkillIds.length ? executedSkillIds : firedSkillIds;
513
+ const activeRuntimes = uniqueStrings([
514
+ ...stringArray(data.activeRuntimes),
515
+ ...stringArray(skillExecutionReceipt.activeRuntimes),
516
+ ]);
517
+ const runtimeRegistry = Object.keys(objectRecord(data.runtimeRegistry)).length
518
+ ? objectRecord(data.runtimeRegistry)
519
+ : Object.keys(objectRecord(skillExecutionReceipt.runtimeRegistry)).length
520
+ ? objectRecord(skillExecutionReceipt.runtimeRegistry)
521
+ : null;
522
+ const doctrineRuntimeReceipt = Object.keys(objectRecord(data.doctrineRuntimeReceipt)).length
523
+ ? objectRecord(data.doctrineRuntimeReceipt)
524
+ : Object.keys(objectRecord(skillExecutionReceipt.doctrineRuntimeReceipt)).length
525
+ ? objectRecord(skillExecutionReceipt.doctrineRuntimeReceipt)
526
+ : null;
527
+ const taskClass = typeof data.taskClass === 'string'
528
+ ? data.taskClass
529
+ : typeof skillExecutionReceipt.taskClass === 'string'
530
+ ? skillExecutionReceipt.taskClass
531
+ : null;
532
+ const taskClassReceipt = Object.keys(objectRecord(data.taskClassReceipt)).length
533
+ ? objectRecord(data.taskClassReceipt)
534
+ : Object.keys(objectRecord(skillExecutionReceipt.taskClassReceipt)).length
535
+ ? objectRecord(skillExecutionReceipt.taskClassReceipt)
536
+ : null;
537
+ const selectedExtraOperators = uniqueStrings([
538
+ ...stringArray(data.selectedExtraOperators),
539
+ ...stringArray(skillExecutionReceipt.selectedExtraOperators),
540
+ ]);
541
+ const dynamicOperatorSelection = Object.keys(objectRecord(data.dynamicOperatorSelection)).length
542
+ ? objectRecord(data.dynamicOperatorSelection)
543
+ : Object.keys(objectRecord(skillExecutionReceipt.dynamicOperatorSelection)).length
544
+ ? objectRecord(skillExecutionReceipt.dynamicOperatorSelection)
545
+ : null;
546
+ const phaseRuntimeExecution = Object.keys(objectRecord(data.phaseRuntimeExecution)).length
547
+ ? objectRecord(data.phaseRuntimeExecution)
548
+ : Object.keys(objectRecord(skillExecutionReceipt.phaseRuntimeExecution)).length
549
+ ? objectRecord(skillExecutionReceipt.phaseRuntimeExecution)
550
+ : null;
551
+ const gardenMemorySubstrate = Object.keys(objectRecord(data.gardenMemorySubstrate)).length
552
+ ? objectRecord(data.gardenMemorySubstrate)
553
+ : Object.keys(objectRecord(skillExecutionReceipt.gardenMemorySubstrate)).length
554
+ ? objectRecord(skillExecutionReceipt.gardenMemorySubstrate)
555
+ : null;
556
+ const cognitiveRuntimeReceipts = Object.keys(objectRecord(data.cognitiveRuntimeReceipts)).length
557
+ ? objectRecord(data.cognitiveRuntimeReceipts)
558
+ : Object.keys(objectRecord(skillExecutionReceipt.cognitiveRuntimeReceipts)).length
559
+ ? objectRecord(skillExecutionReceipt.cognitiveRuntimeReceipts)
560
+ : null;
561
+ const learningCandidateReceipts = Array.isArray(data.learningCandidateReceipts)
562
+ ? data.learningCandidateReceipts
563
+ : Array.isArray(skillExecutionReceipt.learningCandidateReceipts)
564
+ ? skillExecutionReceipt.learningCandidateReceipts
565
+ : [];
566
+ const operatorDeltaReceipts = Array.isArray(data.operatorDeltaReceipts)
567
+ ? data.operatorDeltaReceipts
568
+ : Array.isArray(skillExecutionReceipt.operatorDeltaReceipts)
569
+ ? skillExecutionReceipt.operatorDeltaReceipts
570
+ : [];
571
+ const weakQaEnhancementLoopReceipt = Object.keys(objectRecord(data.weakQaEnhancementLoopReceipt)).length
572
+ ? objectRecord(data.weakQaEnhancementLoopReceipt)
573
+ : Object.keys(objectRecord(skillExecutionReceipt.weakQaEnhancementLoopReceipt)).length
574
+ ? objectRecord(skillExecutionReceipt.weakQaEnhancementLoopReceipt)
575
+ : null;
576
+ const ownerApprovalPacket = Object.keys(objectRecord(data.ownerApprovalPacket)).length
577
+ ? objectRecord(data.ownerApprovalPacket)
578
+ : Object.keys(objectRecord(skillExecutionReceipt.ownerApprovalPacket)).length
579
+ ? objectRecord(skillExecutionReceipt.ownerApprovalPacket)
580
+ : null;
581
+ const activePrimitives = uniqueStrings([
582
+ ...stringArray(data.activePrimitives),
583
+ ...stringArray(skillExecutionReceipt.activePrimitives),
584
+ ]);
585
+ const primitiveRegistry = Object.keys(objectRecord(data.primitiveRegistry)).length
586
+ ? objectRecord(data.primitiveRegistry)
587
+ : Object.keys(objectRecord(skillExecutionReceipt.primitiveRegistry)).length
588
+ ? objectRecord(skillExecutionReceipt.primitiveRegistry)
589
+ : null;
590
+ const activeMappings = uniqueStrings([
591
+ ...stringArray(data.activeMappings),
592
+ ...stringArray(skillExecutionReceipt.activeMappings),
593
+ ]);
594
+ const mappingRegistry = Object.keys(objectRecord(data.mappingRegistry)).length
595
+ ? objectRecord(data.mappingRegistry)
596
+ : Object.keys(objectRecord(skillExecutionReceipt.mappingRegistry)).length
597
+ ? objectRecord(skillExecutionReceipt.mappingRegistry)
598
+ : null;
599
+ const qaCorrectionReceipt = Object.keys(objectRecord(data.qaCorrectionReceipt)).length
600
+ ? objectRecord(data.qaCorrectionReceipt)
601
+ : Object.keys(objectRecord(skillExecutionReceipt.qaCorrectionReceipt)).length
602
+ ? objectRecord(skillExecutionReceipt.qaCorrectionReceipt)
603
+ : null;
604
+ const qaCorrectionLearningReceipt = Object.keys(objectRecord(data.qaCorrectionLearningReceipt)).length
605
+ ? objectRecord(data.qaCorrectionLearningReceipt)
606
+ : Object.keys(objectRecord(skillExecutionReceipt.qaCorrectionLearningReceipt)).length
607
+ ? objectRecord(skillExecutionReceipt.qaCorrectionLearningReceipt)
608
+ : null;
609
+ const qaSkills = uniqueStrings([
610
+ ...stringArray(data.qaSkills),
611
+ ...stringArray(skillExecutionReceipt.qaSkills),
612
+ ...stringArray(qaCorrectionReceipt?.qaSkills),
613
+ ]);
614
+ const correctionSkills = uniqueStrings([
615
+ ...stringArray(data.correctionSkills),
616
+ ...stringArray(skillExecutionReceipt.correctionSkills),
617
+ ...stringArray(qaCorrectionReceipt?.correctionSkills),
618
+ ]);
619
+ const hiveObserverSourceTopology = Object.keys(objectRecord(data.hiveObserverSourceTopology)).length
620
+ ? objectRecord(data.hiveObserverSourceTopology)
621
+ : Object.keys(objectRecord(skillExecutionReceipt.hiveObserverSourceTopology)).length
622
+ ? objectRecord(skillExecutionReceipt.hiveObserverSourceTopology)
623
+ : null;
624
+ const hiveSiblingSessionBroadcast = Object.keys(objectRecord(data.hiveSiblingSessionBroadcast)).length
625
+ ? objectRecord(data.hiveSiblingSessionBroadcast)
626
+ : Object.keys(objectRecord(skillExecutionReceipt.hiveSiblingSessionBroadcast)).length
627
+ ? objectRecord(skillExecutionReceipt.hiveSiblingSessionBroadcast)
628
+ : null;
629
+ const observerSurfaces = stringArray(hiveObserverSourceTopology?.observerSurfaces);
630
+ const sourceSurfaces = stringArray(hiveObserverSourceTopology?.sourceSurfaces);
631
+ const mechanicalReceiptOk = skillExecutionReceipt.ok === true
632
+ && skillExecutionMode === 'mechanical-receipt'
633
+ && executionBackedSkillIds.length >= UNIVERSAL_TURN_PACKET_SKILL_FLOOR
634
+ && substrateKernelExecution?.ok === true
635
+ && executedOperatorIds.length >= UNIVERSAL_TURN_PACKET_SKILL_FLOOR;
636
+ const runtimeReceiptOk = activeRuntimes.length >= UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR
637
+ && runtimeRegistry?.['missing'] !== true;
638
+ const doctrineRuntimeReceiptOk = doctrineRuntimeReceipt?.ok === true
639
+ && doctrineRuntimeReceipt?.runtimeActive === true
640
+ && doctrineRuntimeReceipt?.noFakeValidation === true
641
+ && typeof doctrineRuntimeReceipt?.verificationSurface === 'string'
642
+ && doctrineRuntimeReceipt.verificationSurface.length > 0;
643
+ const primitiveReceiptOk = activePrimitives.length >= UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR
644
+ && primitiveRegistry?.['missing'] !== true;
645
+ const mappingReceiptOk = activeMappings.length >= UNIVERSAL_TURN_PACKET_MAPPING_FLOOR
646
+ && mappingRegistry?.['missing'] !== true;
647
+ const qaSkillReceiptOk = qaCorrectionReceipt?.ok === true
648
+ && qaSkills.length >= UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR;
649
+ const correctionSkillReceiptOk = qaCorrectionReceipt?.ok === true
650
+ && correctionSkills.length >= UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR;
651
+ const hiveObserverSourceTopologyOk = hiveObserverSourceTopology?.ok === true
652
+ && observerSurfaces.length >= UNIVERSAL_TURN_PACKET_HIVE_OBSERVER_FLOOR
653
+ && sourceSurfaces.length >= UNIVERSAL_TURN_PACKET_HIVE_SOURCE_FLOOR;
654
+ const hiveSiblingSessionBroadcastOk = hiveSiblingSessionBroadcast?.ok === true
655
+ && Number(hiveSiblingSessionBroadcast.messageCount || 0) >= UNIVERSAL_TURN_PACKET_HIVE_SIBLING_BROADCAST_FLOOR;
656
+ const cognitiveRuntimeReceiptOk = cognitiveRuntimeReceipts?.ok === true
657
+ && objectRecord(cognitiveRuntimeReceipts.tadabbur).ok === true
658
+ && objectRecord(cognitiveRuntimeReceipts.qiyas).ok === true
659
+ && objectRecord(cognitiveRuntimeReceipts.mizan).ok === true
660
+ && objectRecord(cognitiveRuntimeReceipts.noor).ok === true
661
+ && objectRecord(cognitiveRuntimeReceipts.noor).noorSuiteCount === 14;
662
+ const dynamicOperatorSelectionOk = dynamicOperatorSelection?.ok === true
663
+ && dynamicOperatorSelection.registryCap === null
664
+ && Number(dynamicOperatorSelection.selectedOperatorCount || 0) >= UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR;
665
+ const phaseRuntimeExecutionOk = phaseRuntimeExecution?.ok === true
666
+ && phaseRuntimeExecution.providerReceivesFullSkillBodies === false;
667
+ const gardenMemorySubstrateOk = gardenMemorySubstrate?.ok === true
668
+ && /substrate/i.test(String(gardenMemorySubstrate.substrateBoundary || ''))
669
+ && objectRecord(gardenMemorySubstrate.providerProjection).includesMemoryBodies === false;
670
+ const qaCorrectionLearningOk = qaCorrectionLearningReceipt?.ok === true
671
+ && qaCorrectionLearningReceipt.learningFeedsNextSelection === true
672
+ && qaCorrectionLearningReceipt.productionPromotionRequiresOwnerApproval === true;
673
+ const weakQaEnhancementLoopOk = weakQaEnhancementLoopReceipt?.schema === 'aria.weak_qa_enhancement_loop_receipt.v1'
674
+ && weakQaEnhancementLoopReceipt.ok === true;
675
+ const ownerApprovalPacketOk = ownerApprovalPacket?.schema === 'aria.owner_final_approval_packet.v1'
676
+ && (ownerApprovalPacket.required !== true
677
+ || ownerApprovalPacket.blocksProductionPromotion === true
678
+ || (ownerApprovalPacket.ownerApprovalStatus === 'approved_by_owner'
679
+ && ownerApprovalPacket.blocksProductionPromotion === false
680
+ && objectRecord(ownerApprovalPacket.approvalReceipt).schema === 'aria.owner_approval_receipt.v1'));
681
+ const fullSkillBodiesInjected = prompt.includes('<skill_content ') || prompt.includes('ARIA RUNTIME FORCED SKILL LOAD');
682
+ const ok = runtime.ok
683
+ && data.ok === true
684
+ && loadedSkillIds.length >= UNIVERSAL_TURN_PACKET_SKILL_FLOOR
685
+ && missingSkillIds.length === 0
686
+ && missingCookbooks.length === 0
687
+ && mechanicalReceiptOk
688
+ && runtimeReceiptOk
689
+ && doctrineRuntimeReceiptOk
690
+ && primitiveReceiptOk
691
+ && mappingReceiptOk
692
+ && qaSkillReceiptOk
693
+ && correctionSkillReceiptOk
694
+ && hiveObserverSourceTopologyOk
695
+ && hiveSiblingSessionBroadcastOk
696
+ && cognitiveRuntimeReceiptOk
697
+ && dynamicOperatorSelectionOk
698
+ && phaseRuntimeExecutionOk
699
+ && gardenMemorySubstrateOk
700
+ && qaCorrectionLearningOk
701
+ && weakQaEnhancementLoopOk
702
+ && ownerApprovalPacketOk
703
+ && !fullSkillBodiesInjected;
704
+ const now = new Date().toISOString();
705
+ const phases = [
706
+ {
707
+ phase: 'pre_cognition',
708
+ ok: loadedSkillIds.length >= UNIVERSAL_TURN_PACKET_SKILL_FLOOR
709
+ && activeRuntimes.length >= UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR,
710
+ evidence: {
711
+ requiredSkillCount: requiredSkills.length,
712
+ loadedSkillCount: loadedSkillIds.length,
713
+ runtimeFloor: UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR,
714
+ activeRuntimeCount: activeRuntimes.length,
715
+ doctrineRuntimeOk: doctrineRuntimeReceiptOk,
716
+ doctrineTimeoutVerdict: doctrineRuntimeReceipt?.timeoutVerdict ?? null,
717
+ primitiveFloor: UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR,
718
+ activePrimitiveCount: activePrimitives.length,
719
+ mappingFloor: UNIVERSAL_TURN_PACKET_MAPPING_FLOOR,
720
+ activeMappingCount: activeMappings.length,
721
+ hiveObserverFloor: UNIVERSAL_TURN_PACKET_HIVE_OBSERVER_FLOOR,
722
+ hiveObserverCount: observerSurfaces.length,
723
+ hiveSourceFloor: UNIVERSAL_TURN_PACKET_HIVE_SOURCE_FLOOR,
724
+ hiveSourceCount: sourceSurfaces.length,
725
+ },
726
+ at: now,
727
+ },
728
+ {
729
+ phase: 'pre_tool',
730
+ ok: runtime.ok,
731
+ evidence: { runtimeStatus: runtime.status, endpoint: 'POST /build-system-prompt', surfaceId: args.surfaceId },
732
+ at: now,
733
+ },
734
+ {
735
+ phase: 'intra_tool',
736
+ ok: data.ok === true,
737
+ evidence: { promptBuilt: typeof data.prompt === 'string', missingSkillIds, missingCookbookCount: missingCookbooks.length },
738
+ at: now,
739
+ },
740
+ {
741
+ phase: 'intra_cognition',
742
+ ok: mechanicalReceiptOk && !fullSkillBodiesInjected,
743
+ evidence: {
744
+ promptHash,
745
+ promptChars: prompt.length,
746
+ skillExecutionMode,
747
+ firedSkillCount: firedSkillIds.length,
748
+ executionBackedSkillCount: executionBackedSkillIds.length,
749
+ executedOperatorCount: executedOperatorIds.length,
750
+ substrateKernelExecution: {
751
+ ok: substrateKernelExecution?.ok === true,
752
+ mode: substrateKernelExecution?.mode ?? null,
753
+ executedOperatorIdsHash: substrateKernelExecution?.executedOperatorIdsHash ?? null,
754
+ executionHash: substrateKernelExecution?.executionHash ?? null,
755
+ sentinelCompilationHash: objectRecord(substrateKernelExecution?.sentinelKernel).compilationHash ?? null,
756
+ },
757
+ activeRuntimeCount: activeRuntimes.length,
758
+ activeRuntimes,
759
+ taskClass,
760
+ selectedExtraOperators,
761
+ dynamicOperatorSelection: {
762
+ ok: dynamicOperatorSelectionOk,
763
+ selectionPolicy: dynamicOperatorSelection?.selectionPolicy ?? null,
764
+ registryCap: dynamicOperatorSelection?.registryCap ?? 'missing',
765
+ selectedOperatorCount: dynamicOperatorSelection?.selectedOperatorCount ?? null,
766
+ selectedOperatorIdsHash: dynamicOperatorSelection?.selectedOperatorIdsHash ?? null,
767
+ selectedFamilyCounts: dynamicOperatorSelection?.selectedFamilyCounts ?? null,
768
+ reasonCounts: dynamicOperatorSelection?.reasonCounts ?? null,
769
+ },
770
+ phaseRuntimeExecution: {
771
+ ok: phaseRuntimeExecutionOk,
772
+ mode: phaseRuntimeExecution?.mode ?? null,
773
+ providerReceivesFullSkillBodies: phaseRuntimeExecution?.providerReceivesFullSkillBodies ?? null,
774
+ projectionHash: phaseRuntimeExecution?.projectionHash ?? null,
775
+ },
776
+ gardenMemorySubstrate: {
777
+ ok: gardenMemorySubstrateOk,
778
+ substrateBoundary: gardenMemorySubstrate?.substrateBoundary ?? null,
779
+ continuityHash: gardenMemorySubstrate?.continuityHash ?? null,
780
+ },
781
+ runtimeRegistry,
782
+ doctrineRuntimeReceipt: {
783
+ ok: doctrineRuntimeReceipt?.ok === true,
784
+ runtimeActive: doctrineRuntimeReceipt?.runtimeActive === true,
785
+ productionIntent: doctrineRuntimeReceipt?.productionIntent === true,
786
+ verificationSurface: doctrineRuntimeReceipt?.verificationSurface ?? null,
787
+ timeoutVerdict: doctrineRuntimeReceipt?.timeoutVerdict ?? null,
788
+ noFakeValidation: doctrineRuntimeReceipt?.noFakeValidation === true,
789
+ evidenceHash: typeof doctrineRuntimeReceipt?.evidenceHash === 'string'
790
+ ? doctrineRuntimeReceipt.evidenceHash
791
+ : null,
792
+ },
793
+ cognitiveRuntimeReceipts: {
794
+ ok: cognitiveRuntimeReceiptOk,
795
+ tadabburMode: objectRecord(cognitiveRuntimeReceipts?.tadabbur).mode ?? null,
796
+ tadabburStageCount: objectRecord(cognitiveRuntimeReceipts?.tadabbur).stageCount ?? null,
797
+ qiyasMode: objectRecord(cognitiveRuntimeReceipts?.qiyas).mode ?? null,
798
+ qiyasPerspectiveCount: objectRecord(cognitiveRuntimeReceipts?.qiyas).perspectiveCount ?? null,
799
+ mizanVerdict: objectRecord(cognitiveRuntimeReceipts?.mizan).verdict ?? null,
800
+ noorSuiteCount: objectRecord(cognitiveRuntimeReceipts?.noor).noorSuiteCount ?? null,
801
+ noorSemanticBoundary: objectRecord(cognitiveRuntimeReceipts?.noor).semanticBoundary ?? null,
802
+ },
803
+ learningCandidateCount: learningCandidateReceipts.length,
804
+ operatorDeltaCount: operatorDeltaReceipts.length,
805
+ ownerApprovalPacket: {
806
+ required: ownerApprovalPacket?.required === true,
807
+ ownerApprovalStatus: ownerApprovalPacket?.ownerApprovalStatus ?? null,
808
+ blocksProductionPromotion: ownerApprovalPacket?.blocksProductionPromotion === true,
809
+ },
810
+ activePrimitiveCount: activePrimitives.length,
811
+ activePrimitives,
812
+ primitiveRegistry,
813
+ activeMappingCount: activeMappings.length,
814
+ activeMappings,
815
+ mappingRegistry,
816
+ qaCorrectionReceipt: {
817
+ ok: qaCorrectionReceipt?.ok === true,
818
+ qaSkillCount: qaSkills.length,
819
+ correctionSkillCount: correctionSkills.length,
820
+ correctionFindingCount: qaCorrectionReceipt?.correctionFindingCount ?? correctionFindings.length,
821
+ correctionFindingsHash: typeof qaCorrectionReceipt?.correctionFindingsHash === 'string'
822
+ ? qaCorrectionReceipt.correctionFindingsHash
823
+ : null,
824
+ },
825
+ weakQaEnhancementLoop: {
826
+ ok: weakQaEnhancementLoopReceipt?.ok === true,
827
+ trigger: weakQaEnhancementLoopReceipt?.trigger ?? null,
828
+ nextRoundRequired: weakQaEnhancementLoopReceipt?.nextRoundRequired === true,
829
+ ownerApprovalRequired: weakQaEnhancementLoopReceipt?.ownerApprovalRequired === true,
830
+ tadabburQuestionCount: weakQaEnhancementLoopReceipt?.tadabburQuestionCount ?? null,
831
+ qiyasQuestionCount: weakQaEnhancementLoopReceipt?.qiyasQuestionCount ?? null,
832
+ },
833
+ hiveObserverSourceTopology: {
834
+ ok: hiveObserverSourceTopology?.ok === true,
835
+ observerCount: observerSurfaces.length,
836
+ sourceCount: sourceSurfaces.length,
837
+ activeThreadCount: hiveObserverSourceTopology?.activeThreadCount ?? null,
838
+ evidenceThreadCount: hiveObserverSourceTopology?.evidenceThreadCount ?? null,
839
+ literalQuantumMatches: hiveObserverSourceTopology?.literalQuantumMatches ?? null,
840
+ topologyTermMatches: hiveObserverSourceTopology?.topologyTermMatches ?? null,
841
+ coherenceHash: typeof hiveObserverSourceTopology?.coherenceHash === 'string'
842
+ ? hiveObserverSourceTopology.coherenceHash
843
+ : null,
844
+ },
845
+ fullSkillBodiesInjected,
846
+ receiptHash: typeof skillExecutionReceipt.receiptHash === 'string' ? skillExecutionReceipt.receiptHash : null,
847
+ },
848
+ at: now,
849
+ },
850
+ {
851
+ phase: 'post_tool',
852
+ ok: missingSkillIds.length === 0 && missingCookbooks.length === 0,
853
+ evidence: { missingSkillIds, missingCookbooks },
854
+ at: now,
855
+ },
856
+ {
857
+ phase: 'post_cognition',
858
+ ok,
859
+ evidence: {
860
+ skillFloor: UNIVERSAL_TURN_PACKET_SKILL_FLOOR,
861
+ runtimeFloor: UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR,
862
+ doctrineRuntimeOk: doctrineRuntimeReceiptOk,
863
+ primitiveFloor: UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR,
864
+ mappingFloor: UNIVERSAL_TURN_PACKET_MAPPING_FLOOR,
865
+ qaSkillFloor: UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR,
866
+ correctionSkillFloor: UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR,
867
+ hiveObserverFloor: UNIVERSAL_TURN_PACKET_HIVE_OBSERVER_FLOOR,
868
+ hiveSourceFloor: UNIVERSAL_TURN_PACKET_HIVE_SOURCE_FLOOR,
869
+ hiveSiblingBroadcastFloor: UNIVERSAL_TURN_PACKET_HIVE_SIBLING_BROADCAST_FLOOR,
870
+ cognitiveRuntimeOk: cognitiveRuntimeReceiptOk,
871
+ ownerApprovalPacketOk,
872
+ dynamicOperatorSelectionOk,
873
+ phaseRuntimeExecutionOk,
874
+ gardenMemorySubstrateOk,
875
+ qaCorrectionLearningOk,
876
+ weakQaEnhancementLoopOk,
877
+ expectedVsObserved: `skills>=${UNIVERSAL_TURN_PACKET_SKILL_FLOOR}; observedSkills=${loadedSkillIds.length}; runtimes>=${UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR}; observedRuntimes=${activeRuntimes.length}; primitives>=${UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR}; observedPrimitives=${activePrimitives.length}; mappings>=${UNIVERSAL_TURN_PACKET_MAPPING_FLOOR}; observedMappings=${activeMappings.length}; qaSkills>=${UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR}; observedQaSkills=${qaSkills.length}; correctionSkills>=${UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR}; observedCorrectionSkills=${correctionSkills.length}; hiveObservers>=${UNIVERSAL_TURN_PACKET_HIVE_OBSERVER_FLOOR}; observedHiveObservers=${observerSurfaces.length}; hiveSources>=${UNIVERSAL_TURN_PACKET_HIVE_SOURCE_FLOOR}; observedHiveSources=${sourceSurfaces.length}; hiveSiblingBroadcasts>=${UNIVERSAL_TURN_PACKET_HIVE_SIBLING_BROADCAST_FLOOR}; observedHiveSiblingBroadcasts=${Number(hiveSiblingSessionBroadcast?.messageCount || 0)}`,
878
+ correctionFindingCount: correctionFindings.length,
879
+ },
880
+ at: now,
881
+ },
882
+ ];
883
+ return {
884
+ ok,
885
+ surfaceId: args.surfaceId,
886
+ sessionId,
887
+ skillExecutionMode,
888
+ skillExecutionReceipt,
889
+ skillFloor: UNIVERSAL_TURN_PACKET_SKILL_FLOOR,
890
+ runtimeFloor: UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR,
891
+ primitiveFloor: UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR,
892
+ mappingFloor: UNIVERSAL_TURN_PACKET_MAPPING_FLOOR,
893
+ qaSkillFloor: UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR,
894
+ correctionSkillFloor: UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR,
895
+ requiredSkills,
896
+ loadedSkillIds,
897
+ activeRuntimes,
898
+ runtimeRegistry,
899
+ doctrineRuntimeReceipt,
900
+ taskClass,
901
+ taskClassReceipt,
902
+ selectedExtraOperators,
903
+ dynamicOperatorSelection,
904
+ substrateKernelExecution,
905
+ phaseRuntimeExecution,
906
+ gardenMemorySubstrate,
907
+ cognitiveRuntimeReceipts,
908
+ learningCandidateReceipts,
909
+ operatorDeltaReceipts,
910
+ weakQaEnhancementLoopReceipt,
911
+ ownerApprovalPacket,
912
+ qaCorrectionLearningReceipt,
913
+ activePrimitives,
914
+ primitiveRegistry,
915
+ activeMappings,
916
+ mappingRegistry,
917
+ qaSkills,
918
+ correctionSkills,
919
+ qaCorrectionReceipt,
920
+ hiveObserverSourceTopology,
921
+ hiveSiblingSessionBroadcast,
922
+ missingSkillIds,
923
+ missingCookbooks,
924
+ promptHash,
925
+ promptChars: prompt.length,
926
+ phases,
927
+ qa: {
928
+ status: ok ? 'pass' : 'block',
929
+ findings: ok ? [] : [
930
+ ...(loadedSkillIds.length < UNIVERSAL_TURN_PACKET_SKILL_FLOOR ? [`loaded_skill_count_below_${UNIVERSAL_TURN_PACKET_SKILL_FLOOR}`] : []),
931
+ ...(missingSkillIds.length ? ['missing_required_skills'] : []),
932
+ ...(missingCookbooks.length ? ['missing_required_cookbooks'] : []),
933
+ ...(mechanicalReceiptOk ? [] : ['mechanical_skill_execution_receipt_missing_or_under_floor']),
934
+ ...(substrateKernelExecution?.ok === true ? [] : ['substrate_kernel_execution_missing_or_invalid']),
935
+ ...(runtimeReceiptOk ? [] : [`active_runtime_count_below_${UNIVERSAL_TURN_PACKET_RUNTIME_FLOOR}`]),
936
+ ...(doctrineRuntimeReceiptOk ? [] : ['repo_doctrine_runtime_receipt_missing_or_invalid']),
937
+ ...(primitiveReceiptOk ? [] : [`active_primitive_count_below_${UNIVERSAL_TURN_PACKET_PRIMITIVE_FLOOR}`]),
938
+ ...(mappingReceiptOk ? [] : [`active_mapping_count_below_${UNIVERSAL_TURN_PACKET_MAPPING_FLOOR}`]),
939
+ ...(qaSkillReceiptOk ? [] : [`qa_skill_count_below_${UNIVERSAL_TURN_PACKET_QA_SKILL_FLOOR}`]),
940
+ ...(correctionSkillReceiptOk ? [] : [`correction_skill_count_below_${UNIVERSAL_TURN_PACKET_CORRECTION_SKILL_FLOOR}`]),
941
+ ...(hiveObserverSourceTopologyOk ? [] : ['hive_observer_source_topology_missing_or_under_floor']),
942
+ ...(hiveSiblingSessionBroadcastOk ? [] : ['hive_sibling_session_broadcast_missing_or_under_floor']),
943
+ ...(cognitiveRuntimeReceiptOk ? [] : ['cognitive_runtime_receipts_missing_or_invalid']),
944
+ ...(dynamicOperatorSelectionOk ? [] : ['dynamic_operator_selection_missing_or_invalid']),
945
+ ...(phaseRuntimeExecutionOk ? [] : ['phase_runtime_execution_missing_or_invalid']),
946
+ ...(gardenMemorySubstrateOk ? [] : ['garden_memory_substrate_missing_or_invalid']),
947
+ ...(qaCorrectionLearningOk ? [] : ['qa_correction_learning_receipt_missing_or_invalid']),
948
+ ...(weakQaEnhancementLoopOk ? [] : ['weak_qa_enhancement_loop_receipt_missing_or_invalid']),
949
+ ...(ownerApprovalPacketOk ? [] : ['owner_approval_packet_missing_or_non_blocking']),
950
+ ...(fullSkillBodiesInjected ? ['full_skill_bodies_injected_into_provider_prompt'] : []),
951
+ ...(runtime.ok ? [] : [`runtime_status_${runtime.status}`]),
952
+ ],
953
+ correctionSkills: [
954
+ 'aria-quality-audit',
955
+ 'tadabbur',
956
+ 'qiyas-analogy',
957
+ 'mizan',
958
+ 'forge-quality-rules',
959
+ 'aria-harness-no-stripping',
960
+ ],
961
+ },
962
+ learningLoop: {
963
+ style: 'dalio_reflexion',
964
+ lesson: ok
965
+ ? 'Keep one shared mechanical skill-and-runtime receipt as the control point; do not turn skills into expensive prompt stuffing.'
966
+ : 'When mechanical execution fails, repair missing skills, cookbooks, runtime operators, or receipt binding before any provider turn executes.',
967
+ integratedIntoNextPacket: true,
968
+ },
969
+ };
970
+ }
971
+ async recordGovernanceOutcome(args) {
972
+ const sessionId = args.sessionId ?? this.sessionId;
973
+ const ledger = sessionLedgerPath(this.governanceLedgerRoot, sessionId);
974
+ const before = countLines(ledger);
975
+ const payload = {
976
+ kind: 'governance_outcome',
977
+ text: args.summary,
978
+ surfaceId: args.surfaceId ?? 'codex',
979
+ verdict: args.verdict ?? 'pass',
980
+ evidence: args.evidence ?? {},
981
+ refs: [`governed-surface:${args.surfaceId ?? 'codex'}`],
982
+ source: 'aria-connector-governed-surface-runner',
983
+ resolution_status: args.verdict === 'fail' ? 'open' : 'resolved',
984
+ sessionId,
985
+ at: new Date().toISOString(),
986
+ };
987
+ try {
988
+ await this.client.runtimeRequest('/record-discovery', payload);
989
+ }
990
+ catch {
991
+ const parent = path.dirname(ledger);
992
+ await mkdir(parent, { recursive: true });
993
+ appendFileSync(ledger, `${JSON.stringify(payload)}\n`);
994
+ }
995
+ let after = countLines(ledger);
996
+ if (after < before + 1) {
997
+ const parent = path.dirname(ledger);
998
+ await mkdir(parent, { recursive: true });
999
+ appendFileSync(ledger, `${JSON.stringify(payload)}\n`);
1000
+ after = countLines(ledger);
1001
+ }
1002
+ return {
1003
+ ok: after >= before + 1,
1004
+ before,
1005
+ after,
1006
+ delta: after - before,
1007
+ ledger,
1008
+ };
1009
+ }
1010
+ async ensureAllowedRoot() {
1011
+ await mkdir(this.sandboxRoot, { recursive: true });
1012
+ const root = await stat(this.sandboxRoot);
1013
+ return root.isDirectory();
1014
+ }
1015
+ async writeSandboxFile(relativePath, contents) {
1016
+ const target = path.join(this.sandboxRoot, relativePath);
1017
+ await mkdir(path.dirname(target), { recursive: true });
1018
+ await writeFile(target, contents, 'utf8');
1019
+ return target;
1020
+ }
1021
+ }
1022
+ //# sourceMappingURL=governed-surface-runner.js.map