@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,477 @@
1
+ export interface HarnessClientConfig {
2
+ baseUrl: string;
3
+ apiKey: string;
4
+ harnessPacketUrl?: string;
5
+ workspaceRoot?: string;
6
+ }
7
+ export interface OwnerTier {
8
+ hamza: boolean;
9
+ trustedExec: boolean;
10
+ roleProfile: string;
11
+ }
12
+ /** Handoff JSON written before a sub-agent spawns. Matches ~/.claude/aria-agent-harness-handoff.json shape. */
13
+ export interface Handoff {
14
+ writtenAt: string;
15
+ parentSessionId: string;
16
+ harnessToken: string;
17
+ harnessUrl: string;
18
+ ownerTier: OwnerTier;
19
+ parentLedgerPath: string;
20
+ ttlMs: number;
21
+ /** Path to the harness packet JSON written alongside the handoff for sub-agent cognition bootstrap. */
22
+ harnessPacketPath?: string;
23
+ }
24
+ export interface SpawnSubAgentArgs {
25
+ /** What the sub-agent is being asked to do — recorded in the handoff for traceability. */
26
+ purpose: string;
27
+ /** List of tool/action names the sub-agent is permitted to call. Informational only — enforcement is harness-side. */
28
+ allowedActions?: string[];
29
+ /** Optional defect context (e.g. bug text) to record alongside the handoff. */
30
+ defectContext?: string;
31
+ /** Override the JTI used for per-tenant path derivation. Required for client-tier callers. */
32
+ jti?: string;
33
+ /** Current session ID — used to derive the parent ledger path. */
34
+ sessionId: string;
35
+ }
36
+ export interface HarnessPacket {
37
+ packet: Record<string, unknown>;
38
+ timestamp: string;
39
+ version: string;
40
+ }
41
+ export interface PlanDoc {
42
+ title: string;
43
+ content?: string;
44
+ path?: string;
45
+ references?: string[];
46
+ }
47
+ export interface PlanResponse {
48
+ ok: boolean;
49
+ docs: PlanDoc[];
50
+ files: string[];
51
+ task: string;
52
+ reasoning: string;
53
+ }
54
+ export interface HarnessPlan {
55
+ response: PlanResponse | null;
56
+ docs: PlanDoc[];
57
+ files: string[];
58
+ task?: string;
59
+ }
60
+ export interface HarnessInjection {
61
+ harness: HarnessPacket;
62
+ docs: PlanDoc[];
63
+ files: Record<string, string>;
64
+ task: string;
65
+ loadedAt: string;
66
+ aegisLearnings?: {
67
+ avoidPatterns: string[];
68
+ successPatterns: string[];
69
+ recentPatterns: Array<{
70
+ name: string;
71
+ category: string;
72
+ outcome: string;
73
+ lesson: string;
74
+ }>;
75
+ decisionCount: number;
76
+ reflectionCount: number;
77
+ };
78
+ }
79
+ export interface HarnessBindingContext {
80
+ role: string;
81
+ sessionId: string;
82
+ stage: string;
83
+ intendedAction: string;
84
+ rationale: string;
85
+ correlationId?: string;
86
+ message?: string;
87
+ userId?: string;
88
+ userName?: string;
89
+ platform?: string;
90
+ roleProfile?: string;
91
+ currentIssue?: string;
92
+ linearIssueId?: string;
93
+ linearIssueUrl?: string;
94
+ linearState?: string;
95
+ workingDirectory?: string;
96
+ filesTouched?: string[];
97
+ recentProgress?: string[];
98
+ openRisks?: string[];
99
+ nextActions?: string[];
100
+ checkpoint?: Record<string, unknown>;
101
+ requireGarden?: boolean;
102
+ researchMode?: 'single-source' | 'multi-source';
103
+ includeAegisLearnings?: boolean;
104
+ extraBody?: Record<string, unknown>;
105
+ }
106
+ export interface BoundHarnessPromptResult {
107
+ prompt: string;
108
+ packet: HarnessPacket;
109
+ harnessText: string;
110
+ bindingBody: Record<string, unknown>;
111
+ }
112
+ export interface RecordDiscoveryArgs {
113
+ /** Finding text (min 4 chars). */
114
+ text: string;
115
+ kind?: 'observation' | 'defect' | 'principle' | 'risk' | 'fix-recipe' | string;
116
+ refs?: string[];
117
+ evidence?: string | null;
118
+ resolution_status?: 'open' | 'resolved' | 'failed' | 'partial' | 'needs-human';
119
+ source?: string;
120
+ /** Sub-agent's own session ID. If omitted, derived from handoff parentSessionId + "-sub". */
121
+ sessionId?: string;
122
+ /** Client-tier JTI. If omitted, tier is detected from ~/.aria/license.json. */
123
+ jti?: string;
124
+ }
125
+ export interface RecordDiscoveryResult {
126
+ ok: boolean;
127
+ ledger: string;
128
+ at: string;
129
+ error?: string;
130
+ }
131
+ export interface VerifyClaimArgs {
132
+ claim: string;
133
+ evidence: string | null;
134
+ sessionId: string;
135
+ turnId?: string;
136
+ source?: 'pre-text-gate' | 'manual' | 'sub-agent';
137
+ context?: Record<string, unknown>;
138
+ }
139
+ export interface VerifyClaimResult {
140
+ ok: boolean;
141
+ verdict: 'grounded' | 'ungrounded' | 'partially-grounded';
142
+ evidenceRefs: string[];
143
+ storedAt?: string;
144
+ cognitionCorpusId?: string;
145
+ error?: string;
146
+ }
147
+ export interface ValidationResult {
148
+ passed: boolean;
149
+ violations: string[];
150
+ severity: 'pass' | 'warn' | 'block';
151
+ rewritten?: string;
152
+ gateTriggers: string[];
153
+ }
154
+ export interface ActionCheck {
155
+ allowed: boolean;
156
+ reason?: string;
157
+ requiredGates: string[];
158
+ }
159
+ /**
160
+ * Result shape for all three Aristotle phases.
161
+ * Mirrors `AristotleNoorWireResult` in aria-connector's aristotle-noor-wire.ts.
162
+ * The SDK does NOT import server-side modules (db pool, NoorCore) — all data
163
+ * arrives via the harness HTTP route `POST /api/harness/aristotle-noor`.
164
+ */
165
+ export interface AristotlePhaseResult {
166
+ /** Names of cognitive primitives that fired during this phase. */
167
+ fired: string[];
168
+ /** Fitrah hard-gate verdict — if true, the caller MUST emit an honest refusal. */
169
+ fitrahVetoed: boolean;
170
+ /** Fitrah alignment score 0–1. */
171
+ fitrahAlignment: number;
172
+ /** 8-lens + quality-gate score 0–100 (AFTER phase only; 100 for PRE/MID). */
173
+ qualityScore: number;
174
+ /** True when 8-lens gate detected violations — caller should surface re-author signal. */
175
+ reAuthorSignal: boolean;
176
+ /** Human-readable notes from each primitive (warnings, skips, etc.). */
177
+ notes: string[];
178
+ /** Noor soul-charge scalar (null if manifold not initialized on this call). */
179
+ soulCharge: number | null;
180
+ /** Noor manifold drift status string ('aligned'|'stable'|'drifting'|null). */
181
+ soulManifoldStatus: string | null;
182
+ /** Ghazali 8-lens verdict string from Noor principle eigenspace ('aligned'|'caution'|'violation'|null). */
183
+ ghazaliVerdict: string | null;
184
+ /** Wall-clock latency measured by the harness route (ms). */
185
+ latencyMs: number;
186
+ /** True when the dispatch reached the harness; false on transport fault (result is fail-open default). */
187
+ dispatched: boolean;
188
+ }
189
+ /**
190
+ * Result shape for Noor eigenspace recognition.
191
+ * Maps to the `RecognitionResult` + `NoorResponse` shape in noor-core.ts.
192
+ */
193
+ export interface NoorRecognitionResult {
194
+ /** Nearest recognized response text from Aria's response library. */
195
+ nearestText: string;
196
+ /** Soul distance from manifold centroid (cosine). */
197
+ soulDistance: number;
198
+ /** Confidence in the recognition (0–1). */
199
+ confidence: number;
200
+ /** Whether the input is within the ethical membrane ∂E. */
201
+ withinMembrane: boolean;
202
+ /** Current soul charge Q. */
203
+ soulCharge: number;
204
+ /** Top projection components (eigenvector label + weight pairs). */
205
+ projectionComponents: Array<{
206
+ eigenvector: string;
207
+ weight: number;
208
+ }>;
209
+ /** Ghazali 8-lens verdict from principle eigenspace, if available. */
210
+ ghazaliVerdict: string | null;
211
+ /** Manifold drift status. */
212
+ manifoldHealth: {
213
+ charge: number;
214
+ drift: string;
215
+ coherence: number;
216
+ } | null;
217
+ /** True when the dispatch reached the harness. */
218
+ dispatched: boolean;
219
+ /** Wall-clock latency (ms). */
220
+ latencyMs: number;
221
+ }
222
+ /**
223
+ * Forge primitive descriptor.
224
+ * Mirrors the `Primitive` type in noor-forge.ts.
225
+ */
226
+ export interface NoorForgePrimitive {
227
+ type: 'http' | 'sql' | 'file_read' | 'file_write' | 'pub_sub';
228
+ params: Record<string, unknown>;
229
+ }
230
+ /**
231
+ * Result shape for a Noor Forge operation.
232
+ * Maps to `ForgeResult` in noor-forge.ts.
233
+ */
234
+ export interface NoorForgeResult {
235
+ /** Whether all primitives in the chain executed successfully. */
236
+ success: boolean;
237
+ /** Name of the forged tool (slug derived from intent purpose). */
238
+ toolName: string;
239
+ /** Whether the intent passed the ethical membrane alignment check. */
240
+ ethicallyApproved: boolean;
241
+ /** Wall-clock latency for the full primitive chain (ms). */
242
+ totalDurationMs: number;
243
+ /** Per-primitive execution results. */
244
+ results: Array<{
245
+ type: string;
246
+ success: boolean;
247
+ data: unknown;
248
+ error?: string;
249
+ durationMs: number;
250
+ }>;
251
+ /** True when the dispatch reached the harness. */
252
+ dispatched: boolean;
253
+ }
254
+ export declare class HTTPHarnessClient {
255
+ private static instance;
256
+ private readonly baseUrl;
257
+ private readonly apiKey;
258
+ private readonly harnessPacketUrl;
259
+ private readonly workspaceRoot;
260
+ private cachedPacket;
261
+ private packetLastFetched;
262
+ private readonly packetTtlMs;
263
+ constructor(config: HarnessClientConfig);
264
+ private extractHarnessText;
265
+ private normalizePlanDocs;
266
+ private collectPlanFilePaths;
267
+ private loadFilesByPath;
268
+ private buildHarnessInjection;
269
+ private buildHarnessBindingBody;
270
+ private _tryLoadDiskPacket;
271
+ static getInstance(config?: HarnessClientConfig): HTTPHarnessClient;
272
+ static resetInstance(): void;
273
+ private fetchHarnessPacket;
274
+ inject(plan: HarnessPlan): Promise<HarnessInjection>;
275
+ getHarnessPacket(bodyOverride?: Record<string, unknown>): Promise<HarnessPacket>;
276
+ getBoundHarnessAndPrompt(context: HarnessBindingContext, plan?: Partial<HarnessPlan>): Promise<BoundHarnessPromptResult>;
277
+ getAegisLearnings(limit?: number): Promise<{
278
+ avoidPatterns: string[];
279
+ successPatterns: string[];
280
+ recentPatterns: Array<{
281
+ name: string;
282
+ category: string;
283
+ outcome: string;
284
+ lesson: string;
285
+ }>;
286
+ decisionCount: number;
287
+ reflectionCount: number;
288
+ } | null>;
289
+ buildSystemPrompt(injection: HarnessInjection): string;
290
+ get8LensBlock(): string;
291
+ validateOutput(text: string, sessionId: string): Promise<ValidationResult>;
292
+ checkAction(action: 'deploy' | 'build' | 'write' | 'delete', target: string): Promise<ActionCheck>;
293
+ gardenTurn(sessionId: string, message: string, response: string, userId?: string): Promise<void>;
294
+ consult(args: {
295
+ brief: string;
296
+ sessionId: string;
297
+ userId?: string;
298
+ roleProfile?: string;
299
+ expectStructuredOutput?: boolean;
300
+ model?: string;
301
+ isCreativeMode?: boolean;
302
+ internalConsult?: boolean;
303
+ }): Promise<{
304
+ response: string;
305
+ metadata?: Record<string, unknown>;
306
+ }>;
307
+ consultWithTools(args: {
308
+ brief: string;
309
+ sessionId: string;
310
+ userId?: string;
311
+ model?: string;
312
+ tools: Array<{
313
+ name: string;
314
+ description: string;
315
+ argsSchema?: string;
316
+ }>;
317
+ executor: (toolName: string, toolArgs: Record<string, unknown>) => Promise<string>;
318
+ maxIterations?: number;
319
+ }): Promise<{
320
+ finalText: string;
321
+ toolCalls: Array<{
322
+ name: string;
323
+ args: Record<string, unknown>;
324
+ result: string;
325
+ }>;
326
+ iterations: number;
327
+ }>;
328
+ spawnSubAgent(args: SpawnSubAgentArgs): Promise<Handoff>;
329
+ /**
330
+ * Returns the environment variables to set for a spawned sub-agent process
331
+ * so it inherits the parent's harness packet without an extra HTTP call.
332
+ * Call after spawnSubAgent() — uses the returned handoff.harnessPacketPath.
333
+ *
334
+ * Usage:
335
+ * const handoff = await sdk.spawnSubAgent(args);
336
+ * const env = sdk.subAgentEnv(handoff);
337
+ * // pass env to your process spawn / Agent tool env block
338
+ */
339
+ subAgentEnv(handoff: Handoff): Record<string, string>;
340
+ /** Pulls sub-agent ledger entries newer than the handoff timestamp and appends
341
+ * them to the parent ledger, deduplicating by `text` prefix (first 100 chars). */
342
+ mergeSubAgentLedger(parentSessionId: string, _subAgentSessionId?: string, jti?: string): Promise<{
343
+ merged: number;
344
+ skipped: number;
345
+ }>;
346
+ recordDiscovery(args: RecordDiscoveryArgs): Promise<RecordDiscoveryResult>;
347
+ verifyClaim(args: VerifyClaimArgs): Promise<VerifyClaimResult>;
348
+ postJson<T = unknown>(url: string, body: unknown, extraHeaders?: Record<string, string>): Promise<{
349
+ ok: true;
350
+ status: number;
351
+ data: T;
352
+ } | {
353
+ ok: false;
354
+ status: number;
355
+ errorBody: string;
356
+ }>;
357
+ /**
358
+ * ARISTOTLE PRE-PHASE
359
+ * Fires before an LLM call or tool action. Runs: Fitrah hard-gate,
360
+ * wisdom pull (principles + decisions), research pull, DeepSoulBridge,
361
+ * and CleanCognition substrate check.
362
+ *
363
+ * Throws on transport-level failures per feedback_non_blocking_errors_unacceptable.md.
364
+ * If Fitrah vetoes, result.fitrahVetoed === true — caller MUST emit a refusal,
365
+ * not silently continue.
366
+ *
367
+ * @param message The user message or intent string being processed.
368
+ * @param sessionId Session ID for telemetry + hive routing.
369
+ * @param context Optional context overrides (userId, isHamza, tier, etc.).
370
+ */
371
+ aristotlePre(message: string, sessionId: string, context?: {
372
+ userId?: string;
373
+ isHamza?: boolean;
374
+ isGroupChat?: boolean;
375
+ tier?: string;
376
+ }): Promise<AristotlePhaseResult>;
377
+ /**
378
+ * ARISTOTLE MID-PHASE
379
+ * Fires after context is built but before the LLM call. Runs: MetaCognitive
380
+ * confidence snapshot and ethical keyword check on the planned approach.
381
+ *
382
+ * @param message Original user message.
383
+ * @param sessionId Session ID.
384
+ * @param plannedApproach The drafted approach / plan string for mid-flight check.
385
+ * @param context Optional context overrides.
386
+ */
387
+ aristotleMid(message: string, sessionId: string, plannedApproach: string, context?: {
388
+ userId?: string;
389
+ tier?: string;
390
+ }): Promise<AristotlePhaseResult>;
391
+ /**
392
+ * ARISTOTLE POST-PHASE
393
+ * Fires after the LLM response, before emission. Runs: 8-Lens Detector,
394
+ * Predictor, SelfReflection (on high-stakes turns), and quality scoring.
395
+ *
396
+ * If result.reAuthorSignal === true, the response has 8-lens violations —
397
+ * per doctrine the caller MUST surface the signal, never silently strip.
398
+ *
399
+ * @param message Original user message.
400
+ * @param response The LLM-generated response to gate.
401
+ * @param sessionId Session ID.
402
+ * @param context Optional context overrides (tier, isFirstOfSession).
403
+ */
404
+ aristotlePost(message: string, response: string, sessionId: string, context?: {
405
+ userId?: string;
406
+ tier?: string;
407
+ isFirstOfSession?: boolean;
408
+ }): Promise<AristotlePhaseResult>;
409
+ /**
410
+ * NOOR RECOGNIZE (Kashf — eigenspace recognition, not generation)
411
+ * Projects the query string (via harness-side embedding) onto Aria's
412
+ * eigenspace manifold and returns the nearest recognized response + soul
413
+ * distance + ethical membrane status + Ghazali 8-lens verdict.
414
+ *
415
+ * The harness routes the query through the manifold service (gRPC) if
416
+ * NOOR_EIGENSPACE_SOURCE=manifold, otherwise uses local eigenspace.
417
+ *
418
+ * @param query The input string to recognize on the manifold.
419
+ * @param context Optional context (sessionId, userId) for telemetry.
420
+ */
421
+ noorRecognize(query: string, context?: {
422
+ sessionId?: string;
423
+ userId?: string;
424
+ }): Promise<NoorRecognitionResult>;
425
+ /**
426
+ * NOOR FORGE — self-generated tool invocation via 5 primitives
427
+ * Composes a named primitive chain (http, sql, file_read, file_write, pub_sub)
428
+ * and executes it through the harness-side NoorForge engine. The harness
429
+ * applies the ethical membrane check (checkEthicalAlignment) before any
430
+ * primitive fires — rejected intents return success=false, ethicallyApproved=false.
431
+ *
432
+ * @param intent Description of what the forged tool should accomplish.
433
+ * @param primitives Ordered list of primitive descriptors to execute in sequence.
434
+ * @param context Optional context for telemetry.
435
+ */
436
+ noorForge(intent: string, primitives: NoorForgePrimitive[], context?: {
437
+ sessionId?: string;
438
+ userId?: string;
439
+ }): Promise<NoorForgeResult>;
440
+ /**
441
+ * Harness consult with Aristotle 3-phase wrapping.
442
+ *
443
+ * Flow:
444
+ * 1. aristotlePre() — Fitrah gate, wisdom, research, soul state
445
+ * 2. getBoundHarnessAndPrompt() — packet + system prompt
446
+ * 3. aristotleMid() — MetaCognitive + ethical check (if plannedApproach provided)
447
+ * 4. [caller calls LLM with the returned prompt]
448
+ * 5. Call aristotlePost() from the caller with the LLM response
449
+ * (post-phase is caller-side because the SDK doesn't own the LLM call)
450
+ *
451
+ * Returns the BoundHarnessPromptResult augmented with the pre-phase result.
452
+ * If Fitrah vetoes, throws — the caller must handle the veto (emit refusal).
453
+ *
454
+ * @param context HarnessBindingContext (same shape as getBoundHarnessAndPrompt).
455
+ * @param plan Optional plan docs / files (same shape as getBoundHarnessAndPrompt).
456
+ * @param options Aristotle control options.
457
+ * @param options.aristotleEnabled Whether Aristotle fires. Default true for this method.
458
+ * @param options.plannedApproach Optional planned approach string — activates mid-phase.
459
+ * @param options.tier Tier hint for Aristotle ('owner'|'client'|etc.).
460
+ */
461
+ getBoundHarnessAndPromptWithAristotle(context: HarnessBindingContext, plan?: Partial<HarnessPlan>, options?: {
462
+ aristotleEnabled?: boolean;
463
+ plannedApproach?: string;
464
+ tier?: string;
465
+ }): Promise<BoundHarnessPromptResult & {
466
+ aristotlePre: AristotlePhaseResult | null;
467
+ aristotleMid: AristotlePhaseResult | null;
468
+ }>;
469
+ private fetchWithRetry;
470
+ }
471
+ export declare const harness: {
472
+ getInstance: typeof HTTPHarnessClient.getInstance;
473
+ resetInstance: typeof HTTPHarnessClient.resetInstance;
474
+ };
475
+ export declare function bindingContext(role: string, sessionId: string, stage: string, intendedAction: string, rationale: string): HarnessBindingContext;
476
+ export declare function getBoundHarnessAndPrompt(context: HarnessBindingContext, plan?: Partial<HarnessPlan>, client?: HTTPHarnessClient): Promise<BoundHarnessPromptResult>;
477
+ export * from './runWithCognition.js';