@codyswann/lisa 2.19.0 → 2.20.0
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/.agents/plugins/marketplace.json +12 -0
- package/dist/codex/hooks-installer.js +23 -11
- package/dist/codex/hooks-installer.js.map +1 -1
- package/dist/codex/plugin-marketplace-installer.d.ts.map +1 -1
- package/dist/codex/plugin-marketplace-installer.js +2 -0
- package/dist/codex/plugin-marketplace-installer.js.map +1 -1
- package/dist/codex/scripts/block-migration-edits.sh +78 -0
- package/dist/codex/scripts/block-no-verify.sh +26 -0
- package/dist/codex/scripts/format-on-edit.sh +35 -0
- package/dist/codex/scripts/inject-rules.sh +31 -0
- package/dist/codex/scripts/install-pkgs.sh +26 -0
- package/dist/codex/scripts/lint-on-edit.sh +32 -0
- package/dist/codex/scripts/notify-ntfy.sh +18 -0
- package/dist/codex/scripts/rubocop-on-edit.sh +32 -0
- package/dist/codex/scripts/setup-jira-cli.sh +24 -0
- package/dist/codex/scripts/sg-scan-on-edit.sh +34 -0
- package/dist/configs/eslint/harper-fabric.d.ts +28 -0
- package/dist/configs/eslint/harper-fabric.d.ts.map +1 -0
- package/dist/configs/eslint/harper-fabric.js +59 -0
- package/dist/configs/eslint/harper-fabric.js.map +1 -0
- package/dist/configs/eslint/index.d.ts +2 -0
- package/dist/configs/eslint/index.d.ts.map +1 -1
- package/dist/configs/eslint/index.js +2 -0
- package/dist/configs/eslint/index.js.map +1 -1
- package/dist/configs/vitest/harper-fabric.d.ts +26 -0
- package/dist/configs/vitest/harper-fabric.d.ts.map +1 -0
- package/dist/configs/vitest/harper-fabric.js +30 -0
- package/dist/configs/vitest/harper-fabric.js.map +1 -0
- package/dist/configs/vitest/index.d.ts +2 -1
- package/dist/configs/vitest/index.d.ts.map +1 -1
- package/dist/configs/vitest/index.js +2 -1
- package/dist/configs/vitest/index.js.map +1 -1
- package/dist/core/config.d.ts +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +2 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +10 -0
- package/dist/core/lisa.js.map +1 -1
- package/dist/detection/detectors/harper-fabric.d.ts +18 -0
- package/dist/detection/detectors/harper-fabric.d.ts.map +1 -0
- package/dist/detection/detectors/harper-fabric.js +56 -0
- package/dist/detection/detectors/harper-fabric.js.map +1 -0
- package/dist/detection/index.d.ts.map +1 -1
- package/dist/detection/index.js +2 -0
- package/dist/detection/index.js.map +1 -1
- package/dist/strategies/copy-contents.d.ts +12 -2
- package/dist/strategies/copy-contents.d.ts.map +1 -1
- package/dist/strategies/copy-contents.js +28 -7
- package/dist/strategies/copy-contents.js.map +1 -1
- package/dist/strategies/package-lisa.d.ts +11 -1
- package/dist/strategies/package-lisa.d.ts.map +1 -1
- package/dist/strategies/package-lisa.js +30 -1
- package/dist/strategies/package-lisa.js.map +1 -1
- package/harper-fabric/copy-overwrite/.github/workflows/ci.yml +23 -0
- package/harper-fabric/copy-overwrite/eslint.config.ts +41 -0
- package/harper-fabric/copy-overwrite/knip.json +24 -0
- package/harper-fabric/copy-overwrite/tsconfig.eslint.json +25 -0
- package/harper-fabric/copy-overwrite/tsconfig.json +7 -0
- package/harper-fabric/copy-overwrite/vitest.config.ts +30 -0
- package/harper-fabric/merge/.claude/settings.json +34 -0
- package/harper-fabric/merge/.oxlintrc.json +16 -0
- package/harper-fabric/package-lisa/package.lisa.json +94 -0
- package/oxlint/harper-fabric.json +11 -0
- package/package.json +9 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/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-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +35 -0
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +32 -0
- package/plugins/lisa-harper-fabric/hooks/inject-rules.sh +16 -0
- package/plugins/lisa-harper-fabric/rules/harper-fabric.md +51 -0
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/src/harper-fabric/.claude-plugin/plugin.json +15 -0
- package/plugins/src/harper-fabric/hooks/inject-rules.sh +16 -0
- package/plugins/src/harper-fabric/rules/harper-fabric.md +51 -0
- package/rails/copy-overwrite/lefthook.yml +5 -1
- package/scripts/build-plugins.sh +1 -1
- package/scripts/copy-codex-scripts.mjs +28 -0
- package/scripts/generate-codex-plugin-artifacts.mjs +15 -0
- package/scripts/install-claude-plugins.sh +5 -5
- package/tsconfig/harper-fabric.json +20 -0
|
@@ -64,6 +64,18 @@
|
|
|
64
64
|
},
|
|
65
65
|
"category": "Coding"
|
|
66
66
|
},
|
|
67
|
+
{
|
|
68
|
+
"name": "lisa-harper-fabric",
|
|
69
|
+
"source": {
|
|
70
|
+
"source": "local",
|
|
71
|
+
"path": "./plugins/lisa-harper-fabric"
|
|
72
|
+
},
|
|
73
|
+
"policy": {
|
|
74
|
+
"installation": "AVAILABLE",
|
|
75
|
+
"authentication": "ON_INSTALL"
|
|
76
|
+
},
|
|
77
|
+
"category": "Coding"
|
|
78
|
+
},
|
|
67
79
|
{
|
|
68
80
|
"name": "lisa-rails",
|
|
69
81
|
"source": {
|
|
@@ -141,7 +141,7 @@ export async function installHooks(lisaDir, destDir, detectedTypes) {
|
|
|
141
141
|
// Step 2: mirror rules from Lisa into .codex/lisa-rules/ (only when
|
|
142
142
|
// inject-rules is being installed — i.e., always, since it's a "*" hook)
|
|
143
143
|
const ruleFiles = applicable.some(e => e.id === "inject-rules")
|
|
144
|
-
? (await mirrorRules(lisaDir, rulesDir)).map(file => path.join(LISA_RULES_SUBDIR, file))
|
|
144
|
+
? (await mirrorRules(lisaDir, rulesDir, detectedTypes)).map(file => path.join(LISA_RULES_SUBDIR, file))
|
|
145
145
|
: [];
|
|
146
146
|
// Step 3: tagged-merge hooks.json
|
|
147
147
|
const hooksFilePath = path.join(codexDir, HOOKS_FILENAME);
|
|
@@ -211,20 +211,32 @@ function resolveBundledScript(filename) {
|
|
|
211
211
|
return path.join(moduleDir, "scripts", filename);
|
|
212
212
|
}
|
|
213
213
|
/**
|
|
214
|
-
* Copy every .md file from Lisa's `
|
|
215
|
-
* `.codex/lisa-rules/`.
|
|
216
|
-
* directory).
|
|
214
|
+
* Copy every .md file from Lisa's base and detected stack plugin `rules/`
|
|
215
|
+
* directories into the host's `.codex/lisa-rules/`.
|
|
217
216
|
* @param lisaDir - Absolute path to the Lisa repo / installed package
|
|
218
217
|
* @param rulesDestDir - Absolute path to `<destDir>/.codex/lisa-rules/`
|
|
218
|
+
* @param detectedTypes - Project types Lisa detected for the host
|
|
219
219
|
* @returns Filenames (without directory) of every rule .md file copied
|
|
220
220
|
*/
|
|
221
|
-
async function mirrorRules(lisaDir, rulesDestDir) {
|
|
222
|
-
const
|
|
223
|
-
|
|
224
|
-
|
|
221
|
+
async function mirrorRules(lisaDir, rulesDestDir, detectedTypes) {
|
|
222
|
+
const pluginNames = ["lisa", ...detectedTypes.map(type => `lisa-${type}`)];
|
|
223
|
+
// First pass: list all .md files per plugin without copying
|
|
224
|
+
const filesByPlugin = await Promise.all(pluginNames.map(async (pluginName) => {
|
|
225
|
+
const sourceDir = path.join(lisaDir, "plugins", pluginName, "rules");
|
|
226
|
+
if (!(await fse.pathExists(sourceDir))) {
|
|
227
|
+
return { sourceDir, files: [] };
|
|
228
|
+
}
|
|
229
|
+
const files = (await readdir(sourceDir)).filter(name => name.endsWith(".md"));
|
|
230
|
+
return { sourceDir, files };
|
|
231
|
+
}));
|
|
232
|
+
// Detect filename collisions before performing any copies
|
|
233
|
+
const allFiles = filesByPlugin.flatMap(({ files }) => files);
|
|
234
|
+
if (new Set(allFiles).size !== allFiles.length) {
|
|
235
|
+
const duplicate = allFiles.find((name, index) => allFiles.indexOf(name) !== index);
|
|
236
|
+
throw new Error(`Duplicate Lisa rule filename "${duplicate ?? "unknown"}" across plugin rules/ directories`);
|
|
225
237
|
}
|
|
226
|
-
|
|
227
|
-
await Promise.all(files.map(file => copyFile(path.join(
|
|
228
|
-
return Object.freeze(
|
|
238
|
+
// Second pass: copy files now that we know there are no collisions
|
|
239
|
+
await Promise.all(filesByPlugin.map(({ sourceDir, files }) => Promise.all(files.map(file => copyFile(path.join(sourceDir, file), path.join(rulesDestDir, file))))));
|
|
240
|
+
return Object.freeze(allFiles);
|
|
229
241
|
}
|
|
230
242
|
//# sourceMappingURL=hooks-installer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hooks-installer.js","sourceRoot":"","sources":["../../src/codex/hooks-installer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EACL,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAIL,cAAc,EACd,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,kEAAkE;AAClE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE5D,kFAAkF;AAClF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAE9C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C;;;;GAIG;AACH,MAAM,aAAa,GAAG,wBAAwB,CAAC;AAkB/C;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAgC;IAChD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,2CAA2C;KAC3D;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,SAAS;QAClB,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,+BAA+B;KAC/C;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,cAAc;QACrB,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,mBAAmB;QACnC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,kCAAkC;KAClD;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,GAAG,CAAC;QACtB,aAAa,EAAE,+BAA+B;KAC/C;IACD;QACE,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,EAAE;QACX,cAAc,EAAE,gBAAgB;QAChC,eAAe,EAAE,CAAC,GAAG,CAAC;KACvB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,mBAAmB;QACnC,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,iBAAiB;QACjC,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,YAAY,CAAC;KAChC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,oBAAoB;QACpC,eAAe,EAAE,CAAC,OAAO,CAAC;KAC3B;IACD;QACE,EAAE,EAAE,uBAAuB;QAC3B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,aAAa;QACtB,cAAc,EAAE,0BAA0B;QAC1C,eAAe,EAAE,CAAC,QAAQ,CAAC;KAC5B;CACF,CAAC;AAUF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAe,EACf,aAAqC;IAErC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACxD,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAEvD,wEAAwE;IACxE,MAAM,WAAW,GAAsB,MAAM,OAAO,CAAC,GAAG,CACtD,UAAU,CAAC,GAAG,CAAC,KAAK,EAAC,KAAK,EAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,oBAAoB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7D,MAAM,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH,CAAC;IAEF,oEAAoE;IACpE,yEAAyE;IACzE,MAAM,SAAS,GAAsB,UAAU,CAAC,IAAI,CAClD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAC7B;QACC,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAC/D,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,CACnC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,kCAAkC;IAClC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAC3C,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CACnC,CAAC;IACF,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IAEnE,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3E,WAAW,EAAE,aAAa,CAAC,MAAM;KAClC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAC3B,aAAqC;IAErC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAC;IACnD,OAAO,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACjC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,kBAAkB,CACzB,KAAuB,EACvB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oEAAoE,iBAAiB,IAAI,KAAK,CAAC,cAAc,GAAG,CAAC;IACjI,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO;QACP,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE;YACxC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAAC,aAAqB;IAChD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,WAAW,CACxB,OAAe,EACf,YAAoB,EACpB,aAAqC;IAErC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;IAE3E,4DAA4D;IAC5D,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAC,UAAU,EAAC,EAAE;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACvC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,EAAc,EAAE,CAAC;QAC9C,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrB,CAAC;QACF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC,CAAC,CACH,CAAC;IAEF,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAC7B,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,CAClD,CAAC;QACF,MAAM,IAAI,KAAK,CACb,iCAAiC,SAAS,IAAI,SAAS,oCAAoC,CAC5F,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CACzC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CACpE,CACF,CACF,CACF,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-marketplace-installer.d.ts","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"AAWA,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,QAIlC,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-marketplace-installer.d.ts","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"AAWA,6EAA6E;AAC7E,eAAO,MAAM,sBAAsB,QAIlC,CAAC;AAwBF,2CAA2C;AAC3C,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC,CAcnC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
|
|
@@ -17,6 +17,7 @@ const LISA_CODEX_PLUGINS = [
|
|
|
17
17
|
"lisa-expo",
|
|
18
18
|
"lisa-nestjs",
|
|
19
19
|
"lisa-cdk",
|
|
20
|
+
"lisa-harper-fabric",
|
|
20
21
|
"lisa-rails",
|
|
21
22
|
];
|
|
22
23
|
/** Marketplace category should match each generated `.codex-plugin` manifest. */
|
|
@@ -26,6 +27,7 @@ const LISA_CODEX_PLUGIN_CATEGORIES = {
|
|
|
26
27
|
"lisa-expo": "Coding",
|
|
27
28
|
"lisa-nestjs": "Coding",
|
|
28
29
|
"lisa-cdk": "Coding",
|
|
30
|
+
"lisa-harper-fabric": "Coding",
|
|
29
31
|
"lisa-rails": "Coding",
|
|
30
32
|
};
|
|
31
33
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-marketplace-installer.js","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin-marketplace-installer.js","sourceRoot":"","sources":["../../src/codex/plugin-marketplace-installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PreToolUse Edit|Write|apply_patch).
|
|
3
|
+
# Blocks edits to TypeORM migration files. Use `bun run migration:generate`
|
|
4
|
+
# to regenerate from entity diffs instead — hand-written migrations drift
|
|
5
|
+
# from entity metadata and break the schema/migration contract.
|
|
6
|
+
#
|
|
7
|
+
# Codex blocks the tool call when stdout has hookSpecificOutput.permissionDecision
|
|
8
|
+
# set to "deny", or when the script exits non-zero with a deny message.
|
|
9
|
+
#
|
|
10
|
+
# Tool envelope shapes (Codex CLI 0.125.0):
|
|
11
|
+
# Edit / Write → tool_input.file_path (single string)
|
|
12
|
+
# apply_patch → tool_input.command (["apply_patch", "<patch>"])
|
|
13
|
+
#
|
|
14
|
+
# The patch text encodes target file paths via "*** Update File: <path>" /
|
|
15
|
+
# "*** Add File: <path>" / "*** Delete File: <path>" directives. We must
|
|
16
|
+
# extract every such path so apply_patch can't sneak past this guard.
|
|
17
|
+
set -euo pipefail
|
|
18
|
+
|
|
19
|
+
JSON_INPUT="$(cat)"
|
|
20
|
+
|
|
21
|
+
if ! command -v jq >/dev/null 2>&1; then
|
|
22
|
+
# Without jq we can't reliably parse — fail open (allow the edit). This
|
|
23
|
+
# matches the project rule against grep/sed/cut/awk-based JSON parsing.
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
# Determine which tool fired. Codex puts the tool name at .tool_name on
|
|
28
|
+
# every PreToolUse envelope; falling back to .tool just in case.
|
|
29
|
+
TOOL_NAME="$(echo "$JSON_INPUT" | jq -r '.tool_name // .tool // empty')"
|
|
30
|
+
|
|
31
|
+
# Collect every candidate path the tool intends to write. Newline-separated.
|
|
32
|
+
CANDIDATE_PATHS=""
|
|
33
|
+
case "$TOOL_NAME" in
|
|
34
|
+
apply_patch)
|
|
35
|
+
# Pull the full patch string out of tool_input.command[1], then extract
|
|
36
|
+
# every "*** {Update,Add,Delete} File: <path>" header line. jq handles
|
|
37
|
+
# the JSON; we use bash-native string splitting (NOT grep/cut on JSON)
|
|
38
|
+
# to walk the patch text line-by-line.
|
|
39
|
+
PATCH_TEXT="$(echo "$JSON_INPUT" | jq -r '.tool_input.command[1] // empty')"
|
|
40
|
+
if [ -n "${PATCH_TEXT}" ]; then
|
|
41
|
+
while IFS= read -r line; do
|
|
42
|
+
case "$line" in
|
|
43
|
+
"*** Update File: "*|"*** Add File: "*|"*** Delete File: "*)
|
|
44
|
+
CANDIDATE_PATHS+="${line#*: }"$'\n'
|
|
45
|
+
;;
|
|
46
|
+
esac
|
|
47
|
+
done <<<"${PATCH_TEXT}"
|
|
48
|
+
fi
|
|
49
|
+
;;
|
|
50
|
+
*)
|
|
51
|
+
# Edit / Write / anything else: single file under tool_input.file_path
|
|
52
|
+
SINGLE_PATH="$(echo "$JSON_INPUT" | jq -r '.tool_input.file_path // empty')"
|
|
53
|
+
[ -n "${SINGLE_PATH}" ] && CANDIDATE_PATHS="${SINGLE_PATH}"
|
|
54
|
+
;;
|
|
55
|
+
esac
|
|
56
|
+
|
|
57
|
+
[ -n "${CANDIDATE_PATHS}" ] || exit 0
|
|
58
|
+
|
|
59
|
+
# Walk every candidate; deny on the first migration match.
|
|
60
|
+
while IFS= read -r FILE_PATH; do
|
|
61
|
+
[ -n "${FILE_PATH}" ] || continue
|
|
62
|
+
case "${FILE_PATH}" in
|
|
63
|
+
*/migrations/*[0-9]*-*.ts)
|
|
64
|
+
cat <<EOF >&2
|
|
65
|
+
⚠ block-migration-edits: refusing to modify ${FILE_PATH}.
|
|
66
|
+
|
|
67
|
+
TypeORM migrations must be regenerated from entity diffs:
|
|
68
|
+
bun run migration:generate -- src/database/migrations/<descriptive-name>
|
|
69
|
+
|
|
70
|
+
Hand-written migrations drift from entity metadata and break the schema
|
|
71
|
+
contract. Modify the entity, run the generator, then commit the result.
|
|
72
|
+
EOF
|
|
73
|
+
exit 2
|
|
74
|
+
;;
|
|
75
|
+
esac
|
|
76
|
+
done <<<"${CANDIDATE_PATHS}"
|
|
77
|
+
|
|
78
|
+
exit 0
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PreToolUse Bash).
|
|
3
|
+
# Blocks git commands that try to bypass verification hooks with --no-verify.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
input="$(cat 2>/dev/null || true)"
|
|
7
|
+
[ -n "$input" ] || exit 0
|
|
8
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
9
|
+
|
|
10
|
+
tool_name="$(printf '%s' "$input" | jq -r '.tool_name // empty' 2>/dev/null || true)"
|
|
11
|
+
[ "$tool_name" = "Bash" ] || exit 0
|
|
12
|
+
|
|
13
|
+
command_str="$(printf '%s' "$input" | jq -r '.tool_input.command // empty' 2>/dev/null || true)"
|
|
14
|
+
[ -n "$command_str" ] || exit 0
|
|
15
|
+
|
|
16
|
+
if printf '%s' "$command_str" | grep -Eq '(^|[^[:alnum:]_-])--no-verify($|[^[:alnum:]_-])'; then
|
|
17
|
+
jq -n '{
|
|
18
|
+
"hookSpecificOutput": {
|
|
19
|
+
"hookEventName": "PreToolUse",
|
|
20
|
+
"permissionDecision": "deny",
|
|
21
|
+
"permissionDecisionReason": "Blocked: --no-verify bypasses pre-commit/pre-push hooks. Fix the underlying issue or ask the user before bypassing."
|
|
22
|
+
}
|
|
23
|
+
}'
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
exit 0
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PostToolUse Edit|Write|apply_patch).
|
|
3
|
+
# Runs Prettier on the just-edited file. Reads tool_input.file_path from
|
|
4
|
+
# stdin JSON.
|
|
5
|
+
#
|
|
6
|
+
# Note on apply_patch: Codex's apply_patch tool envelope exposes the patch
|
|
7
|
+
# under tool_input.command (an array), not tool_input.file_path. This script
|
|
8
|
+
# only formats single-file Edit/Write tool calls. apply_patch fires get
|
|
9
|
+
# silently skipped (FILE_PATH empty) — that's acceptable here because the
|
|
10
|
+
# next save/edit will still run the formatter, and the user can always run
|
|
11
|
+
# `prettier --write` against modified files manually.
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
|
|
14
|
+
JSON_INPUT="$(cat)"
|
|
15
|
+
|
|
16
|
+
# Project rule (.claude/rules/PROJECT_RULES.md): never parse JSON in shell
|
|
17
|
+
# with grep/sed/cut/awk — always use jq. Fail open without jq so we don't
|
|
18
|
+
# block the agent on missing tooling.
|
|
19
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
20
|
+
FILE_PATH="$(echo "$JSON_INPUT" | jq -r '.tool_input.file_path // empty')"
|
|
21
|
+
|
|
22
|
+
[ -n "${FILE_PATH}" ] || exit 0
|
|
23
|
+
[ -f "${FILE_PATH}" ] || exit 0
|
|
24
|
+
|
|
25
|
+
case "${FILE_PATH##*.}" in
|
|
26
|
+
ts|tsx|js|jsx|mjs|cjs|json|md|yaml|yml|css|scss|html) ;;
|
|
27
|
+
*) exit 0 ;;
|
|
28
|
+
esac
|
|
29
|
+
|
|
30
|
+
# Prefer the project-local prettier; fall back to a globally installed one
|
|
31
|
+
if [ -x "./node_modules/.bin/prettier" ]; then
|
|
32
|
+
./node_modules/.bin/prettier --write "${FILE_PATH}" >/dev/null 2>&1 || true
|
|
33
|
+
elif command -v prettier >/dev/null 2>&1; then
|
|
34
|
+
prettier --write "${FILE_PATH}" >/dev/null 2>&1 || true
|
|
35
|
+
fi
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script.
|
|
3
|
+
# Reads all .md files from .codex/lisa-rules/ and injects them into the
|
|
4
|
+
# session context via additionalContext.
|
|
5
|
+
#
|
|
6
|
+
# Wired by Lisa's installer as a SessionStart hook in .codex/hooks.json.
|
|
7
|
+
# Codex sets the hook script's cwd to the session cwd (NOT the repo root),
|
|
8
|
+
# so we resolve paths against `git rev-parse --show-toplevel`.
|
|
9
|
+
set -euo pipefail
|
|
10
|
+
|
|
11
|
+
REPO_ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
12
|
+
RULES_DIR="${REPO_ROOT}/.codex/lisa-rules"
|
|
13
|
+
|
|
14
|
+
# Bail silently if the rules dir is absent (e.g., Lisa was uninstalled)
|
|
15
|
+
[ -d "$RULES_DIR" ] || exit 0
|
|
16
|
+
|
|
17
|
+
# Fail open if jq is missing — without it we can't emit valid hook JSON.
|
|
18
|
+
# Codex would otherwise log a warning on every SessionStart.
|
|
19
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
20
|
+
|
|
21
|
+
CONTEXT=""
|
|
22
|
+
for file in "$RULES_DIR"/*.md; do
|
|
23
|
+
[ -f "$file" ] || continue
|
|
24
|
+
CONTEXT+="$(cat "$file")"$'\n\n'
|
|
25
|
+
done
|
|
26
|
+
|
|
27
|
+
# Bail if no rules were found
|
|
28
|
+
[ -n "$CONTEXT" ] || exit 0
|
|
29
|
+
|
|
30
|
+
# Codex hooks accept hookSpecificOutput.additionalContext for context injection
|
|
31
|
+
jq -n --arg ctx "$CONTEXT" '{"hookSpecificOutput": {"hookEventName": "SessionStart", "additionalContext": $ctx}}'
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (SessionStart startup).
|
|
3
|
+
# Mirrors Claude's dependency bootstrap, but remains fail-open so Codex startup
|
|
4
|
+
# is never bricked by a package-manager issue.
|
|
5
|
+
set -uo pipefail
|
|
6
|
+
|
|
7
|
+
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
|
8
|
+
cd "$repo_root" 2>/dev/null || exit 0
|
|
9
|
+
|
|
10
|
+
if [ -d "node_modules" ] || [ ! -f "package.json" ]; then
|
|
11
|
+
exit 0
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
if [ -f "bun.lockb" ] || [ -f "bun.lock" ]; then
|
|
15
|
+
command -v bun >/dev/null 2>&1 && bun install
|
|
16
|
+
elif [ -f "pnpm-lock.yaml" ]; then
|
|
17
|
+
command -v pnpm >/dev/null 2>&1 && pnpm install
|
|
18
|
+
elif [ -f "yarn.lock" ]; then
|
|
19
|
+
command -v yarn >/dev/null 2>&1 && yarn install
|
|
20
|
+
elif [ -f "package-lock.json" ]; then
|
|
21
|
+
command -v npm >/dev/null 2>&1 && npm install
|
|
22
|
+
else
|
|
23
|
+
command -v npm >/dev/null 2>&1 && npm install
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
exit 0
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PostToolUse Edit|Write|apply_patch).
|
|
3
|
+
# Runs ESLint --fix on the just-edited file. If unfixable errors remain,
|
|
4
|
+
# exits non-zero so Codex sees the failure and the agent self-corrects.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
JSON_INPUT="$(cat)"
|
|
8
|
+
|
|
9
|
+
# Project rule (.claude/rules/PROJECT_RULES.md): never parse JSON in shell
|
|
10
|
+
# with grep/sed/cut/awk — always use jq. Fail open without jq.
|
|
11
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
12
|
+
FILE_PATH="$(echo "$JSON_INPUT" | jq -r '.tool_input.file_path // empty')"
|
|
13
|
+
|
|
14
|
+
[ -n "${FILE_PATH}" ] || exit 0
|
|
15
|
+
[ -f "${FILE_PATH}" ] || exit 0
|
|
16
|
+
|
|
17
|
+
case "${FILE_PATH##*.}" in
|
|
18
|
+
ts|tsx|js|jsx|mjs|cjs) ;;
|
|
19
|
+
*) exit 0 ;;
|
|
20
|
+
esac
|
|
21
|
+
|
|
22
|
+
if [ -x "./node_modules/.bin/eslint" ]; then
|
|
23
|
+
ESLINT="./node_modules/.bin/eslint"
|
|
24
|
+
elif command -v eslint >/dev/null 2>&1; then
|
|
25
|
+
ESLINT="eslint"
|
|
26
|
+
else
|
|
27
|
+
exit 0
|
|
28
|
+
fi
|
|
29
|
+
|
|
30
|
+
# Auto-fix what we can; surface anything left so the agent fixes it itself
|
|
31
|
+
"$ESLINT" --fix "${FILE_PATH}" >/dev/null 2>&1 || true
|
|
32
|
+
"$ESLINT" --quiet "${FILE_PATH}"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (Stop event).
|
|
3
|
+
# Sends a desktop/push notification when a Codex session completes.
|
|
4
|
+
# No-op if NTFY_TOPIC is not set or curl is unavailable.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
[ -n "${NTFY_TOPIC:-}" ] || exit 0
|
|
8
|
+
command -v curl >/dev/null 2>&1 || exit 0
|
|
9
|
+
|
|
10
|
+
TITLE="${NTFY_TITLE:-Codex session complete}"
|
|
11
|
+
MESSAGE="${NTFY_MESSAGE:-Your Codex session has finished. Check the terminal for results.}"
|
|
12
|
+
|
|
13
|
+
curl -s -m 5 \
|
|
14
|
+
-H "Title: ${TITLE}" \
|
|
15
|
+
-H "Priority: default" \
|
|
16
|
+
-d "${MESSAGE}" \
|
|
17
|
+
"https://ntfy.sh/${NTFY_TOPIC}" \
|
|
18
|
+
>/dev/null 2>&1 || true
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PostToolUse Edit|Write|apply_patch).
|
|
3
|
+
# Runs RuboCop -a (safe autocorrect) on the just-edited Ruby file, then
|
|
4
|
+
# checks for remaining unfixable errors. Blocking — non-zero exit forces
|
|
5
|
+
# the agent to fix.
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
JSON_INPUT="$(cat)"
|
|
9
|
+
|
|
10
|
+
# Project rule (.claude/rules/PROJECT_RULES.md): never parse JSON in shell
|
|
11
|
+
# with grep/sed/cut/awk — always use jq. Fail open without jq.
|
|
12
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
13
|
+
FILE_PATH="$(echo "$JSON_INPUT" | jq -r '.tool_input.file_path // empty')"
|
|
14
|
+
|
|
15
|
+
[ -n "${FILE_PATH}" ] || exit 0
|
|
16
|
+
[ -f "${FILE_PATH}" ] || exit 0
|
|
17
|
+
|
|
18
|
+
case "${FILE_PATH##*.}" in
|
|
19
|
+
rb|rake) ;;
|
|
20
|
+
*) exit 0 ;;
|
|
21
|
+
esac
|
|
22
|
+
|
|
23
|
+
if command -v bundle >/dev/null 2>&1 && [ -f "./Gemfile" ]; then
|
|
24
|
+
RUBOCOP=(bundle exec rubocop)
|
|
25
|
+
elif command -v rubocop >/dev/null 2>&1; then
|
|
26
|
+
RUBOCOP=(rubocop)
|
|
27
|
+
else
|
|
28
|
+
exit 0
|
|
29
|
+
fi
|
|
30
|
+
|
|
31
|
+
"${RUBOCOP[@]}" -a "${FILE_PATH}" >/dev/null 2>&1 || true
|
|
32
|
+
"${RUBOCOP[@]}" "${FILE_PATH}"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (SessionStart).
|
|
3
|
+
# Writes jira-cli configuration from environment variables when available.
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
if [[ -z "${JIRA_SERVER:-}" || -z "${JIRA_LOGIN:-}" ]]; then
|
|
7
|
+
exit 0
|
|
8
|
+
fi
|
|
9
|
+
|
|
10
|
+
config_dir="${HOME}/.config/.jira"
|
|
11
|
+
config_file="${config_dir}/.config.yml"
|
|
12
|
+
mkdir -p "$config_dir"
|
|
13
|
+
|
|
14
|
+
cat > "$config_file" << EOF
|
|
15
|
+
installation: ${JIRA_INSTALLATION:-cloud}
|
|
16
|
+
server: ${JIRA_SERVER}
|
|
17
|
+
login: ${JIRA_LOGIN}
|
|
18
|
+
project: ${JIRA_PROJECT:-}
|
|
19
|
+
board: "${JIRA_BOARD:-}"
|
|
20
|
+
auth_type: basic
|
|
21
|
+
epic:
|
|
22
|
+
name: Epic Name
|
|
23
|
+
link: Epic Link
|
|
24
|
+
EOF
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Lisa-managed Codex hook script (PostToolUse Edit|Write|apply_patch).
|
|
3
|
+
# Runs ast-grep scan against the project, reporting only errors involving
|
|
4
|
+
# the just-edited file. Blocking — non-zero exit forces the agent to fix.
|
|
5
|
+
set -euo pipefail
|
|
6
|
+
|
|
7
|
+
JSON_INPUT="$(cat)"
|
|
8
|
+
|
|
9
|
+
# Project rule (.claude/rules/PROJECT_RULES.md): never parse JSON in shell
|
|
10
|
+
# with grep/sed/cut/awk — always use jq. Fail open without jq.
|
|
11
|
+
command -v jq >/dev/null 2>&1 || exit 0
|
|
12
|
+
FILE_PATH="$(echo "$JSON_INPUT" | jq -r '.tool_input.file_path // empty' 2>/dev/null || true)"
|
|
13
|
+
|
|
14
|
+
[ -n "${FILE_PATH}" ] || exit 0
|
|
15
|
+
[ -f "${FILE_PATH}" ] || exit 0
|
|
16
|
+
|
|
17
|
+
case "${FILE_PATH##*.}" in
|
|
18
|
+
ts|tsx|js|jsx|mjs|cjs) ;;
|
|
19
|
+
*) exit 0 ;;
|
|
20
|
+
esac
|
|
21
|
+
|
|
22
|
+
if [ -x "./node_modules/.bin/ast-grep" ]; then
|
|
23
|
+
AST_GREP="./node_modules/.bin/ast-grep"
|
|
24
|
+
elif command -v ast-grep >/dev/null 2>&1; then
|
|
25
|
+
AST_GREP="ast-grep"
|
|
26
|
+
elif command -v sg >/dev/null 2>&1; then
|
|
27
|
+
AST_GREP="sg"
|
|
28
|
+
else
|
|
29
|
+
exit 0
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
[ -f "./sgconfig.yml" ] || exit 0
|
|
33
|
+
|
|
34
|
+
"$AST_GREP" scan "${FILE_PATH}" 2>&1
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ESLint 9 Flat Config - Harper/Fabric Stack
|
|
3
|
+
*
|
|
4
|
+
* Extends Lisa's TypeScript config with stricter immutability and generated
|
|
5
|
+
* Harper deploy artifact ignores.
|
|
6
|
+
* @module configs/eslint/harper-fabric
|
|
7
|
+
*/
|
|
8
|
+
import type { Linter } from "eslint";
|
|
9
|
+
import { defaultIgnores, defaultThresholds } from "./typescript.js";
|
|
10
|
+
export { defaultIgnores, defaultThresholds };
|
|
11
|
+
/**
|
|
12
|
+
* Default ignore patterns for Harper/Fabric projects.
|
|
13
|
+
*/
|
|
14
|
+
export declare const defaultHarperFabricIgnores: string[];
|
|
15
|
+
/**
|
|
16
|
+
* Creates the Harper/Fabric ESLint configuration.
|
|
17
|
+
* @param options - Configuration options
|
|
18
|
+
* @param options.tsconfigRootDir - Root directory for tsconfig.json
|
|
19
|
+
* @param options.ignorePatterns - Patterns to ignore
|
|
20
|
+
* @param options.thresholds - Threshold overrides
|
|
21
|
+
* @returns ESLint flat config array
|
|
22
|
+
*/
|
|
23
|
+
export declare function getHarperFabricConfig({ tsconfigRootDir, ignorePatterns, thresholds, }: {
|
|
24
|
+
tsconfigRootDir: string;
|
|
25
|
+
ignorePatterns?: string[];
|
|
26
|
+
thresholds?: typeof defaultThresholds;
|
|
27
|
+
}): Linter.Config[];
|
|
28
|
+
//# sourceMappingURL=harper-fabric.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harper-fabric.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/harper-fabric.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EACL,cAAc,EACd,iBAAiB,EAElB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,0BAA0B,UAStC,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,eAAe,EACf,cAA2C,EAC3C,UAA8B,GAC/B,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,iBAAiB,CAAC;CACvC,GAAG,MAAM,CAAC,MAAM,EAAE,CAkClB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { defaultIgnores, defaultThresholds, getTypescriptConfig, } from "./typescript.js";
|
|
2
|
+
export { defaultIgnores, defaultThresholds };
|
|
3
|
+
/**
|
|
4
|
+
* Default ignore patterns for Harper/Fabric projects.
|
|
5
|
+
*/
|
|
6
|
+
export const defaultHarperFabricIgnores = [
|
|
7
|
+
...defaultIgnores,
|
|
8
|
+
"**/*.yaml",
|
|
9
|
+
"**/*.yml",
|
|
10
|
+
"**/*.toml",
|
|
11
|
+
"*.config.local.ts",
|
|
12
|
+
"harper-app/resources.js",
|
|
13
|
+
"harper-app/web/**/*.js",
|
|
14
|
+
"harper-app/web/**/*.js.map",
|
|
15
|
+
];
|
|
16
|
+
/**
|
|
17
|
+
* Creates the Harper/Fabric ESLint configuration.
|
|
18
|
+
* @param options - Configuration options
|
|
19
|
+
* @param options.tsconfigRootDir - Root directory for tsconfig.json
|
|
20
|
+
* @param options.ignorePatterns - Patterns to ignore
|
|
21
|
+
* @param options.thresholds - Threshold overrides
|
|
22
|
+
* @returns ESLint flat config array
|
|
23
|
+
*/
|
|
24
|
+
export function getHarperFabricConfig({ tsconfigRootDir, ignorePatterns = defaultHarperFabricIgnores, thresholds = defaultThresholds, }) {
|
|
25
|
+
return [
|
|
26
|
+
...getTypescriptConfig({
|
|
27
|
+
tsconfigRootDir,
|
|
28
|
+
ignorePatterns,
|
|
29
|
+
thresholds,
|
|
30
|
+
}),
|
|
31
|
+
{
|
|
32
|
+
files: ["src/**/*.ts"],
|
|
33
|
+
rules: {
|
|
34
|
+
"functional/immutable-data": "error",
|
|
35
|
+
"functional/no-let": "error",
|
|
36
|
+
"functional/prefer-readonly-type": "error",
|
|
37
|
+
"functional/readonly-type": "error",
|
|
38
|
+
"functional/type-declaration-immutability": "error",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
files: ["tests/**/*.test.ts", "tests/**/*smoke.ts"],
|
|
43
|
+
rules: {
|
|
44
|
+
"functional/immutable-data": "off",
|
|
45
|
+
"functional/no-let": "off",
|
|
46
|
+
"functional/prefer-readonly-type": "off",
|
|
47
|
+
"functional/readonly-type": "off",
|
|
48
|
+
"functional/type-declaration-immutability": "off",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
files: ["src/scripts/**/*.ts", "tests/**/*.ts"],
|
|
53
|
+
rules: {
|
|
54
|
+
"no-restricted-syntax": "off",
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=harper-fabric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harper-fabric.js","sourceRoot":"","sources":["../../../src/configs/eslint/harper-fabric.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,GAAG,cAAc;IACjB,WAAW;IACX,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,yBAAyB;IACzB,wBAAwB;IACxB,4BAA4B;CAC7B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,eAAe,EACf,cAAc,GAAG,0BAA0B,EAC3C,UAAU,GAAG,iBAAiB,GAK/B;IACC,OAAO;QACL,GAAG,mBAAmB,CAAC;YACrB,eAAe;YACf,cAAc;YACd,UAAU;SACX,CAAC;QACF;YACE,KAAK,EAAE,CAAC,aAAa,CAAC;YACtB,KAAK,EAAE;gBACL,2BAA2B,EAAE,OAAO;gBACpC,mBAAmB,EAAE,OAAO;gBAC5B,iCAAiC,EAAE,OAAO;gBAC1C,0BAA0B,EAAE,OAAO;gBACnC,0CAA0C,EAAE,OAAO;aACpD;SACF;QACD;YACE,KAAK,EAAE,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;YACnD,KAAK,EAAE;gBACL,2BAA2B,EAAE,KAAK;gBAClC,mBAAmB,EAAE,KAAK;gBAC1B,iCAAiC,EAAE,KAAK;gBACxC,0BAA0B,EAAE,KAAK;gBACjC,0CAA0C,EAAE,KAAK;aAClD;SACF;QACD;YACE,KAAK,EAAE,CAAC,qBAAqB,EAAE,eAAe,CAAC;YAC/C,KAAK,EAAE;gBACL,sBAAsB,EAAE,KAAK;aAC9B;SACF;KACiB,CAAC;AACvB,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* @see nestjs.ts for NestJS stack config
|
|
7
7
|
* @see expo.ts for Expo/React Native stack config
|
|
8
8
|
* @see cdk.ts for AWS CDK stack config
|
|
9
|
+
* @see harper-fabric.ts for Harper/Fabric stack config
|
|
9
10
|
* @see slow.ts for slow rules run periodically
|
|
10
11
|
*/
|
|
11
12
|
export * from "./base.js";
|
|
@@ -13,5 +14,6 @@ export * from "./typescript.js";
|
|
|
13
14
|
export * from "./nestjs.js";
|
|
14
15
|
export * from "./expo.js";
|
|
15
16
|
export * from "./cdk.js";
|
|
17
|
+
export * from "./harper-fabric.js";
|
|
16
18
|
export * from "./slow.js";
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/configs/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* @see nestjs.ts for NestJS stack config
|
|
7
7
|
* @see expo.ts for Expo/React Native stack config
|
|
8
8
|
* @see cdk.ts for AWS CDK stack config
|
|
9
|
+
* @see harper-fabric.ts for Harper/Fabric stack config
|
|
9
10
|
* @see slow.ts for slow rules run periodically
|
|
10
11
|
*/
|
|
11
12
|
export * from "./base.js";
|
|
@@ -13,5 +14,6 @@ export * from "./typescript.js";
|
|
|
13
14
|
export * from "./nestjs.js";
|
|
14
15
|
export * from "./expo.js";
|
|
15
16
|
export * from "./cdk.js";
|
|
17
|
+
export * from "./harper-fabric.js";
|
|
16
18
|
export * from "./slow.js";
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configs/eslint/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/configs/eslint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
|