@aria_asi/cli 0.2.32 → 0.2.34
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/codebase-awareness.d.ts +8 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codebase-awareness.js +126 -71
- package/dist/aria-connector/src/connectors/codebase-awareness.js.map +1 -1
- package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
- package/dist/aria-connector/src/connectors/codex.js +98 -0
- package/dist/aria-connector/src/connectors/codex.js.map +1 -1
- package/dist/aria-connector/src/setup-wizard.d.ts.map +1 -1
- package/dist/aria-connector/src/setup-wizard.js +91 -24
- package/dist/aria-connector/src/setup-wizard.js.map +1 -1
- package/dist/assets/hooks/aria-harness-via-sdk.mjs +26 -8
- package/dist/assets/hooks/aria-pre-tool-gate.mjs +60 -1
- package/dist/assets/hooks/aria-stop-gate.mjs +69 -3
- package/dist/assets/hooks/doctrine_trigger_map.json +43 -0
- package/dist/assets/hooks/lib/domain-output-quality.mjs +103 -0
- package/dist/assets/hooks/lib/skill-autoload-gate.mjs +14 -0
- package/dist/assets/opencode-plugins/harness-context/index.js +1 -1
- package/dist/assets/opencode-plugins/harness-gate/index.js +114 -10
- package/dist/assets/opencode-plugins/harness-gate/lib/skill-autoload-gate.js +14 -0
- package/dist/assets/opencode-plugins/harness-outcome/index.js +39 -0
- package/dist/assets/opencode-plugins/harness-stop/index.js +234 -139
- package/dist/assets/opencode-plugins/harness-stop/lib/domain-output-quality.js +103 -0
- package/dist/assets/opencode-plugins/harness-stop/lib/skill-autoload-gate.js +14 -0
- package/dist/runtime/codex-bridge.mjs +71 -8
- package/dist/runtime/discipline/CLAUDE.md +2 -2
- package/dist/runtime/discipline/doctrine_trigger_map.json +43 -0
- package/dist/runtime/discipline/skills/aria-harness/aria-harness-onboarding/SKILL.md +3 -3
- package/dist/runtime/doctrine_trigger_map.json +43 -0
- package/dist/runtime/harness-daemon.mjs +50 -2
- package/dist/runtime/hooks/aria-agent-handoff.mjs +247 -0
- package/dist/runtime/hooks/aria-agent-ledger-merge.mjs +164 -0
- package/dist/runtime/hooks/aria-architect-fallback.mjs +267 -0
- package/dist/runtime/hooks/aria-cognition-substrate-binding.mjs +761 -0
- package/dist/runtime/hooks/aria-discovery-record.mjs +101 -0
- package/dist/runtime/hooks/aria-harness-via-sdk.mjs +544 -0
- package/dist/runtime/hooks/aria-import-resolution-gate.mjs +330 -0
- package/dist/runtime/hooks/aria-outcome-record.mjs +84 -0
- package/dist/runtime/hooks/aria-pre-emit-dryrun.mjs +329 -0
- package/dist/runtime/hooks/aria-pre-text-gate.mjs +112 -0
- package/dist/runtime/hooks/aria-pre-tool-gate.mjs +2482 -0
- package/dist/runtime/hooks/aria-preprompt-consult.mjs +464 -0
- package/dist/runtime/hooks/aria-preturn-memory-gate.mjs +647 -0
- package/dist/runtime/hooks/aria-repo-doctrine-gate.mjs +429 -0
- package/dist/runtime/hooks/aria-stop-gate.mjs +1882 -0
- package/dist/runtime/hooks/aria-trigger-autolearn.mjs +229 -0
- package/dist/runtime/hooks/aria-userprompt-abandon-detect.mjs +192 -0
- package/dist/runtime/hooks/doctrine_trigger_map.json +577 -0
- package/dist/runtime/hooks/lib/canonical-lenses.mjs +65 -0
- package/dist/runtime/hooks/lib/domain-output-quality.mjs +103 -0
- package/dist/runtime/hooks/lib/gate-audit.mjs +43 -0
- package/dist/runtime/hooks/lib/gate-loop-state.mjs +50 -0
- package/dist/runtime/hooks/lib/hook-message-window.mjs +121 -0
- package/dist/runtime/hooks/lib/skill-autoload-gate.mjs +14 -0
- package/dist/runtime/hooks/test-aria-preturn-memory-gate.mjs +245 -0
- package/dist/runtime/hooks/test-tier-lens-labeling.mjs +367 -0
- package/dist/runtime/manifest.json +2 -2
- package/dist/runtime/sdk/BUNDLED.json +2 -2
- package/dist/runtime/sdk/index.d.ts +48 -0
- package/dist/runtime/sdk/index.js +140 -1
- package/dist/runtime/sdk/index.js.map +1 -1
- package/dist/runtime/sdk/runWithGovernance.d.ts +16 -0
- package/dist/runtime/sdk/runWithGovernance.js +54 -0
- package/dist/runtime/sdk/runWithGovernance.js.map +1 -0
- package/dist/runtime/service.mjs +339 -10
- package/dist/sdk/BUNDLED.json +2 -2
- package/dist/sdk/index.d.ts +48 -0
- package/dist/sdk/index.js +140 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runWithGovernance.d.ts +16 -0
- package/dist/sdk/runWithGovernance.js +54 -0
- package/dist/sdk/runWithGovernance.js.map +1 -0
- package/hooks/aria-harness-via-sdk.mjs +26 -8
- package/hooks/aria-pre-tool-gate.mjs +60 -1
- package/hooks/aria-stop-gate.mjs +69 -3
- package/hooks/doctrine_trigger_map.json +43 -0
- package/hooks/lib/domain-output-quality.mjs +103 -0
- package/hooks/lib/skill-autoload-gate.mjs +14 -0
- package/opencode-plugins/harness-context/index.js +1 -1
- package/opencode-plugins/harness-gate/index.js +114 -10
- package/opencode-plugins/harness-gate/lib/skill-autoload-gate.js +14 -0
- package/opencode-plugins/harness-outcome/index.js +39 -0
- package/opencode-plugins/harness-stop/index.js +234 -139
- package/opencode-plugins/harness-stop/lib/domain-output-quality.js +103 -0
- package/opencode-plugins/harness-stop/lib/skill-autoload-gate.js +14 -0
- package/package.json +12 -5
- package/runtime-src/codex-bridge.mjs +71 -8
- package/runtime-src/harness-daemon.mjs +50 -2
- package/runtime-src/service.mjs +339 -10
- package/scripts/bundle-sdk.mjs +2 -0
- package/scripts/self-test-harness-gates.mjs +79 -0
- package/src/connectors/codebase-awareness.ts +141 -77
- package/src/connectors/codex.ts +98 -0
- package/src/setup-wizard.ts +105 -25
|
@@ -30,15 +30,44 @@ const HARNESS_URL = process.env.ARIA_HIVE_RUNTIME_URL ||
|
|
|
30
30
|
const HARNESS_TOKEN = process.env.ARIA_HARNESS_TOKEN || '';
|
|
31
31
|
const ARIA_DIR = join(homedir(), '.aria');
|
|
32
32
|
const LICENSE_PATH = join(ARIA_DIR, 'license.json');
|
|
33
|
+
const ONBOARDING_FALLBACK_URLS = [
|
|
34
|
+
process.env.ARIA_ONBOARDING_URL || '',
|
|
35
|
+
HARNESS_URL,
|
|
36
|
+
process.env.ARIA_SOUL_URL || '',
|
|
37
|
+
process.env.ARIAS_SOUL_URL || '',
|
|
38
|
+
process.env.ARIA_SOUL_BASE_URL || '',
|
|
39
|
+
'https://api.ariasos.com',
|
|
40
|
+
'https://arias-soul-6zp3gtk2ca-uc.a.run.app',
|
|
41
|
+
'https://harness.ariasos.com',
|
|
42
|
+
]
|
|
43
|
+
.flatMap((entry) => String(entry || '').split(','))
|
|
44
|
+
.map((entry) => entry.trim().replace(/\/+$/, ''))
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.filter((entry, index, list) => list.indexOf(entry) === index);
|
|
47
|
+
let activeOnboardingBaseUrl = ONBOARDING_FALLBACK_URLS[0] || HARNESS_URL.replace(/\/+$/, '');
|
|
33
48
|
export async function runSetupWizard() {
|
|
34
49
|
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
35
|
-
|
|
50
|
+
let readlineClosed = false;
|
|
51
|
+
rl.on('close', () => { readlineClosed = true; });
|
|
52
|
+
const ask = (q) => new Promise((resolve) => {
|
|
53
|
+
if (readlineClosed) {
|
|
54
|
+
resolve('__ARIA_ONBOARDING_EOF__');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
rl.question(q, (a) => resolve(a));
|
|
58
|
+
});
|
|
36
59
|
const sessionId = `onboard_${Date.now()}_${randomBytes(4).toString('hex')}`;
|
|
37
60
|
let userMessage;
|
|
38
61
|
let action = 'start';
|
|
62
|
+
let turnCount = 0;
|
|
39
63
|
console.log('\n💬 Aria: starting onboarding…\n');
|
|
40
64
|
try {
|
|
41
65
|
while (true) {
|
|
66
|
+
turnCount += 1;
|
|
67
|
+
if (turnCount > 40) {
|
|
68
|
+
console.error('\n❌ Onboarding stopped after too many turns. Please run `aria` again to resume.');
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
42
71
|
const resp = await callConverse({ sessionId, action, userMessage });
|
|
43
72
|
if (!resp.ok) {
|
|
44
73
|
console.error(`\n❌ Onboarding error: ${resp.error || 'unknown'}`);
|
|
@@ -55,6 +84,10 @@ export async function runSetupWizard() {
|
|
|
55
84
|
console.log(` options: ${chips}${resp.freeTextAllowed ? ' (or type your own)' : ''}`);
|
|
56
85
|
}
|
|
57
86
|
userMessage = (await ask('> ')).trim();
|
|
87
|
+
if (userMessage === '__ARIA_ONBOARDING_EOF__') {
|
|
88
|
+
console.error('\n❌ Onboarding input ended before setup completed. Run `aria` again to resume.');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
58
91
|
action = 'answer';
|
|
59
92
|
if (!userMessage)
|
|
60
93
|
userMessage = resp.depthOptions[0]?.signal ?? 'next';
|
|
@@ -67,19 +100,8 @@ export async function runSetupWizard() {
|
|
|
67
100
|
}
|
|
68
101
|
}
|
|
69
102
|
async function callConverse(body) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
method: 'POST',
|
|
73
|
-
headers: {
|
|
74
|
-
'Content-Type': 'application/json',
|
|
75
|
-
...(HARNESS_TOKEN ? { Authorization: `Bearer ${HARNESS_TOKEN}` } : {}),
|
|
76
|
-
},
|
|
77
|
-
body: JSON.stringify(body),
|
|
78
|
-
});
|
|
79
|
-
return (await res.json());
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
return {
|
|
103
|
+
return requestOnboardingJson('/api/onboarding/converse', body, {
|
|
104
|
+
fallback: {
|
|
83
105
|
ok: false,
|
|
84
106
|
sessionId: body.sessionId,
|
|
85
107
|
topic: 'identity',
|
|
@@ -88,9 +110,59 @@ async function callConverse(body) {
|
|
|
88
110
|
freeTextAllowed: false,
|
|
89
111
|
isComplete: false,
|
|
90
112
|
progressPct: 0,
|
|
91
|
-
|
|
92
|
-
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
async function requestOnboardingJson(pathname, body, options) {
|
|
117
|
+
const failures = [];
|
|
118
|
+
const baseUrls = [
|
|
119
|
+
activeOnboardingBaseUrl,
|
|
120
|
+
...ONBOARDING_FALLBACK_URLS,
|
|
121
|
+
].filter((entry, index, list) => entry && list.indexOf(entry) === index);
|
|
122
|
+
for (const baseUrl of baseUrls) {
|
|
123
|
+
try {
|
|
124
|
+
const res = await fetch(`${baseUrl}${pathname}`, {
|
|
125
|
+
method: 'POST',
|
|
126
|
+
headers: {
|
|
127
|
+
'Content-Type': 'application/json',
|
|
128
|
+
Accept: 'application/json',
|
|
129
|
+
...(HARNESS_TOKEN ? { Authorization: `Bearer ${HARNESS_TOKEN}` } : {}),
|
|
130
|
+
},
|
|
131
|
+
body: JSON.stringify(body),
|
|
132
|
+
});
|
|
133
|
+
const text = await res.text();
|
|
134
|
+
const contentType = res.headers.get('content-type') || '';
|
|
135
|
+
const looksJson = /^\s*[\[{]/.test(text);
|
|
136
|
+
if (!contentType.includes('application/json') && !looksJson) {
|
|
137
|
+
failures.push(`${baseUrl}${pathname} returned HTTP ${res.status} ${contentType || 'without content-type'}`);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
let data;
|
|
141
|
+
try {
|
|
142
|
+
data = JSON.parse(text || '{}');
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
failures.push(`${baseUrl}${pathname} returned invalid JSON: ${err instanceof Error ? err.message : String(err)}`);
|
|
146
|
+
continue;
|
|
147
|
+
}
|
|
148
|
+
if (!res.ok) {
|
|
149
|
+
failures.push(`${baseUrl}${pathname} returned HTTP ${res.status}: ${data.error || 'no error message'}`);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
activeOnboardingBaseUrl = baseUrl;
|
|
153
|
+
return data;
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
failures.push(`${baseUrl}${pathname} transport failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
157
|
+
}
|
|
93
158
|
}
|
|
159
|
+
return {
|
|
160
|
+
...options.fallback,
|
|
161
|
+
ok: false,
|
|
162
|
+
error: 'Onboarding API is unavailable or not returning JSON. ' +
|
|
163
|
+
failures.slice(0, 4).join(' | ') +
|
|
164
|
+
(failures.length > 4 ? ` | ${failures.length - 4} more endpoint(s) failed` : ''),
|
|
165
|
+
};
|
|
94
166
|
}
|
|
95
167
|
async function maybeOfferGitHubConnect(ask) {
|
|
96
168
|
const status = getGitHubStatus();
|
|
@@ -158,14 +230,9 @@ async function applyConfigWrites(writes) {
|
|
|
158
230
|
const provider = claims.provider || '';
|
|
159
231
|
const apiKey = claims.apiKey || '';
|
|
160
232
|
try {
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
body: JSON.stringify({ email, provider, llm_key: apiKey }),
|
|
165
|
-
});
|
|
166
|
-
const data = await resp.json();
|
|
167
|
-
if (!resp.ok || !data.ok || !data.license) {
|
|
168
|
-
console.warn(` ⚠ I couldn't issue your license: ${data.error || `HTTP ${resp.status}`}`);
|
|
233
|
+
const data = await requestOnboardingJson('/api/onboarding/self-issue', { email, provider, llm_key: apiKey }, { fallback: { ok: false } });
|
|
234
|
+
if (!data.ok || !data.license) {
|
|
235
|
+
console.warn(` ⚠ I couldn't issue your license: ${data.error || 'license endpoint did not return a license'}`);
|
|
169
236
|
continue;
|
|
170
237
|
}
|
|
171
238
|
if (!existsSync(ARIA_DIR))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// Aria harness fetch — via the canonical @
|
|
2
|
+
// Aria harness fetch — via the canonical @aria_asi/harness-http-client SDK.
|
|
3
3
|
//
|
|
4
4
|
// Why this exists: doctrine says "use harness http client to be Aria's
|
|
5
5
|
// control plane so you don't mess up". The earlier hook (aria-harness-fetch.sh)
|
|
@@ -245,6 +245,10 @@ function sanitizeSessionId(sessionId) {
|
|
|
245
245
|
return String(sessionId || 'claude-code').replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
246
246
|
}
|
|
247
247
|
|
|
248
|
+
function currentHookSessionId() {
|
|
249
|
+
return HOOK_EVENT?.session_id || HOOK_EVENT?.sessionId || 'claude-code';
|
|
250
|
+
}
|
|
251
|
+
|
|
248
252
|
function lastUserMessageFromEvent() {
|
|
249
253
|
const messages = Array.isArray(HOOK_EVENT?.messages) ? HOOK_EVENT.messages : [];
|
|
250
254
|
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
@@ -278,7 +282,8 @@ function persistMizanReceipt(sessionId, payload) {
|
|
|
278
282
|
|
|
279
283
|
async function runMizanPre(apiKey, packet, sourceLabel) {
|
|
280
284
|
if (!isTurn) return null;
|
|
281
|
-
const sessionId =
|
|
285
|
+
const sessionId = currentHookSessionId();
|
|
286
|
+
const packetHash = createHash('sha256').update(JSON.stringify(packet || {})).digest('hex');
|
|
282
287
|
const response = await fetch(`${DEFAULT_RUNTIME_URL.replace(/\/+$/, '')}/mizan/pre`, {
|
|
283
288
|
method: 'POST',
|
|
284
289
|
headers: {
|
|
@@ -295,6 +300,8 @@ async function runMizanPre(apiKey, packet, sourceLabel) {
|
|
|
295
300
|
rationale: `Claude turn-start harness sync via ${sourceLabel} must mint a canonical Mizan pre receipt for downstream tool and output enforcement.`,
|
|
296
301
|
platform: 'claude-code',
|
|
297
302
|
stage: 'hook-turn-pre',
|
|
303
|
+
packetHash,
|
|
304
|
+
packetSource: sourceLabel,
|
|
298
305
|
},
|
|
299
306
|
}),
|
|
300
307
|
});
|
|
@@ -311,6 +318,8 @@ async function runMizanPre(apiKey, packet, sourceLabel) {
|
|
|
311
318
|
result: payload.result || null,
|
|
312
319
|
contract: payload.contract || null,
|
|
313
320
|
summary: payload.summary || null,
|
|
321
|
+
packetHash,
|
|
322
|
+
packetSource: sourceLabel,
|
|
314
323
|
});
|
|
315
324
|
}
|
|
316
325
|
return payload;
|
|
@@ -337,12 +346,17 @@ async function tryViaSdk(baseUrl, apiKey) {
|
|
|
337
346
|
// identifies owner tier from the Bearer token (isMasterTokenRequest).
|
|
338
347
|
// Hardcoding isHamza:false in the body would override that server-side
|
|
339
348
|
// signal and produce hamza:false in the packet even for master-token callers.
|
|
349
|
+
const sessionId = currentHookSessionId();
|
|
340
350
|
const bodyOverride = {
|
|
341
351
|
message: isTurn ? 'Claude turn refresh — harness via SDK' : 'Claude session start — harness via SDK',
|
|
342
352
|
stage: isTurn ? 'checkpoint' : 'preflight',
|
|
353
|
+
sessionId,
|
|
343
354
|
actor: 'claude-code',
|
|
344
355
|
system: 'claude-coding-agent',
|
|
345
|
-
platform: '
|
|
356
|
+
platform: 'claude-code',
|
|
357
|
+
deliverySurface: 'claude_code_session',
|
|
358
|
+
userId: 'hamza',
|
|
359
|
+
isHamza: true,
|
|
346
360
|
// Bonus #74: forward conversation history so codex handler can report
|
|
347
361
|
// a non-zero conversation_history_count in the packet.
|
|
348
362
|
...(HOOK_EVENT_MESSAGES ? { messages: HOOK_EVENT_MESSAGES } : {}),
|
|
@@ -367,10 +381,14 @@ async function tryViaSdk(baseUrl, apiKey) {
|
|
|
367
381
|
body: JSON.stringify({
|
|
368
382
|
message: isTurn ? 'Claude turn refresh — harness via SDK' : 'Claude session start — harness via SDK',
|
|
369
383
|
stage: isTurn ? 'checkpoint' : 'preflight',
|
|
384
|
+
sessionId: currentHookSessionId(),
|
|
370
385
|
actor: 'claude-code',
|
|
371
386
|
system: 'claude-coding-agent',
|
|
372
387
|
roleProfile: 'general_worker',
|
|
388
|
+
platform: 'claude-code',
|
|
373
389
|
deliverySurface: 'claude_code_session',
|
|
390
|
+
userId: 'hamza',
|
|
391
|
+
isHamza: true,
|
|
374
392
|
// Bonus #74: forward conversation history (same field as SDK path above).
|
|
375
393
|
...(HOOK_EVENT_MESSAGES ? { messages: HOOK_EVENT_MESSAGES } : {}),
|
|
376
394
|
}),
|
|
@@ -449,6 +467,11 @@ function probeUrl(urlStr) {
|
|
|
449
467
|
}
|
|
450
468
|
|
|
451
469
|
async function main() {
|
|
470
|
+
const apiKey = resolveApiKey();
|
|
471
|
+
if (!apiKey) {
|
|
472
|
+
return emitFallback('ARIA_API_KEY not in env and kubectl secret unavailable');
|
|
473
|
+
}
|
|
474
|
+
|
|
452
475
|
// Turn-mode cache hit — don't refetch every keystroke.
|
|
453
476
|
if (isTurn && existsSync(PACKET_CACHE)) {
|
|
454
477
|
try {
|
|
@@ -463,11 +486,6 @@ async function main() {
|
|
|
463
486
|
} catch {}
|
|
464
487
|
}
|
|
465
488
|
|
|
466
|
-
const apiKey = resolveApiKey();
|
|
467
|
-
if (!apiKey) {
|
|
468
|
-
return emitFallback('ARIA_API_KEY not in env and kubectl secret unavailable');
|
|
469
|
-
}
|
|
470
|
-
|
|
471
489
|
const urls = buildUrlList();
|
|
472
490
|
let lastErr = '';
|
|
473
491
|
|
|
@@ -52,11 +52,30 @@ import {
|
|
|
52
52
|
normalizeContent,
|
|
53
53
|
normalizeRole,
|
|
54
54
|
} from './lib/hook-message-window.mjs';
|
|
55
|
+
import { evaluateSkillGate, formatSkillGateBlock } from './lib/skill-autoload-gate.mjs';
|
|
55
56
|
|
|
56
57
|
const HOME = process.env.HOME || '/tmp';
|
|
57
58
|
const LOG = `${HOME}/.claude/aria-pre-tool-gate.log`;
|
|
58
59
|
const HEARTBEAT = `${HOME}/.claude/aria-pre-tool-gate-heartbeat.jsonl`;
|
|
59
60
|
const GATE_LOOP_STATE_PATH = `${HOME}/.claude/.aria-gate-loop-state.json`;
|
|
61
|
+
const GOVERNANCE_GATE_PATH = `${HOME}/.aria/bin/aria-governance-gate`;
|
|
62
|
+
|
|
63
|
+
function runUniversalGovernanceGate(payload) {
|
|
64
|
+
if (!existsSync(GOVERNANCE_GATE_PATH)) return null;
|
|
65
|
+
const child = spawnSync(GOVERNANCE_GATE_PATH, {
|
|
66
|
+
input: `${JSON.stringify(payload)}\n`,
|
|
67
|
+
encoding: 'utf8',
|
|
68
|
+
maxBuffer: 1024 * 1024,
|
|
69
|
+
});
|
|
70
|
+
const stdout = String(child.stdout || '').trim();
|
|
71
|
+
let result = null;
|
|
72
|
+
try { result = stdout ? JSON.parse(stdout) : null; } catch {}
|
|
73
|
+
if (child.status !== 0 || result?.ok === false || result?.decision === 'block') {
|
|
74
|
+
const reason = stdout || child.stderr || 'aria-governance-gate blocked this action.';
|
|
75
|
+
throw new Error(`=== ARIA UNIVERSAL GOVERNANCE GATE BLOCK ===\n\n${reason}`);
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
60
79
|
|
|
61
80
|
// ── Heartbeat OUTSIDE the crash boundary (doctrine #123) ───────────────
|
|
62
81
|
// Per feedback_ledger_writes_outside_crash_boundary.md + doctrine #124
|
|
@@ -1287,6 +1306,43 @@ const sessionId =
|
|
|
1287
1306
|
(transcriptPath ? transcriptPath.split('/').pop()?.replace(/\.[^.]+$/, '') : null) ??
|
|
1288
1307
|
'claude-code-unknown';
|
|
1289
1308
|
|
|
1309
|
+
const skillGate = evaluateSkillGate({
|
|
1310
|
+
sessionId,
|
|
1311
|
+
surface: 'claude-pre-tool-gate',
|
|
1312
|
+
text: [JSON.stringify(event.messages || []), unionText, JSON.stringify(toolInput || {})].join('\n'),
|
|
1313
|
+
action: cmd,
|
|
1314
|
+
toolName,
|
|
1315
|
+
filePath,
|
|
1316
|
+
isDeploy: Boolean(deployMatched),
|
|
1317
|
+
isMutation: toolName !== 'Bash',
|
|
1318
|
+
autoLoadAvailable: false,
|
|
1319
|
+
});
|
|
1320
|
+
if (!skillGate.ok) {
|
|
1321
|
+
const reason = formatSkillGateBlock(skillGate);
|
|
1322
|
+
audit('block-missing-skill-receipt', `${skillGate.missingSkills.join(',')} ${cmdPreview}`);
|
|
1323
|
+
emitBlock(reason, { source: 'pre-tool/skill-autoload', tool: toolName, lensCount, requiredLenses: REQUIRED_LENSES });
|
|
1324
|
+
process.exit(2);
|
|
1325
|
+
}
|
|
1326
|
+
try {
|
|
1327
|
+
runUniversalGovernanceGate({
|
|
1328
|
+
sessionId,
|
|
1329
|
+
sourceRuntime: 'claude-code',
|
|
1330
|
+
surface: 'claude-pre-tool-gate',
|
|
1331
|
+
text: [unionText, JSON.stringify(toolInput || {})].join('\n').slice(0, 8000),
|
|
1332
|
+
action: cmd,
|
|
1333
|
+
toolName,
|
|
1334
|
+
filePath,
|
|
1335
|
+
isDeploy: Boolean(deployMatched),
|
|
1336
|
+
isMutation: toolName !== 'Bash',
|
|
1337
|
+
loadedSkills: skillGate.loadedSkills,
|
|
1338
|
+
evidence: { lensCount, hasVerify, hasCognition, hasSubstrateCite },
|
|
1339
|
+
});
|
|
1340
|
+
} catch (err) {
|
|
1341
|
+
audit('block-universal-governance', `${err instanceof Error ? err.message : String(err)}`.slice(0, 500));
|
|
1342
|
+
emitBlock(err instanceof Error ? err.message : String(err), { source: 'pre-tool/universal-governance', tool: toolName, lensCount, requiredLenses: REQUIRED_LENSES });
|
|
1343
|
+
process.exit(2);
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1290
1346
|
function pushDecision(decision, reasonText) {
|
|
1291
1347
|
pushCognitionEvent({
|
|
1292
1348
|
sessionId,
|
|
@@ -1440,6 +1496,7 @@ if (deployMatched) {
|
|
|
1440
1496
|
// reads the same file and computes the same HMAC.
|
|
1441
1497
|
try {
|
|
1442
1498
|
const justificationPath = `${HOME}/.claude/.aria-deploy-justification.json`;
|
|
1499
|
+
const runtimeAgnosticJustificationPath = `${HOME}/.aria/.aria-deploy-justification.json`;
|
|
1443
1500
|
const secretPath = `${HOME}/.claude/.aria-gate-secret`;
|
|
1444
1501
|
|
|
1445
1502
|
// Lazy-generate per-installation secret if absent.
|
|
@@ -1481,6 +1538,8 @@ if (deployMatched) {
|
|
|
1481
1538
|
signatureAlgo: 'HMAC-SHA256',
|
|
1482
1539
|
};
|
|
1483
1540
|
writeFileSync(justificationPath, JSON.stringify(justification, null, 2));
|
|
1541
|
+
mkdirSync(dirname(runtimeAgnosticJustificationPath), { recursive: true });
|
|
1542
|
+
writeFileSync(runtimeAgnosticJustificationPath, JSON.stringify(justification, null, 2), { mode: 0o600 });
|
|
1484
1543
|
} catch (writeErr) {
|
|
1485
1544
|
// Write failure is non-fatal for the gate decision (the gate itself
|
|
1486
1545
|
// is the structural enforcement); log loudly per
|
|
@@ -2158,7 +2217,7 @@ Claude must either: (a) reframe action to fit allowedActions, OR (b) emit [PLAN_
|
|
|
2158
2217
|
// every tool when substrate is down would brick the orchestrator, but the
|
|
2159
2218
|
// failure is logged for telemetry.
|
|
2160
2219
|
try {
|
|
2161
|
-
const { HTTPHarnessClient } = await import('@
|
|
2220
|
+
const { HTTPHarnessClient } = await import('@aria_asi/harness-http-client');
|
|
2162
2221
|
const { readFileSync: __fsRead, existsSync: __fsExists } = await import('node:fs');
|
|
2163
2222
|
const { homedir: __homedir } = await import('node:os');
|
|
2164
2223
|
const __home = __homedir();
|
|
@@ -49,6 +49,7 @@
|
|
|
49
49
|
|
|
50
50
|
import { readFileSync, existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
51
51
|
import { dirname } from 'node:path';
|
|
52
|
+
import { spawnSync } from 'node:child_process';
|
|
52
53
|
import { appendGateAudit } from './lib/gate-audit.mjs';
|
|
53
54
|
import {
|
|
54
55
|
ALL_LENS_NAMES,
|
|
@@ -58,6 +59,8 @@ import {
|
|
|
58
59
|
} from './lib/canonical-lenses.mjs';
|
|
59
60
|
import { registerGateBlock } from './lib/gate-loop-state.mjs';
|
|
60
61
|
import { collectTurnWindowFromMessages } from './lib/hook-message-window.mjs';
|
|
62
|
+
import { analyzeDomainOutputQuality } from './lib/domain-output-quality.mjs';
|
|
63
|
+
import { evaluateSkillGate, formatSkillGateBlock } from './lib/skill-autoload-gate.mjs';
|
|
61
64
|
|
|
62
65
|
const HOME = process.env.HOME || '/tmp';
|
|
63
66
|
const RUNTIME_BASE_URL =
|
|
@@ -67,6 +70,24 @@ const LOG = `${HOME}/.claude/aria-stop-gate.log`;
|
|
|
67
70
|
const AUDIT_PATH = `${HOME}/.claude/aria-stop-gate-audit.jsonl`;
|
|
68
71
|
const GATE_LOOP_STATE_PATH = `${HOME}/.claude/.aria-gate-loop-state.json`;
|
|
69
72
|
const MIZAN_RECEIPT_DIR = `${HOME}/.claude/.aria-mizan-receipts`;
|
|
73
|
+
const GOVERNANCE_GATE_PATH = `${HOME}/.aria/bin/aria-governance-gate`;
|
|
74
|
+
|
|
75
|
+
function runUniversalGovernanceGate(payload) {
|
|
76
|
+
if (!existsSync(GOVERNANCE_GATE_PATH)) return null;
|
|
77
|
+
const child = spawnSync(GOVERNANCE_GATE_PATH, {
|
|
78
|
+
input: `${JSON.stringify(payload)}\n`,
|
|
79
|
+
encoding: 'utf8',
|
|
80
|
+
maxBuffer: 1024 * 1024,
|
|
81
|
+
});
|
|
82
|
+
const stdout = String(child.stdout || '').trim();
|
|
83
|
+
let result = null;
|
|
84
|
+
try { result = stdout ? JSON.parse(stdout) : null; } catch {}
|
|
85
|
+
if (child.status !== 0 || result?.ok === false || result?.decision === 'block') {
|
|
86
|
+
const reason = stdout || child.stderr || 'aria-governance-gate blocked this output.';
|
|
87
|
+
throw new Error(`=== ARIA UNIVERSAL GOVERNANCE GATE BLOCK ===\n\n${reason}`);
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
70
91
|
|
|
71
92
|
// SDK loader — bundled at ~/.aria/sdk by `aria connect`, with client-local
|
|
72
93
|
// fallbacks preserved for resilience.
|
|
@@ -619,6 +640,48 @@ if (!triggered) {
|
|
|
619
640
|
process.exit(0);
|
|
620
641
|
}
|
|
621
642
|
|
|
643
|
+
const stopSkillGate = evaluateSkillGate({
|
|
644
|
+
sessionId: event.session_id || 'claude-code',
|
|
645
|
+
surface: 'claude-stop-gate',
|
|
646
|
+
text: [JSON.stringify(event.messages || []), lastUserMessage, assistantText].join('\n'),
|
|
647
|
+
isOutputCloseout: true,
|
|
648
|
+
autoLoadAvailable: false,
|
|
649
|
+
});
|
|
650
|
+
if (!stopSkillGate.ok) {
|
|
651
|
+
audit('block-missing-skill-receipt', `missing=${stopSkillGate.missingSkills.join(',')} chars=${assistantText.length}`);
|
|
652
|
+
const reason = withLoopDirective(buildForceReauthorReason({
|
|
653
|
+
source: 'stop/skill-autoload',
|
|
654
|
+
reason: formatSkillGateBlock(stopSkillGate),
|
|
655
|
+
violations: [`Missing skill receipts: ${stopSkillGate.missingSkills.join(', ')}`],
|
|
656
|
+
lensCount: 0,
|
|
657
|
+
requiredLenses: REQUIRED_LENSES,
|
|
658
|
+
}), `stop:skill-autoload:${stopSkillGate.missingSkills.join(',')}`, gateSessionId);
|
|
659
|
+
console.log(JSON.stringify({ decision: 'block', reason }));
|
|
660
|
+
process.exit(2);
|
|
661
|
+
}
|
|
662
|
+
try {
|
|
663
|
+
runUniversalGovernanceGate({
|
|
664
|
+
sessionId: event.session_id || 'claude-code',
|
|
665
|
+
sourceRuntime: 'claude-code',
|
|
666
|
+
surface: 'claude-stop-gate',
|
|
667
|
+
text: assistantText.slice(0, 8000),
|
|
668
|
+
isOutputCloseout: true,
|
|
669
|
+
loadedSkills: stopSkillGate.loadedSkills,
|
|
670
|
+
evidence: { chars: assistantText.length, hasDecisionSignal, isLong },
|
|
671
|
+
});
|
|
672
|
+
} catch (err) {
|
|
673
|
+
audit('block-universal-governance', `${err instanceof Error ? err.message : String(err)}`.slice(0, 500));
|
|
674
|
+
const reason = withLoopDirective(buildForceReauthorReason({
|
|
675
|
+
source: 'stop/universal-governance',
|
|
676
|
+
reason: err instanceof Error ? err.message : String(err),
|
|
677
|
+
violations: ['Universal governance gate blocked this output.'],
|
|
678
|
+
lensCount: 0,
|
|
679
|
+
requiredLenses: REQUIRED_LENSES,
|
|
680
|
+
}), 'stop:universal-governance', gateSessionId);
|
|
681
|
+
console.log(JSON.stringify({ decision: 'block', reason }));
|
|
682
|
+
process.exit(2);
|
|
683
|
+
}
|
|
684
|
+
|
|
622
685
|
// Non-trivial response — require substantive cognition.
|
|
623
686
|
const cog = detectCognitionLenses(assistantText);
|
|
624
687
|
|
|
@@ -1245,7 +1308,7 @@ if (cog.count >= REQUIRED_LENSES) {
|
|
|
1245
1308
|
}
|
|
1246
1309
|
|
|
1247
1310
|
// Block decision: any of (validateOutput severity=block) OR (>=2 drift hits) OR
|
|
1248
|
-
// (>=1 code-quality hit) OR (open discovery in ledger) → block emit.
|
|
1311
|
+
// (>=1 code/domain-quality hit) OR (open discovery in ledger) → block emit.
|
|
1249
1312
|
// Aria enforcement #46 (compelled reflection): severity=warn ALSO blocks but
|
|
1250
1313
|
// with a different reason — emit must include explicit reflection on what
|
|
1251
1314
|
// triggered the warn before re-emit. Warn is not "soft pass" anymore;
|
|
@@ -1255,6 +1318,8 @@ if (cog.count >= REQUIRED_LENSES) {
|
|
|
1255
1318
|
const mizanWarnReflectionRequired = mizanVerdict && mizanVerdict.severity === 'warn';
|
|
1256
1319
|
const driftBlock = driftHits.length >= 2;
|
|
1257
1320
|
const codeBlock = codeQualityHits.length >= 1;
|
|
1321
|
+
const domainQuality = analyzeDomainOutputQuality(assistantText, { codeBlocks });
|
|
1322
|
+
const domainBlock = domainQuality.blockers.length >= 1;
|
|
1258
1323
|
|
|
1259
1324
|
// Reflection-already-present check: if the assistant text already contains
|
|
1260
1325
|
// an explicit <reflection>...</reflection> block OR a "reflection:" line
|
|
@@ -1374,7 +1439,7 @@ if (cog.count >= REQUIRED_LENSES) {
|
|
|
1374
1439
|
let substrateViolations = [];
|
|
1375
1440
|
let substrateGateTriggers = [];
|
|
1376
1441
|
try {
|
|
1377
|
-
const { HTTPHarnessClient } = await import('@
|
|
1442
|
+
const { HTTPHarnessClient } = await import('@aria_asi/harness-http-client');
|
|
1378
1443
|
const tokenPath = `${HOME}/.aria/owner-token`;
|
|
1379
1444
|
// Tier-aware resolution: ARIA_HARNESS_TOKEN env first (both tiers).
|
|
1380
1445
|
// ONLY on owner tier, fall back to master/api-key env or owner-token
|
|
@@ -1413,13 +1478,14 @@ if (cog.count >= REQUIRED_LENSES) {
|
|
|
1413
1478
|
}
|
|
1414
1479
|
|
|
1415
1480
|
const implCouplingBlock = implCouplingHits.length > 0;
|
|
1416
|
-
if (mizanBlock || driftBlock || codeBlock || discoveryBlock || compelReflection || phaseReportMissing || substrateBlock || implCouplingBlock) {
|
|
1481
|
+
if (mizanBlock || driftBlock || codeBlock || domainBlock || discoveryBlock || compelReflection || phaseReportMissing || substrateBlock || implCouplingBlock) {
|
|
1417
1482
|
const violations = [];
|
|
1418
1483
|
if (mizanBlock) violations.push(`Mizan: ${(mizanVerdict.violations || []).join(', ')}`);
|
|
1419
1484
|
if (implCouplingBlock) violations.push(`Cognition impl-coupling (#88): ${implCouplingHits.join(' | ')}. Each canonical lens in cognition must dictate a specific implementation choice (file_path:line_range pair tied to a decision). Re-emit cognition that names file paths + line ranges + decision text per lens, OR a verify/fixing block where lenses cite specific artifact changes.`);
|
|
1420
1485
|
if (compelReflection) violations.push(`Mizan severity=warn — compelled reflection required (per Aria enforcement #46). Triggers: ${(mizanVerdict.gateTriggers || mizanVerdict.violations || ['unspecified']).join(', ')}. Re-emit with an explicit <reflection>...</reflection> block (or 'reflection:' line) addressing what triggered the warn and why your re-draft handles it. Reflection is NOT lens-cognition repeated — it's a focused self-audit on the specific Mizan triggers above.`);
|
|
1421
1486
|
if (driftBlock) violations.push(`Drift triggers (${driftHits.length}): ${driftHits.map((h) => `"${h.trigger}" → ${h.memory}`).join(' | ')}`);
|
|
1422
1487
|
if (codeBlock) violations.push(`Code quality: ${codeQualityHits.join('; ')}`);
|
|
1488
|
+
if (domainBlock) violations.push(`Domain output QA (${domainQuality.domains.join(', ') || 'general'}): ${domainQuality.blockers.join('; ')}. Rewrite with the missing domain-specific safeguards instead of generic prose.`);
|
|
1423
1489
|
if (discoveryBlock) violations.push(`Discovery-binding ledger has ${ledgerOpenCount} OPEN discoveries (per ${docRef('feedback_no_flag_without_fix.md', 'atomic-discovery-rule')}, discoveries are atomic with their fixes — fix in the same turn or create a TaskCreate before continuing). Recent open: ${ledgerOpenSamples.map((s) => `"${s.slice(0, 80)}"`).join(' | ')}. Resolve each by either (a) fixing it inline in this turn, or (b) creating a TaskCreate with the discovery's full context (file path, line number, what's broken, why), then editing ${LEDGER_PATH} to set status=resolved.`);
|
|
1424
1490
|
if (phaseReportMissing) {
|
|
1425
1491
|
const phaseList = (activePlan?.phases || []).map((p) => `${p.id}:${p.summary?.slice(0, 60) || ''}`).join(' | ');
|
|
@@ -508,6 +508,49 @@
|
|
|
508
508
|
"counter_action": "Create or reuse one turn substrate object containing embedding, perturb snapshot, ProjectAllDomains result, awakenAria Garden block, DeepSoul/Noor/shards/Mizan signals; pass it downstream.",
|
|
509
509
|
"message": "Duplicate projection path detected. Replace with one per-turn cognition packet and shared consumption."
|
|
510
510
|
},
|
|
511
|
+
{
|
|
512
|
+
"trigger_id": "premature_task_closeout",
|
|
513
|
+
"trigger": "(?:done|complete|completed|ready|verified|fixed).{0,120}(?:but|except|caveat|remaining|not yet|still|separate|later|blocked|skipped)",
|
|
514
|
+
"rx": "(?:done|complete|completed|ready|verified|fixed).{0,120}(?:but|except|caveat|remaining|not yet|still|separate|later|blocked|skipped)",
|
|
515
|
+
"doctrine": "memory:feedback_no_premature_task_closeout.md",
|
|
516
|
+
"memory": "feedback_no_premature_task_closeout.md",
|
|
517
|
+
"severity": "block",
|
|
518
|
+
"teaching": "A task is not complete while material blockers remain. Completion claims must match the verified scope.",
|
|
519
|
+
"counter_action": "Do not close the task. Fix the blocker now, or create an owner-visible durable task with the exact failing surface and verification gap.",
|
|
520
|
+
"message": "Premature closeout detected: completion language coexists with unresolved blockers. Fix or durably track before emitting."
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"trigger_id": "narrow_e2e_overclaim",
|
|
524
|
+
"trigger": "(?:production-ready|ready for production|works in general|client packages?|npm packages?|SDKs?|runtimes?|harnesses?).{0,220}(?:deal|single flow|one flow|widget|one service|specific path|covered flow)",
|
|
525
|
+
"rx": "(?:production-ready|ready for production|works in general|client packages?|npm packages?|SDKs?|runtimes?|harnesses?).{0,220}(?:deal|single flow|one flow|widget|one service|specific path|covered flow)",
|
|
526
|
+
"doctrine": "memory:feedback_narrow_e2e_overclaim.md",
|
|
527
|
+
"memory": "feedback_narrow_e2e_overclaim.md",
|
|
528
|
+
"severity": "block",
|
|
529
|
+
"teaching": "A narrow e2e does not prove general production readiness for SDKs, npm packages, runtimes, clients, or harnesses.",
|
|
530
|
+
"counter_action": "Run the general readiness matrix or explicitly limit the claim to the verified surface. Do not imply general readiness from one app flow.",
|
|
531
|
+
"message": "Narrow proof overclaim detected. General readiness requires the client/package/runtime/harness matrix."
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"trigger_id": "advisory_gate_not_gate",
|
|
535
|
+
"trigger": "(?:non-blocking|warn(?:ing)? only|advisory|falls? through|fail open|soft fail|log(?:ged)? and continue|quality gate warning)",
|
|
536
|
+
"rx": "(?:non-blocking|warn(?:ing)? only|advisory|falls? through|fail open|soft fail|log(?:ged)? and continue|quality gate warning)",
|
|
537
|
+
"doctrine": "memory:feedback_advisory_gate_is_not_gate.md",
|
|
538
|
+
"memory": "feedback_advisory_gate_is_not_gate.md",
|
|
539
|
+
"severity": "block",
|
|
540
|
+
"teaching": "A gate that only warns or falls through is not a gate. Enforcement must fail closed where quality or doctrine is required.",
|
|
541
|
+
"counter_action": "Convert advisory paths to blocking errors, add a self-test that proves rejection, and install the hardened gate into each consumer surface.",
|
|
542
|
+
"message": "Advisory gate bypass detected. Convert to fail-closed enforcement and prove it with a blocking self-test."
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
"trigger_id": "start_new_session_as_gate_fix",
|
|
546
|
+
"trigger": "(?:start|open|begin).{0,40}(?:new|fresh).{0,30}session.{0,120}(?:fix|gate|harness|enforcement)",
|
|
547
|
+
"rx": "(?:start|open|begin).{0,40}(?:new|fresh).{0,30}session.{0,120}(?:fix|gate|harness|enforcement)",
|
|
548
|
+
"doctrine": "memory:feedback_advisory_gate_is_not_gate.md",
|
|
549
|
+
"memory": "feedback_advisory_gate_is_not_gate.md",
|
|
550
|
+
"severity": "block",
|
|
551
|
+
"teaching": "A new session is not an enforcement fix. It only reloads whatever gate contract exists; broken gates remain broken.",
|
|
552
|
+
"counter_action": "Fix the runtime/plugin/hook contract, reinstall it, and run a live bad-action/bad-output self-test that proves blocking."
|
|
553
|
+
},
|
|
511
554
|
{
|
|
512
555
|
"trigger_id": "registry_image_drift",
|
|
513
556
|
"trigger": "image.?pull|ErrImageNeverPull|ImagePullBackOff|registry gc|image.*missing|image.*not.*found",
|