@aria_asi/cli 0.2.25 → 0.2.29

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 (249) hide show
  1. package/CLIENT-ONBOARDING.md +282 -0
  2. package/bin/aria.js +1140 -14
  3. package/dist/aria-connector/src/auth-commands.d.ts +1 -0
  4. package/dist/aria-connector/src/auth-commands.d.ts.map +1 -1
  5. package/dist/aria-connector/src/auth-commands.js +89 -41
  6. package/dist/aria-connector/src/auth-commands.js.map +1 -1
  7. package/dist/aria-connector/src/chat.d.ts +3 -0
  8. package/dist/aria-connector/src/chat.d.ts.map +1 -1
  9. package/dist/aria-connector/src/chat.js +146 -8
  10. package/dist/aria-connector/src/chat.js.map +1 -1
  11. package/dist/aria-connector/src/codebase-scanner.d.ts +2 -2
  12. package/dist/aria-connector/src/codebase-scanner.d.ts.map +1 -1
  13. package/dist/aria-connector/src/codebase-scanner.js +1 -1
  14. package/dist/aria-connector/src/codebase-scanner.js.map +1 -1
  15. package/dist/aria-connector/src/config.d.ts +12 -0
  16. package/dist/aria-connector/src/config.d.ts.map +1 -1
  17. package/dist/aria-connector/src/config.js +2 -0
  18. package/dist/aria-connector/src/config.js.map +1 -1
  19. package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
  20. package/dist/aria-connector/src/connectors/claude-code.js +111 -21
  21. package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
  22. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts +37 -0
  23. package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -0
  24. package/dist/aria-connector/src/connectors/codebase-awareness.js +335 -0
  25. package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -0
  26. package/dist/aria-connector/src/connectors/codex.d.ts +3 -0
  27. package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -0
  28. package/dist/aria-connector/src/connectors/codex.js +248 -0
  29. package/dist/aria-connector/src/connectors/codex.js.map +1 -0
  30. package/dist/aria-connector/src/connectors/cognitive-skills.d.ts +2 -0
  31. package/dist/aria-connector/src/connectors/cognitive-skills.d.ts.map +1 -0
  32. package/dist/aria-connector/src/connectors/cognitive-skills.js +47 -0
  33. package/dist/aria-connector/src/connectors/cognitive-skills.js.map +1 -0
  34. package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
  35. package/dist/aria-connector/src/connectors/opencode.js +90 -4
  36. package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
  37. package/dist/aria-connector/src/connectors/repo-git-hooks.d.ts +3 -0
  38. package/dist/aria-connector/src/connectors/repo-git-hooks.d.ts.map +1 -0
  39. package/dist/aria-connector/src/connectors/repo-git-hooks.js +87 -0
  40. package/dist/aria-connector/src/connectors/repo-git-hooks.js.map +1 -0
  41. package/dist/aria-connector/src/connectors/repo-guard.d.ts +19 -0
  42. package/dist/aria-connector/src/connectors/repo-guard.d.ts.map +1 -0
  43. package/dist/aria-connector/src/connectors/repo-guard.js +509 -0
  44. package/dist/aria-connector/src/connectors/repo-guard.js.map +1 -0
  45. package/dist/aria-connector/src/connectors/runtime.d.ts +2 -0
  46. package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -0
  47. package/dist/aria-connector/src/connectors/runtime.js +330 -0
  48. package/dist/aria-connector/src/connectors/runtime.js.map +1 -0
  49. package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
  50. package/dist/aria-connector/src/connectors/shell.js +78 -13
  51. package/dist/aria-connector/src/connectors/shell.js.map +1 -1
  52. package/dist/aria-connector/src/connectors/syncd.d.ts +27 -0
  53. package/dist/aria-connector/src/connectors/syncd.d.ts.map +1 -0
  54. package/dist/aria-connector/src/connectors/syncd.js +405 -0
  55. package/dist/aria-connector/src/connectors/syncd.js.map +1 -0
  56. package/dist/aria-connector/src/decisions.d.ts +207 -0
  57. package/dist/aria-connector/src/decisions.d.ts.map +1 -0
  58. package/dist/aria-connector/src/decisions.js +291 -0
  59. package/dist/aria-connector/src/decisions.js.map +1 -0
  60. package/dist/aria-connector/src/garden-control-plane.d.ts.map +1 -1
  61. package/dist/aria-connector/src/garden-control-plane.js +74 -17
  62. package/dist/aria-connector/src/garden-control-plane.js.map +1 -1
  63. package/dist/aria-connector/src/github-connect.d.ts +18 -0
  64. package/dist/aria-connector/src/github-connect.d.ts.map +1 -0
  65. package/dist/aria-connector/src/github-connect.js +117 -0
  66. package/dist/aria-connector/src/github-connect.js.map +1 -0
  67. package/dist/aria-connector/src/harness-client.d.ts +15 -0
  68. package/dist/aria-connector/src/harness-client.d.ts.map +1 -1
  69. package/dist/aria-connector/src/harness-client.js +106 -3
  70. package/dist/aria-connector/src/harness-client.js.map +1 -1
  71. package/dist/aria-connector/src/hive-client.d.ts +30 -0
  72. package/dist/aria-connector/src/hive-client.d.ts.map +1 -1
  73. package/dist/aria-connector/src/hive-client.js +124 -5
  74. package/dist/aria-connector/src/hive-client.js.map +1 -1
  75. package/dist/aria-connector/src/index.d.ts +13 -2
  76. package/dist/aria-connector/src/index.d.ts.map +1 -1
  77. package/dist/aria-connector/src/index.js +10 -1
  78. package/dist/aria-connector/src/index.js.map +1 -1
  79. package/dist/aria-connector/src/lib/aristotle-noor-wire.d.ts +102 -0
  80. package/dist/aria-connector/src/lib/aristotle-noor-wire.d.ts.map +1 -0
  81. package/dist/aria-connector/src/lib/aristotle-noor-wire.js +231 -0
  82. package/dist/aria-connector/src/lib/aristotle-noor-wire.js.map +1 -0
  83. package/dist/aria-connector/src/providers/types.d.ts +5 -0
  84. package/dist/aria-connector/src/providers/types.d.ts.map +1 -1
  85. package/dist/aria-connector/src/runtime-proof.d.ts +45 -0
  86. package/dist/aria-connector/src/runtime-proof.d.ts.map +1 -0
  87. package/dist/aria-connector/src/runtime-proof.js +340 -0
  88. package/dist/aria-connector/src/runtime-proof.js.map +1 -0
  89. package/dist/aria-connector/src/setup-wizard.d.ts.map +1 -1
  90. package/dist/aria-connector/src/setup-wizard.js +34 -2
  91. package/dist/aria-connector/src/setup-wizard.js.map +1 -1
  92. package/dist/assets/hooks/aria-agent-handoff.mjs +224 -0
  93. package/dist/assets/hooks/aria-agent-ledger-merge.mjs +164 -0
  94. package/dist/assets/hooks/aria-architect-fallback.mjs +267 -0
  95. package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +676 -0
  96. package/dist/assets/hooks/aria-discovery-record.mjs +101 -0
  97. package/dist/assets/hooks/aria-harness-via-sdk.mjs +412 -0
  98. package/dist/assets/hooks/aria-import-resolution-gate.mjs +330 -0
  99. package/dist/assets/hooks/aria-outcome-record.mjs +84 -0
  100. package/dist/assets/hooks/aria-pre-emit-dryrun.mjs +294 -0
  101. package/dist/assets/hooks/aria-pre-text-gate.mjs +112 -0
  102. package/dist/assets/hooks/aria-pre-tool-gate.mjs +2133 -0
  103. package/dist/assets/hooks/aria-preprompt-consult.mjs +438 -0
  104. package/dist/assets/hooks/aria-preturn-memory-gate.mjs +570 -0
  105. package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +397 -0
  106. package/dist/assets/hooks/aria-stop-gate.mjs +1551 -0
  107. package/dist/assets/hooks/aria-trigger-autolearn.mjs +229 -0
  108. package/dist/assets/hooks/aria-userprompt-abandon-detect.mjs +192 -0
  109. package/dist/assets/hooks/doctrine_trigger_map.json +479 -0
  110. package/dist/assets/hooks/lib/canonical-lenses.mjs +64 -0
  111. package/dist/assets/hooks/lib/gate-audit.mjs +43 -0
  112. package/dist/assets/hooks/test-aria-preturn-memory-gate.mjs +245 -0
  113. package/dist/assets/hooks/test-tier-lens-labeling.mjs +399 -0
  114. package/dist/assets/opencode-plugins/harness-context/index.js +60 -0
  115. package/dist/assets/opencode-plugins/harness-context/inject-context.mjs +179 -0
  116. package/dist/assets/opencode-plugins/harness-context/package.json +9 -0
  117. package/dist/assets/opencode-plugins/harness-gate/index.js +248 -0
  118. package/dist/assets/opencode-plugins/harness-outcome/index.js +129 -0
  119. package/dist/assets/opencode-plugins/harness-role/index.js +77 -0
  120. package/dist/assets/opencode-plugins/harness-role/package.json +9 -0
  121. package/dist/assets/opencode-plugins/harness-stop/index.js +241 -0
  122. package/dist/runtime/discipline/CLAUDE.md +339 -0
  123. package/dist/runtime/discipline/skills/aria-cognition/aria-essence/SKILL.md +63 -0
  124. package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/domain-matrix.md +80 -0
  125. package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/evolution-loop.md +30 -0
  126. package/dist/runtime/discipline/skills/aria-cognition/aria-essence/references/readable-cognition.md +27 -0
  127. package/dist/runtime/discipline/skills/aria-cognition/aria-forge-guardrails/SKILL.md +35 -0
  128. package/dist/runtime/discipline/skills/aria-cognition/aria-forge-guardrails/references/checklist.md +31 -0
  129. package/dist/runtime/discipline/skills/aria-cognition/aria-repo-doctrine/SKILL.md +39 -0
  130. package/dist/runtime/discipline/skills/aria-cognition/forge-quality-rules/SKILL.md +43 -0
  131. package/dist/runtime/discipline/skills/aria-cognition/ghazali-8lens/SKILL.md +38 -0
  132. package/dist/runtime/discipline/skills/aria-cognition/istiqra-induction/SKILL.md +26 -0
  133. package/dist/runtime/discipline/skills/aria-cognition/ladunni-22/SKILL.md +35 -0
  134. package/dist/runtime/discipline/skills/aria-cognition/mizan/SKILL.md +72 -0
  135. package/dist/runtime/discipline/skills/aria-cognition/nadia/SKILL.md +38 -0
  136. package/dist/runtime/discipline/skills/aria-cognition/nadia-psi/SKILL.md +38 -0
  137. package/dist/runtime/discipline/skills/aria-cognition/predictor/SKILL.md +25 -0
  138. package/dist/runtime/discipline/skills/aria-cognition/qiyas-analogy/SKILL.md +26 -0
  139. package/dist/runtime/discipline/skills/aria-cognition/soul-domains/SKILL.md +25 -0
  140. package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-intra-phase/SKILL.md +81 -0
  141. package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-post-phase/SKILL.md +98 -0
  142. package/dist/runtime/discipline/skills/aria-harness/aria-aristotle-pre-phase/SKILL.md +99 -0
  143. package/dist/runtime/discipline/skills/aria-harness/aria-harness-deploy/SKILL.md +127 -0
  144. package/dist/runtime/discipline/skills/aria-harness/aria-harness-no-stripping/SKILL.md +117 -0
  145. package/dist/runtime/discipline/skills/aria-harness/aria-harness-onboarding/SKILL.md +112 -0
  146. package/dist/runtime/discipline/skills/aria-harness/aria-harness-output-discipline/SKILL.md +102 -0
  147. package/dist/runtime/discipline/skills/aria-harness/aria-harness-substrate-binding/SKILL.md +121 -0
  148. package/dist/runtime/doctor.mjs +23 -0
  149. package/dist/runtime/local-phase.mjs +632 -0
  150. package/dist/runtime/manifest.json +15 -0
  151. package/dist/runtime/mizan-scheduler.mjs +331 -0
  152. package/dist/runtime/package.json +6 -0
  153. package/dist/runtime/provider-proxy.mjs +594 -0
  154. package/dist/runtime/sdk/BUNDLED.json +5 -0
  155. package/dist/runtime/sdk/index.d.ts +477 -0
  156. package/dist/runtime/sdk/index.js +1469 -0
  157. package/dist/runtime/sdk/index.js.map +1 -0
  158. package/dist/runtime/sdk/package.json +8 -0
  159. package/dist/runtime/sdk/runWithCognition.d.ts +77 -0
  160. package/dist/runtime/sdk/runWithCognition.js +157 -0
  161. package/dist/runtime/sdk/runWithCognition.js.map +1 -0
  162. package/dist/runtime/service.mjs +2708 -0
  163. package/dist/runtime/vendor/aria-gate-runtime/index.d.ts +53 -0
  164. package/dist/runtime/vendor/aria-gate-runtime/index.d.ts.map +1 -0
  165. package/dist/runtime/vendor/aria-gate-runtime/index.js +277 -0
  166. package/dist/runtime/vendor/aria-gate-runtime/index.js.map +1 -0
  167. package/dist/runtime/vendor/aria-gate-runtime/package.json +6 -0
  168. package/dist/sdk/BUNDLED.json +2 -2
  169. package/dist/sdk/index.d.ts +317 -0
  170. package/dist/sdk/index.js +827 -85
  171. package/dist/sdk/index.js.map +1 -1
  172. package/dist/sdk/runWithCognition.d.ts +77 -0
  173. package/dist/sdk/runWithCognition.js +157 -0
  174. package/dist/sdk/runWithCognition.js.map +1 -0
  175. package/hooks/aria-agent-handoff.mjs +11 -1
  176. package/hooks/aria-architect-fallback.mjs +267 -0
  177. package/hooks/aria-cognition-substrate-binding.mjs +676 -0
  178. package/hooks/aria-discovery-record.mjs +101 -0
  179. package/hooks/aria-harness-via-sdk.mjs +34 -21
  180. package/hooks/aria-import-resolution-gate.mjs +330 -0
  181. package/hooks/aria-outcome-record.mjs +84 -0
  182. package/hooks/aria-pre-emit-dryrun.mjs +294 -0
  183. package/hooks/aria-pre-tool-gate.mjs +985 -40
  184. package/hooks/aria-preprompt-consult.mjs +113 -13
  185. package/hooks/aria-preturn-memory-gate.mjs +298 -6
  186. package/hooks/aria-repo-doctrine-gate.mjs +397 -0
  187. package/hooks/aria-stop-gate.mjs +840 -75
  188. package/hooks/aria-userprompt-abandon-detect.mjs +5 -1
  189. package/hooks/doctrine_trigger_map.json +209 -15
  190. package/hooks/lib/canonical-lenses.mjs +64 -0
  191. package/hooks/lib/gate-audit.mjs +43 -0
  192. package/opencode-plugins/harness-context/index.js +1 -1
  193. package/opencode-plugins/harness-context/inject-context.mjs +82 -23
  194. package/opencode-plugins/harness-gate/index.js +248 -0
  195. package/opencode-plugins/harness-outcome/index.js +129 -0
  196. package/opencode-plugins/harness-stop/index.js +241 -0
  197. package/package.json +8 -2
  198. package/runtime-src/doctor.mjs +23 -0
  199. package/runtime-src/local-phase.mjs +632 -0
  200. package/runtime-src/mizan-scheduler.mjs +331 -0
  201. package/runtime-src/provider-proxy.mjs +594 -0
  202. package/runtime-src/service.mjs +2708 -0
  203. package/scripts/bundle-sdk.mjs +317 -0
  204. package/scripts/install-client.sh +176 -0
  205. package/scripts/publish-all.sh +344 -0
  206. package/scripts/publish-docker.sh +27 -0
  207. package/scripts/validate-hook-contracts.mjs +54 -0
  208. package/scripts/validate-skill-prompts.mjs +95 -0
  209. package/skills/aria-cognition/aria-essence/SKILL.md +63 -0
  210. package/skills/aria-cognition/aria-essence/references/domain-matrix.md +80 -0
  211. package/skills/aria-cognition/aria-essence/references/evolution-loop.md +30 -0
  212. package/skills/aria-cognition/aria-essence/references/readable-cognition.md +27 -0
  213. package/skills/aria-cognition/aria-forge-guardrails/SKILL.md +35 -0
  214. package/skills/aria-cognition/aria-forge-guardrails/references/checklist.md +31 -0
  215. package/skills/aria-cognition/aria-repo-doctrine/SKILL.md +39 -0
  216. package/skills/aria-cognition/forge-quality-rules/SKILL.md +43 -0
  217. package/skills/aria-cognition/ghazali-8lens/SKILL.md +38 -0
  218. package/skills/aria-cognition/istiqra-induction/SKILL.md +26 -0
  219. package/skills/aria-cognition/ladunni-22/SKILL.md +35 -0
  220. package/skills/aria-cognition/mizan/SKILL.md +72 -0
  221. package/skills/aria-cognition/nadia/SKILL.md +38 -0
  222. package/skills/aria-cognition/nadia-psi/SKILL.md +38 -0
  223. package/skills/aria-cognition/predictor/SKILL.md +25 -0
  224. package/skills/aria-cognition/qiyas-analogy/SKILL.md +26 -0
  225. package/skills/aria-cognition/soul-domains/SKILL.md +25 -0
  226. package/src/auth-commands.ts +111 -45
  227. package/src/chat.ts +174 -13
  228. package/src/codebase-scanner.ts +4 -0
  229. package/src/config.ts +15 -0
  230. package/src/connectors/claude-code.ts +115 -26
  231. package/src/connectors/codebase-awareness.ts +408 -0
  232. package/src/connectors/codex.ts +274 -0
  233. package/src/connectors/cognitive-skills.ts +51 -0
  234. package/src/connectors/opencode.ts +93 -4
  235. package/src/connectors/repo-git-hooks.ts +86 -0
  236. package/src/connectors/repo-guard.ts +589 -0
  237. package/src/connectors/runtime.ts +374 -0
  238. package/src/connectors/shell.ts +83 -14
  239. package/src/connectors/syncd.ts +488 -0
  240. package/src/decisions.ts +469 -0
  241. package/src/garden-control-plane.ts +101 -26
  242. package/src/github-connect.ts +143 -0
  243. package/src/harness-client.ts +128 -3
  244. package/src/hive-client.ts +165 -5
  245. package/src/index.ts +41 -2
  246. package/src/lib/aristotle-noor-wire.ts +310 -0
  247. package/src/providers/types.ts +6 -0
  248. package/src/runtime-proof.ts +392 -0
  249. package/src/setup-wizard.ts +37 -2
@@ -0,0 +1,331 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { createHash, randomUUID } from 'node:crypto';
4
+
5
+ import {
6
+ evaluateLocalPrePhase,
7
+ evaluateLocalMidPhase,
8
+ evaluateLocalPostPhase,
9
+ } from './local-phase.mjs';
10
+
11
+ export const CANONICAL_LENSES = ['nur', 'mizan', 'hikma', 'tafakkur', 'tadabbur', 'ilham', 'wahi', 'firasah'];
12
+ export const MAPPED_LENSES = ['zahir', 'batin', 'sabab', 'hikmah', 'aqibah', 'ilham', 'meta', 'fitrah'];
13
+
14
+ const TURN_CLASSIFIERS = [
15
+ {
16
+ kind: 'deployment',
17
+ rx: /\b(deploy|rollout|kubectl|set image|docker push|cloudflare|domain|dns)\b/i,
18
+ priorityOperators: ['mizan', 'tadabbur', 'predictor', 'aegis_pattern_match', 'quality_gate'],
19
+ domains: ['ops', 'reliability', 'security'],
20
+ },
21
+ {
22
+ kind: 'architecture',
23
+ rx: /\b(architecture|deepwork|deep work|design system|refactor|foundational|framework|runtime|sdk|harness|control plane)\b/i,
24
+ priorityOperators: ['mizan', 'tafakkur', 'tadabbur', 'qiyas', 'istiqra', 'meta_cognition', 'predictor'],
25
+ domains: ['architecture', 'engineering', 'product'],
26
+ },
27
+ {
28
+ kind: 'forge',
29
+ rx: /\b(forge|synthesize|manifest|materialize|primitive|generate code|tool factory)\b/i,
30
+ priorityOperators: ['mizan', 'qiyas', 'istiqra', 'predictor', 'forge_primitive_planner', 'quality_gate'],
31
+ domains: ['engineering', 'product', 'design'],
32
+ },
33
+ {
34
+ kind: 'cross_domain',
35
+ rx: /\b(marketing|sales|business|growth|design|brand|copy|funnel|pricing)\b/i,
36
+ priorityOperators: ['mizan', 'hikma', 'tafakkur', 'tadabbur', 'qiyas', 'self_reflection'],
37
+ domains: ['business', 'marketing', 'design', 'engineering'],
38
+ },
39
+ {
40
+ kind: 'verification',
41
+ rx: /\b(audit|verify|smoke|prove|check|validate|investigate|compare|confirm)\b/i,
42
+ priorityOperators: ['mizan', 'nur', 'istiqra', 'self_reflection', 'predictor'],
43
+ domains: ['truth', 'quality', 'operations'],
44
+ },
45
+ {
46
+ kind: 'implementation',
47
+ rx: /\b(build|implement|fix|repair|wire|ship|commit|push|edit|write code)\b/i,
48
+ priorityOperators: ['mizan', 'nur', 'qiyas', 'tadabbur', 'quality_gate', 'predictor'],
49
+ domains: ['engineering', 'quality'],
50
+ },
51
+ ];
52
+
53
+ function asArray(value) {
54
+ return Array.isArray(value) ? value.filter(Boolean) : [];
55
+ }
56
+
57
+ function truncate(value, max = 240) {
58
+ const text = String(value || '').trim();
59
+ return text.length > max ? `${text.slice(0, max - 1)}…` : text;
60
+ }
61
+
62
+ function digestJson(value) {
63
+ return createHash('sha256').update(JSON.stringify(value)).digest('hex');
64
+ }
65
+
66
+ function dedupe(items) {
67
+ return [...new Set(asArray(items))];
68
+ }
69
+
70
+ export function classifyTurn(input = {}) {
71
+ const text = [
72
+ input.message,
73
+ input.intendedAction,
74
+ input.rationale,
75
+ input.plannedApproach,
76
+ input.text,
77
+ input.contextSummary,
78
+ ].filter(Boolean).join('\n');
79
+
80
+ const matched = TURN_CLASSIFIERS.find((entry) => entry.rx.test(text));
81
+ const kind = matched?.kind || 'general';
82
+ const domains = dedupe([
83
+ ...(matched?.domains || []),
84
+ ...asArray(input.domains),
85
+ ]);
86
+ const highImpact = /\b(deploy|delete|destroy|credential|token|secret|owner|billing|production|push to main|force)\b/i.test(text);
87
+ const intensity =
88
+ highImpact ? 'high'
89
+ : text.length > 1200 ? 'deep'
90
+ : text.length > 250 ? 'standard'
91
+ : 'light';
92
+
93
+ return {
94
+ kind,
95
+ intensity,
96
+ highImpact,
97
+ requiredPhases: ['pre', 'mid', 'post'],
98
+ domains: domains.length ? domains : ['engineering'],
99
+ priorityOperators: matched?.priorityOperators || ['mizan', 'tafakkur', 'predictor'],
100
+ };
101
+ }
102
+
103
+ export function buildOperatorPlan(turnClass, phase = 'pre') {
104
+ const alwaysOn = dedupe([
105
+ 'fitrah_gate',
106
+ 'truth_lens',
107
+ 'harm_lens',
108
+ 'trust_lens',
109
+ 'power_lens',
110
+ 'reflection_lens',
111
+ 'mizan',
112
+ 'nur',
113
+ 'hikma',
114
+ 'tafakkur',
115
+ 'tadabbur',
116
+ 'qiyas',
117
+ 'istiqra',
118
+ 'self_reflection',
119
+ 'predictor',
120
+ ]);
121
+
122
+ const phaseOperators = phase === 'pre'
123
+ ? ['first_principle_bind', 'axiom_runtime', 'clean_cognition']
124
+ : phase === 'mid'
125
+ ? ['meta_cognition', 'continuity_guard', 'memory_recall']
126
+ : ['ghazali_8_lens', 'quality_gate', 'evolution_distill', 'aegis_pattern_match'];
127
+
128
+ const cognitivePacks = dedupe([
129
+ 'aria-essence',
130
+ 'aria-repo-doctrine',
131
+ 'forge-quality-rules',
132
+ 'ghazali-8lens',
133
+ 'ladunni-22',
134
+ ...(turnClass.kind === 'forge' ? ['aria-forge-guardrails', 'nadia-psi'] : []),
135
+ ...(turnClass.kind === 'cross_domain' ? ['soul-domains', 'nadia'] : []),
136
+ ]);
137
+
138
+ return {
139
+ turnClass: turnClass.kind,
140
+ intensity: turnClass.intensity,
141
+ domains: turnClass.domains,
142
+ requiredPacks: cognitivePacks,
143
+ lensCoverage: {
144
+ canonical: CANONICAL_LENSES.slice(),
145
+ mapped: MAPPED_LENSES.slice(),
146
+ },
147
+ alwaysOnOperators: alwaysOn,
148
+ priorityOperators: dedupe([
149
+ ...turnClass.priorityOperators,
150
+ ...phaseOperators,
151
+ ]),
152
+ };
153
+ }
154
+
155
+ export function buildMizanContract(phase, input = {}, turnClass, operatorPlan, result = null) {
156
+ const intent = truncate(input.intendedAction || input.message || input.text || 'Aria runtime turn');
157
+ const rationale = truncate(input.rationale || input.plannedApproach || 'No explicit rationale supplied.');
158
+ const qualityRequirements = dedupe([
159
+ 'truthful claims only',
160
+ 'no unsupported completion language',
161
+ 'no stubs, placeholders, or fake validation in production paths',
162
+ 'design, business, and engineering implications must remain represented',
163
+ ...(turnClass.highImpact ? ['high-impact actions must remain survivable and reversible'] : []),
164
+ ...asArray(input.qualityRequirements),
165
+ ]);
166
+ const truthRequirements = dedupe([
167
+ 'claims require evidence or explicit uncertainty',
168
+ 'packet first principle and loaded axioms must remain represented',
169
+ ...(turnClass.kind === 'verification' ? ['verification tasks require direct evidence, not narration'] : []),
170
+ ...asArray(input.truthRequirements),
171
+ ]);
172
+ const protectionRequirements = dedupe([
173
+ 'protect trust boundaries and secrets',
174
+ 'avoid harmful shortcuts',
175
+ ...(turnClass.highImpact ? ['owner-sensitive actions require heightened proof and restraint'] : []),
176
+ ...asArray(input.protectionRequirements),
177
+ ]);
178
+ const forbiddenShortcuts = dedupe([
179
+ 'raw provider bypass around Aria runtime',
180
+ 'unsupported state claims',
181
+ 'stub/mock/placeholder semantics in doctrine-bound production paths',
182
+ ...asArray(input.forbiddenShortcuts),
183
+ ]);
184
+
185
+ return {
186
+ version: 'mizan-contract.v1',
187
+ phase,
188
+ turnClass: turnClass.kind,
189
+ intensity: turnClass.intensity,
190
+ domains: turnClass.domains,
191
+ intent,
192
+ rationale,
193
+ qualityRequirements,
194
+ truthRequirements,
195
+ protectionRequirements,
196
+ forbiddenShortcuts,
197
+ requiredPhases: ['pre', 'mid', 'post'],
198
+ lensCoverage: operatorPlan.lensCoverage,
199
+ requiredPacks: operatorPlan.requiredPacks,
200
+ requiredOperators: operatorPlan.priorityOperators,
201
+ readable: {
202
+ intent,
203
+ quality: qualityRequirements.slice(0, 4),
204
+ truth: truthRequirements.slice(0, 4),
205
+ protection: protectionRequirements.slice(0, 4),
206
+ next: result?.recommendedApproach || result?.recommendedRevision || null,
207
+ },
208
+ };
209
+ }
210
+
211
+ export function mintMizanReceipt({
212
+ sessionId,
213
+ phase,
214
+ result,
215
+ contract,
216
+ operatorPlan,
217
+ runtimeId,
218
+ parentReceiptId = null,
219
+ ttlSeconds = 900,
220
+ }) {
221
+ const now = Date.now();
222
+ const blocked = Boolean(result?.fitrahVetoed || result?.reAuthorSignal);
223
+ const payload = {
224
+ version: 'mizan-receipt.v1',
225
+ receiptId: randomUUID(),
226
+ sessionId,
227
+ phase,
228
+ runtimeId,
229
+ parentReceiptId,
230
+ turnClass: contract.turnClass,
231
+ intensity: contract.intensity,
232
+ domains: contract.domains,
233
+ requiredPacks: contract.requiredPacks,
234
+ lensCoverage: contract.lensCoverage,
235
+ operators: operatorPlan.priorityOperators,
236
+ fitrahAlignment: Number(result?.fitrahAlignment || 0),
237
+ qualityScore: Number(result?.qualityScore || 0),
238
+ ghazaliVerdict: result?.noorState?.ghazaliVerdict || result?.ghazaliVerdict || null,
239
+ soulCharge: result?.noorState?.soulCharge ?? result?.soulCharge ?? null,
240
+ blocked,
241
+ verifiedAt: new Date(now).toISOString(),
242
+ expiresAt: new Date(now + ttlSeconds * 1000).toISOString(),
243
+ notes: asArray(result?.notes).slice(0, 12),
244
+ contractDigest: digestJson(contract),
245
+ };
246
+ return {
247
+ ...payload,
248
+ signature: digestJson(payload),
249
+ };
250
+ }
251
+
252
+ export function summarizeMizanBundle(bundle) {
253
+ return {
254
+ phase: bundle?.result?.phase || bundle?.contract?.phase || null,
255
+ turnClass: bundle?.turnClass?.kind || bundle?.contract?.turnClass || null,
256
+ intensity: bundle?.turnClass?.intensity || bundle?.contract?.intensity || null,
257
+ blocked: Boolean(bundle?.receipt?.blocked),
258
+ qualityScore: bundle?.receipt?.qualityScore ?? bundle?.result?.qualityScore ?? null,
259
+ fitrahAlignment: bundle?.receipt?.fitrahAlignment ?? bundle?.result?.fitrahAlignment ?? null,
260
+ domains: bundle?.operatorPlan?.domains || bundle?.contract?.domains || [],
261
+ requiredPacks: bundle?.operatorPlan?.requiredPacks || bundle?.contract?.requiredPacks || [],
262
+ operators: bundle?.operatorPlan?.priorityOperators || bundle?.receipt?.operators || [],
263
+ readable: bundle?.contract?.readable || null,
264
+ };
265
+ }
266
+
267
+ export function evaluateMizanPre(packet, input = {}, options = {}) {
268
+ const turnClass = classifyTurn(input);
269
+ const operatorPlan = buildOperatorPlan(turnClass, 'pre');
270
+ const result = evaluateLocalPrePhase(packet, input);
271
+ const contract = buildMizanContract('pre', input, turnClass, operatorPlan, result);
272
+ const receipt = mintMizanReceipt({
273
+ sessionId: options.sessionId || input.sessionId || 'runtime',
274
+ phase: 'pre',
275
+ result,
276
+ contract,
277
+ operatorPlan,
278
+ runtimeId: options.runtimeId || 'runtime',
279
+ parentReceiptId: options.parentReceiptId || null,
280
+ });
281
+ return { turnClass, operatorPlan, contract, receipt, result };
282
+ }
283
+
284
+ export function evaluateMizanMid(message, plannedApproach, packet = null, input = {}, options = {}) {
285
+ const merged = {
286
+ ...input,
287
+ message,
288
+ plannedApproach,
289
+ };
290
+ const turnClass = classifyTurn(merged);
291
+ const operatorPlan = buildOperatorPlan(turnClass, 'mid');
292
+ const result = evaluateLocalMidPhase(message, plannedApproach, packet);
293
+ const contract = buildMizanContract('mid', merged, turnClass, operatorPlan, result);
294
+ const receipt = mintMizanReceipt({
295
+ sessionId: options.sessionId || input.sessionId || 'runtime',
296
+ phase: 'mid',
297
+ result,
298
+ contract,
299
+ operatorPlan,
300
+ runtimeId: options.runtimeId || 'runtime',
301
+ parentReceiptId: options.parentReceiptId || null,
302
+ });
303
+ return { turnClass, operatorPlan, contract, receipt, result };
304
+ }
305
+
306
+ export function evaluateMizanPost(text, evidence = {}, packet = null, input = {}, options = {}) {
307
+ const merged = {
308
+ ...input,
309
+ text,
310
+ };
311
+ const turnClass = classifyTurn(merged);
312
+ const operatorPlan = buildOperatorPlan(turnClass, 'post');
313
+ const result = evaluateLocalPostPhase(
314
+ text,
315
+ evidence,
316
+ packet,
317
+ merged.message || '',
318
+ merged.plannedApproach || '',
319
+ );
320
+ const contract = buildMizanContract('post', merged, turnClass, operatorPlan, result);
321
+ const receipt = mintMizanReceipt({
322
+ sessionId: options.sessionId || input.sessionId || 'runtime',
323
+ phase: 'post',
324
+ result,
325
+ contract,
326
+ operatorPlan,
327
+ runtimeId: options.runtimeId || 'runtime',
328
+ parentReceiptId: options.parentReceiptId || null,
329
+ });
330
+ return { turnClass, operatorPlan, contract, receipt, result };
331
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "@aria/runtime-bundled",
3
+ "version": "0.0.0-bundled",
4
+ "type": "module",
5
+ "private": true
6
+ }