Add native Codex hooks integration (#2319)

* Add native Codex hooks integration

* Address Codex review feedback

* Use durable Codex marketplace root

* Address Codex file context review feedback

* Harden Codex installer review paths

* Report Codex legacy cleanup failures

* fix: keep MCP manifests in marketplace sync

* fix: bundle zod in MCP server

* fix: warn on Codex legacy cleanup failure

* Fix hook observation readiness timeouts

* Address Codex hook review notes

* Tighten Codex MCP file context matching

* Resolve final Codex review nits

* Add Codex marketplace version guidance

* Reset worker failure counter on API fallback

* Fix Codex cat flag file extraction
This commit is contained in:
Alex Newman
2026-05-06 01:55:27 -07:00
committed by GitHub
parent a5bb6b346a
commit 56db06811e
33 changed files with 1628 additions and 504 deletions
+1 -2
View File
@@ -80,7 +80,7 @@ export function detectInstalledIDEs(): IDEInfo[] {
label: 'Codex CLI',
detected: existsSync(join(home, '.codex')),
supported: true,
hint: 'transcript-based integration',
hint: 'native hooks integration',
},
{
id: 'cursor',
@@ -127,4 +127,3 @@ export function detectInstalledIDEs(): IDEInfo[] {
},
];
}
+7 -4
View File
@@ -243,17 +243,17 @@ function makeIDETask(ideId: string, failedIDEs: string[], pendingErrors: string[
case 'codex-cli': {
return {
title: 'Codex CLI: configuring transcript watching',
title: 'Codex CLI: registering hooks marketplace',
task: async (message) => {
message('Loading Codex CLI installer…');
const { installCodexCli } = await import('../../services/integrations/CodexCliInstaller.js');
message('Configuring transcript watching…');
const { result, output } = await bufferConsole(() => installCodexCli());
message('Registering native Codex hooks…');
const { result, output } = await bufferConsole(() => installCodexCli(marketplaceDirectory()));
if (result !== 0) {
recordFailure('Codex CLI: integration setup failed', output);
return `Codex CLI: integration setup failed ${pc.red('FAIL')}`;
}
return `Codex CLI: transcript watching configured ${pc.green('OK')}`;
return `Codex CLI: hooks marketplace registered ${pc.green('OK')}`;
},
};
}
@@ -500,6 +500,9 @@ function copyPluginToMarketplace(): void {
ensureDirectoryExists(marketplaceDir);
const allowedTopLevelEntries = [
'.agents',
'.codex-plugin',
'.mcp.json',
'plugin',
'package.json',
'package-lock.json',