@aria_asi/cli 0.2.30 → 0.2.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/dist/aria-connector/src/connectors/claude-code.d.ts.map +1 -1
  2. package/dist/aria-connector/src/connectors/claude-code.js +88 -20
  3. package/dist/aria-connector/src/connectors/claude-code.js.map +1 -1
  4. package/dist/aria-connector/src/connectors/codex.d.ts.map +1 -1
  5. package/dist/aria-connector/src/connectors/codex.js +526 -2
  6. package/dist/aria-connector/src/connectors/codex.js.map +1 -1
  7. package/dist/aria-connector/src/connectors/doctrine-trigger-map.d.ts +7 -0
  8. package/dist/aria-connector/src/connectors/doctrine-trigger-map.d.ts.map +1 -0
  9. package/dist/aria-connector/src/connectors/doctrine-trigger-map.js +87 -0
  10. package/dist/aria-connector/src/connectors/doctrine-trigger-map.js.map +1 -0
  11. package/dist/aria-connector/src/connectors/must-read.d.ts +4 -0
  12. package/dist/aria-connector/src/connectors/must-read.d.ts.map +1 -0
  13. package/dist/aria-connector/src/connectors/must-read.js +111 -0
  14. package/dist/aria-connector/src/connectors/must-read.js.map +1 -0
  15. package/dist/aria-connector/src/connectors/opencode.d.ts.map +1 -1
  16. package/dist/aria-connector/src/connectors/opencode.js +2 -0
  17. package/dist/aria-connector/src/connectors/opencode.js.map +1 -1
  18. package/dist/aria-connector/src/connectors/runtime.d.ts.map +1 -1
  19. package/dist/aria-connector/src/connectors/runtime.js +231 -19
  20. package/dist/aria-connector/src/connectors/runtime.js.map +1 -1
  21. package/dist/aria-connector/src/connectors/shell.d.ts.map +1 -1
  22. package/dist/aria-connector/src/connectors/shell.js +76 -3
  23. package/dist/aria-connector/src/connectors/shell.js.map +1 -1
  24. package/dist/assets/hooks/aria-cognition-substrate-binding.mjs +52 -25
  25. package/dist/assets/hooks/aria-harness-via-sdk.mjs +126 -12
  26. package/dist/assets/hooks/aria-pre-tool-gate.mjs +185 -76
  27. package/dist/assets/hooks/aria-preturn-memory-gate.mjs +63 -14
  28. package/dist/assets/hooks/aria-repo-doctrine-gate.mjs +2 -0
  29. package/dist/assets/hooks/aria-stop-gate.mjs +225 -52
  30. package/dist/assets/hooks/lib/canonical-lenses.mjs +6 -5
  31. package/dist/assets/hooks/lib/gate-loop-state.mjs +50 -0
  32. package/dist/assets/hooks/lib/hook-message-window.mjs +121 -0
  33. package/dist/assets/hooks/test-tier-lens-labeling.mjs +26 -58
  34. package/dist/assets/opencode-plugins/harness-gate/index.js +23 -1
  35. package/dist/assets/opencode-plugins/harness-stop/index.js +93 -4
  36. package/dist/runtime/auth-middleware.mjs +251 -0
  37. package/dist/runtime/codex-bridge.mjs +644 -0
  38. package/dist/runtime/discipline/CLAUDE.md +12 -0
  39. package/dist/runtime/discipline/doctrine_trigger_map.json +479 -0
  40. package/dist/runtime/doctrine_trigger_map.json +479 -0
  41. package/dist/runtime/fleet-engine.mjs +231 -0
  42. package/dist/runtime/harness-daemon.mjs +433 -0
  43. package/dist/runtime/manifest.json +1 -1
  44. package/dist/runtime/metering.mjs +100 -0
  45. package/dist/runtime/onboarding-engine.mjs +89 -0
  46. package/dist/runtime/plugin-engine.mjs +196 -0
  47. package/dist/runtime/sdk/BUNDLED.json +1 -1
  48. package/dist/runtime/sdk/index.d.ts +7 -0
  49. package/dist/runtime/sdk/index.js +120 -14
  50. package/dist/runtime/sdk/index.js.map +1 -1
  51. package/dist/runtime/service.mjs +1094 -47
  52. package/dist/runtime/workflow-engine.mjs +322 -0
  53. package/dist/sdk/BUNDLED.json +1 -1
  54. package/dist/sdk/index.d.ts +7 -0
  55. package/dist/sdk/index.js +120 -14
  56. package/dist/sdk/index.js.map +1 -1
  57. package/hooks/aria-cognition-substrate-binding.mjs +52 -25
  58. package/hooks/aria-harness-via-sdk.mjs +126 -12
  59. package/hooks/aria-pre-tool-gate.mjs +185 -76
  60. package/hooks/aria-preturn-memory-gate.mjs +63 -14
  61. package/hooks/aria-repo-doctrine-gate.mjs +2 -0
  62. package/hooks/aria-stop-gate.mjs +225 -52
  63. package/hooks/lib/canonical-lenses.mjs +6 -5
  64. package/hooks/lib/gate-loop-state.mjs +50 -0
  65. package/hooks/lib/hook-message-window.mjs +121 -0
  66. package/hooks/test-tier-lens-labeling.mjs +26 -58
  67. package/opencode-plugins/harness-gate/index.js +23 -1
  68. package/opencode-plugins/harness-stop/index.js +93 -4
  69. package/package.json +1 -1
  70. package/runtime-src/auth-middleware.mjs +251 -0
  71. package/runtime-src/codex-bridge.mjs +644 -0
  72. package/runtime-src/fleet-engine.mjs +231 -0
  73. package/runtime-src/harness-daemon.mjs +433 -0
  74. package/runtime-src/metering.mjs +100 -0
  75. package/runtime-src/onboarding-engine.mjs +89 -0
  76. package/runtime-src/plugin-engine.mjs +196 -0
  77. package/runtime-src/service.mjs +1094 -47
  78. package/runtime-src/workflow-engine.mjs +322 -0
  79. package/scripts/bundle-sdk.mjs +5 -0
  80. package/src/connectors/claude-code.ts +98 -20
  81. package/src/connectors/codex.ts +534 -1
  82. package/src/connectors/doctrine-trigger-map.ts +112 -0
  83. package/src/connectors/must-read.ts +113 -0
  84. package/src/connectors/opencode.ts +3 -0
  85. package/src/connectors/runtime.ts +241 -21
  86. package/src/connectors/shell.ts +78 -3
  87. package/dist/cli-0.2.0.tgz +0 -0
@@ -1,10 +1,12 @@
1
1
  // ARIA_ALLOW_STUB: doctrine strings only; this source generates enforcement copy and is not a production stub implementation.
2
- import { existsSync, mkdirSync, readdirSync, statSync, copyFileSync, chmodSync, writeFileSync, } from 'fs';
2
+ import { existsSync, mkdirSync, readdirSync, statSync, copyFileSync, chmodSync, writeFileSync, readFileSync, } from 'fs';
3
3
  import { homedir } from 'os';
4
4
  import * as path from 'path';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { connectShell } from './shell.js';
7
7
  import { installAriaCognitionSkills } from './cognitive-skills.js';
8
+ import { syncDoctrineTriggerMap } from './doctrine-trigger-map.js';
9
+ import { buildMustReadGuide, mustReadIntro } from './must-read.js';
8
10
  function packageSdkDir() {
9
11
  const here = path.dirname(fileURLToPath(import.meta.url));
10
12
  return path.resolve(here, '..', '..', '..', 'sdk');
@@ -61,6 +63,521 @@ function installNodePackage(codexDir, logs) {
61
63
  }, null, 2) + '\n', { mode: 0o644 });
62
64
  logs.push(`Installed Codex Node package → ${pkgRoot}`);
63
65
  }
66
+ function tomlString(value) {
67
+ return JSON.stringify(value);
68
+ }
69
+ function buildCodexHookRuntimeClient() {
70
+ return `import { readFileSync, existsSync, mkdirSync, writeFileSync, unlinkSync } from 'node:fs';
71
+ import { homedir } from 'node:os';
72
+ import path from 'node:path';
73
+ import { HTTPHarnessClient } from '@aria_asi/harness-http-client';
74
+
75
+ const HOME = homedir();
76
+ const DEFAULT_RUNTIME_URL = (process.env.ARIA_RUNTIME_URL || 'http://127.0.0.1:4319').replace(/\\/+$/, '');
77
+ const TURN_STATE_DIR = path.join(HOME, '.codex', 'tmp', 'aria-hook-turn-state');
78
+
79
+ function readToken() {
80
+ const envToken = process.env.ARIA_API_KEY || process.env.ARIA_MASTER_TOKEN || process.env.OPENAI_API_KEY;
81
+ if (envToken) return envToken;
82
+ const ownerPath = path.join(HOME, '.aria', 'owner-token');
83
+ if (existsSync(ownerPath)) return readFileSync(ownerPath, 'utf8').trim();
84
+ const licensePath = path.join(HOME, '.aria', 'license.json');
85
+ if (existsSync(licensePath)) {
86
+ const text = readFileSync(licensePath, 'utf8');
87
+ const harnessToken = text.match(/"harnessToken"\\s*:\\s*"([^"]+)"/)?.[1];
88
+ if (harnessToken) return harnessToken;
89
+ const token = text.match(/"token"\\s*:\\s*"([^"]+)"/)?.[1];
90
+ if (token) return token;
91
+ }
92
+ return '';
93
+ }
94
+
95
+ let clientInstance = null;
96
+
97
+ export function getHarnessClient() {
98
+ if (clientInstance) return clientInstance;
99
+ clientInstance = new HTTPHarnessClient({
100
+ baseUrl: DEFAULT_RUNTIME_URL,
101
+ apiKey: readToken(),
102
+ workspaceRoot: process.cwd(),
103
+ });
104
+ return clientInstance;
105
+ }
106
+
107
+ export function readEventFromStdin() {
108
+ try {
109
+ const raw = readFileSync(0, 'utf8');
110
+ return raw.trim() ? JSON.parse(raw) : {};
111
+ } catch {
112
+ return {};
113
+ }
114
+ }
115
+
116
+ function extractFirst(value, keys) {
117
+ if (!value || typeof value !== 'object') return null;
118
+ for (const key of keys) {
119
+ const candidate = value[key];
120
+ if (typeof candidate === 'string' && candidate.trim()) return candidate.trim();
121
+ }
122
+ return null;
123
+ }
124
+
125
+ export function inferSessionId(event) {
126
+ const threadId =
127
+ extractFirst(event, ['thread_id', 'threadId', 'conversation_id', 'conversationId']) ||
128
+ 'codex';
129
+ const turnId =
130
+ extractFirst(event, ['turn_id', 'turnId', 'session_id', 'sessionId']) ||
131
+ String(Date.now());
132
+ return \`codex:\${threadId}:\${turnId}\`;
133
+ }
134
+
135
+ export function inferUserId(event) {
136
+ return (
137
+ extractFirst(event, ['user_id', 'userId']) ||
138
+ extractFirst(event?.metadata, ['user_id', 'userId'])
139
+ );
140
+ }
141
+
142
+ export function extractText(value) {
143
+ if (!value) return '';
144
+ if (typeof value === 'string') return value.trim();
145
+ if (Array.isArray(value)) {
146
+ return value.map(extractText).filter(Boolean).join('\\n\\n').trim();
147
+ }
148
+ if (typeof value === 'object') {
149
+ const parts = [];
150
+ for (const key of ['text', 'message', 'content', 'input_text', 'inputText', 'reasoning_text', 'summary_text', 'delta']) {
151
+ if (key in value) {
152
+ const piece = extractText(value[key]);
153
+ if (piece) parts.push(piece);
154
+ }
155
+ }
156
+ return parts.join('\\n\\n').trim();
157
+ }
158
+ return '';
159
+ }
160
+
161
+ function ensureTurnStateDir() {
162
+ if (!existsSync(TURN_STATE_DIR)) {
163
+ mkdirSync(TURN_STATE_DIR, { recursive: true, mode: 0o700 });
164
+ }
165
+ }
166
+
167
+ function turnStatePath(sessionId) {
168
+ ensureTurnStateDir();
169
+ const safe = String(sessionId || 'codex').replace(/[^a-zA-Z0-9._-]+/g, '_');
170
+ return path.join(TURN_STATE_DIR, \`\${safe}.json\`);
171
+ }
172
+
173
+ export function loadTurnState(sessionId) {
174
+ const statePath = turnStatePath(sessionId);
175
+ if (!existsSync(statePath)) return {};
176
+ try {
177
+ return JSON.parse(readFileSync(statePath, 'utf8'));
178
+ } catch {
179
+ return {};
180
+ }
181
+ }
182
+
183
+ export function saveTurnState(sessionId, patch) {
184
+ const next = {
185
+ ...loadTurnState(sessionId),
186
+ ...patch,
187
+ sessionId,
188
+ updatedAt: new Date().toISOString(),
189
+ };
190
+ writeFileSync(turnStatePath(sessionId), JSON.stringify(next, null, 2) + '\\n', { mode: 0o600 });
191
+ return next;
192
+ }
193
+
194
+ export function clearTurnState(sessionId) {
195
+ const statePath = turnStatePath(sessionId);
196
+ if (!existsSync(statePath)) return;
197
+ try {
198
+ unlinkSync(statePath);
199
+ } catch {}
200
+ }
201
+
202
+ export async function runtimePost(route, body = {}) {
203
+ const token = readToken();
204
+ const headers = {
205
+ 'Content-Type': 'application/json',
206
+ };
207
+ if (token) headers.Authorization = \`Bearer \${token}\`;
208
+ const response = await fetch(\`\${DEFAULT_RUNTIME_URL}\${route}\`, {
209
+ method: 'POST',
210
+ headers,
211
+ body: JSON.stringify(body),
212
+ });
213
+ if (!response.ok) {
214
+ const detail = await response.text().catch(() => response.statusText);
215
+ throw new Error(\`runtime \${route} failed (\${response.status}): \${detail}\`);
216
+ }
217
+ return response.json();
218
+ }
219
+
220
+ export function classifyAction(event) {
221
+ const toolName = String(event?.tool_name || event?.toolName || '').trim();
222
+ const toolCommand = String(
223
+ event?.tool_input?.command ??
224
+ event?.toolInput?.command ??
225
+ ''
226
+ ).trim();
227
+ const haystack = \`\${toolName}\\n\${toolCommand}\\n\${JSON.stringify(event)}\`;
228
+ if (/deploy|kubectl|docker\\s+push/i.test(haystack)) return 'deploy';
229
+ if (/\\brm\\b|delete|unlink|drop\\s+table/i.test(haystack)) return 'delete';
230
+ if (/build|test|tsc|jest|vitest|npm run|pnpm|yarn/i.test(haystack)) return 'build';
231
+ return 'write';
232
+ }
233
+
234
+ export function summarizeTarget(event) {
235
+ return JSON.stringify({
236
+ tool_name: event?.tool_name || event?.toolName || null,
237
+ tool_input: event?.tool_input || event?.toolInput || null,
238
+ }).slice(0, 4000);
239
+ }
240
+
241
+ export function extractUserText(event) {
242
+ return extractText(
243
+ event?.input ??
244
+ event?.user_input ??
245
+ event?.userInput ??
246
+ event?.prompt ??
247
+ event?.message ??
248
+ event
249
+ );
250
+ }
251
+
252
+ export function extractAssistantText(event) {
253
+ return extractText(
254
+ event?.last_assistant_message ??
255
+ event?.lastAssistantMessage ??
256
+ event?.output ??
257
+ event?.response ??
258
+ event?.message ??
259
+ event
260
+ );
261
+ }
262
+
263
+ export function formatValidationFailure(result) {
264
+ const parts = [];
265
+ if (Array.isArray(result?.validation?.violations) && result.validation.violations.length) {
266
+ parts.push(...result.validation.violations);
267
+ }
268
+ if (Array.isArray(result?.layer3?.failures) && result.layer3.failures.length) {
269
+ parts.push(...result.layer3.failures.map((failure) => failure?.detail || failure?.kind || JSON.stringify(failure)));
270
+ }
271
+ if (!parts.length && typeof result?.summary === 'string' && result.summary.trim()) {
272
+ parts.push(result.summary.trim());
273
+ }
274
+ return parts.join(' | ') || 'Aria validation failed.';
275
+ }
276
+
277
+ export function emitJson(payload, code = 0) {
278
+ process.stdout.write(\`\${JSON.stringify(payload)}\\n\`);
279
+ process.exit(code);
280
+ }
281
+ `;
282
+ }
283
+ function buildCodexUserPromptHook() {
284
+ return `#!/usr/bin/env node
285
+ import {
286
+ getHarnessClient,
287
+ inferSessionId,
288
+ inferUserId,
289
+ extractUserText,
290
+ readEventFromStdin,
291
+ runtimePost,
292
+ saveTurnState,
293
+ emitJson,
294
+ } from './lib/runtime-client.mjs';
295
+
296
+ const event = readEventFromStdin();
297
+ const client = getHarnessClient();
298
+ const userText = extractUserText(event);
299
+ const sessionId = inferSessionId(event);
300
+ const userId = inferUserId(event);
301
+
302
+ try {
303
+ const packet = await client.getHarnessPacket({
304
+ sessionId,
305
+ platform: 'codex',
306
+ message: userText || 'codex turn start',
307
+ });
308
+ const result = await runtimePost('/mizan/pre', {
309
+ sessionId,
310
+ packet,
311
+ packetRequest: {
312
+ sessionId,
313
+ platform: 'codex',
314
+ message: userText || 'codex turn start',
315
+ stage: 'codex-userprompt',
316
+ actor: 'codex-hook',
317
+ system: 'codex-hook',
318
+ },
319
+ context: {
320
+ sessionId,
321
+ surface: 'codex-hooks',
322
+ platform: 'codex',
323
+ userText,
324
+ userId,
325
+ },
326
+ });
327
+ saveTurnState(sessionId, {
328
+ userId,
329
+ userText,
330
+ preReceiptId: result?.receipt?.receiptId || null,
331
+ packetTimestamp: packet?.timestamp || null,
332
+ lastEvent: 'UserPromptSubmit',
333
+ });
334
+ process.exit(0);
335
+ } catch (error) {
336
+ emitJson({
337
+ decision: 'block',
338
+ reason: \`Aria cognition gate failed before turn start: \${error instanceof Error ? error.message : String(error)}\`,
339
+ });
340
+ }
341
+ `;
342
+ }
343
+ function buildCodexPreToolHook() {
344
+ return `#!/usr/bin/env node
345
+ import {
346
+ getHarnessClient,
347
+ inferSessionId,
348
+ classifyAction,
349
+ summarizeTarget,
350
+ readEventFromStdin,
351
+ loadTurnState,
352
+ saveTurnState,
353
+ emitJson,
354
+ } from './lib/runtime-client.mjs';
355
+
356
+ const event = readEventFromStdin();
357
+ const client = getHarnessClient();
358
+ const sessionId = inferSessionId(event);
359
+ const action = classifyAction(event);
360
+ const target = summarizeTarget(event);
361
+ const state = loadTurnState(sessionId);
362
+
363
+ try {
364
+ if (!state?.preReceiptId && !state?.userText) {
365
+ emitJson({
366
+ decision: 'block',
367
+ reason: 'Aria pre-tool gate blocked action because this turn has no pre-turn Mizan receipt. Re-submit the prompt so cognition is established before tool use.',
368
+ });
369
+ }
370
+ const actionCheck = await client.checkAction(action, target);
371
+ if (actionCheck?.allowed === false) {
372
+ emitJson({
373
+ decision: 'block',
374
+ reason: actionCheck?.reason || \`Aria denied \${action}\`,
375
+ });
376
+ }
377
+ const toolName = String(event?.tool_name || event?.toolName || '').trim() || null;
378
+ const tools = Array.isArray(state?.tools) ? state.tools.slice(-24) : [];
379
+ tools.push({
380
+ at: new Date().toISOString(),
381
+ action,
382
+ toolName,
383
+ target,
384
+ });
385
+ saveTurnState(sessionId, {
386
+ tools,
387
+ lastEvent: 'PreToolUse',
388
+ });
389
+ process.exit(0);
390
+ } catch (error) {
391
+ emitJson({
392
+ decision: 'block',
393
+ reason: \`Aria pre-tool hook failed closed: \${error instanceof Error ? error.message : String(error)}\`,
394
+ });
395
+ }
396
+ `;
397
+ }
398
+ function buildCodexPostToolHook() {
399
+ return `#!/usr/bin/env node
400
+ import {
401
+ inferSessionId,
402
+ readEventFromStdin,
403
+ loadTurnState,
404
+ saveTurnState,
405
+ } from './lib/runtime-client.mjs';
406
+
407
+ const event = readEventFromStdin();
408
+ const sessionId = inferSessionId(event);
409
+ const state = loadTurnState(sessionId);
410
+
411
+ try {
412
+ const toolResponse = JSON.stringify(event?.tool_response ?? event?.toolResponse ?? null).slice(0, 4000);
413
+ const toolOutputs = Array.isArray(state?.toolOutputs) ? state.toolOutputs.slice(-24) : [];
414
+ toolOutputs.push({
415
+ at: new Date().toISOString(),
416
+ toolName: event?.tool_name || event?.toolName || null,
417
+ toolResponse,
418
+ });
419
+ saveTurnState(sessionId, {
420
+ toolOutputs,
421
+ lastEvent: 'PostToolUse',
422
+ });
423
+ process.exit(0);
424
+ } catch {
425
+ process.exit(0);
426
+ }
427
+ `;
428
+ }
429
+ function buildCodexStopHook() {
430
+ return `#!/usr/bin/env node
431
+ import {
432
+ getHarnessClient,
433
+ inferSessionId,
434
+ extractAssistantText,
435
+ readEventFromStdin,
436
+ runtimePost,
437
+ loadTurnState,
438
+ clearTurnState,
439
+ formatValidationFailure,
440
+ emitJson,
441
+ } from './lib/runtime-client.mjs';
442
+
443
+ const event = readEventFromStdin();
444
+ const client = getHarnessClient();
445
+ const sessionId = inferSessionId(event);
446
+ const state = loadTurnState(sessionId);
447
+ const text = extractAssistantText(event);
448
+
449
+ try {
450
+ if (!text) {
451
+ emitJson({ continue: true });
452
+ }
453
+ const validation = await runtimePost('/validate-output', {
454
+ text,
455
+ sessionId,
456
+ packetRequest: {
457
+ sessionId,
458
+ platform: 'codex',
459
+ message: state?.userText || 'codex stop validation',
460
+ stage: 'codex-stop',
461
+ actor: 'codex-hook',
462
+ system: 'codex-hook',
463
+ },
464
+ requireCognitionBlock: false,
465
+ runLayer3: true,
466
+ });
467
+ if (validation?.pass === false || validation?.validation?.passed === false || validation?.layer3?.pass === false) {
468
+ emitJson({
469
+ decision: 'block',
470
+ reason: \`Aria stop gate blocked output: \${formatValidationFailure(validation)}\`,
471
+ });
472
+ }
473
+ const post = await runtimePost('/mizan/post', {
474
+ sessionId,
475
+ text,
476
+ evidence: {
477
+ validated_output: true,
478
+ validation_severity: validation?.validation?.severity || 'pass',
479
+ layer3_pass: validation?.layer3?.pass !== false,
480
+ surface: 'codex-hooks',
481
+ tool_count: Array.isArray(state?.tools) ? state.tools.length : 0,
482
+ },
483
+ context: {
484
+ sessionId,
485
+ surface: 'codex-hooks',
486
+ platform: 'codex',
487
+ userText: state?.userText || null,
488
+ },
489
+ parentReceiptId: state?.preReceiptId || null,
490
+ });
491
+ await runtimePost('/decision/log', {
492
+ session_id: sessionId,
493
+ decision_type: 'operational',
494
+ category: 'codex-hooks',
495
+ context: \`Codex native stop hook for \${sessionId}\`,
496
+ decision: 'validated output release',
497
+ reasoning: 'Mounted Aria runtime validated the output, issued Mizan post, and preserved the turn in garden memory.',
498
+ summary: 'codex native stop hook validated output',
499
+ outcome: 'success',
500
+ surface: 'codex-hooks',
501
+ metadata: {
502
+ post_receipt_id: post?.receipt?.receiptId || null,
503
+ pre_receipt_id: state?.preReceiptId || null,
504
+ tool_count: Array.isArray(state?.tools) ? state.tools.length : 0,
505
+ validation_severity: validation?.validation?.severity || 'pass',
506
+ layer3_pass: validation?.layer3?.pass !== false,
507
+ },
508
+ });
509
+ if (typeof state?.userText === 'string' && state.userText.trim()) {
510
+ await client.gardenTurn(sessionId, state.userText, text, state?.userId || undefined);
511
+ }
512
+ clearTurnState(sessionId);
513
+ emitJson({ continue: true });
514
+ } catch (error) {
515
+ emitJson({
516
+ decision: 'block',
517
+ reason: \`Aria stop hook failed closed: \${error instanceof Error ? error.message : String(error)}\`,
518
+ });
519
+ }
520
+ `;
521
+ }
522
+ function buildCodexHooksToml(codexDir) {
523
+ const hooksDir = path.join(codexDir, 'hooks');
524
+ const command = (name) => tomlString(`node ${path.join(hooksDir, name)}`);
525
+ return `# BEGIN ARIA MANAGED HOOKS
526
+ [hooks]
527
+ managed_dir = ${tomlString(hooksDir)}
528
+
529
+ [[hooks.UserPromptSubmit]]
530
+ hooks = [{ type = "command", command = ${command('aria-userprompt-submit.mjs')} }]
531
+
532
+ [[hooks.PreToolUse]]
533
+ matcher = ".*"
534
+ hooks = [{ type = "command", command = ${command('aria-pre-tool-use.mjs')} }]
535
+
536
+ [[hooks.PostToolUse]]
537
+ matcher = ".*"
538
+ hooks = [{ type = "command", command = ${command('aria-post-tool-use.mjs')} }]
539
+
540
+ [[hooks.Stop]]
541
+ hooks = [{ type = "command", command = ${command('aria-stop.mjs')} }]
542
+ # END ARIA MANAGED HOOKS
543
+ `;
544
+ }
545
+ function installCodexHooksConfig(codexDir, logs) {
546
+ const configPath = path.join(codexDir, 'config.toml');
547
+ const managedBlock = buildCodexHooksToml(codexDir);
548
+ const markerRegex = /# BEGIN ARIA MANAGED HOOKS[\s\S]*?# END ARIA MANAGED HOOKS\n?/m;
549
+ let text = existsSync(configPath) ? readFileSync(configPath, 'utf8') : '';
550
+ if (markerRegex.test(text)) {
551
+ text = text.replace(markerRegex, managedBlock);
552
+ }
553
+ else {
554
+ if (text && !text.endsWith('\n'))
555
+ text += '\n';
556
+ text += `\n${managedBlock}`;
557
+ }
558
+ writeFileSync(configPath, text, { mode: 0o600 });
559
+ logs.push(`Installed Codex managed hooks config → ${configPath}`);
560
+ }
561
+ function installCodexHooks(codexDir, logs) {
562
+ const hooksDir = path.join(codexDir, 'hooks');
563
+ mkdirSync(path.join(hooksDir, 'lib'), { recursive: true, mode: 0o755 });
564
+ const files = [
565
+ [path.join(hooksDir, 'lib', 'runtime-client.mjs'), buildCodexHookRuntimeClient()],
566
+ [path.join(hooksDir, 'aria-userprompt-submit.mjs'), buildCodexUserPromptHook()],
567
+ [path.join(hooksDir, 'aria-pre-tool-use.mjs'), buildCodexPreToolHook()],
568
+ [path.join(hooksDir, 'aria-post-tool-use.mjs'), buildCodexPostToolHook()],
569
+ [path.join(hooksDir, 'aria-stop.mjs'), buildCodexStopHook()],
570
+ ];
571
+ for (const [filePath, content] of files) {
572
+ writeFileSync(filePath, content, { mode: 0o755 });
573
+ try {
574
+ chmodSync(filePath, 0o755);
575
+ }
576
+ catch { }
577
+ }
578
+ logs.push(`Installed Codex native hooks → ${hooksDir}`);
579
+ installCodexHooksConfig(codexDir, logs);
580
+ }
64
581
  function buildCodexSkill(_config) {
65
582
  return `---
66
583
  name: aria-http-harness-client
@@ -91,7 +608,7 @@ That means:
91
608
 
92
609
  - the mounted runtime is the universal control plane
93
610
  - the shared SDK at \`~/.aria/sdk\` is the universal client substrate
94
- - Codex still does not expose Claude-style native user hook interception, so explicit runtime or SDK calls are still required for hard guarantees on this platform
611
+ - Codex native hooks plus the runtime are the hard-gate path for this platform
95
612
 
96
613
  ## Preferred Call Paths
97
614
 
@@ -131,6 +648,8 @@ function buildCodexAgentsMd(config) {
131
648
 
132
649
  Automatically injected by @aria_asi/cli. These instructions are always on for Codex sessions.
133
650
 
651
+ ${mustReadIntro('codex')}
652
+
134
653
  ## Connected Repositories
135
654
  ${repoList || '(none linked yet)'}
136
655
 
@@ -229,6 +748,9 @@ function installAgentsMd(codexDir, config, logs) {
229
748
  const agentsPath = path.join(codexDir, 'AGENTS.md');
230
749
  writeFileSync(agentsPath, buildCodexAgentsMd(config), { mode: 0o644 });
231
750
  logs.push(`Installed Codex AGENTS.md → ${agentsPath}`);
751
+ const mustReadPath = path.join(codexDir, 'ARIA_MUST_READ.md');
752
+ writeFileSync(mustReadPath, buildMustReadGuide('codex'), { mode: 0o644 });
753
+ logs.push(`Installed Codex must-read guide → ${mustReadPath}`);
232
754
  }
233
755
  export async function connectCodex(config) {
234
756
  const logs = [];
@@ -241,7 +763,9 @@ export async function connectCodex(config) {
241
763
  installNodePackage(codexDir, logs);
242
764
  installAgentsMd(codexDir, config, logs);
243
765
  installSkill(codexDir, config, logs);
766
+ installCodexHooks(codexDir, logs);
244
767
  installAriaCognitionSkills(codexDir, logs);
768
+ syncDoctrineTriggerMap(logs);
245
769
  logs.push(...await connectShell('codex', config));
246
770
  return logs;
247
771
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/connectors/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../../src/connectors/codex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export interface DoctrineMapSyncResult {
2
+ sourcePath: string | null;
3
+ targetCount: number;
4
+ updatedCount: number;
5
+ }
6
+ export declare function syncDoctrineTriggerMap(logs?: string[]): DoctrineMapSyncResult;
7
+ //# sourceMappingURL=doctrine-trigger-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctrine-trigger-map.d.ts","sourceRoot":"","sources":["../../../../src/connectors/doctrine-trigger-map.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AA+CD,wBAAgB,sBAAsB,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,qBAAqB,CAiDjF"}