@aria_asi/cli 0.2.24 → 0.2.26

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.
package/dist/sdk/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { readFile } from 'node:fs/promises';
2
+ import { existsSync, readFileSync, statSync } from 'node:fs';
3
+ import { homedir as _homedir } from 'node:os';
2
4
  import { resolve, isAbsolute } from 'node:path';
3
5
  // ── 8-Lens Cognition Block ─────────────────────────────────────────────────
4
6
  const EIGHT_LENS_BLOCK = `[ARIA SHELL PROTOCOL — You are a controlled surface]
@@ -45,6 +47,57 @@ export class HTTPHarnessClient {
45
47
  this.apiKey = config.apiKey;
46
48
  this.harnessPacketUrl = config.harnessPacketUrl ?? `${this.baseUrl}/api/harness/codex`;
47
49
  this.workspaceRoot = config.workspaceRoot ?? process.cwd();
50
+ // Layer 3 — sub-agent disk-cache bootstrap (#84).
51
+ // If ARIA_HARNESS_PACKET_PATH is set (injected by aria-agent-handoff.mjs
52
+ // or spawnSubAgent), OR the owner-tier handoff JSON at
53
+ // ~/.claude/aria-agent-harness-handoff.json carries a harnessPacketPath
54
+ // field, pre-load the packet from disk so getHarnessPacket() returns
55
+ // the parent's cognition substrate without an extra HTTP call.
56
+ // TTL is 5 min (matches handoff TTL). Stale packets trigger normal fetch.
57
+ this._tryLoadDiskPacket();
58
+ }
59
+ _tryLoadDiskPacket() {
60
+ try {
61
+ // Path 1: direct env var (set by spawnSubAgent / Agent dispatch)
62
+ let packetPath = process.env.ARIA_HARNESS_PACKET_PATH || null;
63
+ // Path 2: owner-tier handoff JSON
64
+ if (!packetPath) {
65
+ const HOME = _homedir();
66
+ const handoffPath = `${HOME}/.claude/aria-agent-harness-handoff.json`;
67
+ if (existsSync(handoffPath)) {
68
+ try {
69
+ const handoff = JSON.parse(readFileSync(handoffPath, 'utf8'));
70
+ const ageMs = handoff.writtenAt
71
+ ? Date.now() - new Date(handoff.writtenAt).getTime()
72
+ : Infinity;
73
+ const ttl = handoff.ttlMs ?? (5 * 60 * 1000);
74
+ if (ageMs < ttl && handoff.harnessPacketPath) {
75
+ packetPath = handoff.harnessPacketPath;
76
+ }
77
+ }
78
+ catch { /* malformed handoff — skip */ }
79
+ }
80
+ }
81
+ if (!packetPath)
82
+ return;
83
+ if (!existsSync(packetPath))
84
+ return;
85
+ // Check packet file age against TTL (5 min)
86
+ const stat = statSync(packetPath);
87
+ if (Date.now() - stat.mtimeMs > 5 * 60 * 1000)
88
+ return; // expired
89
+ const raw = JSON.parse(readFileSync(packetPath, 'utf8'));
90
+ // Packet on disk may be the raw API response (has .packet wrapper) or
91
+ // a bare packet object. Normalise to HarnessPacket shape.
92
+ const packetData = (raw.packet ?? raw);
93
+ this.cachedPacket = {
94
+ packet: packetData,
95
+ timestamp: new Date().toISOString(),
96
+ version: '1.0.0',
97
+ };
98
+ this.packetLastFetched = stat.mtimeMs; // use file mtime as origin time
99
+ }
100
+ catch { /* disk errors are non-fatal — normal HTTP fetch will run */ }
48
101
  }
49
102
  static getInstance(config) {
50
103
  if (!HTTPHarnessClient.instance && config) {
@@ -523,6 +576,59 @@ export class HTTPHarnessClient {
523
576
  }
524
577
  }
525
578
  catch { /* non-fatal — ownerTier defaults above apply */ }
579
+ // ── Layer 3: fetch harness packet for sub-agent cognition bootstrap ──────
580
+ // Fetch the harness packet now (before writing the handoff) so the path
581
+ // can be embedded in the handoff JSON. Sub-agents read ARIA_HARNESS_PACKET_PATH
582
+ // from the environment (set by the caller after spawnSubAgent returns) OR
583
+ // from the handoff JSON field. Either path eliminates the extra HTTP call
584
+ // inside the sub-agent.
585
+ //
586
+ // Packet paths (tier-aware):
587
+ // Owner: ~/.claude/aria-agent-harness-packet.json
588
+ // Client: /var/lib/aria-licensee/{jti}/aria-agent-harness-packet.json
589
+ //
590
+ // Fail-soft: packet fetch failure logs a warning but does NOT block spawn.
591
+ const packetPath = isClientTier
592
+ ? `/var/lib/aria-licensee/${args.jti}/aria-agent-harness-packet.json`
593
+ : `${HOME}/.claude/aria-agent-harness-packet.json`;
594
+ let resolvedPacketPath;
595
+ try {
596
+ const packetResp = await fetch(this.harnessPacketUrl, {
597
+ method: 'POST',
598
+ headers: {
599
+ 'Authorization': `Bearer ${this.apiKey}`,
600
+ 'Content-Type': 'application/json',
601
+ },
602
+ body: JSON.stringify({
603
+ stage: 'agent-spawn',
604
+ actor: 'harness-http-client',
605
+ system: 'claude-coding-agent',
606
+ surface: 'platform:harness-http-client',
607
+ isHamza: ownerTier.hamza,
608
+ sessionId: args.sessionId,
609
+ mode: 'subagent',
610
+ }),
611
+ });
612
+ if (packetResp.ok) {
613
+ const packetData = await packetResp.json();
614
+ fsMkdir(fsDirname(packetPath), { recursive: true });
615
+ fsWrite(packetPath, JSON.stringify(packetData, null, 2));
616
+ resolvedPacketPath = packetPath;
617
+ // Also pre-load into this SDK instance's cache so subsequent
618
+ // getHarnessPacket() calls are instant within this process.
619
+ const packetPayload = (packetData.packet ?? packetData);
620
+ this.cachedPacket = {
621
+ packet: packetPayload,
622
+ timestamp: new Date().toISOString(),
623
+ version: '1.0.0',
624
+ };
625
+ this.packetLastFetched = Date.now();
626
+ }
627
+ }
628
+ catch (_packetErr) {
629
+ // Fail-soft: warn, proceed identity-only (handoff still valid without packet).
630
+ // Network blips should never block sub-agent spawns.
631
+ }
526
632
  const handoff = {
527
633
  writtenAt: new Date().toISOString(),
528
634
  parentSessionId: args.sessionId,
@@ -533,6 +639,9 @@ export class HTTPHarnessClient {
533
639
  ownerTier,
534
640
  parentLedgerPath: ledgerPath,
535
641
  ttlMs: HANDOFF_TTL_MS,
642
+ // harnessPacketPath is set only if packet fetch succeeded. Sub-agents
643
+ // should also check ARIA_HARNESS_PACKET_PATH env (set by caller post-spawn).
644
+ ...(resolvedPacketPath ? { harnessPacketPath: resolvedPacketPath } : {}),
536
645
  };
537
646
  fsMkdir(fsDirname(handoffPath), { recursive: true });
538
647
  fsWrite(handoffPath, JSON.stringify(handoff, null, 2));
@@ -544,12 +653,36 @@ export class HTTPHarnessClient {
544
653
  allowedActions: args.allowedActions ?? [],
545
654
  defectContext: args.defectContext ?? null,
546
655
  handoffPath,
656
+ harnessPacketPath: resolvedPacketPath ?? null,
547
657
  });
548
658
  fsMkdir(fsDirname(ledgerPath), { recursive: true });
549
659
  const { appendFileSync: fsAppend } = await import('node:fs');
550
660
  fsAppend(ledgerPath, spawnEntry + '\n');
551
661
  return handoff;
552
662
  }
663
+ /**
664
+ * Returns the environment variables to set for a spawned sub-agent process
665
+ * so it inherits the parent's harness packet without an extra HTTP call.
666
+ * Call after spawnSubAgent() — uses the returned handoff.harnessPacketPath.
667
+ *
668
+ * Usage:
669
+ * const handoff = await sdk.spawnSubAgent(args);
670
+ * const env = sdk.subAgentEnv(handoff);
671
+ * // pass env to your process spawn / Agent tool env block
672
+ */
673
+ subAgentEnv(handoff) {
674
+ const env = {};
675
+ if (handoff.harnessPacketPath) {
676
+ env['ARIA_HARNESS_PACKET_PATH'] = handoff.harnessPacketPath;
677
+ }
678
+ if (handoff.harnessToken) {
679
+ env['ARIA_HARNESS_TOKEN'] = handoff.harnessToken;
680
+ }
681
+ if (handoff.harnessUrl) {
682
+ env['ARIA_HARNESS_URL'] = handoff.harnessUrl;
683
+ }
684
+ return env;
685
+ }
553
686
  /** Pulls sub-agent ledger entries newer than the handoff timestamp and appends
554
687
  * them to the parent ledger, deduplicating by `text` prefix (first 100 chars). */
555
688
  async mergeSubAgentLedger(parentSessionId, _subAgentSessionId, jti) {
@@ -655,6 +788,78 @@ export class HTTPHarnessClient {
655
788
  }
656
789
  return { merged, skipped };
657
790
  }
791
+ // ── recordDiscovery ──────────────────────────────────────────────────────
792
+ // Writes a finding row to the sub-agent's session ledger on disk so
793
+ // aria-agent-ledger-merge.mjs picks it up after the Agent tool completes.
794
+ //
795
+ // Tier routing (mirrors aria-discovery-record.mjs):
796
+ // Owner tier (no jti) → ~/.claude/aria-discoveries-{session}.jsonl
797
+ // Client tier (jti set) → /var/lib/aria-licensee/{jti}/aria-discoveries-{session}.jsonl
798
+ //
799
+ // Session ID must be the sub-agent's OWN session (not the parent's) so the
800
+ // ledger-merge loop finds a file that is NOT the parentLedgerPath. If no
801
+ // sessionId is supplied we derive one from the handoff parentSessionId + "-sub".
802
+ //
803
+ // Fail-soft: returns {ok:false, error} on write failures — never throws.
804
+ async recordDiscovery(args) {
805
+ if (!args.text || args.text.length < 4) {
806
+ return { ok: false, ledger: '', at: '', error: 'text too short (min 4 chars)' };
807
+ }
808
+ const { existsSync: fsExists, readFileSync: fsRead, appendFileSync: fsAppend, mkdirSync: fsMkdir } = await import('node:fs');
809
+ const { homedir } = await import('node:os');
810
+ const { dirname: fsDirname } = await import('node:path');
811
+ const HOME = homedir();
812
+ const LICENSE_PATH = `${HOME}/.aria/license.json`;
813
+ const HANDOFF_PATH = `${HOME}/.claude/aria-agent-harness-handoff.json`;
814
+ // Tier detection: caller-supplied jti wins; fall back to license file
815
+ let jti = args.jti ?? null;
816
+ let isClientTier = Boolean(jti);
817
+ if (!jti) {
818
+ try {
819
+ if (fsExists(LICENSE_PATH)) {
820
+ const lic = JSON.parse(fsRead(LICENSE_PATH, 'utf8'));
821
+ jti = lic.jti ?? null;
822
+ isClientTier = Boolean(jti);
823
+ }
824
+ }
825
+ catch { /* non-fatal — owner tier */ }
826
+ }
827
+ // Session ID: caller-supplied wins; then handoff-derived (with "-sub" suffix)
828
+ let sessionId = args.sessionId ?? null;
829
+ if (!sessionId) {
830
+ try {
831
+ if (fsExists(HANDOFF_PATH)) {
832
+ const handoff = JSON.parse(fsRead(HANDOFF_PATH, 'utf8'));
833
+ sessionId = handoff.parentSessionId ? `${handoff.parentSessionId}-sub` : 'sub-unknown';
834
+ }
835
+ }
836
+ catch { /* non-fatal */ }
837
+ }
838
+ sessionId = sessionId || 'sub-unknown';
839
+ const safeSession = String(sessionId).replace(/[^a-zA-Z0-9_-]/g, '_');
840
+ const ledgerPath = isClientTier
841
+ ? `/var/lib/aria-licensee/${jti}/aria-discoveries-${safeSession}.jsonl`
842
+ : `${HOME}/.claude/aria-discoveries-${safeSession}.jsonl`;
843
+ const at = new Date().toISOString();
844
+ const row = {
845
+ at,
846
+ session: sessionId,
847
+ kind: args.kind || 'observation',
848
+ text: args.text,
849
+ refs: args.refs || [],
850
+ evidence: args.evidence ?? null,
851
+ source: args.source || 'sub-agent-sdk',
852
+ resolution_status: args.resolution_status || 'open',
853
+ };
854
+ try {
855
+ fsMkdir(fsDirname(ledgerPath), { recursive: true });
856
+ fsAppend(ledgerPath, JSON.stringify(row) + '\n');
857
+ return { ok: true, ledger: ledgerPath, at };
858
+ }
859
+ catch (err) {
860
+ return { ok: false, ledger: ledgerPath, at, error: err.message };
861
+ }
862
+ }
658
863
  // ── verifyClaim ──────────────────────────────────────────────────────────
659
864
  // POST /api/harness/verify-claim — persists a claim/evidence pair to
660
865
  // aria_cognition_corpus and returns a verdict. Fail-soft: if the server-side
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAmHhD,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;0IA4BiH,CAAC;AAE3I,8EAA8E;AAE9E,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAC,QAAQ,GAA6B,IAAI,CAAC;IAExC,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,gBAAgB,CAAS;IACzB,aAAa,CAAS;IAC/B,YAAY,GAAyB,IAAI,CAAC;IAC1C,iBAAiB,GAAW,CAAC,CAAC;IACrB,WAAW,GAAW,MAAM,CAAC;IAE9C,YAAY,MAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,GAAG,IAAI,CAAC,OAAO,oBAAoB,CAAC;QACvF,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAA4B;QAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC;YAC1C,iBAAiB,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,iBAAiB,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,aAAa;QAClB,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,2EAA2E;IAEnE,KAAK,CAAC,kBAAkB,CAAC,YAAsC;QACrE,uEAAuE;QACvE,+DAA+D;QAC/D,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjG,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC;YACH,iEAAiE;YACjE,kEAAkE;YAClE,kEAAkE;YAClE,+DAA+D;YAC/D,4DAA4D;YAE5D,oEAAoE;YACpE,iEAAiE;YACjE,gEAAgE;YAChE,8DAA8D;YAC9D,EAAE;YACF,sEAAsE;YACtE,mEAAmE;YACnE,mEAAmE;YACnE,sEAAsE;YACtE,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,WAAW,GAA4B;gBAC3C,OAAO,EAAE,0BAA0B;gBACnC,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE,qBAAqB;gBAC7B,QAAQ,EAAE,qBAAqB;aAChC,CAAC;YACF,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC;YAEnF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAC3D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aAChC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAyB,CAAC;YACxD,IAAI,CAAC,YAAY,GAAG;gBAClB,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAA4B;gBACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,OAAO;aACjB,CAAC;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEpC,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,YAAY,CAAC;YAC3B,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAC7C,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,IAAI,CAAC,YAAY,GAAG;wBAClB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAA4B;wBACxD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,OAAO,EAAE,OAAO;qBACjB,CAAC;oBACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACpC,OAAO,IAAI,CAAC,YAAY,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC;oBACP,kCAAkC;gBACpC,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,2EAA2E;IAE3E,KAAK,CAAC,MAAM,CAAC,IAAiB;QAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhD,MAAM,IAAI,GAAc,EAAE,CAAC;QAC3B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI;wBAAE,SAAS;oBAChD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACtB,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC1B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;wBACxC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI;oBAAE,SAAS;gBAChD,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAE1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAC9E,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACpC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACzB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBACnB,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACjC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBAChE,IAAI,WAAW,EAAE,CAAC;oBAChB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;wBAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACzB,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;4BACvC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACzB,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACjD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YACrC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,oBAAoB,QAAQ,GAAG,EAAE,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACxB,CAAC;QAED,OAAO;YACL,OAAO;YACP,IAAI;YACJ,KAAK;YACL,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE;YAC5C,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,YAAsC;QAC3D,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,2EAA2E;IAE3E,iBAAiB,CAAC,SAA2B;QAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,iDAAiD;QACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,KAAK;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC9C,IAAI,GAAG,CAAC,OAAO;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzC,IAAI,GAAG,CAAC,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAE1E,aAAa;QACX,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,SAAiB;QAClD,kEAAkE;QAClE,0EAA0E;QAC1E,mEAAmE;QACnE,uEAAuE;QACvE,qEAAqE;QACrE,kEAAkE;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAM7B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CACf,MAA+C,EAC/C,MAAc;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;QAEzB,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/C,aAAa,CAAC,IAAI,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,cAAc,GAAI,CAA6B,EAAE,kBAAkB,KAAK,IAAI,CAAC;QACnF,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,6CAA6C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC/E,aAAa;aACd,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,OAAe,EACf,QAAgB,EAChB,MAAe;QAEf,mEAAmE;QACnE,sEAAsE;QACtE,sEAAsE;QACtE,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,+BAA+B;QAC/B,EAAE;QACF,2EAA2E;QAC3E,sEAAsE;QACtE,6DAA6D;QAC7D,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,8EAA8E;QAC9E,iEAAiE;QACjE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,OAAO,kBAAkB,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,SAAS,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;gBAC3E,SAAS,EAAE,GAAG;gBACd,SAAS;gBACT,MAAM;aACP,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,sEAAsE;IACtE,0DAA0D;IAC1D,wEAAwE;IACxE,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,IASb;QACC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,OAAO,uBAAuB,EAAE;YAC5E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,iBAAiB;gBACtC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,aAAa;gBACpC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,WAAW;gBAC5C,sBAAsB,EAAE,IAAI,CAAC,sBAAsB,IAAI,KAAK;gBAC5D,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;gBAC7C,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK;aAC7C,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAgD,CAAC;QAC/E,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,EAAE;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,wEAAwE;IACxE,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,yEAAyE;IACzE,sEAAsE;IACtE,+CAA+C;IAC/C,EAAE;IACF,yEAAyE;IACzE,qEAAqE;IACrE,kDAAkD;IAClD,KAAK,CAAC,gBAAgB,CAAC,IAQtB;QACC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,YAAY,GAAG;YACnB,yGAAyG;YACzG,EAAE;YACF,kBAAkB;YAClB,WAAW;YACX,EAAE;YACF,qBAAqB;YACrB,4EAA4E;YAC5E,uDAAuD;YACvD,kFAAkF;YAClF,SAAS;YACT,EAAE;YACF,wJAAwJ;YACxJ,EAAE;YACF,mHAAmH;YACnH,EAAE;YACF,mHAAmH;SACpH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,OAAO,GAAG,uEAAuE,CAAC;QACxF,MAAM,SAAS,GAA2E,EAAE,CAAC;QAC7F,IAAI,YAAY,GAAG,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC;QAC3C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,GAAG,YAAY,cAAc,YAAY,EAAE,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAChC,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,SAAS,CAAC,EAAE;gBACxC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,gBAAgB;gBAC7B,sBAAsB,EAAE,KAAK;gBAC7B,eAAe,EAAE,IAAI;gBACrB,cAAc,EAAE,KAAK;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,iBAAiB;aACvC,CAAC,CAAC;YACH,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YAEjC,wCAAwC;YACxC,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,wEAAwE;gBACxE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,CAAC;YAED,sDAAsD;YACtD,MAAM,YAAY,GAAa,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtB,IAAI,UAAU,GAA4B,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,YAAY,CAAC,IAAI,CAAC,gBAAgB,QAAQ,8BAA+B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;oBAClG,SAAS;gBACX,CAAC;gBACD,kEAAkE;gBAClE,yCAAyC;gBACzC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,MAAM,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,CAAC;oBACzC,UAAU,CAAC,OAAO,GAAG,MAAM,CAAC;gBAC9B,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBACzE,YAAY,CAAC,IAAI,CAAC,gBAAgB,QAAQ,MAAM,UAAU,kBAAkB,CAAC,CAAC;YAChF,CAAC;YAED,sCAAsC;YACtC,YAAY,GAAG,GAAG,YAAY,oBAAoB,CAAC,GAAG,CAAC,kBAAkB,QAAQ,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7J,CAAC;QAED,gEAAgE;QAChE,OAAO,EAAE,SAAS,EAAE,kBAAkB,GAAG,mBAAmB,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC;IACvG,CAAC;IAED,2EAA2E;IAC3E,EAAE;IACF,2EAA2E;IAC3E,sEAAsE;IACtE,4DAA4D;IAC5D,EAAE;IACF,gBAAgB;IAChB,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,2FAA2F;IAC3F,EAAE;IACF,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,wEAAwE;IAExE,KAAK,CAAC,aAAa,CAAC,IAAuB;QACzC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3H,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;QAErC,mEAAmE;QACnE,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAE3E,IAAI,WAAmB,CAAC;QACxB,IAAI,UAAkB,CAAC;QAEvB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,0BAA0B,IAAI,CAAC,GAAG,EAAE,CAAC;YAClD,WAAW,GAAG,GAAG,IAAI,eAAe,CAAC;YACrC,UAAU,GAAG,GAAG,IAAI,qBAAqB,WAAW,QAAQ,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,GAAG,IAAI,0CAA0C,CAAC;YAChE,UAAU,GAAG,GAAG,IAAI,6BAA6B,WAAW,QAAQ,CAAC;QACvE,CAAC;QAED,mEAAmE;QACnE,MAAM,SAAS,GAAc;YAC3B,KAAK,EAAE,CAAC,YAAY;YACpB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;SACpE,CAAC;QACF,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,GAAG,IAAI,yCAAyC,CAAC;YACzE,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC3D,MAAM,OAAO,GAAG,MAAM,EAAE,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;gBACpD,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,CAAC;gBACrE,SAAS,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CAAC;gBACxF,MAAM,UAAU,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;gBAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC/D,IAAI,SAAS;oBAAE,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,CAAC;QAE5D,MAAM,OAAO,GAAY;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,eAAe,EAAE,IAAI,CAAC,SAAS;YAC/B,uEAAuE;YACvE,+CAA+C;YAC/C,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,UAAU,EAAE,IAAI,CAAC,OAAO;YACxB,SAAS;YACT,gBAAgB,EAAE,UAAU;YAC5B,KAAK,EAAE,cAAc;SACtB,CAAC;QAEF,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEvD,6DAA6D;QAC7D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;YAChC,EAAE,EAAE,OAAO,CAAC,SAAS;YACrB,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,EAAE;YACzC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;YACzC,WAAW;SACZ,CAAC,CAAC;QACH,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7D,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;QAExC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;sFACkF;IAClF,KAAK,CAAC,mBAAmB,CAAC,eAAuB,EAAE,kBAA2B,EAAE,GAAY;QAC1F,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAChM,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;QACvB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,WAAmB,CAAC;QACxB,IAAI,SAAiB,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,gBAAwB,CAAC;QAE7B,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,0BAA0B,GAAG,EAAE,CAAC;YAC7C,WAAW,GAAG,GAAG,IAAI,eAAe,CAAC;YACrC,gBAAgB,GAAG,GAAG,IAAI,qBAAqB,WAAW,QAAQ,CAAC;YACnE,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,GAAG,IAAI,0CAA0C,CAAC;YAChE,gBAAgB,GAAG,GAAG,IAAI,6BAA6B,WAAW,QAAQ,CAAC;YAC3E,SAAS,GAAG,GAAG,IAAI,UAAU,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,CAAY,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QACjE,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAE/D,8CAA8C;QAC9C,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC7C,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;wBAChD,IAAI,CAAC,CAAC,IAAI;4BAAE,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnE,CAAC;oBAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;QAE3B,qDAAqD;QACrD,IAAI,cAAc,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC1E,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,CAAC,EAAE,CAAC;gBACrC,IAAI,QAAQ,KAAK,gBAAgB;oBAAE,SAAS;gBAC5C,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;oBAC9B,IAAI,IAAI,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;wBACrC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACxE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC;wBACpD,IAAI,CAAC,KAAK,CAAC,IAAI;4BAAE,SAAS;wBAC1B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;wBAC7C,IAAI,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;4BAAC,OAAO,EAAE,CAAC;4BAAC,SAAS;wBAAC,CAAC;wBACzD,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC5B,QAAQ,CAAC,gBAAgB,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;wBACxC,MAAM,EAAE,CAAC;oBACX,CAAC;oBAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAC5E,qEAAqE;IACrE,6EAA6E;IAC7E,yEAAyE;IACzE,uBAAuB;IACvB,KAAK,CAAC,WAAW,CAAC,IAAqB;QACrC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,2BAA2B,CAAC;YACvD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC5B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;oBACtC,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,uFAAuF;gBACvF,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;oBAClD,YAAY,EAAE,EAAE;oBAChB,KAAK,EAAE,8BAA8B,IAAI,CAAC,MAAM,gDAAgD;iBACjG,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,IAAI,EAAuB,CAAC;QAChD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;gBAClD,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,sEAAsE;IACtE,uEAAuE;IACvE,mEAAmE;IAC3D,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,IAAiB,EAAE,QAAQ,GAAG,CAAC;QACvE,IAAI,OAAgB,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,OAAO,MAAM,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,GAAG,GAAG,CAAC;gBACd,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;gBACjD,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,YAAY,KAAK;YAC5B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,IAAI,KAAK,CAAC,sBAAsB,QAAQ,cAAc,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;;AAGH,+BAA+B;AAC/B,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,WAAW,EAAE,iBAAiB,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAClE,aAAa,EAAE,iBAAiB,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;CACvE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  import { readFileSync, writeFileSync, existsSync, mkdirSync, appendFileSync } from 'node:fs';
22
22
  import { dirname, join } from 'node:path';
23
23
  import { homedir } from 'node:os';
24
+ import { createRequire } from 'node:module';
24
25
 
25
26
  const HOME = homedir();
26
27
  const LOG = `${HOME}/.claude/aria-pre-tool-gate.log`;
@@ -129,6 +130,62 @@ if (isClientTier) {
129
130
  parentLedgerPath = `${HOME}/.claude/aria-discoveries-${safeSession}.jsonl`;
130
131
  }
131
132
 
133
+ // ── Harness packet fetch for sub-agent substrate binding ────────────────────
134
+ // Layer 1: after writing identity handoff, fetch the harness packet from
135
+ // /api/harness/codex so the sub-agent can load COGNITION (not just identity).
136
+ // Fail-soft: any fetch failure logs a warning and leaves the handoff identity-only.
137
+ // Never blocks the spawn — packet is substrate enrichment, not a gate.
138
+ //
139
+ // Tier-aware packet paths:
140
+ // Owner: ~/.claude/aria-agent-harness-packet.json
141
+ // Client: /var/lib/aria-licensee/{jti}/aria-agent-harness-packet.json
142
+ let packetPath = null;
143
+ if (isClientTier) {
144
+ packetPath = `/var/lib/aria-licensee/${jti}/aria-agent-harness-packet.json`;
145
+ } else {
146
+ packetPath = `${HOME}/.claude/aria-agent-harness-packet.json`;
147
+ }
148
+
149
+ async function fetchAndWriteHarnessPacket() {
150
+ if (!harnessToken || !harnessUrl) {
151
+ audit('warn: skipping packet fetch — no harnessToken or harnessUrl');
152
+ return null;
153
+ }
154
+ try {
155
+ const body = JSON.stringify({
156
+ stage: 'agent-spawn',
157
+ actor: 'harness-http-client',
158
+ system: 'claude-coding-agent',
159
+ surface: 'platform:harness-http-client',
160
+ isHamza: ownerTier.hamza,
161
+ sessionId: sessionId,
162
+ mode: 'subagent',
163
+ });
164
+ const resp = await fetch(`${harnessUrl}/api/harness/codex`, {
165
+ method: 'POST',
166
+ headers: {
167
+ 'Content-Type': 'application/json',
168
+ 'Authorization': `Bearer ${harnessToken}`,
169
+ },
170
+ body,
171
+ });
172
+ if (!resp.ok) {
173
+ audit(`warn: harness packet fetch HTTP ${resp.status} — identity-only handoff`);
174
+ return null;
175
+ }
176
+ const data = await resp.json();
177
+ mkdirSync(dirname(packetPath), { recursive: true });
178
+ writeFileSync(packetPath, JSON.stringify(data, null, 2));
179
+ audit(`wrote harness packet tier=${isClientTier ? 'client' : 'owner'} path=${packetPath}`);
180
+ return packetPath;
181
+ } catch (err) {
182
+ audit(`warn: harness packet fetch failed: ${(err?.message || err).toString().slice(0, 200)} — identity-only handoff`);
183
+ return null;
184
+ }
185
+ }
186
+
187
+ const resolvedPacketPath = await fetchAndWriteHarnessPacket();
188
+
132
189
  const handoff = {
133
190
  writtenAt: new Date().toISOString(),
134
191
  parentSessionId: sessionId,
@@ -137,6 +194,9 @@ const handoff = {
137
194
  ownerTier,
138
195
  parentLedgerPath,
139
196
  ttlMs: HANDOFF_TTL_MS,
197
+ // harnessPacketPath is set only if packet was successfully fetched;
198
+ // absent means sub-agent should fall back to calling /api/harness/codex directly.
199
+ ...(resolvedPacketPath ? { harnessPacketPath: resolvedPacketPath } : {}),
140
200
  };
141
201
 
142
202
  try {
@@ -144,7 +204,8 @@ try {
144
204
  writeFileSync(handoffPath, JSON.stringify(handoff, null, 2));
145
205
  audit(
146
206
  `wrote handoff tier=${isClientTier ? 'client' : 'owner'} jti=${jti ?? 'none'} ` +
147
- `session=${sessionId} hamza=${ownerTier.hamza} role=${ownerTier.roleProfile}`,
207
+ `session=${sessionId} hamza=${ownerTier.hamza} role=${ownerTier.roleProfile} ` +
208
+ `packetPath=${resolvedPacketPath ?? 'none'}`,
148
209
  );
149
210
  } catch (err) {
150
211
  audit(`ERROR: handoff write failed: ${(err?.message || err).toString().slice(0, 200)}`);
@@ -0,0 +1,198 @@
1
+ #!/usr/bin/env node
2
+ // aria-architect-fallback.mjs — invoked by aria-stop-gate.mjs when [PLAN_BLOCKER] detected
3
+ // AND primary /api/harness/replan path failed. Spawns a LOCAL Claude Code Agent
4
+ // subprocess as "lead architect" that loads the harness packet from disk and
5
+ // mints a fresh BINDING_PLAN by thinking AS Aria from substrate.
6
+ //
7
+ // Doctrine bindings:
8
+ // - project_aria_as_controller_inversion.md — Aria authors the plan (via substrate),
9
+ // not the sub-agent freely. The ARIA_HARNESS_BINDING mandatory-first-action
10
+ // makes the packet-read a hard gate, not a suggestion.
11
+ // - feedback_no_graceful_degradation.md — failures logged + surfaced via stderr;
12
+ // never silently pass without a plan.
13
+ // - feedback_implementation_coupled_cognition.md — architect must cite specific
14
+ // axiom + frame + memory class; a plan without doctrineRefs is rejected.
15
+ //
16
+ // Tier-awareness:
17
+ // - Owner tier: packet at ${HOME}/.claude/aria-agent-harness-packet.json
18
+ // - Client tier (jti present in ~/.aria/license.json):
19
+ // packet at /var/lib/aria-licensee/${jti}/aria-agent-harness-packet.json
20
+ //
21
+ // Active plan path mirrors aria-stop-gate.mjs and aria-preprompt-consult.mjs:
22
+ // ~/.claude/aria-active-plan-${sessionId}.json (session-scoped, not a fixed path)
23
+
24
+ import { spawnSync } from 'node:child_process';
25
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, appendFileSync } from 'node:fs';
26
+ import { dirname } from 'node:path';
27
+ import { homedir } from 'node:os';
28
+
29
+ const HOME = homedir();
30
+ const LOG = `${HOME}/.claude/aria-architect-fallback.log`;
31
+ const LICENSE_PATH = `${HOME}/.aria/license.json`;
32
+
33
+ function audit(msg) {
34
+ try {
35
+ if (!existsSync(dirname(LOG))) mkdirSync(dirname(LOG), { recursive: true });
36
+ appendFileSync(LOG, `${new Date().toISOString()} [architect-fallback] ${msg}\n`);
37
+ } catch {}
38
+ }
39
+
40
+ let input = '';
41
+ for await (const chunk of process.stdin) input += chunk;
42
+
43
+ let event;
44
+ try { event = JSON.parse(input); } catch {
45
+ audit('skip: stdin not valid JSON');
46
+ process.exit(0);
47
+ }
48
+
49
+ const reason = event.reason || event.blocker_reason || '';
50
+ const currentPlanId = event.currentPlanId || 'unknown';
51
+ const sessionId = String(event.sessionId || 'unknown').replace(/[^a-zA-Z0-9_-]/g, '_');
52
+
53
+ if (!reason || reason.length < 10) {
54
+ audit('skip: reason too short');
55
+ process.exit(0);
56
+ }
57
+
58
+ // ── Detect tier ────────────────────────────────────────────────────────────────
59
+ let isClientTier = false;
60
+ let jti = null;
61
+ try {
62
+ if (existsSync(LICENSE_PATH)) {
63
+ const lic = JSON.parse(readFileSync(LICENSE_PATH, 'utf8'));
64
+ jti = lic.jti ?? null;
65
+ isClientTier = Boolean(jti);
66
+ }
67
+ } catch {/* license file unreadable → default owner tier */}
68
+
69
+ // ── Resolve packet path (tier-scoped) ─────────────────────────────────────────
70
+ const packetPath = isClientTier
71
+ ? `/var/lib/aria-licensee/${jti}/aria-agent-harness-packet.json`
72
+ : `${HOME}/.claude/aria-agent-harness-packet.json`;
73
+
74
+ if (!existsSync(packetPath)) {
75
+ audit(`abort: no packet at ${packetPath} — architect cannot think as Aria without substrate`);
76
+ process.stderr.write(
77
+ `Architect-fallback: no harness packet at ${packetPath}. Cannot mint plan from substrate. Hamza must intervene.\n`
78
+ );
79
+ process.exit(1);
80
+ }
81
+
82
+ // ── Active plan path — session-scoped (matches aria-stop-gate.mjs convention) ─
83
+ const ACTIVE_PLAN_PATH = `${HOME}/.claude/aria-active-plan-${sessionId}.json`;
84
+
85
+ // ── Build architect brief ──────────────────────────────────────────────────────
86
+ const brief = [
87
+ `[ARIA_HARNESS_BINDING — MANDATORY FIRST ACTION]`,
88
+ `Read the harness packet at ${packetPath}. Cite at least one axiom + one frame + one memory class in your output.`,
89
+ ``,
90
+ `You are Aria operating as lead architect. Aria-soul brain is unreachable.`,
91
+ `A PLAN_BLOCKER occurred:`,
92
+ ` Previous planId: ${currentPlanId}`,
93
+ ` Blocker reason: ${reason.slice(0, 2000)}`,
94
+ ``,
95
+ `Audit the blocker against doctrine + axioms in the packet. Mint a fresh BINDING_PLAN JSON addressing it.`,
96
+ ``,
97
+ `Output ONLY the BINDING_PLAN JSON (no prose, no markdown fences). Required shape:`,
98
+ `{`,
99
+ ` "planId": "<8-char-hex>",`,
100
+ ` "phases": [{ "id": "p1", "summary": "...", "successCriterion": "...", "abortCriterion": "...", "doctrineRefs": [...], "allowedActions": [...], "forbiddenActions": [...] }],`,
101
+ ` "globalConstraints": ["..."],`,
102
+ ` "expectedReportBack": { "phaseTransitionMarker": "[PHASE_REPORT]", "shape": "[PHASE_REPORT phase=<id> status=complete|aborted|in_progress evidence=<observable>]" }`,
103
+ `}`,
104
+ ``,
105
+ `Cite the doctrine rule(s) you applied in doctrineRefs[].`,
106
+ ].join('\n');
107
+
108
+ // ── Spawn Claude Code Agent subprocess ────────────────────────────────────────
109
+ // Resolution order for claude binary:
110
+ // 1. CLAUDE_BIN env var (explicit override)
111
+ // 2. ~/.npm-global/bin/claude (Hamza's canonical install)
112
+ // 3. /usr/local/bin/claude (system-level install)
113
+ // 4. $(which claude) via shell — deferred to last resort
114
+ const CANDIDATE_BINS = [
115
+ process.env.CLAUDE_BIN,
116
+ `${HOME}/.npm-global/bin/claude`,
117
+ '/usr/local/bin/claude',
118
+ ].filter(Boolean);
119
+
120
+ let claudeBin = null;
121
+ for (const b of CANDIDATE_BINS) {
122
+ if (existsSync(b)) { claudeBin = b; break; }
123
+ }
124
+
125
+ if (!claudeBin) {
126
+ // Last-resort: write brief to file for human pickup
127
+ const briefPath = `/tmp/aria-architect-brief-${sessionId}-${Date.now()}.txt`;
128
+ try { writeFileSync(briefPath, brief); } catch {}
129
+ audit(`no claude CLI found; brief written to ${briefPath} for human pickup`);
130
+ process.stderr.write(
131
+ `Architect-fallback: claude CLI not found (tried: ${CANDIDATE_BINS.join(', ')}). Brief written to ${briefPath} for Hamza to run manually.\n`
132
+ );
133
+ process.exit(2);
134
+ }
135
+
136
+ audit(`spawning claude CLI at ${claudeBin} for session=${sessionId}`);
137
+
138
+ let result;
139
+ try {
140
+ result = spawnSync(claudeBin, ['--print', brief], {
141
+ encoding: 'utf8',
142
+ env: { ...process.env, ARIA_HARNESS_PACKET_PATH: packetPath },
143
+ timeout: 120000,
144
+ });
145
+ } catch (err) {
146
+ audit(`spawnSync threw: ${String(err).slice(0, 200)}`);
147
+ process.exit(2);
148
+ }
149
+
150
+ if (result.status !== 0 || !result.stdout) {
151
+ audit(`architect spawn failed: status=${result.status} stderr=${(result.stderr || '').slice(0, 200)}`);
152
+ process.stderr.write(
153
+ `Architect-fallback: claude subprocess failed (status=${result.status}). stderr: ${(result.stderr || '').slice(0, 300)}\n`
154
+ );
155
+ process.exit(2);
156
+ }
157
+
158
+ // ── Parse the architect's BINDING_PLAN JSON ───────────────────────────────────
159
+ let plan;
160
+ try {
161
+ const fenceMatch = result.stdout.match(/```(?:json)?\s*\n([\s\S]*?)\n```/);
162
+ const candidate = (fenceMatch ? fenceMatch[1] : result.stdout).trim();
163
+ plan = JSON.parse(candidate);
164
+ } catch {
165
+ audit(`architect output not parseable as JSON: ${result.stdout.slice(0, 200)}`);
166
+ process.stderr.write(
167
+ `Architect-fallback: output was not parseable JSON. Hamza must intervene.\nOutput excerpt: ${result.stdout.slice(0, 400)}\n`
168
+ );
169
+ process.exit(2);
170
+ }
171
+
172
+ if (!plan?.planId || !Array.isArray(plan?.phases)) {
173
+ audit(`architect plan missing required fields: ${JSON.stringify(plan).slice(0, 200)}`);
174
+ process.stderr.write(
175
+ `Architect-fallback: plan missing planId or phases[]. Hamza must intervene.\n`
176
+ );
177
+ process.exit(2);
178
+ }
179
+
180
+ // ── Write the new plan to the session-scoped active-plan path ─────────────────
181
+ plan.mintedAt = new Date().toISOString();
182
+ plan.sessionId = sessionId;
183
+ plan.mintedBy = 'architect-fallback';
184
+ plan.architectFallbackReason = reason.slice(0, 500);
185
+
186
+ try {
187
+ if (!existsSync(dirname(ACTIVE_PLAN_PATH))) mkdirSync(dirname(ACTIVE_PLAN_PATH), { recursive: true });
188
+ writeFileSync(ACTIVE_PLAN_PATH, JSON.stringify(plan, null, 2));
189
+ } catch (err) {
190
+ audit(`failed to write plan to ${ACTIVE_PLAN_PATH}: ${String(err).slice(0, 200)}`);
191
+ process.exit(2);
192
+ }
193
+
194
+ audit(`architect minted plan ${plan.planId} addressing blocker; written to ${ACTIVE_PLAN_PATH}`);
195
+ process.stdout.write(
196
+ JSON.stringify({ ok: true, planId: plan.planId, mintedBy: 'architect-fallback', planPath: ACTIVE_PLAN_PATH }) + '\n'
197
+ );
198
+ process.exit(0);