@codyswann/lisa 3.31.4 → 3.32.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.
Files changed (58) hide show
  1. package/dist/core/downstream-references.d.ts +52 -0
  2. package/dist/core/downstream-references.d.ts.map +1 -0
  3. package/dist/core/downstream-references.js +227 -0
  4. package/dist/core/downstream-references.js.map +1 -0
  5. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  6. package/dist/core/upstream-evidence-manifest.js +3 -0
  7. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  8. package/package.json +1 -1
  9. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  10. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  11. package/plugins/lisa-agy/plugin.json +1 -1
  12. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  13. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  14. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  15. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  17. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  20. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  21. package/plugins/lisa-expo-agy/plugin.json +1 -1
  22. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  25. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  26. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  27. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  28. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  29. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  30. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  31. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  32. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  33. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  34. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  35. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  36. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  37. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  38. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  39. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  41. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  42. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  43. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  44. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  45. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  46. package/plugins/lisa-rails-agy/plugin.json +1 -1
  47. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  48. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  49. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  50. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  51. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  52. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  53. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  54. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  55. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  56. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  57. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  58. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Detect references to downstream host projects in this repository's own files.
3
+ *
4
+ * Projects may mention Lisa; Lisa may not mention projects. This repository is
5
+ * public and `dist/` is in the npm `files` allowlist, so a comment in `src/` is
6
+ * published twice — on github.com and to every consumer that installs.
7
+ *
8
+ * **Shape detection, not a name list.** A guard that enumerated the client
9
+ * names would publish the very list it exists to protect, in the same public
10
+ * repository. So this allowlists the orgs that are legitimately public and
11
+ * flags everything else, which also means a NEW downstream project is caught
12
+ * without anyone remembering to add it.
13
+ * @module core/downstream-references
14
+ */
15
+ /**
16
+ * GitHub orgs this repository may legitimately name.
17
+ *
18
+ * Lisa's own org, the platforms it integrates with, and the vendors whose
19
+ * actions and packages it pins. Anything outside this set is treated as a host
20
+ * project until someone deliberately says otherwise.
21
+ */
22
+ export declare const PUBLIC_ORGS: readonly string[];
23
+ /**
24
+ * Owners that are obviously stand-ins rather than real accounts.
25
+ *
26
+ * Documentation needs a worked example, and refusing one would push authors
27
+ * toward using a real name instead — the opposite of the intent.
28
+ */
29
+ export declare const PLACEHOLDER_OWNERS: readonly string[];
30
+ /**
31
+ * AWS account ids that are documentation placeholders rather than real ones.
32
+ *
33
+ * AWS's own docs use `123456789012`; the repeated-digit forms are unmistakably
34
+ * synthetic. Any other 12-digit account id in an ARN is treated as real.
35
+ */
36
+ export declare const PLACEHOLDER_ACCOUNTS: readonly string[];
37
+ /** One detected reference, with enough context to act on it. */
38
+ export interface DownstreamReference {
39
+ /** 1-indexed line number. */
40
+ readonly line: number;
41
+ /** What was matched. */
42
+ readonly match: string;
43
+ /** Why it is a violation. */
44
+ readonly reason: string;
45
+ }
46
+ /**
47
+ * Find downstream-project references in one file's contents.
48
+ * @param contents - The file's text.
49
+ * @returns Every violation found, in line order.
50
+ */
51
+ export declare function findDownstreamReferences(contents: string): readonly DownstreamReference[];
52
+ //# sourceMappingURL=downstream-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downstream-references.d.ts","sourceRoot":"","sources":["../../src/core/downstream-references.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAqExC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAqB/C,CAAC;AA2BF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EASjD,CAAC;AAEF,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAoED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,GACf,SAAS,mBAAmB,EAAE,CAOhC"}
@@ -0,0 +1,227 @@
1
+ /**
2
+ * Detect references to downstream host projects in this repository's own files.
3
+ *
4
+ * Projects may mention Lisa; Lisa may not mention projects. This repository is
5
+ * public and `dist/` is in the npm `files` allowlist, so a comment in `src/` is
6
+ * published twice — on github.com and to every consumer that installs.
7
+ *
8
+ * **Shape detection, not a name list.** A guard that enumerated the client
9
+ * names would publish the very list it exists to protect, in the same public
10
+ * repository. So this allowlists the orgs that are legitimately public and
11
+ * flags everything else, which also means a NEW downstream project is caught
12
+ * without anyone remembering to add it.
13
+ * @module core/downstream-references
14
+ */
15
+ /**
16
+ * GitHub orgs this repository may legitimately name.
17
+ *
18
+ * Lisa's own org, the platforms it integrates with, and the vendors whose
19
+ * actions and packages it pins. Anything outside this set is treated as a host
20
+ * project until someone deliberately says otherwise.
21
+ */
22
+ export const PUBLIC_ORGS = [
23
+ "codyswanngt",
24
+ "actions",
25
+ "github",
26
+ "anthropics",
27
+ "openai",
28
+ "oven-sh",
29
+ "microsoft",
30
+ "facebook",
31
+ "vercel",
32
+ "expo",
33
+ "mobile-dev-inc",
34
+ "coderabbitai",
35
+ "getsentry",
36
+ "snyk",
37
+ "sonarsource",
38
+ "gitguardian",
39
+ "aws",
40
+ "aws-actions",
41
+ "docker",
42
+ "denoland",
43
+ "nodejs",
44
+ "npm",
45
+ "pnpm",
46
+ "yarnpkg",
47
+ "eslint",
48
+ "prettier",
49
+ "vitest-dev",
50
+ "jestjs",
51
+ "typescript-eslint",
52
+ "biomejs",
53
+ "astral-sh",
54
+ "peter-evans",
55
+ "dependabot",
56
+ "renovatebot",
57
+ "fossas",
58
+ "zaproxy",
59
+ "softprops",
60
+ "reactivecircus",
61
+ "webfactory",
62
+ "slsa-framework",
63
+ "hashicorp",
64
+ "chinthakagodawita",
65
+ "browser-actions",
66
+ "googlechrome",
67
+ "geowerkstatt",
68
+ "ibm",
69
+ "lopopolo",
70
+ "canastro",
71
+ "numman-ali",
72
+ "ankitpokhrel",
73
+ "enquirer",
74
+ "oxc-project",
75
+ "pypa",
76
+ "bats-core",
77
+ "jprichardson",
78
+ "mbj",
79
+ "steveyegge",
80
+ "eyaltoledano",
81
+ "piebald-ai",
82
+ "gitleaks",
83
+ "ruby",
84
+ "grafana",
85
+ "cli",
86
+ "bitwarden",
87
+ "import-js",
88
+ "evanbacon",
89
+ "stretchr",
90
+ "noliran",
91
+ ];
92
+ /**
93
+ * Owners that are obviously stand-ins rather than real accounts.
94
+ *
95
+ * Documentation needs a worked example, and refusing one would push authors
96
+ * toward using a real name instead — the opposite of the intent.
97
+ */
98
+ export const PLACEHOLDER_OWNERS = [
99
+ "your_username",
100
+ "your-org",
101
+ "yourorg",
102
+ "owner",
103
+ "org",
104
+ "example",
105
+ "example-org",
106
+ "acme",
107
+ "acmeorga",
108
+ "acmeorgb",
109
+ "acmeorgc",
110
+ "acmeorgd",
111
+ "acme-secret-customer",
112
+ "someone",
113
+ "somebody",
114
+ "vendor",
115
+ "urlorg",
116
+ "host",
117
+ "myorg",
118
+ "o",
119
+ ];
120
+ /**
121
+ * URL path segments that precede the owner rather than being it.
122
+ *
123
+ * `api.github.com/repos/<owner>/<repo>` and `github.com/orgs/<org>` both put a
124
+ * fixed word where the owner would otherwise sit.
125
+ */
126
+ const NOT_AN_OWNER = [
127
+ "repos",
128
+ "orgs",
129
+ "users",
130
+ "packages",
131
+ "advisories",
132
+ "search",
133
+ "gists",
134
+ "apps",
135
+ "en",
136
+ "private",
137
+ "public",
138
+ "settings",
139
+ "notifications",
140
+ "sponsors",
141
+ "features",
142
+ "pricing",
143
+ ];
144
+ /**
145
+ * AWS account ids that are documentation placeholders rather than real ones.
146
+ *
147
+ * AWS's own docs use `123456789012`; the repeated-digit forms are unmistakably
148
+ * synthetic. Any other 12-digit account id in an ARN is treated as real.
149
+ */
150
+ export const PLACEHOLDER_ACCOUNTS = [
151
+ "123456789012",
152
+ "210987654321",
153
+ "345678901234",
154
+ "456789012345",
155
+ "111111111111",
156
+ "222222222222",
157
+ "333333333333",
158
+ "000000000000",
159
+ ];
160
+ // `owner/repo` as it appears in a URL or a workflow `uses:`. Deliberately not
161
+ // matching bare `a/b` anywhere in prose: that shape collides with file paths,
162
+ // date fractions and option syntax, and a guard with false positives gets
163
+ // disabled, which is worse than a guard with a known blind spot.
164
+ const OWNER_REPO = /(?:github\.com[/:]|uses:\s*)([A-Za-z0-9][\w.-]*)\/([\w.-]+)/gu;
165
+ /**
166
+ * Whether a captured owner is something other than a real account name.
167
+ *
168
+ * @param owner - The lowercased first path segment.
169
+ * @returns True when it must not be treated as an org.
170
+ */
171
+ function isNotAnOwner(owner) {
172
+ // A port (`git@github.com:22/...`) captures as digits.
173
+ if (/^\d+$/u.test(owner)) {
174
+ return true;
175
+ }
176
+ return NOT_AN_OWNER.includes(owner) || PLACEHOLDER_OWNERS.includes(owner);
177
+ }
178
+ const ARN_ACCOUNT = /arn:aws:[a-z0-9-]*:[a-z0-9-]*:(\d{12})/gu;
179
+ const SSO_ACCOUNT = /sso_account_id\s*=\s*(\d{12})/gu;
180
+ /**
181
+ * Owner/repo references on one line that name a non-public org.
182
+ * @param text - The line's text.
183
+ * @param line - 1-indexed line number.
184
+ * @returns Violations on this line.
185
+ */
186
+ function ownerViolations(text, line) {
187
+ return [...text.matchAll(OWNER_REPO)]
188
+ .filter(match => {
189
+ const org = (match[1] ?? "").toLowerCase();
190
+ return org !== "" && !PUBLIC_ORGS.includes(org) && !isNotAnOwner(org);
191
+ })
192
+ .map(match => ({
193
+ line,
194
+ match: `${match[1]}/${match[2]}`,
195
+ reason: `"${match[1]}" is not an allowlisted public org — Lisa must not name a downstream project`,
196
+ }));
197
+ }
198
+ /**
199
+ * Real-looking AWS account ids on one line.
200
+ * @param text - The line's text.
201
+ * @param line - 1-indexed line number.
202
+ * @returns Violations on this line.
203
+ */
204
+ function accountViolations(text, line) {
205
+ return [ARN_ACCOUNT, SSO_ACCOUNT]
206
+ .flatMap(pattern => [...text.matchAll(pattern)])
207
+ .filter(match => !PLACEHOLDER_ACCOUNTS.includes(match[1] ?? ""))
208
+ .map(match => ({
209
+ line,
210
+ match: match[1] ?? "",
211
+ reason: "a real-looking AWS account id — use a documentation placeholder",
212
+ }));
213
+ }
214
+ /**
215
+ * Find downstream-project references in one file's contents.
216
+ * @param contents - The file's text.
217
+ * @returns Every violation found, in line order.
218
+ */
219
+ export function findDownstreamReferences(contents) {
220
+ return contents
221
+ .split("\n")
222
+ .flatMap((text, index) => [
223
+ ...ownerViolations(text, index + 1),
224
+ ...accountViolations(text, index + 1),
225
+ ]);
226
+ }
227
+ //# sourceMappingURL=downstream-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downstream-references.js","sourceRoot":"","sources":["../../src/core/downstream-references.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA00EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAkrOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
1
+ {"version":3,"file":"upstream-evidence-manifest.d.ts","sourceRoot":"","sources":["../../src/core/upstream-evidence-manifest.ts"],"names":[],"mappings":"AACA,iFAAiF;AACjF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA00EpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAqrOjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
@@ -1192,6 +1192,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
1192
1192
  });
1193
1193
  /** Exact paths tracked by the public Lisa repository at generation time. */
1194
1194
  export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
1195
+ ".agents/rules/never-name-downstream-projects.md": true,
1195
1196
  ".agents/skills/claude-code-action/SKILL.md": true,
1196
1197
  ".agents/skills/claude-code-action/references/inputs.md": true,
1197
1198
  ".agents/skills/harness-parity-council/SKILL.md": true,
@@ -7186,6 +7187,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7186
7187
  "src/core/apply-receipt.ts": true,
7187
7188
  "src/core/bootstrap-environment.ts": true,
7188
7189
  "src/core/config.ts": true,
7190
+ "src/core/downstream-references.ts": true,
7189
7191
  "src/core/git-service.ts": true,
7190
7192
  "src/core/guard-capabilities.ts": true,
7191
7193
  "src/core/host-rules-pointer.ts": true,
@@ -7702,6 +7704,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
7702
7704
  "tests/unit/core/lisa-owned-templates.test.ts": true,
7703
7705
  "tests/unit/core/lisa-plugin-selection.test.ts": true,
7704
7706
  "tests/unit/core/lisa-skill-sources.test.ts": true,
7707
+ "tests/unit/core/no-downstream-project-names.test.ts": true,
7705
7708
  "tests/unit/core/plugin-sync-marker.test.ts": true,
7706
7709
  "tests/unit/core/project-config-harness-migration.test.ts": true,
7707
7710
  "tests/unit/core/project-config-kane.test.ts": true,