@codyswann/lisa 2.296.0 → 2.297.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/cli/doctor-sonar.d.ts +15 -0
- package/dist/cli/doctor-sonar.d.ts.map +1 -0
- package/dist/cli/doctor-sonar.js +28 -0
- package/dist/cli/doctor-sonar.js.map +1 -0
- package/dist/cli/doctor.d.ts +2 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +4 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/core/learnings-contract.d.ts +23 -1
- package/dist/core/learnings-contract.d.ts.map +1 -1
- package/dist/core/learnings-contract.js +26 -2
- package/dist/core/learnings-contract.js.map +1 -1
- package/dist/core/lisa.d.ts +13 -0
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +44 -0
- package/dist/core/lisa.js.map +1 -1
- package/dist/core/project-config-kane.d.ts +9 -0
- package/dist/core/project-config-kane.d.ts.map +1 -1
- package/dist/core/project-config-kane.js +35 -3
- package/dist/core/project-config-kane.js.map +1 -1
- package/dist/core/sonar-integration.d.ts +30 -0
- package/dist/core/sonar-integration.d.ts.map +1 -0
- package/dist/core/sonar-integration.js +55 -0
- package/dist/core/sonar-integration.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +26 -5
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/sonar/sonar-installer.d.ts +19 -0
- package/dist/sonar/sonar-installer.d.ts.map +1 -0
- package/dist/sonar/sonar-installer.js +69 -0
- package/dist/sonar/sonar-installer.js.map +1 -0
- 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-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/lisa/.codex-plugin/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-sonar/agents/openai.yaml +4 -0
- package/plugins/lisa/.codex-plugin/skills/lisa-sonarcloud-access/SKILL.md +51 -46
- package/plugins/lisa/commands/setup/sonar.md +7 -0
- package/plugins/lisa/rules/reference/integration-access-layer.md +10 -2
- package/plugins/lisa/skills/lisa-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/lisa/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/lisa/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/lisa/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/lisa/skills/lisa-setup-sonar/agents/openai.yaml +4 -0
- package/plugins/lisa/skills/lisa-sonarcloud-access/SKILL.md +52 -47
- package/plugins/lisa/skills/lisa-sonarcloud-access/agents/openai.yaml +2 -2
- package/plugins/lisa-agy/commands/lisa/setup/sonar.md +7 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/lisa-agy/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/lisa-agy/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/lisa-agy/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/lisa-agy/skills/lisa-sonarcloud-access/SKILL.md +52 -47
- 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/commands/lisa/setup/sonar.md +7 -0
- package/plugins/lisa-copilot/rules/reference/integration-access-layer.md +10 -2
- package/plugins/lisa-copilot/skills/lisa-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/lisa-copilot/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/lisa-copilot/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/lisa-copilot/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/lisa-copilot/skills/lisa-sonarcloud-access/SKILL.md +52 -47
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/commands/lisa/setup/sonar.md +7 -0
- package/plugins/lisa-cursor/rules/integration-access-layer-reference.mdc +10 -2
- package/plugins/lisa-cursor/skills/lisa-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/lisa-cursor/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/lisa-cursor/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/lisa-cursor/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/lisa-cursor/skills/lisa-sonarcloud-access/SKILL.md +52 -47
- 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/commands/setup/sonar.md +7 -0
- package/plugins/src/base/rules/reference/integration-access-layer.md +10 -2
- package/plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md +6 -6
- package/plugins/src/base/skills/lisa-generate-claude-remote-build-script/SKILL.md +14 -6
- package/plugins/src/base/skills/lisa-persist-learning/SKILL.md +14 -0
- package/plugins/src/base/skills/lisa-setup-sonar/SKILL.md +108 -0
- package/plugins/src/base/skills/lisa-sonarcloud-access/SKILL.md +52 -47
|
@@ -126,6 +126,35 @@ function validateKaneConfig(value, source) {
|
|
|
126
126
|
...(timeoutSeconds === undefined ? {} : { timeoutSeconds }),
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Validate the optional SonarQube MCP provider config (single Sonar substrate).
|
|
131
|
+
* @param value - Untrusted sonar value
|
|
132
|
+
* @param source - Config source shown in errors
|
|
133
|
+
* @returns Valid sonar config or undefined
|
|
134
|
+
*/
|
|
135
|
+
function validateSonarConfig(value, source) {
|
|
136
|
+
if (value === undefined)
|
|
137
|
+
return undefined;
|
|
138
|
+
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
139
|
+
throw new Error(`Invalid verification.sonar in ${source}: expected an object`);
|
|
140
|
+
}
|
|
141
|
+
const input = value;
|
|
142
|
+
const enabled = optionalBoolean(input.enabled, source, "verification.sonar.enabled");
|
|
143
|
+
const edition = optionalString(input.edition, source, "verification.sonar.edition");
|
|
144
|
+
if (edition !== undefined && edition !== "cloud" && edition !== "server") {
|
|
145
|
+
throw new Error(`Invalid verification.sonar.edition in ${source}: expected "cloud" or "server"`);
|
|
146
|
+
}
|
|
147
|
+
const organization = optionalString(input.organization, source, "verification.sonar.organization");
|
|
148
|
+
const projectKey = optionalString(input.projectKey, source, "verification.sonar.projectKey");
|
|
149
|
+
const serverUrl = optionalString(input.serverUrl, source, "verification.sonar.serverUrl");
|
|
150
|
+
return {
|
|
151
|
+
...(enabled === undefined ? {} : { enabled }),
|
|
152
|
+
...(edition === undefined ? {} : { edition }),
|
|
153
|
+
...(organization === undefined ? {} : { organization }),
|
|
154
|
+
...(projectKey === undefined ? {} : { projectKey }),
|
|
155
|
+
...(serverUrl === undefined ? {} : { serverUrl }),
|
|
156
|
+
};
|
|
157
|
+
}
|
|
129
158
|
/**
|
|
130
159
|
* Validate the optional verification tree.
|
|
131
160
|
* @param value - Untrusted verification value
|
|
@@ -138,15 +167,18 @@ export function validateVerificationConfig(value, source) {
|
|
|
138
167
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
139
168
|
throw new Error(`Invalid verification in ${source}: expected an object`);
|
|
140
169
|
}
|
|
141
|
-
const
|
|
170
|
+
const record = value;
|
|
171
|
+
const sonar = validateSonarConfig(record.sonar, source);
|
|
172
|
+
const sonarPart = sonar === undefined ? {} : { sonar };
|
|
173
|
+
const browser = record.browser;
|
|
142
174
|
if (browser === undefined)
|
|
143
|
-
return
|
|
175
|
+
return sonarPart;
|
|
144
176
|
if (browser === null ||
|
|
145
177
|
typeof browser !== "object" ||
|
|
146
178
|
Array.isArray(browser)) {
|
|
147
179
|
throw new Error(`Invalid verification.browser in ${source}: expected an object`);
|
|
148
180
|
}
|
|
149
181
|
const kane = validateKaneConfig(browser.kane, source);
|
|
150
|
-
return { browser: kane === undefined ? {} : { kane } };
|
|
182
|
+
return { browser: kane === undefined ? {} : { kane }, ...sonarPart };
|
|
151
183
|
}
|
|
152
184
|
//# sourceMappingURL=project-config-kane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config-kane.js","sourceRoot":"","sources":["../../src/core/project-config-kane.ts"],"names":[],"mappings":"AAAA,yEAAyE;
|
|
1
|
+
{"version":3,"file":"project-config-kane.js","sourceRoot":"","sources":["../../src/core/project-config-kane.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/** Outcome of a single read-only `sonar` CLI probe. */
|
|
2
|
+
export interface SonarProbeResult {
|
|
3
|
+
/** True when the command exited zero. */
|
|
4
|
+
readonly ok: boolean;
|
|
5
|
+
}
|
|
6
|
+
/** Injectable fixed-argv `sonar` CLI runner. */
|
|
7
|
+
export type SonarCommandRunner = (args: readonly string[]) => Promise<SonarProbeResult>;
|
|
8
|
+
/** Readiness status for the optional Sonar provider. */
|
|
9
|
+
export interface SonarReadiness {
|
|
10
|
+
readonly status: "ready" | "warn" | "fail" | "disabled";
|
|
11
|
+
readonly detail: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Run a fixed-argv read-only `sonar` command without a shell.
|
|
15
|
+
* @param args - Fixed argument vector
|
|
16
|
+
* @returns Whether the command exited zero
|
|
17
|
+
*/
|
|
18
|
+
export declare const runSonarCommand: SonarCommandRunner;
|
|
19
|
+
/**
|
|
20
|
+
* Probe readiness of the official SonarQube MCP provider.
|
|
21
|
+
*
|
|
22
|
+
* Disabled (no `verification.sonar.enabled`) is healthy — the provider is
|
|
23
|
+
* optional. When enabled, prove the `sonar` CLI is installed and authenticated
|
|
24
|
+
* (`sonar auth status`, which honors either a login session or `SONARQUBE_TOKEN`).
|
|
25
|
+
* @param projectRoot - Downstream project root
|
|
26
|
+
* @param runner - Injectable process runner
|
|
27
|
+
* @returns Readiness status for doctor and setup
|
|
28
|
+
*/
|
|
29
|
+
export declare function probeSonarReadiness(projectRoot: string, runner?: SonarCommandRunner): Promise<SonarReadiness>;
|
|
30
|
+
//# sourceMappingURL=sonar-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonar-integration.d.ts","sourceRoot":"","sources":["../../src/core/sonar-integration.ts"],"names":[],"mappings":"AAOA,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;CACtB;AAED,gDAAgD;AAChD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,SAAS,MAAM,EAAE,KACpB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B,wDAAwD;AACxD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,kBAO7B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,kBAAoC,GAC3C,OAAO,CAAC,cAAc,CAAC,CA2BzB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/** Lisa readiness probe for the official SonarQube MCP provider. */
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { promisify } from "node:util";
|
|
4
|
+
import { readProjectConfig } from "./project-config.js";
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
/**
|
|
7
|
+
* Run a fixed-argv read-only `sonar` command without a shell.
|
|
8
|
+
* @param args - Fixed argument vector
|
|
9
|
+
* @returns Whether the command exited zero
|
|
10
|
+
*/
|
|
11
|
+
export const runSonarCommand = async (args) => {
|
|
12
|
+
try {
|
|
13
|
+
await execFileAsync("sonar", [...args], { timeout: 15_000 });
|
|
14
|
+
return { ok: true };
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return { ok: false };
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Probe readiness of the official SonarQube MCP provider.
|
|
22
|
+
*
|
|
23
|
+
* Disabled (no `verification.sonar.enabled`) is healthy — the provider is
|
|
24
|
+
* optional. When enabled, prove the `sonar` CLI is installed and authenticated
|
|
25
|
+
* (`sonar auth status`, which honors either a login session or `SONARQUBE_TOKEN`).
|
|
26
|
+
* @param projectRoot - Downstream project root
|
|
27
|
+
* @param runner - Injectable process runner
|
|
28
|
+
* @returns Readiness status for doctor and setup
|
|
29
|
+
*/
|
|
30
|
+
export async function probeSonarReadiness(projectRoot, runner = runSonarCommand) {
|
|
31
|
+
const config = (await readProjectConfig(projectRoot)).verification?.sonar;
|
|
32
|
+
if (config?.enabled !== true) {
|
|
33
|
+
return {
|
|
34
|
+
status: "disabled",
|
|
35
|
+
detail: "SonarQube MCP provider is not enabled",
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const version = await runner(["--version"]);
|
|
39
|
+
if (!version.ok) {
|
|
40
|
+
return {
|
|
41
|
+
status: "fail",
|
|
42
|
+
detail: "SonarQube CLI unavailable; run /lisa:setup:sonar to install and wire it",
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
const auth = await runner(["auth", "status"]);
|
|
46
|
+
if (!auth.ok) {
|
|
47
|
+
return {
|
|
48
|
+
status: "fail",
|
|
49
|
+
detail: "SonarQube CLI not authenticated; run `sonar auth login` or set SONARQUBE_TOKEN (+ SONARQUBE_ORG for Cloud / SONARQUBE_URL for Server)",
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const target = config.projectKey ?? config.organization ?? "the configured project";
|
|
53
|
+
return { status: "ready", detail: `SonarQube MCP ready for ${target}` };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=sonar-integration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonar-integration.js","sourceRoot":"","sources":["../../src/core/sonar-integration.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAmB1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAuB,KAAK,EAAC,IAAI,EAAC,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAmB,EACnB,SAA6B,eAAe;IAE5C,MAAM,MAAM,GAAG,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC;IAC1E,IAAI,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,uCAAuC;SAChD,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EACJ,yEAAyE;SAC5E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,MAAM;YACd,MAAM,EACJ,uIAAuI;SAC1I,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GACV,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,YAAY,IAAI,wBAAwB,CAAC;IACvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,2BAA2B,MAAM,EAAE,EAAE,CAAC;AAC1E,CAAC"}
|
|
@@ -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,
|
|
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,CAgiEpE,CAAC;AAEL,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAywMjE,CAAC;AAEL,sFAAsF;AACtF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAk6I/D,CAAC"}
|
|
@@ -273,6 +273,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
273
273
|
"plugins/src/base/commands/setup/jira.md": "6eb95e989b25fe2ed72ec7d361a66b1c7eece6b9950ac0e841d00f6fd8f16d8a",
|
|
274
274
|
"plugins/src/base/commands/setup/linear.md": "5c25e3140d40140b5b6024de64a0bb808c48d966d88537baa0a37444cc043dbb",
|
|
275
275
|
"plugins/src/base/commands/setup/notion.md": "2d705679db0dbb6c77728592a020430a529af9d0ef24ac7c434969d590d9f5a6",
|
|
276
|
+
"plugins/src/base/commands/setup/sonar.md": "d79ffe15f5fc340a5c5ffcaff4c9a7893391b4129df592a45d2b0c7e508e8c44",
|
|
276
277
|
"plugins/src/base/commands/sync-down.md": "4e974cb9745a4fd680f4a55f859d31fa8cf3cb28afa739b40a2e1a99de31e034",
|
|
277
278
|
"plugins/src/base/commands/tear-down-automations.md": "969f28850326f0ceab5c09763266c60265951db30e88c738d2425ff82f088aac",
|
|
278
279
|
"plugins/src/base/commands/track.md": "ae655031c3698f9bf449c4b9d8654cfab2586ca82164a710ae3f66be37c831fb",
|
|
@@ -349,7 +350,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
349
350
|
"plugins/src/base/rules/reference/empirical-inquiry.md": "85f4552aa4c561677de40fd01bc6cccf5dbcf13865647db9df819d11f3cc3389",
|
|
350
351
|
"plugins/src/base/rules/reference/factory-model.md": "b28a2ea4df7c33390111667a2807d9003cf8c9a14829f6fb0dbc929b05bfed3a",
|
|
351
352
|
"plugins/src/base/rules/reference/history-audit.md": "20a46390f71fadda499c61193d430c3d53df49b55a4cefa50a112f82fa4b05ef",
|
|
352
|
-
"plugins/src/base/rules/reference/integration-access-layer.md": "
|
|
353
|
+
"plugins/src/base/rules/reference/integration-access-layer.md": "be38ab7dd57eeda554f1d984c719516badef496b8a228a74144ff4d63bdfcd71",
|
|
353
354
|
"plugins/src/base/rules/reference/intent-routing.md": "8d2750f30b82ff9a84c5273954b0055e37bc305e3e83e4aef50f5ce47942df45",
|
|
354
355
|
"plugins/src/base/rules/reference/leaf-only-lifecycle.md": "3d6d531fdca61a348fa1dd1bdb4c28fe66c85fb955238ef668a78cce4a36a7a1",
|
|
355
356
|
"plugins/src/base/rules/reference/observability-audit.md": "98cf4c849baf0801bd2c46a90e7a072196649d506fbda577cc5c4019d2194551",
|
|
@@ -387,7 +388,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
387
388
|
"plugins/src/base/skills/lisa-acceptance-criteria/SKILL.md": "b4289ec04de657f0eeefaed56939fa171c2f8a11086bd225db39130f4a609e95",
|
|
388
389
|
"plugins/src/base/skills/lisa-agent-design-best-practices/SKILL.md": "5c7414198d5c747d2cda554c85784164afb2f6fe04fd28fb4d7674857dfd4801",
|
|
389
390
|
"plugins/src/base/skills/lisa-agent-ready/SKILL.md": "13f2e0f50287a04ed9a036ef1c547563b5f6f6325b2b35f6746d46a5ed4d15df",
|
|
390
|
-
"plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md": "
|
|
391
|
+
"plugins/src/base/skills/lisa-analyze-claude-remote/SKILL.md": "661ddf014a60ff4bf16b2ef6582cb5eb94d14fddcdeeeb69ca1f1fabe269e347",
|
|
391
392
|
"plugins/src/base/skills/lisa-atlassian-access/SKILL.md": "f58707d8689764ac68c79dbe5b6c548e2933cc656c5f4df03ae71c863f61b022",
|
|
392
393
|
"plugins/src/base/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs": "538e5a3d91482b9e2a055e133b7c1fcf809be51d4ae72a10776aaeeb8df4832a",
|
|
393
394
|
"plugins/src/base/skills/lisa-attribute-failure/SKILL.md": "5d737b9fda916f02aaf13b208316cd54995d83aa06d27ba5daa19b6ebed6b4d9",
|
|
@@ -406,7 +407,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
406
407
|
"plugins/src/base/skills/lisa-epic-triage/SKILL.md": "d02760411249bddbd396f283191fe3e82bb7b95bf9393a19a7025dc5a57c3ab7",
|
|
407
408
|
"plugins/src/base/skills/lisa-exploratory-qa/SKILL.md": "bc34dfc6418bff6eb5bc03f0c5cd98c7b6164ca3f4f80774d981f681321119b0",
|
|
408
409
|
"plugins/src/base/skills/lisa-fix-linter-error/SKILL.md": "3a8f01f014ac7f7ac37024c67df1ba07202331542d269d27da3356a7fa0a5599",
|
|
409
|
-
"plugins/src/base/skills/lisa-generate-claude-remote-build-script/SKILL.md": "
|
|
410
|
+
"plugins/src/base/skills/lisa-generate-claude-remote-build-script/SKILL.md": "632ed5f64c4014d9f2d1baebdb63f7a2e0e75e285f5eab1187805c8afe7ffe07",
|
|
410
411
|
"plugins/src/base/skills/lisa-git-commit/SKILL.md": "56320566e9278fb43b4d51c00854f3714dc61edc960292d51962a6f49116ac0f",
|
|
411
412
|
"plugins/src/base/skills/lisa-git-prune/SKILL.md": "11fad06d109538f1a8ee4ef8043bb0e083672e3c9a7cb7ae8a7233c5411d6dd2",
|
|
412
413
|
"plugins/src/base/skills/lisa-git-submit-pr/SKILL.md": "e70da3ced1a233ff094f70284c5e2ff9ff238b8c59b3eee722414dfe8a668406",
|
|
@@ -485,7 +486,7 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
485
486
|
"plugins/src/base/skills/lisa-parity-sentry-seer/SKILL.md": "f44216fa7c8f0c3c3371c65ff73bbeadd1717579502a5603f16b3b33291cab7a",
|
|
486
487
|
"plugins/src/base/skills/lisa-parity-skill-creator/SKILL.md": "616e0493f75fe92c18137548d7c86a91a9b04d9844ca76fa3f14156e3e7814e5",
|
|
487
488
|
"plugins/src/base/skills/lisa-performance-review/SKILL.md": "351542c256e54940e6d672a70606b8414425c6435ae6f026841bcc02f9fce9c4",
|
|
488
|
-
"plugins/src/base/skills/lisa-persist-learning/SKILL.md": "
|
|
489
|
+
"plugins/src/base/skills/lisa-persist-learning/SKILL.md": "d682b944ae099cdad8c91762b6665b8ef613b58bb8b041335841c116c94dd891",
|
|
489
490
|
"plugins/src/base/skills/lisa-plan/SKILL.md": "9c372e106afd53ff988046119cf36b0f6519c4426775dd8ad3c9d9baeee5d3e2",
|
|
490
491
|
"plugins/src/base/skills/lisa-plugin-sync-explain/SKILL.md": "b41619f3d0d342af2438afd54cb97db7d2445e54e3fc7bb012292079acbc6a4f",
|
|
491
492
|
"plugins/src/base/skills/lisa-posthog-access/SKILL.md": "977aef803160b04312c0408136882ac106d8357caf5063a523e72f265bf20cb1",
|
|
@@ -527,7 +528,8 @@ export const UPSTREAM_EVIDENCE_MANIFEST = Object.freeze({
|
|
|
527
528
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": "ec76f832a6df6f58b163f7f5ba6826ed2fcbddc91e44a8372e874858e4d0c518",
|
|
528
529
|
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": "f5a1e9290789fd1c33675168d30461fb24a11c98a433ef777c1f536bc2f905ef",
|
|
529
530
|
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": "7a134f6ce7857152076c2a85e0777d88f1f22b0ecfe607dd2fc6f8a286547910",
|
|
530
|
-
"plugins/src/base/skills/lisa-
|
|
531
|
+
"plugins/src/base/skills/lisa-setup-sonar/SKILL.md": "a00ec455df6aeb6e5b436acc0265fcfa4659a546dec2e8ae2b1c8eca488bf9d7",
|
|
532
|
+
"plugins/src/base/skills/lisa-sonarcloud-access/SKILL.md": "e0124aab451021f39dc3b4edfa74f5f9e32ef01d020b317531827a544150fb16",
|
|
531
533
|
"plugins/src/base/skills/lisa-spec-conformance/SKILL.md": "3bcaf6d3b47917d00732542e30a8a302c3e293a9957faf79cac5b1d75cc538a2",
|
|
532
534
|
"plugins/src/base/skills/lisa-sync-down/SKILL.md": "c32e6a4e3115ca32b7d335e90d0a73b243c6c631a2d192568423be0cb5944e84",
|
|
533
535
|
"plugins/src/base/skills/lisa-task-decomposition/SKILL.md": "d4c8bd6b36d827e609178e5192270a21bb392aa825a902f61e33a9fe73cda10c",
|
|
@@ -1937,6 +1939,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
1937
1939
|
"plugins/lisa-agy/commands/lisa/setup/jira.md": true,
|
|
1938
1940
|
"plugins/lisa-agy/commands/lisa/setup/linear.md": true,
|
|
1939
1941
|
"plugins/lisa-agy/commands/lisa/setup/notion.md": true,
|
|
1942
|
+
"plugins/lisa-agy/commands/lisa/setup/sonar.md": true,
|
|
1940
1943
|
"plugins/lisa-agy/commands/lisa/sync-down.md": true,
|
|
1941
1944
|
"plugins/lisa-agy/commands/lisa/tear-down-automations.md": true,
|
|
1942
1945
|
"plugins/lisa-agy/commands/lisa/track.md": true,
|
|
@@ -2112,6 +2115,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
2112
2115
|
"plugins/lisa-agy/skills/lisa-setup-linear/SKILL.md": true,
|
|
2113
2116
|
"plugins/lisa-agy/skills/lisa-setup-notion/SKILL.md": true,
|
|
2114
2117
|
"plugins/lisa-agy/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
2118
|
+
"plugins/lisa-agy/skills/lisa-setup-sonar/SKILL.md": true,
|
|
2115
2119
|
"plugins/lisa-agy/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
2116
2120
|
"plugins/lisa-agy/skills/lisa-spec-conformance/SKILL.md": true,
|
|
2117
2121
|
"plugins/lisa-agy/skills/lisa-sync-down/SKILL.md": true,
|
|
@@ -2244,6 +2248,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
2244
2248
|
"plugins/lisa-copilot/commands/lisa/setup/jira.md": true,
|
|
2245
2249
|
"plugins/lisa-copilot/commands/lisa/setup/linear.md": true,
|
|
2246
2250
|
"plugins/lisa-copilot/commands/lisa/setup/notion.md": true,
|
|
2251
|
+
"plugins/lisa-copilot/commands/lisa/setup/sonar.md": true,
|
|
2247
2252
|
"plugins/lisa-copilot/commands/lisa/sync-down.md": true,
|
|
2248
2253
|
"plugins/lisa-copilot/commands/lisa/tear-down-automations.md": true,
|
|
2249
2254
|
"plugins/lisa-copilot/commands/lisa/track.md": true,
|
|
@@ -2489,6 +2494,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
2489
2494
|
"plugins/lisa-copilot/skills/lisa-setup-linear/SKILL.md": true,
|
|
2490
2495
|
"plugins/lisa-copilot/skills/lisa-setup-notion/SKILL.md": true,
|
|
2491
2496
|
"plugins/lisa-copilot/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
2497
|
+
"plugins/lisa-copilot/skills/lisa-setup-sonar/SKILL.md": true,
|
|
2492
2498
|
"plugins/lisa-copilot/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
2493
2499
|
"plugins/lisa-copilot/skills/lisa-spec-conformance/SKILL.md": true,
|
|
2494
2500
|
"plugins/lisa-copilot/skills/lisa-sync-down/SKILL.md": true,
|
|
@@ -2606,6 +2612,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
2606
2612
|
"plugins/lisa-cursor/commands/lisa/setup/jira.md": true,
|
|
2607
2613
|
"plugins/lisa-cursor/commands/lisa/setup/linear.md": true,
|
|
2608
2614
|
"plugins/lisa-cursor/commands/lisa/setup/notion.md": true,
|
|
2615
|
+
"plugins/lisa-cursor/commands/lisa/setup/sonar.md": true,
|
|
2609
2616
|
"plugins/lisa-cursor/commands/lisa/sync-down.md": true,
|
|
2610
2617
|
"plugins/lisa-cursor/commands/lisa/tear-down-automations.md": true,
|
|
2611
2618
|
"plugins/lisa-cursor/commands/lisa/track.md": true,
|
|
@@ -2852,6 +2859,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
2852
2859
|
"plugins/lisa-cursor/skills/lisa-setup-linear/SKILL.md": true,
|
|
2853
2860
|
"plugins/lisa-cursor/skills/lisa-setup-notion/SKILL.md": true,
|
|
2854
2861
|
"plugins/lisa-cursor/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
2862
|
+
"plugins/lisa-cursor/skills/lisa-setup-sonar/SKILL.md": true,
|
|
2855
2863
|
"plugins/lisa-cursor/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
2856
2864
|
"plugins/lisa-cursor/skills/lisa-spec-conformance/SKILL.md": true,
|
|
2857
2865
|
"plugins/lisa-cursor/skills/lisa-sync-down/SKILL.md": true,
|
|
@@ -4856,6 +4864,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
4856
4864
|
"plugins/lisa/.codex-plugin/skills/lisa-setup-notion/agents/openai.yaml": true,
|
|
4857
4865
|
"plugins/lisa/.codex-plugin/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
4858
4866
|
"plugins/lisa/.codex-plugin/skills/lisa-setup-remote-aws/agents/openai.yaml": true,
|
|
4867
|
+
"plugins/lisa/.codex-plugin/skills/lisa-setup-sonar/SKILL.md": true,
|
|
4868
|
+
"plugins/lisa/.codex-plugin/skills/lisa-setup-sonar/agents/openai.yaml": true,
|
|
4859
4869
|
"plugins/lisa/.codex-plugin/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
4860
4870
|
"plugins/lisa/.codex-plugin/skills/lisa-sonarcloud-access/agents/openai.yaml": true,
|
|
4861
4871
|
"plugins/lisa/.codex-plugin/skills/lisa-spec-conformance/SKILL.md": true,
|
|
@@ -5003,6 +5013,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
5003
5013
|
"plugins/lisa/commands/setup/jira.md": true,
|
|
5004
5014
|
"plugins/lisa/commands/setup/linear.md": true,
|
|
5005
5015
|
"plugins/lisa/commands/setup/notion.md": true,
|
|
5016
|
+
"plugins/lisa/commands/setup/sonar.md": true,
|
|
5006
5017
|
"plugins/lisa/commands/sync-down.md": true,
|
|
5007
5018
|
"plugins/lisa/commands/tear-down-automations.md": true,
|
|
5008
5019
|
"plugins/lisa/commands/track.md": true,
|
|
@@ -5388,6 +5399,8 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
5388
5399
|
"plugins/lisa/skills/lisa-setup-notion/agents/openai.yaml": true,
|
|
5389
5400
|
"plugins/lisa/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
5390
5401
|
"plugins/lisa/skills/lisa-setup-remote-aws/agents/openai.yaml": true,
|
|
5402
|
+
"plugins/lisa/skills/lisa-setup-sonar/SKILL.md": true,
|
|
5403
|
+
"plugins/lisa/skills/lisa-setup-sonar/agents/openai.yaml": true,
|
|
5391
5404
|
"plugins/lisa/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
5392
5405
|
"plugins/lisa/skills/lisa-sonarcloud-access/agents/openai.yaml": true,
|
|
5393
5406
|
"plugins/lisa/skills/lisa-spec-conformance/SKILL.md": true,
|
|
@@ -5535,6 +5548,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
5535
5548
|
"plugins/src/base/commands/setup/jira.md": true,
|
|
5536
5549
|
"plugins/src/base/commands/setup/linear.md": true,
|
|
5537
5550
|
"plugins/src/base/commands/setup/notion.md": true,
|
|
5551
|
+
"plugins/src/base/commands/setup/sonar.md": true,
|
|
5538
5552
|
"plugins/src/base/commands/sync-down.md": true,
|
|
5539
5553
|
"plugins/src/base/commands/tear-down-automations.md": true,
|
|
5540
5554
|
"plugins/src/base/commands/track.md": true,
|
|
@@ -5789,6 +5803,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
5789
5803
|
"plugins/src/base/skills/lisa-setup-linear/SKILL.md": true,
|
|
5790
5804
|
"plugins/src/base/skills/lisa-setup-notion/SKILL.md": true,
|
|
5791
5805
|
"plugins/src/base/skills/lisa-setup-remote-aws/SKILL.md": true,
|
|
5806
|
+
"plugins/src/base/skills/lisa-setup-sonar/SKILL.md": true,
|
|
5792
5807
|
"plugins/src/base/skills/lisa-sonarcloud-access/SKILL.md": true,
|
|
5793
5808
|
"plugins/src/base/skills/lisa-spec-conformance/SKILL.md": true,
|
|
5794
5809
|
"plugins/src/base/skills/lisa-sync-down/SKILL.md": true,
|
|
@@ -6330,6 +6345,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6330
6345
|
"src/cli/doctor-readiness-workflows.ts": true,
|
|
6331
6346
|
"src/cli/doctor-readiness-workspaces.ts": true,
|
|
6332
6347
|
"src/cli/doctor-readiness.ts": true,
|
|
6348
|
+
"src/cli/doctor-sonar.ts": true,
|
|
6333
6349
|
"src/cli/doctor-worker-epoch.ts": true,
|
|
6334
6350
|
"src/cli/doctor-worker-journey.ts": true,
|
|
6335
6351
|
"src/cli/doctor.ts": true,
|
|
@@ -6460,6 +6476,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6460
6476
|
"src/core/project-config-kane.ts": true,
|
|
6461
6477
|
"src/core/project-config.ts": true,
|
|
6462
6478
|
"src/core/self-apply.ts": true,
|
|
6479
|
+
"src/core/sonar-integration.ts": true,
|
|
6463
6480
|
"src/core/template-ownership.ts": true,
|
|
6464
6481
|
"src/core/upstream-attribution-body.ts": true,
|
|
6465
6482
|
"src/detection/detector.interface.ts": true,
|
|
@@ -6525,6 +6542,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6525
6542
|
"src/opencode/settings-installer.ts": true,
|
|
6526
6543
|
"src/opencode/skills-installer.ts": true,
|
|
6527
6544
|
"src/opencode/support-file-resolver.ts": true,
|
|
6545
|
+
"src/sonar/sonar-installer.ts": true,
|
|
6528
6546
|
"src/standards/capture.ts": true,
|
|
6529
6547
|
"src/standards/contract.ts": true,
|
|
6530
6548
|
"src/standards/git-state.ts": true,
|
|
@@ -6696,6 +6714,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6696
6714
|
"tests/unit/cli/doctor-readiness-supply-chain.test.ts": true,
|
|
6697
6715
|
"tests/unit/cli/doctor-readiness-workflows.test.ts": true,
|
|
6698
6716
|
"tests/unit/cli/doctor-readiness.test.ts": true,
|
|
6717
|
+
"tests/unit/cli/doctor-sonar.test.ts": true,
|
|
6699
6718
|
"tests/unit/cli/doctor-worker-epoch.test.ts": true,
|
|
6700
6719
|
"tests/unit/cli/doctor-worker-journey.test.ts": true,
|
|
6701
6720
|
"tests/unit/cli/doctor.test.ts": true,
|
|
@@ -6821,6 +6840,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6821
6840
|
"tests/unit/core/role-agent-template-contract.test.ts": true,
|
|
6822
6841
|
"tests/unit/core/self-apply.test.ts": true,
|
|
6823
6842
|
"tests/unit/core/skill-frontmatter-contract.test.ts": true,
|
|
6843
|
+
"tests/unit/core/sonar-integration.test.ts": true,
|
|
6824
6844
|
"tests/unit/core/upstream-attribution-body-hardening.test.ts": true,
|
|
6825
6845
|
"tests/unit/core/upstream-attribution-body.test.ts": true,
|
|
6826
6846
|
"tests/unit/core/upstream-attribution-file-safety.test.ts": true,
|
|
@@ -6918,6 +6938,7 @@ export const UPSTREAM_SURFACE_MANIFEST = Object.freeze({
|
|
|
6918
6938
|
"tests/unit/scripts/threshold-ratchet.test.ts": true,
|
|
6919
6939
|
"tests/unit/scripts/upstream-evidence-manifest.test.ts": true,
|
|
6920
6940
|
"tests/unit/scripts/verification-coverage.test.ts": true,
|
|
6941
|
+
"tests/unit/sonar/sonar-installer.test.ts": true,
|
|
6921
6942
|
"tests/unit/standards/capture.test.ts": true,
|
|
6922
6943
|
"tests/unit/standards/contract.test.ts": true,
|
|
6923
6944
|
"tests/unit/standards/git-state.test.ts": true,
|