@codyswann/lisa 4.4.16 → 4.4.17
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/core/lisa-owned-hash-ledger.d.ts.map +1 -1
- package/dist/core/lisa-owned-hash-ledger.js +2 -0
- package/dist/core/lisa-owned-hash-ledger.js.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +6 -6
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/hooks/threshold-ratchet-compare.mjs +7 -0
- package/plugins/lisa/hooks/threshold-ratchet-families.mjs +53 -0
- 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-copilot/hooks/threshold-ratchet-compare.mjs +7 -0
- package/plugins/lisa-copilot/hooks/threshold-ratchet-families.mjs +53 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/hooks/threshold-ratchet-compare.mjs +7 -0
- package/plugins/lisa-cursor/hooks/threshold-ratchet-families.mjs +53 -0
- 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 +1 -1
- 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 +1 -1
- 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-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-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 +1 -1
- 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 +1 -1
- 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/plugins/src/base/hooks/threshold-ratchet-compare.mjs +7 -0
- package/plugins/src/base/hooks/threshold-ratchet-families.mjs +53 -0
- package/rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs +7 -0
- package/rails/copy-overwrite/scripts/threshold-ratchet-families.mjs +53 -0
- package/typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs +7 -0
- package/typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs +53 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.d.ts","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AACA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAC3C,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAimBjC,CAAC"}
|
|
@@ -601,6 +601,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
601
601
|
"scripts/threshold-ratchet-compare.mjs": Object.freeze([
|
|
602
602
|
"4535a145c5c5cbee13bdf970bc91d390a264043604e607288cdd6bf28de56192",
|
|
603
603
|
"67b5769dde341d06799c7a49c1fbcd46d92df1268177cc575e704e5a8a2d3096",
|
|
604
|
+
"874f0792beab000939d480c1a0547ce4dd351421b4e5f0fbb495aae246ab85c2",
|
|
604
605
|
"8bc4b379d7057b2fecf9cb35820c39efad0a65df7df49073786f996cc2a74810",
|
|
605
606
|
"90affbeaed0d65c032dccfc0bd4a4b26eda291f6b61aa8b12599f41842452e0a",
|
|
606
607
|
"b5e064971bc29a052ee3757c24696c2fd8c2cd83cd3200a2420dba52351c395c",
|
|
@@ -608,6 +609,7 @@ export const LISA_OWNED_HASH_LEDGER = Object.freeze({
|
|
|
608
609
|
"cf99167b05d210afad01fb41fc4aed548c66ee0e9a7c4decb8afa1f180eb5640",
|
|
609
610
|
]),
|
|
610
611
|
"scripts/threshold-ratchet-families.mjs": Object.freeze([
|
|
612
|
+
"47d44b2bca383ae395b4e415e06c97a127327ab13762ee95b8c43d0198639bbb",
|
|
611
613
|
"8fa58cc7276add0b2edf1de92bdcc32d81d840811ef0614ddc724010b59a888c",
|
|
612
614
|
"93190f926689725418c1ec9eae15c55910b128cff6e3cb10185e466c7b90cc4f",
|
|
613
615
|
"db14245ed89b483912af287bdee917a7a921dc21bb29b49be37fc799c05c413f",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,6EAA6E;AAE7E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAE/B,MAAM,CAAC,MAAM,CAAC;IAChB,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC;QACrC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,0BAA0B,EAAE,MAAM,CAAC,MAAM,CAAC;QACxC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yBAAyB,EAAE,MAAM,CAAC,MAAM,CAAC;QACvC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gCAAgC,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oCAAoC,EAAE,MAAM,CAAC,MAAM,CAAC;QAClD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gCAAgC,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,2CAA2C,EAAE,MAAM,CAAC,MAAM,CAAC;QACzD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,qCAAqC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yCAAyC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oCAAoC,EAAE,MAAM,CAAC,MAAM,CAAC;QAClD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,+BAA+B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC7C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oCAAoC,EAAE,MAAM,CAAC,MAAM,CAAC;QAClD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sCAAsC,EAAE,MAAM,CAAC,MAAM,CAAC;QACpD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC;QACtC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,iDAAiD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC/D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,oDAAoD,EAAE,MAAM,CAAC,MAAM,CAAC;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gDAAgD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,gDAAgD,EAAE,MAAM,CAAC,MAAM,CAAC;QAC9D,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,yCAAyC,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,qCAAqC,EAAE,MAAM,CAAC,MAAM,CAAC;QACnD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;KACnE,CAAC;IACF,2BAA2B,EAAE,MAAM,CAAC,MAAM,CAAC;QACzC,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,8BAA8B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC5C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,mCAAmC,EAAE,MAAM,CAAC,MAAM,CAAC;QACjD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,kCAAkC,EAAE,MAAM,CAAC,MAAM,CAAC;QAChD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,4BAA4B,EAAE,MAAM,CAAC,MAAM,CAAC;QAC1C,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,sDAAsD,EAAE,MAAM,CAAC,MAAM,CAAC;QACpE,kEAAkE;KACnE,CAAC;IACF,oDAAoD,EAAE,MAAM,CAAC,MAAM,CAAC;QAClE,kEAAkE;KACnE,CAAC;IACF,uCAAuC,EAAE,MAAM,CAAC,MAAM,CAAC;QACrD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;IACF,wCAAwC,EAAE,MAAM,CAAC,MAAM,CAAC;QACtD,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;QAClE,kEAAkE;KACnE,CAAC;CACH,CAAC,CAAC;AACH,sEAAsE"}
|
|
1
|
+
{"version":3,"file":"lisa-owned-hash-ledger.js","sourceRoot":"","sources":["../../src/core/lisa-owned-hash-ledger.ts"],"names":[],"mappings":"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"}
|
|
@@ -368,8 +368,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
368
368
|
"plugins/src/base/hooks/setup-jira-cli.sh": "b55988c2a9a74c4dda08f85c269d34527555cac8f023f6ffea6fd20e2498b7c6",
|
|
369
369
|
"plugins/src/base/hooks/shell-write-nudge.sh": "69839af423f8792b1e52c71097316c3264425553031627c0a2f9409a9d5becd0",
|
|
370
370
|
"plugins/src/base/hooks/sonar-secrets.sh": "e37c8db517dff5cce357bacdd1316643bfb823c8ef5df44bbc983d3107619356",
|
|
371
|
-
"plugins/src/base/hooks/threshold-ratchet-compare.mjs": "
|
|
372
|
-
"plugins/src/base/hooks/threshold-ratchet-families.mjs": "
|
|
371
|
+
"plugins/src/base/hooks/threshold-ratchet-compare.mjs": "2ae57ea1eb0a0199559a17ee69186953f41115986a276e641ff8b3070e2f9fa6",
|
|
372
|
+
"plugins/src/base/hooks/threshold-ratchet-families.mjs": "d9c8086113d5e549476a1e6b6921c2a3b2f331e5ef5ccead0e8a3111f69b957a",
|
|
373
373
|
"plugins/src/base/hooks/threshold-ratchet.mjs": "8e8f5e3a11a786926ea9b26e0503c9d9479d7e68695147bfdd23de732f581a3d",
|
|
374
374
|
"plugins/src/base/hooks/threshold-ratchet.sh": "b86f4d0b554e44fd119ad8a8920cd0ba6c9dbe779f7ee219d381cf0629453990",
|
|
375
375
|
"plugins/src/base/hooks/ticket-sync-reminder.sh": "212f80bcdfd9e3ec2254987c5a7186d1d2d38065b330ddcdc631f76df7c4a6c0",
|
|
@@ -1050,8 +1050,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1050
1050
|
"rails/copy-overwrite/lefthook.yml": "3ae82d0a6ad86708d8ceaa1f9a3bbe12ef64e8fa12a0248bed5e3180bb431c68",
|
|
1051
1051
|
"rails/copy-overwrite/scripts/check-threshold-ratchet.mjs": "47bc8b91e38535e694f43d9d3b76c4589ae2796e4ce9e875ab6b09a273e0c93a",
|
|
1052
1052
|
"rails/copy-overwrite/scripts/lisa-clean-git-env.sh": "d15af6f13eedbca41046070972380e69fc0af8f7d903aac12b8644389b9a0c91",
|
|
1053
|
-
"rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "
|
|
1054
|
-
"rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "
|
|
1053
|
+
"rails/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "874f0792beab000939d480c1a0547ce4dd351421b4e5f0fbb495aae246ab85c2",
|
|
1054
|
+
"rails/copy-overwrite/scripts/threshold-ratchet-families.mjs": "47d44b2bca383ae395b4e415e06c97a127327ab13762ee95b8c43d0198639bbb",
|
|
1055
1055
|
"rails/copy-overwrite/sgconfig.yml": "ff5b62de42eb969a851fdc53ee6932a32ffe010b567ed2c62460ed454ad2a24f",
|
|
1056
1056
|
"rails/create-only/.github/workflows/ci.yml": "924375bcfcb8c13f546a7e323cf5ad99cee1427d3ba90386680db16b981e5ab4",
|
|
1057
1057
|
"rails/create-only/.github/workflows/deploy.yml": "11dc8b52947f6b1476a277d1fe5f532b398ae9cd4b8d0dc8cc09df3e4e4f77eb",
|
|
@@ -1192,8 +1192,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
1192
1192
|
"typescript/copy-overwrite/scripts/lib/invoked-as-script.mjs": "fbb9b88fc85a3e22f21af39e1c17acf67ff83fc6b5a6cdc8081bde333c48faa7",
|
|
1193
1193
|
"typescript/copy-overwrite/scripts/lisa-mutation.mjs": "20bc2e58a54d7ef3c99b91393b85aa2f59d42984cbcbdb0a710b2c8d12d46b39",
|
|
1194
1194
|
"typescript/copy-overwrite/scripts/nightly-e2e-suites.schema.json": "bce579fc87a3ca892dc96f0366ef8afdc650a20015f4623f2561662ec7a1f6c8",
|
|
1195
|
-
"typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "
|
|
1196
|
-
"typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "
|
|
1195
|
+
"typescript/copy-overwrite/scripts/threshold-ratchet-compare.mjs": "874f0792beab000939d480c1a0547ce4dd351421b4e5f0fbb495aae246ab85c2",
|
|
1196
|
+
"typescript/copy-overwrite/scripts/threshold-ratchet-families.mjs": "47d44b2bca383ae395b4e415e06c97a127327ab13762ee95b8c43d0198639bbb",
|
|
1197
1197
|
"typescript/copy-overwrite/sgconfig.yml": "ff5b62de42eb969a851fdc53ee6932a32ffe010b567ed2c62460ed454ad2a24f",
|
|
1198
1198
|
"typescript/copy-overwrite/tsconfig.eslint.json": "8a8ae5e201b18887b8eeda5eb569747221695524d4193ea03b4338b97b7fa642",
|
|
1199
1199
|
"typescript/copy-overwrite/tsconfig.json": "8f4257fcd2cfd4b23e83e0fdd4908d41ee8f1ae75bb95d632e653a0ac13d58e4",
|
package/package.json
CHANGED
|
@@ -146,7 +146,7 @@
|
|
|
146
146
|
"zod-validation-error": "^4.0.0"
|
|
147
147
|
},
|
|
148
148
|
"name": "@codyswann/lisa",
|
|
149
|
-
"version": "4.4.
|
|
149
|
+
"version": "4.4.17",
|
|
150
150
|
"description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
|
|
151
151
|
"main": "dist/index.js",
|
|
152
152
|
"exports": {
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import {
|
|
10
10
|
extractAllowEntries,
|
|
11
11
|
extractK6Constraints,
|
|
12
|
+
extractLighthouseAssertions,
|
|
12
13
|
extractNumericLeaves,
|
|
13
14
|
extractRubocopThresholds,
|
|
14
15
|
extractStrykerConstraints,
|
|
@@ -296,6 +297,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
296
297
|
return compareStryker(relPath, base, current);
|
|
297
298
|
case "k6":
|
|
298
299
|
return compareK6(relPath, base, current);
|
|
300
|
+
case "lighthouse":
|
|
301
|
+
return compareConstraints(
|
|
302
|
+
relPath,
|
|
303
|
+
extractLighthouseAssertions(base),
|
|
304
|
+
extractLighthouseAssertions(current)
|
|
305
|
+
);
|
|
299
306
|
case KIND_ALLOW_LIST:
|
|
300
307
|
return compareAllowList(relPath, base, current);
|
|
301
308
|
default:
|
|
@@ -77,8 +77,61 @@ export const FAMILIES = [
|
|
|
77
77
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
78
78
|
kind: "allow-list",
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
id: "lighthouse",
|
|
82
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
83
|
+
kind: "lighthouse",
|
|
84
|
+
},
|
|
80
85
|
];
|
|
81
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
89
|
+
*
|
|
90
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
91
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
92
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
93
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
94
|
+
*/
|
|
95
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
96
|
+
minScore: "min",
|
|
97
|
+
maxNumericValue: "max",
|
|
98
|
+
maxLength: "max",
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
103
|
+
*
|
|
104
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
105
|
+
* object whose numeric indices look like audit names.
|
|
106
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
107
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
108
|
+
* `assertion.key` path to numeric constraint
|
|
109
|
+
*/
|
|
110
|
+
export function extractLighthouseAssertions(conf) {
|
|
111
|
+
const out = new Map();
|
|
112
|
+
const assertions =
|
|
113
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
114
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
115
|
+
: undefined;
|
|
116
|
+
if (
|
|
117
|
+
!assertions ||
|
|
118
|
+
typeof assertions !== "object" ||
|
|
119
|
+
Array.isArray(assertions)
|
|
120
|
+
) {
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
124
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
125
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
126
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
127
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
128
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
|
|
82
135
|
/**
|
|
83
136
|
* Find the family a repo-relative path belongs to.
|
|
84
137
|
* @param {string} relPath Repo-relative path (forward slashes)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import {
|
|
10
10
|
extractAllowEntries,
|
|
11
11
|
extractK6Constraints,
|
|
12
|
+
extractLighthouseAssertions,
|
|
12
13
|
extractNumericLeaves,
|
|
13
14
|
extractRubocopThresholds,
|
|
14
15
|
extractStrykerConstraints,
|
|
@@ -296,6 +297,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
296
297
|
return compareStryker(relPath, base, current);
|
|
297
298
|
case "k6":
|
|
298
299
|
return compareK6(relPath, base, current);
|
|
300
|
+
case "lighthouse":
|
|
301
|
+
return compareConstraints(
|
|
302
|
+
relPath,
|
|
303
|
+
extractLighthouseAssertions(base),
|
|
304
|
+
extractLighthouseAssertions(current)
|
|
305
|
+
);
|
|
299
306
|
case KIND_ALLOW_LIST:
|
|
300
307
|
return compareAllowList(relPath, base, current);
|
|
301
308
|
default:
|
|
@@ -77,8 +77,61 @@ export const FAMILIES = [
|
|
|
77
77
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
78
78
|
kind: "allow-list",
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
id: "lighthouse",
|
|
82
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
83
|
+
kind: "lighthouse",
|
|
84
|
+
},
|
|
80
85
|
];
|
|
81
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
89
|
+
*
|
|
90
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
91
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
92
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
93
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
94
|
+
*/
|
|
95
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
96
|
+
minScore: "min",
|
|
97
|
+
maxNumericValue: "max",
|
|
98
|
+
maxLength: "max",
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
103
|
+
*
|
|
104
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
105
|
+
* object whose numeric indices look like audit names.
|
|
106
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
107
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
108
|
+
* `assertion.key` path to numeric constraint
|
|
109
|
+
*/
|
|
110
|
+
export function extractLighthouseAssertions(conf) {
|
|
111
|
+
const out = new Map();
|
|
112
|
+
const assertions =
|
|
113
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
114
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
115
|
+
: undefined;
|
|
116
|
+
if (
|
|
117
|
+
!assertions ||
|
|
118
|
+
typeof assertions !== "object" ||
|
|
119
|
+
Array.isArray(assertions)
|
|
120
|
+
) {
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
124
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
125
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
126
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
127
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
128
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
|
|
82
135
|
/**
|
|
83
136
|
* Find the family a repo-relative path belongs to.
|
|
84
137
|
* @param {string} relPath Repo-relative path (forward slashes)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import {
|
|
10
10
|
extractAllowEntries,
|
|
11
11
|
extractK6Constraints,
|
|
12
|
+
extractLighthouseAssertions,
|
|
12
13
|
extractNumericLeaves,
|
|
13
14
|
extractRubocopThresholds,
|
|
14
15
|
extractStrykerConstraints,
|
|
@@ -296,6 +297,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
296
297
|
return compareStryker(relPath, base, current);
|
|
297
298
|
case "k6":
|
|
298
299
|
return compareK6(relPath, base, current);
|
|
300
|
+
case "lighthouse":
|
|
301
|
+
return compareConstraints(
|
|
302
|
+
relPath,
|
|
303
|
+
extractLighthouseAssertions(base),
|
|
304
|
+
extractLighthouseAssertions(current)
|
|
305
|
+
);
|
|
299
306
|
case KIND_ALLOW_LIST:
|
|
300
307
|
return compareAllowList(relPath, base, current);
|
|
301
308
|
default:
|
|
@@ -77,8 +77,61 @@ export const FAMILIES = [
|
|
|
77
77
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
78
78
|
kind: "allow-list",
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
id: "lighthouse",
|
|
82
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
83
|
+
kind: "lighthouse",
|
|
84
|
+
},
|
|
80
85
|
];
|
|
81
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
89
|
+
*
|
|
90
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
91
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
92
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
93
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
94
|
+
*/
|
|
95
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
96
|
+
minScore: "min",
|
|
97
|
+
maxNumericValue: "max",
|
|
98
|
+
maxLength: "max",
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
103
|
+
*
|
|
104
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
105
|
+
* object whose numeric indices look like audit names.
|
|
106
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
107
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
108
|
+
* `assertion.key` path to numeric constraint
|
|
109
|
+
*/
|
|
110
|
+
export function extractLighthouseAssertions(conf) {
|
|
111
|
+
const out = new Map();
|
|
112
|
+
const assertions =
|
|
113
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
114
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
115
|
+
: undefined;
|
|
116
|
+
if (
|
|
117
|
+
!assertions ||
|
|
118
|
+
typeof assertions !== "object" ||
|
|
119
|
+
Array.isArray(assertions)
|
|
120
|
+
) {
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
124
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
125
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
126
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
127
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
128
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
|
|
82
135
|
/**
|
|
83
136
|
* Find the family a repo-relative path belongs to.
|
|
84
137
|
* @param {string} relPath Repo-relative path (forward slashes)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lisa-openclaw",
|
|
3
|
-
"version": "4.4.
|
|
3
|
+
"version": "4.4.17",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.17",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.17",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.17",
|
|
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": "4.4.
|
|
3
|
+
"version": "4.4.17",
|
|
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"
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import {
|
|
10
10
|
extractAllowEntries,
|
|
11
11
|
extractK6Constraints,
|
|
12
|
+
extractLighthouseAssertions,
|
|
12
13
|
extractNumericLeaves,
|
|
13
14
|
extractRubocopThresholds,
|
|
14
15
|
extractStrykerConstraints,
|
|
@@ -296,6 +297,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
296
297
|
return compareStryker(relPath, base, current);
|
|
297
298
|
case "k6":
|
|
298
299
|
return compareK6(relPath, base, current);
|
|
300
|
+
case "lighthouse":
|
|
301
|
+
return compareConstraints(
|
|
302
|
+
relPath,
|
|
303
|
+
extractLighthouseAssertions(base),
|
|
304
|
+
extractLighthouseAssertions(current)
|
|
305
|
+
);
|
|
299
306
|
case KIND_ALLOW_LIST:
|
|
300
307
|
return compareAllowList(relPath, base, current);
|
|
301
308
|
default:
|
|
@@ -77,8 +77,61 @@ export const FAMILIES = [
|
|
|
77
77
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
78
78
|
kind: "allow-list",
|
|
79
79
|
},
|
|
80
|
+
{
|
|
81
|
+
id: "lighthouse",
|
|
82
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
83
|
+
kind: "lighthouse",
|
|
84
|
+
},
|
|
80
85
|
];
|
|
81
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
89
|
+
*
|
|
90
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
91
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
92
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
93
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
94
|
+
*/
|
|
95
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
96
|
+
minScore: "min",
|
|
97
|
+
maxNumericValue: "max",
|
|
98
|
+
maxLength: "max",
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
103
|
+
*
|
|
104
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
105
|
+
* object whose numeric indices look like audit names.
|
|
106
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
107
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
108
|
+
* `assertion.key` path to numeric constraint
|
|
109
|
+
*/
|
|
110
|
+
export function extractLighthouseAssertions(conf) {
|
|
111
|
+
const out = new Map();
|
|
112
|
+
const assertions =
|
|
113
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
114
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
115
|
+
: undefined;
|
|
116
|
+
if (
|
|
117
|
+
!assertions ||
|
|
118
|
+
typeof assertions !== "object" ||
|
|
119
|
+
Array.isArray(assertions)
|
|
120
|
+
) {
|
|
121
|
+
return out;
|
|
122
|
+
}
|
|
123
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
124
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
125
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
126
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
127
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
128
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
|
|
82
135
|
/**
|
|
83
136
|
* Find the family a repo-relative path belongs to.
|
|
84
137
|
* @param {string} relPath Repo-relative path (forward slashes)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import {
|
|
13
13
|
extractAllowEntries,
|
|
14
14
|
extractK6Constraints,
|
|
15
|
+
extractLighthouseAssertions,
|
|
15
16
|
extractNumericLeaves,
|
|
16
17
|
extractRubocopThresholds,
|
|
17
18
|
extractStrykerConstraints,
|
|
@@ -299,6 +300,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
299
300
|
return compareStryker(relPath, base, current);
|
|
300
301
|
case "k6":
|
|
301
302
|
return compareK6(relPath, base, current);
|
|
303
|
+
case "lighthouse":
|
|
304
|
+
return compareConstraints(
|
|
305
|
+
relPath,
|
|
306
|
+
extractLighthouseAssertions(base),
|
|
307
|
+
extractLighthouseAssertions(current)
|
|
308
|
+
);
|
|
302
309
|
case KIND_ALLOW_LIST:
|
|
303
310
|
return compareAllowList(relPath, base, current);
|
|
304
311
|
default:
|
|
@@ -80,8 +80,61 @@ export const FAMILIES = [
|
|
|
80
80
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
81
81
|
kind: "allow-list",
|
|
82
82
|
},
|
|
83
|
+
{
|
|
84
|
+
id: "lighthouse",
|
|
85
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
86
|
+
kind: "lighthouse",
|
|
87
|
+
},
|
|
83
88
|
];
|
|
84
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
92
|
+
*
|
|
93
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
94
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
95
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
96
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
97
|
+
*/
|
|
98
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
99
|
+
minScore: "min",
|
|
100
|
+
maxNumericValue: "max",
|
|
101
|
+
maxLength: "max",
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
106
|
+
*
|
|
107
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
108
|
+
* object whose numeric indices look like audit names.
|
|
109
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
110
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
111
|
+
* `assertion.key` path to numeric constraint
|
|
112
|
+
*/
|
|
113
|
+
export function extractLighthouseAssertions(conf) {
|
|
114
|
+
const out = new Map();
|
|
115
|
+
const assertions =
|
|
116
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
117
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
118
|
+
: undefined;
|
|
119
|
+
if (
|
|
120
|
+
!assertions ||
|
|
121
|
+
typeof assertions !== "object" ||
|
|
122
|
+
Array.isArray(assertions)
|
|
123
|
+
) {
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
127
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
128
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
129
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
130
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
131
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
|
|
85
138
|
/**
|
|
86
139
|
* Find the family a repo-relative path belongs to.
|
|
87
140
|
* @param {string} relPath Repo-relative path (forward slashes)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
import {
|
|
13
13
|
extractAllowEntries,
|
|
14
14
|
extractK6Constraints,
|
|
15
|
+
extractLighthouseAssertions,
|
|
15
16
|
extractNumericLeaves,
|
|
16
17
|
extractRubocopThresholds,
|
|
17
18
|
extractStrykerConstraints,
|
|
@@ -299,6 +300,12 @@ export function compareFile(relPath, baselineText, currentText) {
|
|
|
299
300
|
return compareStryker(relPath, base, current);
|
|
300
301
|
case "k6":
|
|
301
302
|
return compareK6(relPath, base, current);
|
|
303
|
+
case "lighthouse":
|
|
304
|
+
return compareConstraints(
|
|
305
|
+
relPath,
|
|
306
|
+
extractLighthouseAssertions(base),
|
|
307
|
+
extractLighthouseAssertions(current)
|
|
308
|
+
);
|
|
302
309
|
case KIND_ALLOW_LIST:
|
|
303
310
|
return compareAllowList(relPath, base, current);
|
|
304
311
|
default:
|
|
@@ -80,8 +80,61 @@ export const FAMILIES = [
|
|
|
80
80
|
match: /(^|\/)\.lisa\.config\.json$/,
|
|
81
81
|
kind: "allow-list",
|
|
82
82
|
},
|
|
83
|
+
{
|
|
84
|
+
id: "lighthouse",
|
|
85
|
+
match: /(^|\/)lighthouserc-config\.json$/,
|
|
86
|
+
kind: "lighthouse",
|
|
87
|
+
},
|
|
83
88
|
];
|
|
84
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Which way each Lighthouse assertion key ratchets.
|
|
92
|
+
*
|
|
93
|
+
* Lighthouse mixes floors and ceilings in one file, so assigning one direction
|
|
94
|
+
* to the whole family would silently approve half of the possible weakenings.
|
|
95
|
+
* Unknown keys stay unwatched until their direction is explicit here.
|
|
96
|
+
* @type {Readonly<Record<string, "min"|"max">>}
|
|
97
|
+
*/
|
|
98
|
+
export const LIGHTHOUSE_ASSERTION_DIRECTIONS = {
|
|
99
|
+
minScore: "min",
|
|
100
|
+
maxNumericValue: "max",
|
|
101
|
+
maxLength: "max",
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Extract numeric Lighthouse assertions with a direction chosen per key.
|
|
106
|
+
*
|
|
107
|
+
* A malformed array is deliberately ignored instead of being walked as an
|
|
108
|
+
* object whose numeric indices look like audit names.
|
|
109
|
+
* @param {unknown} conf Parsed lighthouserc-config.json
|
|
110
|
+
* @returns {Map<string, { value: number, direction: "min"|"max" }>} Dotted
|
|
111
|
+
* `assertion.key` path to numeric constraint
|
|
112
|
+
*/
|
|
113
|
+
export function extractLighthouseAssertions(conf) {
|
|
114
|
+
const out = new Map();
|
|
115
|
+
const assertions =
|
|
116
|
+
conf && typeof conf === "object" && !Array.isArray(conf)
|
|
117
|
+
? /** @type {Record<string, unknown>} */ (conf).assertions
|
|
118
|
+
: undefined;
|
|
119
|
+
if (
|
|
120
|
+
!assertions ||
|
|
121
|
+
typeof assertions !== "object" ||
|
|
122
|
+
Array.isArray(assertions)
|
|
123
|
+
) {
|
|
124
|
+
return out;
|
|
125
|
+
}
|
|
126
|
+
for (const [audit, spec] of Object.entries(assertions)) {
|
|
127
|
+
if (!spec || typeof spec !== "object" || Array.isArray(spec)) continue;
|
|
128
|
+
for (const [key, value] of Object.entries(spec)) {
|
|
129
|
+
const direction = LIGHTHOUSE_ASSERTION_DIRECTIONS[key];
|
|
130
|
+
if (direction && typeof value === "number" && Number.isFinite(value)) {
|
|
131
|
+
out.set(`${audit}.${key}`, { value, direction });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return out;
|
|
136
|
+
}
|
|
137
|
+
|
|
85
138
|
/**
|
|
86
139
|
* Find the family a repo-relative path belongs to.
|
|
87
140
|
* @param {string} relPath Repo-relative path (forward slashes)
|