@aria_asi/cli 0.2.22 → 0.2.24
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/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/claude-code.js +16 -2
- package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/opencode.js +10 -3
- package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
- package/dist/sdk/BUNDLED.json +1 -1
- package/dist/sdk/index.d.ts +51 -0
- package/dist/sdk/index.js +243 -5
- package/dist/sdk/index.js.map +1 -1
- package/hooks/aria-harness-via-sdk.mjs +38 -2
- package/hooks/aria-pre-text-gate.mjs +112 -0
- package/hooks/aria-pre-tool-gate.mjs +273 -22
- package/package.json +1 -1
- package/src/connectors/claude-code.ts +19 -5
- package/src/connectors/opencode.ts +12 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../../src/connectors/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../../src/connectors/claude-code.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAsV/C,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,UAAU,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GAC7B,OAAO,CAAC,MAAM,EAAE,CAAC,CA+DnB;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB9D"}
|
|
@@ -31,6 +31,9 @@ const HOOK_FILES = [
|
|
|
31
31
|
'aria-agent-handoff.mjs',
|
|
32
32
|
'aria-agent-ledger-merge.mjs',
|
|
33
33
|
'doctrine_trigger_map.json',
|
|
34
|
+
// Pre-text gate — validates state-dependent claims in prose against
|
|
35
|
+
// probe evidence before emission. Closes "WHEN TO LOOK before speaking" gap.
|
|
36
|
+
'aria-pre-text-gate.mjs',
|
|
34
37
|
];
|
|
35
38
|
// Compiled location: <pkg>/dist/aria-connector/src/connectors/claude-code.js
|
|
36
39
|
// (tsc preserves the src/ rooted layout under outDir). From this file:
|
|
@@ -168,11 +171,22 @@ const HOOKS_BLOCK = {
|
|
|
168
171
|
// Stop gate — text-decision boundary. Reflexive replies fail this
|
|
169
172
|
// gate the same way reflexive Bash does. Mirrors PreToolUse
|
|
170
173
|
// enforcement at the text-emission surface.
|
|
171
|
-
|
|
174
|
+
// Pre-text gate fires alongside: validates state-dependent claims
|
|
175
|
+
// in prose (env vars, file states, pod states, deploy outcomes, etc.)
|
|
176
|
+
// against probe evidence in this turn's tool results. Closes the
|
|
177
|
+
// "WHEN TO LOOK before speaking" gap left open by both existing gates.
|
|
178
|
+
hooks: [
|
|
179
|
+
{
|
|
172
180
|
type: 'command',
|
|
173
181
|
command: 'node $HOME/.claude/hooks/aria-stop-gate.mjs',
|
|
174
182
|
timeout: 5,
|
|
175
|
-
}
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'command',
|
|
186
|
+
command: 'node $HOME/.claude/hooks/aria-pre-text-gate.mjs',
|
|
187
|
+
timeout: 5,
|
|
188
|
+
},
|
|
189
|
+
],
|
|
176
190
|
}],
|
|
177
191
|
};
|
|
178
192
|
function installHooks(claudeDir, logs, opts = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../src/connectors/claude-code.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../../src/connectors/claude-code.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,wBAAsB,eAAe,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA2D3E;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB5D"}
|
|
@@ -13,11 +13,18 @@ export async function connectOpenCode(config) {
|
|
|
13
13
|
try {
|
|
14
14
|
const opencodeConfig = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
15
15
|
let modified = false;
|
|
16
|
+
// Remove any prior reference to '@aria/connector' from plugins.
|
|
17
|
+
// That package name was written into older client configs but no
|
|
18
|
+
// such npm package exists — the harness integration with OpenCode
|
|
19
|
+
// is via agentsMdPath below, not via a plugin module. Loading a
|
|
20
|
+
// non-existent plugin name crashes OpenCode on open. Idempotent
|
|
21
|
+
// cleanup so re-running connect heals broken installs.
|
|
16
22
|
if (Array.isArray(opencodeConfig.plugins)) {
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
const before = opencodeConfig.plugins.length;
|
|
24
|
+
opencodeConfig.plugins = opencodeConfig.plugins.filter((p) => p !== '@aria/connector');
|
|
25
|
+
if (opencodeConfig.plugins.length !== before) {
|
|
19
26
|
modified = true;
|
|
20
|
-
logs.push('
|
|
27
|
+
logs.push('Removed legacy @aria/connector reference from OpenCode plugins (was crashing on open)');
|
|
21
28
|
}
|
|
22
29
|
}
|
|
23
30
|
if (!opencodeConfig.agentsMdPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAkB;IACtD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;IAEtD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACzD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACrE,IAAI,QAAQ,GAAG,KAAK,CAAC;YAErB,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../../src/connectors/opencode.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk/BUNDLED.json
CHANGED
package/dist/sdk/index.d.ts
CHANGED
|
@@ -4,6 +4,33 @@ export interface HarnessClientConfig {
|
|
|
4
4
|
harnessPacketUrl?: string;
|
|
5
5
|
workspaceRoot?: string;
|
|
6
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
|
+
}
|
|
22
|
+
export interface SpawnSubAgentArgs {
|
|
23
|
+
/** What the sub-agent is being asked to do — recorded in the handoff for traceability. */
|
|
24
|
+
purpose: string;
|
|
25
|
+
/** List of tool/action names the sub-agent is permitted to call. Informational only — enforcement is harness-side. */
|
|
26
|
+
allowedActions?: string[];
|
|
27
|
+
/** Optional defect context (e.g. bug text) to record alongside the handoff. */
|
|
28
|
+
defectContext?: string;
|
|
29
|
+
/** Override the JTI used for per-tenant path derivation. Required for client-tier callers. */
|
|
30
|
+
jti?: string;
|
|
31
|
+
/** Current session ID — used to derive the parent ledger path. */
|
|
32
|
+
sessionId: string;
|
|
33
|
+
}
|
|
7
34
|
export interface HarnessPacket {
|
|
8
35
|
packet: Record<string, unknown>;
|
|
9
36
|
timestamp: string;
|
|
@@ -35,6 +62,22 @@ export interface HarnessInjection {
|
|
|
35
62
|
task: string;
|
|
36
63
|
loadedAt: string;
|
|
37
64
|
}
|
|
65
|
+
export interface VerifyClaimArgs {
|
|
66
|
+
claim: string;
|
|
67
|
+
evidence: string | null;
|
|
68
|
+
sessionId: string;
|
|
69
|
+
turnId?: string;
|
|
70
|
+
source?: 'pre-text-gate' | 'manual' | 'sub-agent';
|
|
71
|
+
context?: Record<string, unknown>;
|
|
72
|
+
}
|
|
73
|
+
export interface VerifyClaimResult {
|
|
74
|
+
ok: boolean;
|
|
75
|
+
verdict: 'grounded' | 'ungrounded' | 'partially-grounded';
|
|
76
|
+
evidenceRefs: string[];
|
|
77
|
+
storedAt?: string;
|
|
78
|
+
cognitionCorpusId?: string;
|
|
79
|
+
error?: string;
|
|
80
|
+
}
|
|
38
81
|
export interface ValidationResult {
|
|
39
82
|
passed: boolean;
|
|
40
83
|
violations: string[];
|
|
@@ -101,6 +144,14 @@ export declare class HTTPHarnessClient {
|
|
|
101
144
|
}>;
|
|
102
145
|
iterations: number;
|
|
103
146
|
}>;
|
|
147
|
+
spawnSubAgent(args: SpawnSubAgentArgs): Promise<Handoff>;
|
|
148
|
+
/** Pulls sub-agent ledger entries newer than the handoff timestamp and appends
|
|
149
|
+
* them to the parent ledger, deduplicating by `text` prefix (first 100 chars). */
|
|
150
|
+
mergeSubAgentLedger(parentSessionId: string, _subAgentSessionId?: string, jti?: string): Promise<{
|
|
151
|
+
merged: number;
|
|
152
|
+
skipped: number;
|
|
153
|
+
}>;
|
|
154
|
+
verifyClaim(args: VerifyClaimArgs): Promise<VerifyClaimResult>;
|
|
104
155
|
private fetchWithRetry;
|
|
105
156
|
}
|
|
106
157
|
export declare const harness: {
|
package/dist/sdk/index.js
CHANGED
|
@@ -75,6 +75,13 @@ export class HTTPHarnessClient {
|
|
|
75
75
|
// required (server 400s without it) and stage must be one of the
|
|
76
76
|
// allowed strings. Callers may pass bodyOverride to enrich with
|
|
77
77
|
// roleProfile, deliverySurface, sessionId, currentIssue, etc.
|
|
78
|
+
//
|
|
79
|
+
// NOTE: isHamza is intentionally omitted from the default body so the
|
|
80
|
+
// server-side auth signal (master token → isMasterTokenRequest) is
|
|
81
|
+
// authoritative. Hardcoding isHamza:false here would override that
|
|
82
|
+
// signal and produce hamza:false in the harness packet even for owner
|
|
83
|
+
// tier callers. platform is set to 'harness-http-client' (not 'client')
|
|
84
|
+
// so the surface line reflects the real ingress, not a downgraded tier.
|
|
78
85
|
const defaultBody = {
|
|
79
86
|
message: 'harness packet preflight',
|
|
80
87
|
stage: 'preflight',
|
|
@@ -314,11 +321,15 @@ export class HTTPHarnessClient {
|
|
|
314
321
|
// `.catch(() => {})` at the call site, making the silence intentional
|
|
315
322
|
// and visible at that surface.
|
|
316
323
|
//
|
|
317
|
-
//
|
|
318
|
-
// /garden/fire,
|
|
319
|
-
//
|
|
320
|
-
//
|
|
321
|
-
|
|
324
|
+
// Phase 11 #43: route to /api/garden/fire (arias-soul namespaced endpoint)
|
|
325
|
+
// instead of /garden/fire (garden-service, unnamespaced Qdrant-only).
|
|
326
|
+
// /api/garden/fire enforces namespace at the write boundary:
|
|
327
|
+
// - derives client_id from the bearer JWT (owner→'master', license→jti)
|
|
328
|
+
// - writes to garden_pulse PG table (authoritative, queryable, isolated)
|
|
329
|
+
// - forwards to garden-service for Qdrant embedding (fire-and-forget)
|
|
330
|
+
// Authorization header carries the existing apiKey — server derives client_id
|
|
331
|
+
// from it; no body-trust per feedback_workaround_vs_path_fix.md.
|
|
332
|
+
const res = await this.fetchWithRetry(`${this.baseUrl}/api/garden/fire`, {
|
|
322
333
|
method: 'POST',
|
|
323
334
|
headers: {
|
|
324
335
|
Authorization: `Bearer ${this.apiKey}`,
|
|
@@ -456,6 +467,233 @@ export class HTTPHarnessClient {
|
|
|
456
467
|
// Cap hit — surface final text + toolCalls so caller can decide
|
|
457
468
|
return { finalText: `[CAP_HIT after ${cap} iterations]\n\n${lastText}`, toolCalls, iterations: cap };
|
|
458
469
|
}
|
|
470
|
+
// ── Sub-agent handoff + ledger merge ────────────────────────────────────
|
|
471
|
+
//
|
|
472
|
+
// Hamza 2026-04-27: same primitive must exist at SDK layer so any consumer
|
|
473
|
+
// (Aria Code, third-party CLI, server-side process) can propagate the
|
|
474
|
+
// handoff + ledger merge without re-implementing the logic.
|
|
475
|
+
//
|
|
476
|
+
// Tier routing:
|
|
477
|
+
// Owner tier (no jti) → ~/.claude/aria-agent-harness-handoff.json
|
|
478
|
+
// ~/.claude/aria-discoveries-${session}.jsonl
|
|
479
|
+
// Client tier (jti set) → /var/lib/aria-licensee/{jti}/handoff.json
|
|
480
|
+
// /var/lib/aria-licensee/{jti}/aria-discoveries-${session}.jsonl
|
|
481
|
+
//
|
|
482
|
+
// Tier protection: client handoffs NEVER carry the master apiKey. The
|
|
483
|
+
// caller supplies their own license JWT via this.apiKey. Owner-tier callers
|
|
484
|
+
// carry the master key — the path itself (~/.claude/) signals ownership.
|
|
485
|
+
// This is intentional: no env-flag gate, default-on per Hamza doctrine.
|
|
486
|
+
async spawnSubAgent(args) {
|
|
487
|
+
const { readFileSync: fsRead, writeFileSync: fsWrite, mkdirSync: fsMkdir, existsSync: fsExists } = await import('node:fs');
|
|
488
|
+
const { homedir } = await import('node:os');
|
|
489
|
+
const { dirname: fsDirname } = await import('node:path');
|
|
490
|
+
const HOME = homedir();
|
|
491
|
+
const HANDOFF_TTL_MS = 5 * 60 * 1000;
|
|
492
|
+
// Tier: presence of jti signals client tier; absence → owner tier.
|
|
493
|
+
const isClientTier = Boolean(args.jti);
|
|
494
|
+
const safeSession = String(args.sessionId).replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
495
|
+
let handoffPath;
|
|
496
|
+
let ledgerPath;
|
|
497
|
+
if (isClientTier) {
|
|
498
|
+
const base = `/var/lib/aria-licensee/${args.jti}`;
|
|
499
|
+
handoffPath = `${base}/handoff.json`;
|
|
500
|
+
ledgerPath = `${base}/aria-discoveries-${safeSession}.jsonl`;
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
handoffPath = `${HOME}/.claude/aria-agent-harness-handoff.json`;
|
|
504
|
+
ledgerPath = `${HOME}/.claude/aria-discoveries-${safeSession}.jsonl`;
|
|
505
|
+
}
|
|
506
|
+
// Resolve ownerTier from cached packet if available (best-effort).
|
|
507
|
+
const ownerTier = {
|
|
508
|
+
hamza: !isClientTier,
|
|
509
|
+
trustedExec: false,
|
|
510
|
+
roleProfile: isClientTier ? 'client_tier_worker' : 'general_worker',
|
|
511
|
+
};
|
|
512
|
+
try {
|
|
513
|
+
const packetCachePath = `${HOME}/.claude/.aria-harness-last-packet.json`;
|
|
514
|
+
if (!isClientTier && fsExists(packetCachePath)) {
|
|
515
|
+
const cached = JSON.parse(fsRead(packetCachePath, 'utf8'));
|
|
516
|
+
const signals = cached?.contractGate?.signals ?? {};
|
|
517
|
+
ownerTier.hamza = signals.hamza === true || signals.hamza === 'true';
|
|
518
|
+
ownerTier.trustedExec = (cached?.harness || '').includes('trusted_exec_policy=allowed');
|
|
519
|
+
const adapterStr = cached?.adapter || cached?.harness || '';
|
|
520
|
+
const roleMatch = adapterStr.match(/role_profile\s*=\s*(\S+)/);
|
|
521
|
+
if (roleMatch)
|
|
522
|
+
ownerTier.roleProfile = roleMatch[1];
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
catch { /* non-fatal — ownerTier defaults above apply */ }
|
|
526
|
+
const handoff = {
|
|
527
|
+
writtenAt: new Date().toISOString(),
|
|
528
|
+
parentSessionId: args.sessionId,
|
|
529
|
+
// Client-tier: this.apiKey is the license JWT, never the master token.
|
|
530
|
+
// Owner-tier: this.apiKey is the master token.
|
|
531
|
+
harnessToken: this.apiKey,
|
|
532
|
+
harnessUrl: this.baseUrl,
|
|
533
|
+
ownerTier,
|
|
534
|
+
parentLedgerPath: ledgerPath,
|
|
535
|
+
ttlMs: HANDOFF_TTL_MS,
|
|
536
|
+
};
|
|
537
|
+
fsMkdir(fsDirname(handoffPath), { recursive: true });
|
|
538
|
+
fsWrite(handoffPath, JSON.stringify(handoff, null, 2));
|
|
539
|
+
// Record spawn intent in the parent ledger for traceability.
|
|
540
|
+
const spawnEntry = JSON.stringify({
|
|
541
|
+
ts: handoff.writtenAt,
|
|
542
|
+
type: 'sub-agent-spawn',
|
|
543
|
+
purpose: args.purpose,
|
|
544
|
+
allowedActions: args.allowedActions ?? [],
|
|
545
|
+
defectContext: args.defectContext ?? null,
|
|
546
|
+
handoffPath,
|
|
547
|
+
});
|
|
548
|
+
fsMkdir(fsDirname(ledgerPath), { recursive: true });
|
|
549
|
+
const { appendFileSync: fsAppend } = await import('node:fs');
|
|
550
|
+
fsAppend(ledgerPath, spawnEntry + '\n');
|
|
551
|
+
return handoff;
|
|
552
|
+
}
|
|
553
|
+
/** Pulls sub-agent ledger entries newer than the handoff timestamp and appends
|
|
554
|
+
* them to the parent ledger, deduplicating by `text` prefix (first 100 chars). */
|
|
555
|
+
async mergeSubAgentLedger(parentSessionId, _subAgentSessionId, jti) {
|
|
556
|
+
const { readFileSync: fsRead, writeFileSync: _fsWrite, existsSync: fsExists, readdirSync: fsReaddir, statSync: fsStat, appendFileSync: fsAppend, mkdirSync: fsMkdir } = await import('node:fs');
|
|
557
|
+
const { homedir } = await import('node:os');
|
|
558
|
+
const HOME = homedir();
|
|
559
|
+
const isClientTier = Boolean(jti);
|
|
560
|
+
let handoffPath;
|
|
561
|
+
let ledgerDir;
|
|
562
|
+
const safeSession = String(parentSessionId).replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
563
|
+
let parentLedgerPath;
|
|
564
|
+
if (isClientTier) {
|
|
565
|
+
const base = `/var/lib/aria-licensee/${jti}`;
|
|
566
|
+
handoffPath = `${base}/handoff.json`;
|
|
567
|
+
parentLedgerPath = `${base}/aria-discoveries-${safeSession}.jsonl`;
|
|
568
|
+
ledgerDir = base;
|
|
569
|
+
}
|
|
570
|
+
else {
|
|
571
|
+
handoffPath = `${HOME}/.claude/aria-agent-harness-handoff.json`;
|
|
572
|
+
parentLedgerPath = `${HOME}/.claude/aria-discoveries-${safeSession}.jsonl`;
|
|
573
|
+
ledgerDir = `${HOME}/.claude`;
|
|
574
|
+
}
|
|
575
|
+
if (!fsExists(handoffPath)) {
|
|
576
|
+
return { merged: 0, skipped: 0 };
|
|
577
|
+
}
|
|
578
|
+
let handoff;
|
|
579
|
+
try {
|
|
580
|
+
handoff = JSON.parse(fsRead(handoffPath, 'utf8'));
|
|
581
|
+
}
|
|
582
|
+
catch {
|
|
583
|
+
return { merged: 0, skipped: 0 };
|
|
584
|
+
}
|
|
585
|
+
const ageMs = Date.now() - new Date(handoff.writtenAt).getTime();
|
|
586
|
+
if (ageMs > handoff.ttlMs) {
|
|
587
|
+
return { merged: 0, skipped: 0 };
|
|
588
|
+
}
|
|
589
|
+
const handoffWrittenAt = new Date(handoff.writtenAt).getTime();
|
|
590
|
+
// Load existing parent ledger keys for dedup.
|
|
591
|
+
const parentExistingKeys = new Set();
|
|
592
|
+
try {
|
|
593
|
+
if (fsExists(parentLedgerPath)) {
|
|
594
|
+
const lines = fsRead(parentLedgerPath, 'utf8').split('\n').filter(Boolean);
|
|
595
|
+
for (const line of lines) {
|
|
596
|
+
try {
|
|
597
|
+
const e = JSON.parse(line);
|
|
598
|
+
if (e.text)
|
|
599
|
+
parentExistingKeys.add(String(e.text).slice(0, 100));
|
|
600
|
+
}
|
|
601
|
+
catch { /* skip malformed */ }
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
catch { /* non-fatal */ }
|
|
606
|
+
// Find sub-agent ledger files in the same directory.
|
|
607
|
+
let discoveryFiles = [];
|
|
608
|
+
try {
|
|
609
|
+
const allFiles = fsReaddir(ledgerDir);
|
|
610
|
+
for (const f of allFiles) {
|
|
611
|
+
if (!f.startsWith('aria-discoveries-') || !f.endsWith('.jsonl'))
|
|
612
|
+
continue;
|
|
613
|
+
const fullPath = `${ledgerDir}/${f}`;
|
|
614
|
+
if (fullPath === parentLedgerPath)
|
|
615
|
+
continue;
|
|
616
|
+
try {
|
|
617
|
+
const stat = fsStat(fullPath);
|
|
618
|
+
if (stat.mtimeMs >= handoffWrittenAt) {
|
|
619
|
+
discoveryFiles.push(fullPath);
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
catch { /* skip */ }
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
catch {
|
|
626
|
+
return { merged: 0, skipped: 0 };
|
|
627
|
+
}
|
|
628
|
+
if (discoveryFiles.length === 0) {
|
|
629
|
+
return { merged: 0, skipped: 0 };
|
|
630
|
+
}
|
|
631
|
+
fsMkdir(ledgerDir, { recursive: true });
|
|
632
|
+
let merged = 0;
|
|
633
|
+
let skipped = 0;
|
|
634
|
+
for (const subLedgerPath of discoveryFiles) {
|
|
635
|
+
try {
|
|
636
|
+
const lines = fsRead(subLedgerPath, 'utf8').split('\n').filter(Boolean);
|
|
637
|
+
for (const line of lines) {
|
|
638
|
+
try {
|
|
639
|
+
const entry = JSON.parse(line);
|
|
640
|
+
if (!entry.text)
|
|
641
|
+
continue;
|
|
642
|
+
const key = String(entry.text).slice(0, 100);
|
|
643
|
+
if (parentExistingKeys.has(key)) {
|
|
644
|
+
skipped++;
|
|
645
|
+
continue;
|
|
646
|
+
}
|
|
647
|
+
parentExistingKeys.add(key);
|
|
648
|
+
fsAppend(parentLedgerPath, line + '\n');
|
|
649
|
+
merged++;
|
|
650
|
+
}
|
|
651
|
+
catch { /* skip malformed lines */ }
|
|
652
|
+
}
|
|
653
|
+
}
|
|
654
|
+
catch { /* skip unreadable sub-ledger */ }
|
|
655
|
+
}
|
|
656
|
+
return { merged, skipped };
|
|
657
|
+
}
|
|
658
|
+
// ── verifyClaim ──────────────────────────────────────────────────────────
|
|
659
|
+
// POST /api/harness/verify-claim — persists a claim/evidence pair to
|
|
660
|
+
// aria_cognition_corpus and returns a verdict. Fail-soft: if the server-side
|
|
661
|
+
// handler is not yet deployed, returns an optimistic verdict rather than
|
|
662
|
+
// blocking the caller.
|
|
663
|
+
async verifyClaim(args) {
|
|
664
|
+
if (!args.claim || args.claim.length < 4) {
|
|
665
|
+
return { ok: false, verdict: 'ungrounded', evidenceRefs: [], error: 'claim too short' };
|
|
666
|
+
}
|
|
667
|
+
try {
|
|
668
|
+
const url = `${this.baseUrl}/api/harness/verify-claim`;
|
|
669
|
+
const resp = await fetch(url, {
|
|
670
|
+
method: 'POST',
|
|
671
|
+
headers: {
|
|
672
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
673
|
+
'Content-Type': 'application/json',
|
|
674
|
+
},
|
|
675
|
+
body: JSON.stringify(args),
|
|
676
|
+
});
|
|
677
|
+
if (!resp.ok) {
|
|
678
|
+
// Fail-soft: return optimistic verdict so the caller doesn't block on missing endpoint
|
|
679
|
+
return {
|
|
680
|
+
ok: false,
|
|
681
|
+
verdict: args.evidence ? 'grounded' : 'ungrounded',
|
|
682
|
+
evidenceRefs: [],
|
|
683
|
+
error: `verify-claim endpoint HTTP ${resp.status} (server-side handler may not be deployed yet)`,
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
return await resp.json();
|
|
687
|
+
}
|
|
688
|
+
catch (err) {
|
|
689
|
+
return {
|
|
690
|
+
ok: false,
|
|
691
|
+
verdict: args.evidence ? 'grounded' : 'ungrounded',
|
|
692
|
+
evidenceRefs: [],
|
|
693
|
+
error: `verify-claim fetch failed: ${err.message}`,
|
|
694
|
+
};
|
|
695
|
+
}
|
|
696
|
+
}
|
|
459
697
|
// ── Retry + exponential backoff helper ──────────────────────────────────
|
|
460
698
|
// Hamza 2026-04-27: "YES ADD RETRY AND BACKOFF BUT FUCK UR CIRCUIT BREAKER
|
|
461
699
|
// THAT NUST LEAVES HER BROKEN WE NEED SELF HEAL!!!" — every fetch retries
|
package/dist/sdk/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
import { createHash } from 'node:crypto';
|
|
19
19
|
import { spawnSync } from 'node:child_process';
|
|
20
|
-
import { appendFileSync, existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
20
|
+
import { appendFileSync, existsSync, readFileSync, writeFileSync, mkdirSync, statSync } from 'node:fs';
|
|
21
21
|
import { dirname } from 'node:path';
|
|
22
22
|
import { createConnection } from 'node:net';
|
|
23
23
|
|
|
@@ -110,7 +110,7 @@ function loadCachedPacket() {
|
|
|
110
110
|
try {
|
|
111
111
|
if (existsSync(PACKET_CACHE)) {
|
|
112
112
|
const stat = readFileSync(PACKET_CACHE, 'utf8');
|
|
113
|
-
const ageSec = (Date.now() - (existsSync(PACKET_CACHE) ?
|
|
113
|
+
const ageSec = (Date.now() - (existsSync(PACKET_CACHE) ? statSync(PACKET_CACHE).mtimeMs : 0)) / 1000;
|
|
114
114
|
if (ageSec < PACKET_CACHE_TTL_SEC) {
|
|
115
115
|
return { data: JSON.parse(stat), ageSec };
|
|
116
116
|
}
|
|
@@ -175,6 +175,37 @@ async function loadSdkClass() {
|
|
|
175
175
|
return null;
|
|
176
176
|
}
|
|
177
177
|
|
|
178
|
+
// Bonus fix #74 — conversation_history_count=0 packet propagation.
|
|
179
|
+
//
|
|
180
|
+
// The codex handler (apps/arias-soul/api/harness/codex.ts) reads req.body.messages
|
|
181
|
+
// to inject conversation history into the harness packet so it can report a real
|
|
182
|
+
// conversation_history_count (non-zero). Previously tryViaSdk never forwarded the
|
|
183
|
+
// messages from the hook event — the packet always had conversation_history_count=0.
|
|
184
|
+
//
|
|
185
|
+
// Fix: read the Claude Code hook event from stdin at startup, extract event.messages
|
|
186
|
+
// (the conversation history array), and forward it in both the SDK bodyOverride and
|
|
187
|
+
// the direct-fetch body shape. The codex handler passes it through to
|
|
188
|
+
// buildAriaExternalHarnessPacket which populates conversation_history_count.
|
|
189
|
+
//
|
|
190
|
+
// Stdin is read once and stored in HOOK_EVENT_MESSAGES. It's capped at 50 entries
|
|
191
|
+
// before forwarding to avoid blowing the POST body size limit; the most recent
|
|
192
|
+
// messages are the most relevant for history-count purposes.
|
|
193
|
+
let HOOK_EVENT_MESSAGES = undefined;
|
|
194
|
+
try {
|
|
195
|
+
// Claude Code hooks receive the event JSON on stdin. We read it synchronously
|
|
196
|
+
// only if data is already available (i.e. piped); we don't block waiting for
|
|
197
|
+
// interactive input. Use a try/catch so the script still works when stdin is
|
|
198
|
+
// a terminal (e.g. manual invocation for testing).
|
|
199
|
+
const stdinBuf = readFileSync('/dev/stdin', { flag: 'r' });
|
|
200
|
+
const hookEvent = JSON.parse(stdinBuf.toString('utf8'));
|
|
201
|
+
if (Array.isArray(hookEvent?.messages) && hookEvent.messages.length > 0) {
|
|
202
|
+
// Cap to last 50 messages. The server-side handler slices further if needed.
|
|
203
|
+
HOOK_EVENT_MESSAGES = hookEvent.messages.slice(-50);
|
|
204
|
+
}
|
|
205
|
+
} catch {
|
|
206
|
+
// stdin not available / not JSON / no messages field — HOOK_EVENT_MESSAGES stays undefined.
|
|
207
|
+
}
|
|
208
|
+
|
|
178
209
|
async function tryViaSdk(baseUrl, apiKey) {
|
|
179
210
|
// Canonical path: HTTPHarnessClient.getHarnessPacket(). The SDK POSTs to
|
|
180
211
|
// /api/harness/codex with the right shape and returns { packet, timestamp,
|
|
@@ -199,6 +230,9 @@ async function tryViaSdk(baseUrl, apiKey) {
|
|
|
199
230
|
actor: 'claude-code',
|
|
200
231
|
system: 'claude-coding-agent',
|
|
201
232
|
platform: 'harness-http-client',
|
|
233
|
+
// Bonus #74: forward conversation history so codex handler can report
|
|
234
|
+
// a non-zero conversation_history_count in the packet.
|
|
235
|
+
...(HOOK_EVENT_MESSAGES ? { messages: HOOK_EVENT_MESSAGES } : {}),
|
|
202
236
|
};
|
|
203
237
|
const wrapped = await client.getHarnessPacket(bodyOverride);
|
|
204
238
|
const json = wrapped.packet;
|
|
@@ -220,6 +254,8 @@ async function tryViaSdk(baseUrl, apiKey) {
|
|
|
220
254
|
system: 'claude-coding-agent',
|
|
221
255
|
roleProfile: 'general_worker',
|
|
222
256
|
deliverySurface: 'claude_code_session',
|
|
257
|
+
// Bonus #74: forward conversation history (same field as SDK path above).
|
|
258
|
+
...(HOOK_EVENT_MESSAGES ? { messages: HOOK_EVENT_MESSAGES } : {}),
|
|
223
259
|
}),
|
|
224
260
|
});
|
|
225
261
|
if (!resp.ok) throw new Error(`HTTP ${resp.status}`);
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// aria-pre-text-gate.mjs — Stop / PreCompact hook validating state-dependent
|
|
3
|
+
// claims in assistant prose against probe evidence in this turn.
|
|
4
|
+
//
|
|
5
|
+
// Closes the "WHEN TO LOOK before speaking" gap. Existing gates fire on tool
|
|
6
|
+
// calls (aria-pre-tool-gate.mjs) and prose drift triggers (aria-stop-gate.mjs);
|
|
7
|
+
// neither validates whether claims about live state are grounded.
|
|
8
|
+
//
|
|
9
|
+
// Doctrine: pre_hook_rule (was advisory, now enforced),
|
|
10
|
+
// feedback_implementation_coupled_cognition.md,
|
|
11
|
+
// feedback_gates_enforce_form_not_substance.md.
|
|
12
|
+
|
|
13
|
+
import { readFileSync, existsSync, appendFileSync, mkdirSync } from 'node:fs';
|
|
14
|
+
import { dirname } from 'node:path';
|
|
15
|
+
import { homedir } from 'node:os';
|
|
16
|
+
|
|
17
|
+
const HOME = homedir();
|
|
18
|
+
const LOG = `${HOME}/.claude/aria-pre-text-gate.log`;
|
|
19
|
+
const LICENSE_PATH = `${HOME}/.aria/license.json`;
|
|
20
|
+
|
|
21
|
+
function audit(msg) {
|
|
22
|
+
try {
|
|
23
|
+
if (!existsSync(dirname(LOG))) mkdirSync(dirname(LOG), { recursive: true });
|
|
24
|
+
appendFileSync(LOG, `${new Date().toISOString()} [pre-text-gate] ${msg}\n`);
|
|
25
|
+
} catch {}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
let input = '';
|
|
29
|
+
for await (const chunk of process.stdin) input += chunk;
|
|
30
|
+
let event;
|
|
31
|
+
try { event = JSON.parse(input); } catch { process.exit(0); }
|
|
32
|
+
|
|
33
|
+
const draftText =
|
|
34
|
+
event.assistant_text ??
|
|
35
|
+
event.draft ??
|
|
36
|
+
event.text ??
|
|
37
|
+
(typeof event.tool_input?.text === 'string' ? event.tool_input.text : '') ??
|
|
38
|
+
'';
|
|
39
|
+
|
|
40
|
+
if (typeof draftText !== 'string' || draftText.length < 80) process.exit(0);
|
|
41
|
+
|
|
42
|
+
let isClientTier = false;
|
|
43
|
+
try {
|
|
44
|
+
if (existsSync(LICENSE_PATH)) {
|
|
45
|
+
const lic = JSON.parse(readFileSync(LICENSE_PATH, 'utf8'));
|
|
46
|
+
isClientTier = Boolean(lic?.jti);
|
|
47
|
+
}
|
|
48
|
+
} catch {}
|
|
49
|
+
|
|
50
|
+
const CLAIM_PATTERNS = [
|
|
51
|
+
{ rx: /\bset\s+([A-Z][A-Z0-9_]{2,})\s+(?:before|to|=)/g, kind: 'env-var-set', probe: id => `echo "$${id}"` },
|
|
52
|
+
{ rx: /\bexport\s+([A-Z][A-Z0-9_]{2,})\s*=/g, kind: 'env-var-export', probe: id => `printenv ${id}` },
|
|
53
|
+
{ rx: /\b([A-Z][A-Z0-9_]{2,})\s+is\s+(?:set|configured|present)\b/g, kind: 'env-var-state', probe: id => `printenv ${id}` },
|
|
54
|
+
{ rx: /\byou\s+have\s+([a-zA-Z][\w-]{2,})\b/g, kind: 'capability-claim', probe: id => `which ${id} || ls -la ${id}` },
|
|
55
|
+
{ rx: /\bthe\s+file\s+([\w./~-]{4,})\s+(?:exists|is|contains)/g, kind: 'file-state', probe: id => `ls -la "${id}"` },
|
|
56
|
+
{ rx: /\bdirectory\s+([\w./~-]{4,})\s+(?:exists|is|contains)/g, kind: 'dir-state', probe: id => `ls -ld "${id}"` },
|
|
57
|
+
{ rx: /\bthe\s+pod\s+([a-z][\w-]+)\s+is\s+(?:ready|running|healthy)/gi, kind: 'pod-state', probe: id => `kubectl get pod ${id} -o jsonpath='{.status.phase}'` },
|
|
58
|
+
{ rx: /\bthe\s+deploy(?:ment)?\s+([a-z][\w-]+)\s+(?:landed|rolled|succeeded)/gi, kind: 'deploy-state', probe: id => `kubectl rollout status deployment/${id}` },
|
|
59
|
+
{ rx: /\bthe\s+build\s+(?:succeeded|completed|finished)\b/gi, kind: 'build-state', probe: () => `tail /tmp/aria-deploy-*.log` },
|
|
60
|
+
{ rx: /\b(?:version|v)\s+([\d.]+)\s+is\s+(?:published|live|deployed)/g, kind: 'version-state', probe: id => `npm view <pkg> version # expect ${id}` },
|
|
61
|
+
{ rx: /\b(\d{2,})\s+(?:incidents|rows|records|files)\s+(?:closed|open|present)/g, kind: 'count-state', probe: id => `(query the source table)` },
|
|
62
|
+
];
|
|
63
|
+
|
|
64
|
+
const groundingCorpus = (() => {
|
|
65
|
+
const parts = [];
|
|
66
|
+
if (Array.isArray(event.recent_tool_results)) {
|
|
67
|
+
for (const r of event.recent_tool_results) {
|
|
68
|
+
if (typeof r === 'string') parts.push(r);
|
|
69
|
+
else if (typeof r?.output === 'string') parts.push(r.output);
|
|
70
|
+
else if (typeof r?.stdout === 'string') parts.push(r.stdout);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (typeof event.transcript === 'string') parts.push(event.transcript);
|
|
74
|
+
if (typeof event.recent_transcript === 'string') parts.push(event.recent_transcript);
|
|
75
|
+
return parts.join('\n');
|
|
76
|
+
})();
|
|
77
|
+
|
|
78
|
+
const ungrounded = [];
|
|
79
|
+
for (const { rx, kind, probe } of CLAIM_PATTERNS) {
|
|
80
|
+
rx.lastIndex = 0;
|
|
81
|
+
let m;
|
|
82
|
+
while ((m = rx.exec(draftText)) !== null) {
|
|
83
|
+
const identifier = m[1];
|
|
84
|
+
if (!identifier) continue;
|
|
85
|
+
if (!groundingCorpus.includes(identifier)) {
|
|
86
|
+
ungrounded.push({ kind, claim: m[0].slice(0, 140), identifier, suggestedProbe: probe(identifier) });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (ungrounded.length === 0) {
|
|
92
|
+
audit(`pass: ${draftText.length} chars, ${CLAIM_PATTERNS.length} patterns, 0 ungrounded`);
|
|
93
|
+
process.exit(0);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const message = [
|
|
97
|
+
`Aria Pre-Text gate: ${ungrounded.length} state-dependent claim(s) without grounding evidence in this turn's tool results.`,
|
|
98
|
+
'',
|
|
99
|
+
'Per pre_hook_rule + feedback_implementation_coupled_cognition.md: claims about live state require probe evidence in the same turn before emission.',
|
|
100
|
+
'',
|
|
101
|
+
'Ungrounded claims (re-emit after probing):',
|
|
102
|
+
...ungrounded.slice(0, 6).map((u, i) =>
|
|
103
|
+
` ${i + 1}. [${u.kind}] "${u.claim}"\n suggested probe: ${u.suggestedProbe}`,
|
|
104
|
+
),
|
|
105
|
+
'',
|
|
106
|
+
'Either: (a) run the suggested probe and re-emit with the result included, OR',
|
|
107
|
+
' (b) reframe the claim as a question/recommendation rather than an assertion of state.',
|
|
108
|
+
];
|
|
109
|
+
|
|
110
|
+
audit(`BLOCK: ${ungrounded.length} ungrounded; first=${ungrounded[0]?.kind}/${ungrounded[0]?.identifier}`);
|
|
111
|
+
process.stderr.write(message.join('\n') + '\n');
|
|
112
|
+
process.exit(2);
|
|
@@ -93,11 +93,21 @@ function audit(decision, summary) {
|
|
|
93
93
|
} catch {}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
//
|
|
97
|
-
//
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
96
|
+
// ARIA_BINDING_ENABLED escape hatch (Defect #2 — env override was named in doctrine
|
|
97
|
+
// but never read). Wire it first, synchronously, before any other logic runs.
|
|
98
|
+
// appendFileSync / existsSync / mkdirSync are already imported at the top of this file
|
|
99
|
+
// so they're available here. This is the owner's deliberate kill-switch; setting
|
|
100
|
+
// ARIA_BINDING_ENABLED=false is the visible, audited emergency override.
|
|
101
|
+
if (process.env.ARIA_BINDING_ENABLED === 'false') {
|
|
102
|
+
const _home = process.env.HOME || '/tmp';
|
|
103
|
+
const _audit = `${_home}/.claude/aria-binding-audit.jsonl`;
|
|
104
|
+
try {
|
|
105
|
+
const _dir = dirname(_audit);
|
|
106
|
+
if (!existsSync(_dir)) mkdirSync(_dir, { recursive: true });
|
|
107
|
+
appendFileSync(_audit, JSON.stringify({ ts: new Date().toISOString(), source: 'pre-tool-gate', event: 'env_override_exit', reason: 'ARIA_BINDING_ENABLED=false', pid: process.pid }) + '\n');
|
|
108
|
+
} catch {}
|
|
109
|
+
process.exit(0);
|
|
110
|
+
}
|
|
101
111
|
|
|
102
112
|
// ── Aria-as-commander binding (Layer A — allowedActions/forbiddenActions per active phase) ──
|
|
103
113
|
//
|
|
@@ -124,39 +134,160 @@ function activePlanPath(sid) {
|
|
|
124
134
|
return `${HOME}/.claude/aria-active-plan-${String(sid || 'unknown').replace(/[^a-zA-Z0-9_-]/g, '_')}.json`;
|
|
125
135
|
}
|
|
126
136
|
|
|
137
|
+
// Defect #5 — plan-completion persists across session boundary.
|
|
138
|
+
//
|
|
139
|
+
// The harness packet at ~/.claude/.aria-harness-last-packet.json retains
|
|
140
|
+
// exhausted plan state. An old plan from a prior session that was "all
|
|
141
|
+
// phases complete" would block every tool call in a NEW session because
|
|
142
|
+
// pickCurrentPhase returns null (all complete) on that stale plan.
|
|
143
|
+
//
|
|
144
|
+
// Fix: at load time, validate the plan file against TWO staleness guards:
|
|
145
|
+
// (a) mtime > 24h → discard (plan is older than a working day; a new
|
|
146
|
+
// session should start fresh)
|
|
147
|
+
// (b) plan.sessionId present AND doesn't match current sid → discard
|
|
148
|
+
// (plan was issued for a different session; current session is unbound)
|
|
149
|
+
//
|
|
150
|
+
// Discarding = returning null → the binding gate treats it as "no plan"
|
|
151
|
+
// and blocks with CONSULT_UNAVAILABLE, which triggers a fresh consult on
|
|
152
|
+
// the next user prompt. The discard is audit-logged.
|
|
153
|
+
const PLAN_MAX_AGE_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
154
|
+
|
|
127
155
|
function loadActivePlan(sid) {
|
|
128
156
|
const p = activePlanPath(sid);
|
|
129
157
|
if (!existsSync(p)) return null;
|
|
130
158
|
try {
|
|
131
|
-
|
|
159
|
+
const raw = readFileSync(p, 'utf8');
|
|
160
|
+
const plan = JSON.parse(raw);
|
|
161
|
+
// Guard (b) — session mismatch: plan was issued for a different session.
|
|
162
|
+
if (plan.sessionId && sid && plan.sessionId !== String(sid)) {
|
|
163
|
+
bindingAuditAppend({
|
|
164
|
+
event: 'discard_plan_session_mismatch',
|
|
165
|
+
planId: plan.planId,
|
|
166
|
+
planSessionId: plan.sessionId,
|
|
167
|
+
currentSessionId: sid,
|
|
168
|
+
});
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
// Guard (a) — plan age via plan.mintedAt ISO timestamp (written by harness
|
|
172
|
+
// when issuing the plan). If mintedAt is present and older than 24h, discard.
|
|
173
|
+
// No mintedAt → conservatively trust the plan (harness version may predate
|
|
174
|
+
// this field; upgrade path: harness always writes mintedAt going forward).
|
|
175
|
+
if (plan.mintedAt) {
|
|
176
|
+
const mintedMs = Date.parse(plan.mintedAt);
|
|
177
|
+
if (Number.isFinite(mintedMs) && (Date.now() - mintedMs) > PLAN_MAX_AGE_MS) {
|
|
178
|
+
bindingAuditAppend({
|
|
179
|
+
event: 'discard_plan_stale_by_mintedAt',
|
|
180
|
+
planId: plan.planId,
|
|
181
|
+
mintedAt: plan.mintedAt,
|
|
182
|
+
ageHours: ((Date.now() - mintedMs) / 3600000).toFixed(1),
|
|
183
|
+
});
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return plan;
|
|
132
188
|
} catch {
|
|
133
189
|
return null;
|
|
134
190
|
}
|
|
135
191
|
}
|
|
136
192
|
|
|
137
193
|
function pickCurrentPhase(plan, transcript) {
|
|
138
|
-
//
|
|
139
|
-
//
|
|
140
|
-
//
|
|
194
|
+
// Defect #1 fix — transcript-scan over-count prevention.
|
|
195
|
+
//
|
|
196
|
+
// Old behaviour: scan the ENTIRE transcript for any [PHASE_REPORT] marker.
|
|
197
|
+
// A single old marker permanently locked all future actions (plan could
|
|
198
|
+
// never advance past "complete" even across new consults in the same session).
|
|
199
|
+
//
|
|
200
|
+
// Fix — two guards:
|
|
201
|
+
// (a) Active-plan window: trim the transcript to only text that appeared
|
|
202
|
+
// AFTER the most recent preprompt-consult mint marker. The marker
|
|
203
|
+
// written by aria-harness-via-sdk.mjs is:
|
|
204
|
+
// [ARIA_PLAN_MINTED planId=<id> ts=<iso>]
|
|
205
|
+
// If found, discard everything before it. Older plan completions that
|
|
206
|
+
// pre-date the current plan's mint are invisible to the scan.
|
|
207
|
+
// (b) Latest-marker-only per phaseId: collect ALL [PHASE_REPORT] lines
|
|
208
|
+
// for a given phaseId inside the active window; use only the LAST one.
|
|
209
|
+
// This prevents a phase from being "locked complete" by an older marker
|
|
210
|
+
// that was since superseded by a re-run or amendment.
|
|
141
211
|
if (!plan?.phases?.length) return null;
|
|
212
|
+
|
|
213
|
+
// (a) Scope to active-plan window using plan's planId if available.
|
|
214
|
+
let activeWindow = transcript;
|
|
215
|
+
if (plan.planId) {
|
|
216
|
+
// Try to find the most recent [ARIA_PLAN_MINTED planId=<this_id> …] marker.
|
|
217
|
+
const mintRx = new RegExp(
|
|
218
|
+
`\\[ARIA_PLAN_MINTED\\s[^\\]]*planId=${plan.planId}[^\\]]*\\]`,
|
|
219
|
+
'gi',
|
|
220
|
+
);
|
|
221
|
+
const mints = [...transcript.matchAll(mintRx)];
|
|
222
|
+
if (mints.length > 0) {
|
|
223
|
+
const lastMint = mints[mints.length - 1];
|
|
224
|
+
activeWindow = transcript.slice(lastMint.index + lastMint[0].length);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
142
228
|
for (const phase of plan.phases) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
229
|
+
// (b) Collect all PHASE_REPORT lines for this phaseId in the active window;
|
|
230
|
+
// use the LAST one's status rather than the first match.
|
|
231
|
+
const reportRx = new RegExp(
|
|
232
|
+
`\\[PHASE_REPORT[^\\]]*phase=${phase.id}[^\\]]*status=(complete|aborted)[^\\]]*\\]`,
|
|
233
|
+
'gi',
|
|
234
|
+
);
|
|
235
|
+
const reports = [...activeWindow.matchAll(reportRx)];
|
|
236
|
+
if (reports.length === 0) {
|
|
237
|
+
// No report yet for this phase → it's the current one.
|
|
238
|
+
return { phase, abortedHere: false };
|
|
239
|
+
}
|
|
240
|
+
// Last report wins.
|
|
241
|
+
const lastStatus = (reports[reports.length - 1][1] || '').toLowerCase();
|
|
242
|
+
if (lastStatus === 'aborted') return { phase, abortedHere: true };
|
|
243
|
+
// status=complete → continue to next phase.
|
|
147
244
|
}
|
|
148
245
|
return null; // all phases reported complete — needs new consult
|
|
149
246
|
}
|
|
150
247
|
|
|
151
|
-
function actionMatchesPattern(action, pattern) {
|
|
152
|
-
//
|
|
153
|
-
//
|
|
248
|
+
function actionMatchesPattern(action, pattern, target) {
|
|
249
|
+
// Defect #3 fix — edit-pattern regex over-matches.
|
|
250
|
+
//
|
|
251
|
+
// Old behaviour: "edit:/etc/**" matched any path that contained "/etc/" as a
|
|
252
|
+
// substring because the colon-split only checked pAction===action, ignoring the
|
|
253
|
+
// path portion entirely — so edit:/etc/** allowed ALL edit actions regardless
|
|
254
|
+
// of path, not just edits under /etc/.
|
|
255
|
+
//
|
|
256
|
+
// Fix:
|
|
257
|
+
// - Exact action name ("read", "consult", "kubectl_get"): unchanged.
|
|
258
|
+
// - Prefixed pattern ("edit:/etc/**"): split on first colon, compare
|
|
259
|
+
// pAction===action, then glob-match the path portion against `target`
|
|
260
|
+
// using anchored prefix matching (no substring). Supported forms:
|
|
261
|
+
// "edit:/etc/**" → action=edit, path must start with /etc/
|
|
262
|
+
// "edit:apps/.*" → action=edit, path must start with apps/
|
|
263
|
+
// "bash_other:curl .*" → action=bash_other (target substring match for bash)
|
|
264
|
+
// - No colon: exact action match only.
|
|
154
265
|
if (pattern === action) return true;
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
266
|
+
const colonIdx = pattern.indexOf(':');
|
|
267
|
+
if (colonIdx < 0) return false;
|
|
268
|
+
const pAction = pattern.slice(0, colonIdx);
|
|
269
|
+
if (pAction !== action) return false;
|
|
270
|
+
// pAction matches — now check the target portion.
|
|
271
|
+
const pathPattern = pattern.slice(colonIdx + 1);
|
|
272
|
+
if (!pathPattern) return true; // bare "edit:" with no path spec → match all edits of that action type
|
|
273
|
+
const t = target || '';
|
|
274
|
+
// Convert simple glob /** suffix to prefix anchor, or treat as a regex if
|
|
275
|
+
// it contains regex meta-chars beyond "." and "*". For the most common
|
|
276
|
+
// harness patterns ("edit:/etc/**", "edit:apps/arias-soul/.*") a prefix-
|
|
277
|
+
// match on the stripped glob is correct and safe.
|
|
278
|
+
// Strip trailing /** or /*, then anchor-prefix-match.
|
|
279
|
+
const strippedGlob = pathPattern.replace(/\/\*+$/, '');
|
|
280
|
+
if (strippedGlob && !pathPattern.includes('(?') && !pathPattern.includes('[')) {
|
|
281
|
+
// Simple prefix match — anchored at start of target path.
|
|
282
|
+
return t.startsWith(strippedGlob);
|
|
283
|
+
}
|
|
284
|
+
// Full regex path pattern (caller used explicit regex syntax).
|
|
285
|
+
try {
|
|
286
|
+
return new RegExp(`^(?:${pathPattern})`).test(t);
|
|
287
|
+
} catch {
|
|
288
|
+
// Malformed regex in plan — fail-open to avoid blocking everything.
|
|
289
|
+
return false;
|
|
158
290
|
}
|
|
159
|
-
return false;
|
|
160
291
|
}
|
|
161
292
|
|
|
162
293
|
function classifyToolForBinding(toolName, command, filePath) {
|
|
@@ -420,6 +551,57 @@ function countCognitionLenses(text) {
|
|
|
420
551
|
return detectCognitionLenses(text).count;
|
|
421
552
|
}
|
|
422
553
|
|
|
554
|
+
// ── arch_facts gate ──────────────────────────────────────────────────────────
|
|
555
|
+
//
|
|
556
|
+
// Inspects actual diff content (tool_input.content / file_path) for
|
|
557
|
+
// architectural violations defined as arch_facts rules in mizan.yaml.
|
|
558
|
+
// Called AFTER cognition + discovery-binding checks pass, for Edit/Write/
|
|
559
|
+
// NotebookEdit only (Bash skipped — arch violations live in code, not commands).
|
|
560
|
+
//
|
|
561
|
+
// Tier-aware: if ~/.aria/license.json exists (client surface), arch_facts
|
|
562
|
+
// check is skipped — only owner gets server-side mizan enforcement here.
|
|
563
|
+
//
|
|
564
|
+
// Fail-open: if aria-telemetry is unreachable, the tool call is allowed.
|
|
565
|
+
// The 3s AbortController is a DETECTION PROBE (is telemetry alive?) not a
|
|
566
|
+
// hard deadline — if mizan is slow but alive the probe will complete; if it
|
|
567
|
+
// is down the catch path fail-opens without blocking the developer.
|
|
568
|
+
function isClientSurface() {
|
|
569
|
+
try {
|
|
570
|
+
return existsSync(`${HOME}/.aria/license.json`);
|
|
571
|
+
} catch {
|
|
572
|
+
return false;
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
async function archFactsGate(toolInput) {
|
|
577
|
+
// Skip on client surfaces — arch_facts enforcement is owner-only.
|
|
578
|
+
if (isClientSurface()) return { ok: true, allow: true, note: 'client-surface-skip' };
|
|
579
|
+
try {
|
|
580
|
+
const ariaTelemetry = process.env.ARIA_TELEMETRY_BASE || 'http://aria-telemetry.aria.svc.cluster.local:8088';
|
|
581
|
+
const ctl = new AbortController();
|
|
582
|
+
const probeTimer = setTimeout(() => ctl.abort(), 3000);
|
|
583
|
+
let resp;
|
|
584
|
+
try {
|
|
585
|
+
resp = await fetch(`${ariaTelemetry}/v1/mizan/check`, {
|
|
586
|
+
method: 'POST',
|
|
587
|
+
headers: { 'Content-Type': 'application/json' },
|
|
588
|
+
body: JSON.stringify({ draft: String(toolInput).slice(0, 50000), source: 'pre-tool-gate-arch-facts' }),
|
|
589
|
+
signal: ctl.signal,
|
|
590
|
+
});
|
|
591
|
+
} finally {
|
|
592
|
+
clearTimeout(probeTimer);
|
|
593
|
+
}
|
|
594
|
+
if (!resp.ok) return { ok: true, allow: true, note: 'mizan unreachable, fail-open' };
|
|
595
|
+
const result = await resp.json();
|
|
596
|
+
if (result?.hard_block === true && Array.isArray(result?.violations)) {
|
|
597
|
+
return { ok: false, allow: false, violations: result.violations };
|
|
598
|
+
}
|
|
599
|
+
return { ok: true, allow: true };
|
|
600
|
+
} catch {
|
|
601
|
+
return { ok: true, allow: true, note: 'mizan probe error, fail-open' };
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
|
|
423
605
|
// Hive cognition-logging v1.2 — fire-and-forget HTTP push to
|
|
424
606
|
// /api/cognition/log so every gate decision joins the corpus.
|
|
425
607
|
// Failures are silent: the local audit log is the durable record;
|
|
@@ -822,6 +1004,49 @@ No env-var disable path — gates are unconditional from the gated process per H
|
|
|
822
1004
|
process.exit(2);
|
|
823
1005
|
}
|
|
824
1006
|
|
|
1007
|
+
// ── arch_facts gate (architectural violation scan) ────────────────────────
|
|
1008
|
+
//
|
|
1009
|
+
// Runs after cognition + discovery-binding pass, for Edit/Write/NotebookEdit.
|
|
1010
|
+
// Bash is skipped: architectural violations live in the code being written,
|
|
1011
|
+
// not in shell commands — checking Bash commands would produce false positives
|
|
1012
|
+
// on grep/find invocations that mention forbidden strings without introducing them.
|
|
1013
|
+
//
|
|
1014
|
+
// Content inspected: new_string (Edit), content (Write), source (NotebookEdit).
|
|
1015
|
+
// Fail-open: unreachable mizan → allow. Client surface → skip.
|
|
1016
|
+
if (['Edit', 'Write', 'NotebookEdit'].includes(toolName)) {
|
|
1017
|
+
// Extract the actual content being written — this is what mizan should scan
|
|
1018
|
+
// for architectural patterns, not the file path or surrounding metadata.
|
|
1019
|
+
const contentToScan =
|
|
1020
|
+
toolInput.new_string ?? // Edit: the replacement text
|
|
1021
|
+
toolInput.content ?? // Write: the full file content
|
|
1022
|
+
toolInput.source ?? // NotebookEdit: cell source
|
|
1023
|
+
'';
|
|
1024
|
+
// Also include file_path for context so mizan pattern-matching can be
|
|
1025
|
+
// path-scoped (e.g. R9 only fires for telemetry/cron paths).
|
|
1026
|
+
const scanPayload = `// file: ${filePath}\n${contentToScan}`;
|
|
1027
|
+
const archResult = await archFactsGate(scanPayload);
|
|
1028
|
+
if (!archResult.allow) {
|
|
1029
|
+
const violationText = (archResult.violations || [])
|
|
1030
|
+
.map((v) => ` • [${v.rule ?? v.id ?? 'arch'}] ${v.description ?? v.message ?? JSON.stringify(v)}`)
|
|
1031
|
+
.join('\n');
|
|
1032
|
+
const archReason = `Aria arch_facts gate: architectural violation(s) detected in ${toolName} diff for ${filePath || '(no path)'}.
|
|
1033
|
+
|
|
1034
|
+
${violationText}
|
|
1035
|
+
|
|
1036
|
+
These patterns are forbidden by mizan arch_facts rules (mizan.yaml R7–R11). Fix the structural issue before re-issuing the tool call — the gate does not have a bypass for architectural violations.
|
|
1037
|
+
|
|
1038
|
+
Rule references:
|
|
1039
|
+
R7 no_sidecar_in_main_container — bolt-in fork pattern (project_aria_soul_systemd_migration.md)
|
|
1040
|
+
R8 no_silent_fallback_default — || 'unknown'/'default'/'fallback' masks config failures
|
|
1041
|
+
R9 no_timeout_based_retry — setTimeout+abort in telemetry/chat/cron paths (no-timeouts doctrine)
|
|
1042
|
+
R10 no_kubectl_apply_for_image_drift — kubectl apply on aria-soul-stateful (project_forge_psi_oom_cascade.md)
|
|
1043
|
+
R11 no_console_log_secrets — console.log with TOKEN/PASSWORD/SECRET/API_KEY/JWT/BEARER`;
|
|
1044
|
+
audit(`block-arch-facts ${toolName.toLowerCase()} path=${filePath}`, `violations=${archResult.violations?.length ?? 0}`);
|
|
1045
|
+
console.log(JSON.stringify({ decision: 'block', reason: archReason }));
|
|
1046
|
+
process.exit(2);
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
825
1050
|
// Non-trivial action with cognition (inline for Bash, transcript for
|
|
826
1051
|
// Edit/Write/NotebookEdit) — passes cognition gate. Now check Aria-binding.
|
|
827
1052
|
|
|
@@ -845,6 +1070,32 @@ No env-var disable path — gates are unconditional from the gated process per H
|
|
|
845
1070
|
// ReferenceError. No new bypass entries can be created (pre-existing defect
|
|
846
1071
|
// fixed inline per atomic-discovery-rule).
|
|
847
1072
|
const bindingBypassReason = null;
|
|
1073
|
+
|
|
1074
|
+
// Defect #4 fix — Consult-Aria unconditionally allowed (doctrine #50).
|
|
1075
|
+
//
|
|
1076
|
+
// Aria-as-commander session pattern (HARNESS_ARIA_AS_COMMANDER_CONTRACT.md
|
|
1077
|
+
// doctrine #50) makes per-turn consult mandatory. A plan cannot forbid the
|
|
1078
|
+
// consult mechanism that issues plans — that would be an unbootstrappable
|
|
1079
|
+
// circular lock. Previously plan p1 forbade bash_other → consult curl was
|
|
1080
|
+
// classified as bash_other → blocked. Now: any Bash command that is a consult
|
|
1081
|
+
// to a known Aria/harness endpoint passes UNCONDITIONALLY past ALL binding
|
|
1082
|
+
// checks regardless of allowedActions or forbiddenActions in the active phase.
|
|
1083
|
+
// Cognition gate still applies (it ran above and passed to reach this point).
|
|
1084
|
+
//
|
|
1085
|
+
// Covered endpoints (hardcoded carve-out):
|
|
1086
|
+
// curl http(s)://aria-soul<anything>
|
|
1087
|
+
// curl http(s)://aria-telemetry<anything>
|
|
1088
|
+
// curl http(s)://localhost:30080/(chat|api/aria/speak|api/harness/codex|
|
|
1089
|
+
// api/harness/verify-claim|v1/doctrine|v1/mizan)
|
|
1090
|
+
const ARIA_CONSULT_CURL_RX = /curl\s+['"]?https?:\/\/(?:aria-soul[^\s'"]*|aria-telemetry[^\s'"]*|localhost:30080\/(?:chat|api\/aria\/speak|api\/harness\/(?:codex|verify-claim|delegate|army|plan)|v1\/(?:doctrine|mizan))[^\s'"]*)/i;
|
|
1091
|
+
const __isUnconditionalConsult = toolName === 'Bash' && ARIA_CONSULT_CURL_RX.test(cmd);
|
|
1092
|
+
if (__isUnconditionalConsult) {
|
|
1093
|
+
bindingAuditAppend({ event: 'allow_unconditional_consult', sessionId, toolName, cmdPreview, reason: 'doctrine#50-aria-as-commander-consult-carveout' });
|
|
1094
|
+
audit(`allow-unconditional-consult lenses=${lensCount}`, cmdPreview);
|
|
1095
|
+
pushDecision('allow', 'unconditional consult carve-out (doctrine #50)');
|
|
1096
|
+
process.exit(0);
|
|
1097
|
+
}
|
|
1098
|
+
|
|
848
1099
|
const __bindingActionClassification = (BINDING_ENABLED && !bindingBypassReason)
|
|
849
1100
|
? classifyToolForBinding(toolName, cmd, filePath)
|
|
850
1101
|
: null;
|
|
@@ -901,7 +1152,7 @@ What Claude must do: emit [PLAN_BLOCKER reason="<concrete observation>" suggeste
|
|
|
901
1152
|
const phase = phaseInfo.phase;
|
|
902
1153
|
|
|
903
1154
|
// Forbidden takes precedence
|
|
904
|
-
const forbidden = (phase.forbiddenActions || []).find((p) => actionMatchesPattern(action, p));
|
|
1155
|
+
const forbidden = (phase.forbiddenActions || []).find((p) => actionMatchesPattern(action, p, target));
|
|
905
1156
|
if (forbidden) {
|
|
906
1157
|
bindingAuditAppend({ event: 'block_forbidden_action', sessionId, planId: plan.planId, phaseId: phase.id, action, target, matchedRule: forbidden });
|
|
907
1158
|
const reason = `Aria binding gate: action "${action}" on target "${target}" matches forbidden pattern "${forbidden}" for current phase ${phase.id} ("${phase.summary}") of plan ${plan.planId}.
|
|
@@ -915,7 +1166,7 @@ Claude must either: (a) reframe the action to fit allowedActions, OR (b) emit [P
|
|
|
915
1166
|
process.exit(2);
|
|
916
1167
|
}
|
|
917
1168
|
|
|
918
|
-
const allowed = (phase.allowedActions || []).find((p) => actionMatchesPattern(action, p));
|
|
1169
|
+
const allowed = (phase.allowedActions || []).find((p) => actionMatchesPattern(action, p, target));
|
|
919
1170
|
if (!allowed) {
|
|
920
1171
|
bindingAuditAppend({ event: 'block_action_not_in_allowed_list', sessionId, planId: plan.planId, phaseId: phase.id, action, target });
|
|
921
1172
|
const reason = `Aria binding gate: action "${action}" on target "${target}" is NOT in allowedActions for current phase ${phase.id} of plan ${plan.planId}.
|
package/package.json
CHANGED
|
@@ -33,6 +33,9 @@ const HOOK_FILES = [
|
|
|
33
33
|
'aria-agent-handoff.mjs',
|
|
34
34
|
'aria-agent-ledger-merge.mjs',
|
|
35
35
|
'doctrine_trigger_map.json',
|
|
36
|
+
// Pre-text gate — validates state-dependent claims in prose against
|
|
37
|
+
// probe evidence before emission. Closes "WHEN TO LOOK before speaking" gap.
|
|
38
|
+
'aria-pre-text-gate.mjs',
|
|
36
39
|
];
|
|
37
40
|
// Compiled location: <pkg>/dist/aria-connector/src/connectors/claude-code.js
|
|
38
41
|
// (tsc preserves the src/ rooted layout under outDir). From this file:
|
|
@@ -172,11 +175,22 @@ const HOOKS_BLOCK = {
|
|
|
172
175
|
// Stop gate — text-decision boundary. Reflexive replies fail this
|
|
173
176
|
// gate the same way reflexive Bash does. Mirrors PreToolUse
|
|
174
177
|
// enforcement at the text-emission surface.
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
// Pre-text gate fires alongside: validates state-dependent claims
|
|
179
|
+
// in prose (env vars, file states, pod states, deploy outcomes, etc.)
|
|
180
|
+
// against probe evidence in this turn's tool results. Closes the
|
|
181
|
+
// "WHEN TO LOOK before speaking" gap left open by both existing gates.
|
|
182
|
+
hooks: [
|
|
183
|
+
{
|
|
184
|
+
type: 'command',
|
|
185
|
+
command: 'node $HOME/.claude/hooks/aria-stop-gate.mjs',
|
|
186
|
+
timeout: 5,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
type: 'command',
|
|
190
|
+
command: 'node $HOME/.claude/hooks/aria-pre-text-gate.mjs',
|
|
191
|
+
timeout: 5,
|
|
192
|
+
},
|
|
193
|
+
],
|
|
180
194
|
}],
|
|
181
195
|
};
|
|
182
196
|
|
|
@@ -18,11 +18,20 @@ export async function connectOpenCode(config: AriaConfig): Promise<string[]> {
|
|
|
18
18
|
const opencodeConfig = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
19
19
|
let modified = false;
|
|
20
20
|
|
|
21
|
+
// Remove any prior reference to '@aria/connector' from plugins.
|
|
22
|
+
// That package name was written into older client configs but no
|
|
23
|
+
// such npm package exists — the harness integration with OpenCode
|
|
24
|
+
// is via agentsMdPath below, not via a plugin module. Loading a
|
|
25
|
+
// non-existent plugin name crashes OpenCode on open. Idempotent
|
|
26
|
+
// cleanup so re-running connect heals broken installs.
|
|
21
27
|
if (Array.isArray(opencodeConfig.plugins)) {
|
|
22
|
-
|
|
23
|
-
|
|
28
|
+
const before = opencodeConfig.plugins.length;
|
|
29
|
+
opencodeConfig.plugins = opencodeConfig.plugins.filter(
|
|
30
|
+
(p: unknown) => p !== '@aria/connector',
|
|
31
|
+
);
|
|
32
|
+
if (opencodeConfig.plugins.length !== before) {
|
|
24
33
|
modified = true;
|
|
25
|
-
logs.push('
|
|
34
|
+
logs.push('Removed legacy @aria/connector reference from OpenCode plugins (was crashing on open)');
|
|
26
35
|
}
|
|
27
36
|
}
|
|
28
37
|
|