@codyswann/lisa 2.124.2 → 2.124.3
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/codex/hooks-installer.d.ts.map +1 -1
- package/dist/codex/hooks-installer.js +12 -4
- package/dist/codex/hooks-installer.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +2 -2
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/scripts/generate-codex-plugin-artifacts.mjs +45 -25
- package/scripts/generate-copilot-plugin-artifacts.mjs +5 -4
- package/scripts/generate-cursor-plugin-artifacts.mjs +5 -3
- /package/plugins/lisa/{hooks → .codex-plugin}/hooks.json +0 -0
- /package/plugins/lisa-harper-fabric/{hooks → .codex-plugin}/hooks.json +0 -0
- /package/plugins/lisa-nestjs/{hooks → .codex-plugin}/hooks.json +0 -0
- /package/plugins/lisa-rails/{hooks → .codex-plugin}/hooks.json +0 -0
- /package/plugins/lisa-typescript/{hooks → .codex-plugin}/hooks.json +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hooks-installer.d.ts","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAUrD,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,QAA6B,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,cAAc,2BAA2B,CAAC;AAEvD,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,eAAe,CAAC;AA2H3C,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,SAAS,WAAW,EAAE,GACpC,OAAO,CAAC,kBAAkB,CAAC,CA4D7B"}
|
|
@@ -21,10 +21,18 @@
|
|
|
21
21
|
* inject-rules also fires on SubagentStart under Claude; on Codex only its
|
|
22
22
|
* SessionStart variant applies (Codex has no per-subagent start event).
|
|
23
23
|
*
|
|
24
|
-
* Codex
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* scripts/generate-codex-plugin-artifacts.mjs
|
|
24
|
+
* Codex DOES support plugin-bundled hooks (issue #1058) — they are non-managed
|
|
25
|
+
* and fire only after the user trusts them via an interactive `/hooks` review
|
|
26
|
+
* (Codex 0.125.0 has no headless trust bypass). The build-side counterpart
|
|
27
|
+
* (scripts/generate-codex-plugin-artifacts.mjs) emits those plugin hooks to
|
|
28
|
+
* `.codex-plugin/hooks.json` with a manifest `hooks` pointer — deliberately NOT
|
|
29
|
+
* `<plugin-root>/hooks/hooks.json`, which is also where Claude Code (and the
|
|
30
|
+
* cursor/copilot variants) auto-discover plugin hooks; a Codex-shaped
|
|
31
|
+
* `${PLUGIN_ROOT}` file there is run by Claude too, where `${PLUGIN_ROOT}` is
|
|
32
|
+
* undefined and expands to an empty prefix, breaking startup (issue #1058).
|
|
33
|
+
* This per-project installer is retained as the no-trust-prompt fallback and
|
|
34
|
+
* for users who run Lisa via `lisa apply` without enabling the marketplace
|
|
35
|
+
* plugin; it writes hooks into the project's own `.codex/hooks.json` instead.
|
|
28
36
|
* @module codex/hooks-installer
|
|
29
37
|
*/
|
|
30
38
|
import * as fse from "fs-extra";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -83,7 +83,7 @@
|
|
|
83
83
|
"lodash": ">=4.18.1"
|
|
84
84
|
},
|
|
85
85
|
"name": "@codyswann/lisa",
|
|
86
|
-
"version": "2.124.
|
|
86
|
+
"version": "2.124.3",
|
|
87
87
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
88
88
|
"main": "dist/index.js",
|
|
89
89
|
"exports": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"workflow"
|
|
13
13
|
],
|
|
14
14
|
"skills": "./skills/",
|
|
15
|
-
"hooks": "
|
|
15
|
+
"hooks": "./.codex-plugin/hooks.json",
|
|
16
16
|
"interface": {
|
|
17
17
|
"displayName": "Lisa",
|
|
18
18
|
"shortDescription": "Universal project governance workflows",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-harper-fabric",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Harper/Fabric-specific Lisa rules for TypeScript component apps.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"lisa-typescript"
|
|
16
16
|
],
|
|
17
17
|
"skills": "./skills/",
|
|
18
|
-
"hooks": "
|
|
18
|
+
"hooks": "./.codex-plugin/hooks.json",
|
|
19
19
|
"interface": {
|
|
20
20
|
"displayName": "Lisa Harper/Fabric",
|
|
21
21
|
"shortDescription": "Harper/Fabric workflow guidance",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-nestjs",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "NestJS-specific skills and migration write-protection hooks.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"lisa-typescript"
|
|
16
16
|
],
|
|
17
17
|
"skills": "./skills/",
|
|
18
|
-
"hooks": "
|
|
18
|
+
"hooks": "./.codex-plugin/hooks.json",
|
|
19
19
|
"interface": {
|
|
20
20
|
"displayName": "Lisa NestJS",
|
|
21
21
|
"shortDescription": "NestJS workflow guidance",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, across Claude and Codex.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Connect staff roles to Telegram or Slack via OpenClaw — facilitator/specialist hub-and-spoke routing and repo-coding topics, for Claude Code and Codex",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-rails",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "Ruby on Rails-specific skills and hooks for RuboCop and ast-grep scanning on edit.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"lisa"
|
|
16
16
|
],
|
|
17
17
|
"skills": "./skills/",
|
|
18
|
-
"hooks": "
|
|
18
|
+
"hooks": "./.codex-plugin/hooks.json",
|
|
19
19
|
"interface": {
|
|
20
20
|
"displayName": "Lisa Rails",
|
|
21
21
|
"shortDescription": "Ruby on Rails workflows",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-typescript",
|
|
3
|
-
"version": "2.124.
|
|
3
|
+
"version": "2.124.3",
|
|
4
4
|
"description": "TypeScript-specific hooks for formatting, linting, and ast-grep scanning on edit.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Cody Swann"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"dependencies": [
|
|
15
15
|
"lisa"
|
|
16
16
|
],
|
|
17
|
-
"hooks": "
|
|
17
|
+
"hooks": "./.codex-plugin/hooks.json",
|
|
18
18
|
"interface": {
|
|
19
19
|
"displayName": "Lisa TypeScript",
|
|
20
20
|
"shortDescription": "TypeScript lifecycle checks",
|
|
@@ -7,17 +7,31 @@
|
|
|
7
7
|
*
|
|
8
8
|
* HOOKS: as of Codex 0.125.0 (verified via codex features list showing
|
|
9
9
|
* codex_hooks as `stable`), the plugin manifest accepts a `hooks` field
|
|
10
|
-
* pointing at a
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* pointing at a `hooks.json`. Per the official docs + the structural analogy to
|
|
11
|
+
* the working `skills`/`mcpServers` pointers, that pointer resolves RELATIVE TO
|
|
12
|
+
* THE PLUGIN ROOT — but end-to-end firing is trust-gated (interactive `/hooks`,
|
|
13
|
+
* no headless bypass in 0.125.0), so this is verified by docs + structure, not
|
|
14
|
+
* by an automated run; the per-project installer (src/codex/hooks-installer.ts)
|
|
15
|
+
* remains the verified-working Codex delivery path. `emitCodexHooks` below
|
|
16
|
+
* derives the Codex-shape hooks block from the Claude manifest by applying the
|
|
17
|
+
* Wave 1 per-agent ship-list audit
|
|
13
18
|
* (wiki/architecture/lisa-hook-per-agent-ship-list.md):
|
|
14
19
|
* - Drop every `entire hooks claude-code *` command (Claude-only analytics).
|
|
15
20
|
* - Drop every reference to `enforce-team-first.sh` (Claude-team-specific).
|
|
16
21
|
* - Drop `inject-flow-context.sh` ONLY when targeting an agent without
|
|
17
22
|
* SubagentStart (Codex 0.125.0 has SubagentStart, so we ship it).
|
|
18
|
-
* - Rewrite ${CLAUDE_PLUGIN_ROOT}/hooks/<n>.sh to
|
|
19
|
-
*
|
|
20
|
-
*
|
|
23
|
+
* - Rewrite ${CLAUDE_PLUGIN_ROOT}/hooks/<n>.sh to ${PLUGIN_ROOT}/hooks/<n>.sh
|
|
24
|
+
* (the env var Codex exposes to hook commands), which still resolves to the
|
|
25
|
+
* shared scripts at <plugin-root>/hooks/*.sh.
|
|
26
|
+
*
|
|
27
|
+
* The derived hooks.json is written to <plugin-root>/.codex-plugin/hooks.json,
|
|
28
|
+
* NOT <plugin-root>/hooks/hooks.json. The latter is where Claude Code (and the
|
|
29
|
+
* cursor/copilot Claude-protocol variants) AUTO-DISCOVER plugin hooks, so a
|
|
30
|
+
* Codex-shaped file there gets run by Claude too — and because it uses
|
|
31
|
+
* ${PLUGIN_ROOT} (undefined in Claude), the path expands to an empty prefix
|
|
32
|
+
* (`/hooks/<n>.sh: No such file`). Keeping the Codex file under .codex-plugin/
|
|
33
|
+
* (which Claude never scans) is what lets Claude, Codex, cursor, copilot, and
|
|
34
|
+
* agy each load exactly their own hooks. See issue #1058.
|
|
21
35
|
*
|
|
22
36
|
* SessionEnd is documented as unsupported by Codex; the `entire hooks
|
|
23
37
|
* claude-code session-end` hook is stripped per the Claude-only rule above
|
|
@@ -459,27 +473,33 @@ function main() {
|
|
|
459
473
|
|
|
460
474
|
/**
|
|
461
475
|
* Per Wave 1 audit + Codex 0.125.0 supporting plugin-bundled hooks: derive
|
|
462
|
-
* a Codex-shaped hooks.json from the Claude manifest's hooks block and
|
|
463
|
-
*
|
|
476
|
+
* a Codex-shaped hooks.json from the Claude manifest's hooks block and write it
|
|
477
|
+
* to <plugin-root>/.codex-plugin/hooks.json (advertised via the manifest `hooks`
|
|
478
|
+
* pointer in componentPointers).
|
|
479
|
+
*
|
|
480
|
+
* The file deliberately does NOT go to <plugin-root>/hooks/hooks.json: Claude
|
|
481
|
+
* Code and the cursor/copilot Claude-protocol variants auto-discover hooks
|
|
482
|
+
* there, and the Codex file's ${PLUGIN_ROOT} (undefined in Claude) would expand
|
|
483
|
+
* to an empty prefix and fail at startup (issue #1058). The hook SCRIPTS stay
|
|
484
|
+
* at <plugin-root>/hooks/*.sh — shared, copied from plugins/src by the Claude
|
|
485
|
+
* build — and ${PLUGIN_ROOT}/hooks/<n>.sh resolves to them regardless of where
|
|
486
|
+
* hooks.json itself lives.
|
|
464
487
|
*
|
|
465
488
|
* No-op when the input has no hooks block or every entry is stripped.
|
|
466
489
|
*
|
|
467
490
|
* @param {string} pluginDir Built Claude plugin directory.
|
|
468
491
|
* @param {object} claudeManifest Parsed contents of .claude-plugin/plugin.json.
|
|
469
492
|
*/
|
|
470
|
-
function emitCodexHooks(pluginDir, claudeManifest) {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
//
|
|
474
|
-
//
|
|
475
|
-
//
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
const legacyCodexPluginDir = path.join(pluginDir, ".codex-plugin");
|
|
481
|
-
fs.rmSync(path.join(legacyCodexPluginDir, "hooks.json"), { force: true });
|
|
482
|
-
fs.rmSync(path.join(legacyCodexPluginDir, "hooks"), {
|
|
493
|
+
export function emitCodexHooks(pluginDir, claudeManifest) {
|
|
494
|
+
const codexPluginDir = path.join(pluginDir, ".codex-plugin");
|
|
495
|
+
const hooksJsonPath = path.join(codexPluginDir, "hooks.json");
|
|
496
|
+
// Purge the older layouts so a rebuilt plugin never ships a stale/duplicate
|
|
497
|
+
// file:
|
|
498
|
+
// - <plugin-root>/hooks/hooks.json (2.121–2.124; broke Claude startup)
|
|
499
|
+
// - <plugin-root>/.codex-plugin/hooks/ (pre-2.121 copied-scripts dir)
|
|
500
|
+
// The shared .sh scripts at <plugin-root>/hooks/ are left untouched.
|
|
501
|
+
fs.rmSync(path.join(pluginDir, "hooks", "hooks.json"), { force: true });
|
|
502
|
+
fs.rmSync(path.join(codexPluginDir, "hooks"), {
|
|
483
503
|
force: true,
|
|
484
504
|
recursive: true,
|
|
485
505
|
});
|
|
@@ -490,7 +510,7 @@ function emitCodexHooks(pluginDir, claudeManifest) {
|
|
|
490
510
|
fs.rmSync(hooksJsonPath, { force: true });
|
|
491
511
|
return;
|
|
492
512
|
}
|
|
493
|
-
fs.mkdirSync(
|
|
513
|
+
fs.mkdirSync(codexPluginDir, { recursive: true });
|
|
494
514
|
fs.writeFileSync(
|
|
495
515
|
hooksJsonPath,
|
|
496
516
|
`${JSON.stringify(buildCodexHooksDocument(filtered), null, 2)}\n`
|
|
@@ -541,7 +561,7 @@ function writeCodexManifest(pluginDir, claudeManifest, pluginName, version) {
|
|
|
541
561
|
);
|
|
542
562
|
}
|
|
543
563
|
|
|
544
|
-
function componentPointers(pluginDir) {
|
|
564
|
+
export function componentPointers(pluginDir) {
|
|
545
565
|
return {
|
|
546
566
|
...(fs.existsSync(path.join(pluginDir, "skills"))
|
|
547
567
|
? { skills: "./skills/" }
|
|
@@ -549,8 +569,8 @@ function componentPointers(pluginDir) {
|
|
|
549
569
|
...(fs.existsSync(path.join(pluginDir, ".mcp.json"))
|
|
550
570
|
? { mcpServers: "./.mcp.json" }
|
|
551
571
|
: {}),
|
|
552
|
-
...(fs.existsSync(path.join(pluginDir, "
|
|
553
|
-
? { hooks: "
|
|
572
|
+
...(fs.existsSync(path.join(pluginDir, ".codex-plugin", "hooks.json"))
|
|
573
|
+
? { hooks: "./.codex-plugin/hooks.json" }
|
|
554
574
|
: {}),
|
|
555
575
|
};
|
|
556
576
|
}
|
|
@@ -139,10 +139,11 @@ export function generateCopilotVariant(srcDir, outDir, version) {
|
|
|
139
139
|
copyDir(srcDir, outDir, relPath => {
|
|
140
140
|
if (relPath.startsWith(".codex-plugin/") || relPath === ".codex-plugin")
|
|
141
141
|
return false;
|
|
142
|
-
//
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
142
|
+
// Defensively drop any hooks/hooks.json. The base build now emits the Codex
|
|
143
|
+
// hooks manifest under .codex-plugin/ (stripped above), not here (issue
|
|
144
|
+
// #1058), but guard against a regression reintroducing it: Copilot reads its
|
|
145
|
+
// (camelCase) hooks from .claude-plugin/plugin.json, not a Codex-shaped
|
|
146
|
+
// (PascalCase, ${PLUGIN_ROOT}) file.
|
|
146
147
|
if (relPath === path.join("hooks", "hooks.json")) return false;
|
|
147
148
|
// Drop Codex-specific per-skill openai.yaml artifacts — Copilot does not use them.
|
|
148
149
|
if (/^skills\/[^/]+\/agents\/openai\.ya?ml$/.test(relPath)) return false;
|
|
@@ -105,9 +105,11 @@ export function generateCursorVariant(srcDir, outDir, version) {
|
|
|
105
105
|
// Drop the `.codex-plugin/` directory — Cursor does not consume it.
|
|
106
106
|
if (relPath.startsWith(".codex-plugin/") || relPath === ".codex-plugin")
|
|
107
107
|
return false;
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
//
|
|
108
|
+
// Defensively drop any hooks/hooks.json. The base build now emits the Codex
|
|
109
|
+
// hooks manifest under .codex-plugin/ (stripped above), not here (issue
|
|
110
|
+
// #1058), but guard against a regression reintroducing it: Cursor reads its
|
|
111
|
+
// (filtered) hooks from .claude-plugin/plugin.json, not a Codex-shaped file.
|
|
112
|
+
// The surviving .sh scripts in hooks/ are kept below.
|
|
111
113
|
if (relPath === path.join("hooks", "hooks.json")) return false;
|
|
112
114
|
// Drop Codex-specific per-skill openai.yaml artifacts — Cursor does not use them.
|
|
113
115
|
// These live at skills/<n>/agents/openai.yaml and are generated by the Codex
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|