@codyswann/lisa 2.146.1 → 2.147.1
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/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-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 +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-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/schema/lisa-wiki-config.schema.json +46 -2
- package/plugins/lisa-wiki/scripts/lint-wiki.mjs +137 -0
- package/plugins/lisa-wiki/scripts/validate-config.mjs +89 -0
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/schema/lisa-wiki-config.schema.json +46 -2
- package/plugins/lisa-wiki-agy/scripts/lint-wiki.mjs +137 -0
- package/plugins/lisa-wiki-agy/scripts/validate-config.mjs +89 -0
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/schema/lisa-wiki-config.schema.json +46 -2
- package/plugins/lisa-wiki-copilot/scripts/lint-wiki.mjs +137 -0
- package/plugins/lisa-wiki-copilot/scripts/validate-config.mjs +89 -0
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/schema/lisa-wiki-config.schema.json +46 -2
- package/plugins/lisa-wiki-cursor/scripts/lint-wiki.mjs +137 -0
- package/plugins/lisa-wiki-cursor/scripts/validate-config.mjs +89 -0
- package/plugins/src/wiki/schema/lisa-wiki-config.schema.json +46 -2
- package/plugins/src/wiki/scripts/lint-wiki.mjs +137 -0
- package/plugins/src/wiki/scripts/validate-config.mjs +89 -0
|
@@ -22,6 +22,17 @@ const RETENTION = [
|
|
|
22
22
|
"external-pointer-only",
|
|
23
23
|
];
|
|
24
24
|
const SENSITIVITY = ["public", "internal", "confidential", "restricted"];
|
|
25
|
+
const REDACTION_ENTITIES = [
|
|
26
|
+
"api_key",
|
|
27
|
+
"bank_account",
|
|
28
|
+
"credit_card",
|
|
29
|
+
"oauth_token",
|
|
30
|
+
"password",
|
|
31
|
+
"private_key",
|
|
32
|
+
"routing_number",
|
|
33
|
+
"ssn",
|
|
34
|
+
];
|
|
35
|
+
const REDACTION_SCANNERS = ["builtin", "gitleaks", "presidio"];
|
|
25
36
|
const SOURCE_LAYOUT = ["by-system", "by-category"];
|
|
26
37
|
const README_MODE = ["rich", "stub", "preserve"];
|
|
27
38
|
|
|
@@ -49,6 +60,14 @@ function checkType(value, type, label) {
|
|
|
49
60
|
);
|
|
50
61
|
}
|
|
51
62
|
}
|
|
63
|
+
function checkKnownKeys(object, allowed, label) {
|
|
64
|
+
if (!isObject(object)) return;
|
|
65
|
+
for (const key of Object.keys(object)) {
|
|
66
|
+
if (!allowed.includes(key)) {
|
|
67
|
+
err(`${label}.${key}: unknown field`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
52
71
|
|
|
53
72
|
if (!fs.existsSync(configPath)) {
|
|
54
73
|
console.error(`✗ config not found: ${configPath}`);
|
|
@@ -123,8 +142,78 @@ if (config.readme !== undefined) {
|
|
|
123
142
|
if (config.sensitivity !== undefined) {
|
|
124
143
|
if (!isObject(config.sensitivity)) err("sensitivity: must be an object");
|
|
125
144
|
else {
|
|
145
|
+
checkKnownKeys(
|
|
146
|
+
config.sensitivity,
|
|
147
|
+
["enabled", "default", "redaction"],
|
|
148
|
+
"sensitivity"
|
|
149
|
+
);
|
|
126
150
|
checkType(config.sensitivity.enabled, "boolean", "sensitivity.enabled");
|
|
127
151
|
checkEnum(config.sensitivity.default, SENSITIVITY, "sensitivity.default");
|
|
152
|
+
if (config.sensitivity.redaction !== undefined) {
|
|
153
|
+
if (!isObject(config.sensitivity.redaction)) {
|
|
154
|
+
err("sensitivity.redaction: must be an object");
|
|
155
|
+
} else {
|
|
156
|
+
const redaction = config.sensitivity.redaction;
|
|
157
|
+
checkKnownKeys(
|
|
158
|
+
redaction,
|
|
159
|
+
[
|
|
160
|
+
"enabled",
|
|
161
|
+
"scanners",
|
|
162
|
+
"failClosed",
|
|
163
|
+
"requireReview",
|
|
164
|
+
"allowedEntities",
|
|
165
|
+
"blockedEntities",
|
|
166
|
+
],
|
|
167
|
+
"sensitivity.redaction"
|
|
168
|
+
);
|
|
169
|
+
checkType(
|
|
170
|
+
redaction.enabled,
|
|
171
|
+
"boolean",
|
|
172
|
+
"sensitivity.redaction.enabled"
|
|
173
|
+
);
|
|
174
|
+
checkType(
|
|
175
|
+
redaction.failClosed,
|
|
176
|
+
"boolean",
|
|
177
|
+
"sensitivity.redaction.failClosed"
|
|
178
|
+
);
|
|
179
|
+
checkType(
|
|
180
|
+
redaction.requireReview,
|
|
181
|
+
"boolean",
|
|
182
|
+
"sensitivity.redaction.requireReview"
|
|
183
|
+
);
|
|
184
|
+
if (
|
|
185
|
+
redaction.scanners !== undefined &&
|
|
186
|
+
!(isStringArray(redaction.scanners) && redaction.scanners.length > 0)
|
|
187
|
+
) {
|
|
188
|
+
err(
|
|
189
|
+
"sensitivity.redaction.scanners: must be a non-empty array of strings"
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
const scanners = isStringArray(redaction.scanners)
|
|
193
|
+
? redaction.scanners
|
|
194
|
+
: [];
|
|
195
|
+
for (const scanner of scanners) {
|
|
196
|
+
checkEnum(
|
|
197
|
+
scanner,
|
|
198
|
+
REDACTION_SCANNERS,
|
|
199
|
+
"sensitivity.redaction.scanners[]"
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
for (const key of ["allowedEntities", "blockedEntities"]) {
|
|
203
|
+
if (redaction[key] !== undefined && !isStringArray(redaction[key])) {
|
|
204
|
+
err(`sensitivity.redaction.${key}: must be an array of strings`);
|
|
205
|
+
}
|
|
206
|
+
const entities = isStringArray(redaction[key]) ? redaction[key] : [];
|
|
207
|
+
for (const entity of entities) {
|
|
208
|
+
checkEnum(
|
|
209
|
+
entity,
|
|
210
|
+
REDACTION_ENTITIES,
|
|
211
|
+
`sensitivity.redaction.${key}[]`
|
|
212
|
+
);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
128
217
|
}
|
|
129
218
|
}
|
|
130
219
|
if (config.documentation !== undefined) {
|