@codyswann/lisa 3.31.3 → 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.
- package/dist/core/downstream-references.d.ts +52 -0
- package/dist/core/downstream-references.d.ts.map +1 -0
- package/dist/core/downstream-references.js +227 -0
- package/dist/core/downstream-references.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +12 -9
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-notion/SKILL.md +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/skills/lisa-setup-notion/SKILL.md +1 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-setup-notion/SKILL.md +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-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/skills/lisa-setup-notion/SKILL.md +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,
|
|
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"}
|
|
@@ -656,7 +656,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
656
656
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": "8813f9374f0d485c1ca1d2b2549e990dee1b232e82487c85caec972c47cceb64",
|
|
657
657
|
"plugins/src/base/skills/lisa-setup-local-env/SKILL.md": "4d4b8c92e3616256f5f689fbe433f09c31d39c623508bc4ec0d8c1770caddf22",
|
|
658
658
|
"plugins/src/base/skills/lisa-setup-local-env/scripts/local-env.mjs": "6f3713451139d9d4fd8eed8f11f49e472667394c4f9a7cae63897b7702115687",
|
|
659
|
-
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "
|
|
659
|
+
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "92bd16d530e2d25a294ce1cbe86c5a02931d23fb4709283044651a1dbff27127",
|
|
660
660
|
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "80fbf157f9c562c033886c25a99b37356602edd9e61cd2d492f339769ddcf97e",
|
|
661
661
|
"plugins/src/base/skills/lisa-setup-remote-env/SKILL.md": "7aa1f616440cb262e47881e8b37b701ebd11ad1ea619412aa04c33324770904c",
|
|
662
662
|
"plugins/src/base/skills/lisa-setup-remote-env/assets/session-start.sh": "cb63d08b14ab7aa2d405e6770e0cf7db5d6588ae1dcb924ea6224b026fcff496",
|
|
@@ -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,
|
|
@@ -1673,14 +1674,14 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
1673
1674
|
"plans/completed/ai-coding-harness-paper/tasks/6.json": true,
|
|
1674
1675
|
"plans/completed/ai-coding-harness-paper/tasks/7.json": true,
|
|
1675
1676
|
"plans/completed/ai-coding-harness-paper/tasks/8.json": true,
|
|
1676
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1677
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1678
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1679
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1680
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1681
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1682
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1683
|
-
"plans/completed/apply-tsconfig-fix-
|
|
1677
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/apply-tsconfig-fix-acme-product-b.md": true,
|
|
1678
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/.highwatermark": true,
|
|
1679
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/.lock": true,
|
|
1680
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/22.json": true,
|
|
1681
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/23.json": true,
|
|
1682
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/24.json": true,
|
|
1683
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/25.json": true,
|
|
1684
|
+
"plans/completed/apply-tsconfig-fix-acme-product-b/tasks/2de6519d-e459-4fcf-9823-072de5b021ca/26.json": true,
|
|
1684
1685
|
"plans/completed/binary-riding-parasol.md": true,
|
|
1685
1686
|
"plans/completed/calm-squishing-toucan/fix-plan-skill-e2e-bugs.md": true,
|
|
1686
1687
|
"plans/completed/claude-driven-readme/claude-driven-readme.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,
|