@skastr0/pulsar-shared-signals 0.1.0 → 0.1.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/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -1
- package/dist/machine-feedback-facts.d.ts +27 -0
- package/dist/machine-feedback-facts.d.ts.map +1 -0
- package/dist/machine-feedback-facts.js +241 -0
- package/dist/machine-feedback-facts.js.map +1 -0
- package/dist/pack.d.ts.map +1 -1
- package/dist/pack.js +13 -1
- package/dist/pack.js.map +1 -1
- package/dist/shared-05-suppression.d.ts.map +1 -1
- package/dist/shared-05-suppression.js +10 -2
- package/dist/shared-05-suppression.js.map +1 -1
- package/dist/shared-06-pr-dep-delta.d.ts.map +1 -1
- package/dist/shared-06-pr-dep-delta.js +10 -2
- package/dist/shared-06-pr-dep-delta.js.map +1 -1
- package/dist/shared-07-machine-feedback-coverage.d.ts +18 -0
- package/dist/shared-07-machine-feedback-coverage.d.ts.map +1 -0
- package/dist/shared-07-machine-feedback-coverage.js +78 -0
- package/dist/shared-07-machine-feedback-coverage.js.map +1 -0
- package/dist/shared-09-contract-freshness.d.ts +28 -0
- package/dist/shared-09-contract-freshness.d.ts.map +1 -0
- package/dist/shared-09-contract-freshness.js +171 -0
- package/dist/shared-09-contract-freshness.js.map +1 -0
- package/dist/shared-10-domain-construction-control.d.ts +30 -0
- package/dist/shared-10-domain-construction-control.d.ts.map +1 -0
- package/dist/shared-10-domain-construction-control.js +174 -0
- package/dist/shared-10-domain-construction-control.js.map +1 -0
- package/dist/shared-11-theory-encoding-index.d.ts +121 -0
- package/dist/shared-11-theory-encoding-index.d.ts.map +1 -0
- package/dist/shared-11-theory-encoding-index.js +685 -0
- package/dist/shared-11-theory-encoding-index.js.map +1 -0
- package/dist/shared-cov-01-coverage-facts.d.ts +16 -0
- package/dist/shared-cov-01-coverage-facts.d.ts.map +1 -0
- package/dist/shared-cov-01-coverage-facts.js +80 -0
- package/dist/shared-cov-01-coverage-facts.js.map +1 -0
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @skastr0/pulsar-shared-signals — language-agnostic shared pack.
|
|
3
3
|
*/
|
|
4
|
-
export declare const SHARED_SIGNALS_VERSION: "0.1.
|
|
4
|
+
export declare const SHARED_SIGNALS_VERSION: "0.1.1";
|
|
5
5
|
export { compareRootFirstPackageNames, ROOT_PACKAGE_NAME, sortRootFirstPackages, type NamedPackage, } from "./package-order.js";
|
|
6
|
-
export { Shared02BusFactor, Shared02BusFactorConfig, Shared03ChurnRate, Shared03ChurnRateConfig, SharedChurn01, SharedChurn01Config, } from "@skastr0/pulsar-core/shared-signals";
|
|
7
|
-
export type { BusFactorInfo, Shared02BusFactorOutput, Shared03FileRate, Shared03ChurnRateOutput, SharedChurn01Output, } from "@skastr0/pulsar-core/shared-signals";
|
|
6
|
+
export { Shared02BusFactor, Shared02BusFactorConfig, Shared03ChurnRate, Shared03ChurnRateConfig, SharedChurn01, SharedChurn01Config, SharedChurn02, SharedChurn02Config, SharedCochange01, SharedCochange01Config, } from "@skastr0/pulsar-core/shared-signals";
|
|
7
|
+
export type { BusFactorInfo, CoChangePair, Shared02BusFactorOutput, Shared03FileRate, Shared03ChurnRateOutput, SharedChurn01Output, SharedChurn02Output, SharedCochange01Output, WeightedChurnFile, } from "@skastr0/pulsar-core/shared-signals";
|
|
8
8
|
export { SHARED_SIGNALS } from "./pack.js";
|
|
9
|
+
export { MACHINE_FEEDBACK_CLASSES, collectMachineFeedbackFacts, type FactSourceState, type MachineFeedbackClass, type MachineFeedbackClassFact, type MachineFeedbackEvidence, type MachineFeedbackFacts, } from "./machine-feedback-facts.js";
|
|
9
10
|
export { Shared05Suppression, Shared05SuppressionConfig, type Shared05SuppressionOutput, } from "./shared-05-suppression.js";
|
|
10
11
|
export { Shared06PrDepDelta, Shared06PrDepDeltaConfig, type Shared06PrDepDeltaOutput, } from "./shared-06-pr-dep-delta.js";
|
|
12
|
+
export { Shared07MachineFeedbackCoverage, Shared07MachineFeedbackCoverageConfig, type Shared07MachineFeedbackCoverageOutput, } from "./shared-07-machine-feedback-coverage.js";
|
|
13
|
+
export { Shared09ContractFreshness, Shared09ContractFreshnessConfig, type Shared09ContractFreshnessOutput, } from "./shared-09-contract-freshness.js";
|
|
14
|
+
export { Shared10DomainConstructionControl, Shared10DomainConstructionControlConfig, type Shared10DomainConstructionControlOutput, } from "./shared-10-domain-construction-control.js";
|
|
15
|
+
export { Shared11TheoryEncodingIndex, Shared11TheoryEncodingIndexConfig, type Shared11TheoryEncodingIndexOutput, type TheoryEncodingFactor, type TheoryEncodingGap, type TheoryEncodingIndexState, type TheoryEncodingInputFactState, type TheoryEncodingInputFactStates, } from "./shared-11-theory-encoding-index.js";
|
|
16
|
+
export { SharedCov01CoverageFacts, SharedCov01CoverageFactsConfig, type SharedCov01CoverageFactsOutput, } from "./shared-cov-01-coverage-facts.js";
|
|
11
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAA;AAEtD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,sBAAsB,EAAG,OAAgB,CAAA;AAEtD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,qCAAqC,CAAA;AAC5C,YAAY,EACV,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,GAC1B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,KAAK,qCAAqC,GAC3C,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,EAC/B,KAAK,+BAA+B,GACrC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,iCAAiC,EACjC,uCAAuC,EACvC,KAAK,uCAAuC,GAC7C,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,KAAK,iCAAiC,EACtC,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,GACnC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,8BAA8B,GACpC,MAAM,mCAAmC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @skastr0/pulsar-shared-signals — language-agnostic shared pack.
|
|
3
3
|
*/
|
|
4
|
-
export const SHARED_SIGNALS_VERSION = "0.1.
|
|
4
|
+
export const SHARED_SIGNALS_VERSION = "0.1.1";
|
|
5
5
|
export { compareRootFirstPackageNames, ROOT_PACKAGE_NAME, sortRootFirstPackages, } from "./package-order.js";
|
|
6
|
-
export { Shared02BusFactor, Shared02BusFactorConfig, Shared03ChurnRate, Shared03ChurnRateConfig, SharedChurn01, SharedChurn01Config, } from "@skastr0/pulsar-core/shared-signals";
|
|
6
|
+
export { Shared02BusFactor, Shared02BusFactorConfig, Shared03ChurnRate, Shared03ChurnRateConfig, SharedChurn01, SharedChurn01Config, SharedChurn02, SharedChurn02Config, SharedCochange01, SharedCochange01Config, } from "@skastr0/pulsar-core/shared-signals";
|
|
7
7
|
export { SHARED_SIGNALS } from "./pack.js";
|
|
8
|
+
export { MACHINE_FEEDBACK_CLASSES, collectMachineFeedbackFacts, } from "./machine-feedback-facts.js";
|
|
8
9
|
export { Shared05Suppression, Shared05SuppressionConfig, } from "./shared-05-suppression.js";
|
|
9
10
|
export { Shared06PrDepDelta, Shared06PrDepDeltaConfig, } from "./shared-06-pr-dep-delta.js";
|
|
11
|
+
export { Shared07MachineFeedbackCoverage, Shared07MachineFeedbackCoverageConfig, } from "./shared-07-machine-feedback-coverage.js";
|
|
12
|
+
export { Shared09ContractFreshness, Shared09ContractFreshnessConfig, } from "./shared-09-contract-freshness.js";
|
|
13
|
+
export { Shared10DomainConstructionControl, Shared10DomainConstructionControlConfig, } from "./shared-10-domain-construction-control.js";
|
|
14
|
+
export { Shared11TheoryEncodingIndex, Shared11TheoryEncodingIndexConfig, } from "./shared-11-theory-encoding-index.js";
|
|
15
|
+
export { SharedCov01CoverageFacts, SharedCov01CoverageFactsConfig, } from "./shared-cov-01-coverage-facts.js";
|
|
10
16
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAgB,CAAA;AAEtD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG,OAAgB,CAAA;AAEtD,OAAO,EACL,4BAA4B,EAC5B,iBAAiB,EACjB,qBAAqB,GAEtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,qCAAqC,CAAA;AAY5C,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EACL,wBAAwB,EACxB,2BAA2B,GAM5B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,mBAAmB,EACnB,yBAAyB,GAE1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GAEzB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,GAEtC,MAAM,0CAA0C,CAAA;AACjD,OAAO,EACL,yBAAyB,EACzB,+BAA+B,GAEhC,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,iCAAiC,EACjC,uCAAuC,GAExC,MAAM,4CAA4C,CAAA;AACnD,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,GAOlC,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,mCAAmC,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare const MACHINE_FEEDBACK_CLASSES: readonly ["build", "typecheck", "test", "static_analysis", "coverage"];
|
|
2
|
+
export type MachineFeedbackClass = typeof MACHINE_FEEDBACK_CLASSES[number];
|
|
3
|
+
export type FactSourceState = "present" | "zero" | "absent" | "unknown" | "not_configured" | "not_applicable";
|
|
4
|
+
export interface MachineFeedbackEvidence {
|
|
5
|
+
readonly kind: "package-script" | "github-workflow" | "parse-error";
|
|
6
|
+
readonly path: string;
|
|
7
|
+
readonly command?: string;
|
|
8
|
+
readonly detail?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface MachineFeedbackClassFact {
|
|
11
|
+
readonly class: MachineFeedbackClass;
|
|
12
|
+
readonly state: FactSourceState;
|
|
13
|
+
readonly localCommands: ReadonlyArray<string>;
|
|
14
|
+
readonly ciReachable: boolean;
|
|
15
|
+
readonly evidence: ReadonlyArray<MachineFeedbackEvidence>;
|
|
16
|
+
}
|
|
17
|
+
export interface MachineFeedbackFacts {
|
|
18
|
+
readonly state: FactSourceState;
|
|
19
|
+
readonly classes: ReadonlyArray<MachineFeedbackClassFact>;
|
|
20
|
+
readonly configuredClassCount: number;
|
|
21
|
+
readonly ciReachableClassCount: number;
|
|
22
|
+
readonly missingClassCount: number;
|
|
23
|
+
readonly unknownClassCount: number;
|
|
24
|
+
readonly sourceFingerprint: string;
|
|
25
|
+
}
|
|
26
|
+
export declare const collectMachineFeedbackFacts: (repoRoot: string, requiredClasses: ReadonlyArray<MachineFeedbackClass>) => Promise<MachineFeedbackFacts>;
|
|
27
|
+
//# sourceMappingURL=machine-feedback-facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-feedback-facts.d.ts","sourceRoot":"","sources":["../src/machine-feedback-facts.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,wEAM3B,CAAA;AACV,MAAM,MAAM,oBAAoB,GAAG,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAA;AAE1E,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,gBAAgB,GAChB,gBAAgB,CAAA;AAEpB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,CAAA;IACnE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAA;IACpC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAA;CAC1D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,wBAAwB,CAAC,CAAA;IACzD,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;CACnC;AAOD,eAAO,MAAM,2BAA2B,GACtC,UAAU,MAAM,EAChB,iBAAiB,aAAa,CAAC,oBAAoB,CAAC,KACnD,OAAO,CAAC,oBAAoB,CA+E9B,CAAA"}
|
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { readdir, readFile } from "node:fs/promises";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
export const MACHINE_FEEDBACK_CLASSES = [
|
|
6
|
+
"build",
|
|
7
|
+
"typecheck",
|
|
8
|
+
"test",
|
|
9
|
+
"static_analysis",
|
|
10
|
+
"coverage",
|
|
11
|
+
];
|
|
12
|
+
export const collectMachineFeedbackFacts = async (repoRoot, requiredClasses) => {
|
|
13
|
+
const packageScripts = await readRootPackageScripts(repoRoot);
|
|
14
|
+
const workflowRuns = await readGithubWorkflowRuns(repoRoot);
|
|
15
|
+
const classFacts = new Map();
|
|
16
|
+
for (const feedbackClass of MACHINE_FEEDBACK_CLASSES) {
|
|
17
|
+
classFacts.set(feedbackClass, {
|
|
18
|
+
class: feedbackClass,
|
|
19
|
+
localCommands: [],
|
|
20
|
+
ciReachable: false,
|
|
21
|
+
evidence: [],
|
|
22
|
+
unknown: false,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
for (const parsed of [...packageScripts.errors, ...workflowRuns.errors]) {
|
|
26
|
+
for (const feedbackClass of MACHINE_FEEDBACK_CLASSES) {
|
|
27
|
+
classFacts.get(feedbackClass)?.evidence.push(parsed);
|
|
28
|
+
}
|
|
29
|
+
for (const requiredClass of requiredClasses) {
|
|
30
|
+
const fact = classFacts.get(requiredClass);
|
|
31
|
+
if (fact !== undefined)
|
|
32
|
+
fact.unknown = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (packageScripts.value !== undefined) {
|
|
36
|
+
const classesByScript = classifyScripts(packageScripts.value.scripts);
|
|
37
|
+
for (const [scriptName, classes] of classesByScript) {
|
|
38
|
+
for (const feedbackClass of classes) {
|
|
39
|
+
const fact = classFacts.get(feedbackClass);
|
|
40
|
+
fact.localCommands.push(scriptName);
|
|
41
|
+
fact.evidence.push({
|
|
42
|
+
kind: "package-script",
|
|
43
|
+
path: packageScripts.value.path,
|
|
44
|
+
command: `npm run ${scriptName}`,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
for (const workflow of workflowRuns.value) {
|
|
50
|
+
const classes = classifyCommand(workflow.command, packageScripts.value?.scripts);
|
|
51
|
+
for (const feedbackClass of classes) {
|
|
52
|
+
const fact = classFacts.get(feedbackClass);
|
|
53
|
+
fact.ciReachable = true;
|
|
54
|
+
fact.evidence.push({
|
|
55
|
+
kind: "github-workflow",
|
|
56
|
+
path: workflow.path,
|
|
57
|
+
command: workflow.command,
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const classes = MACHINE_FEEDBACK_CLASSES.map((feedbackClass) => finalizeClassFact(classFacts.get(feedbackClass)));
|
|
62
|
+
const configuredClassCount = classes.filter((fact) => fact.state === "present").length;
|
|
63
|
+
const ciReachableClassCount = classes.filter((fact) => fact.ciReachable).length;
|
|
64
|
+
const required = new Set(requiredClasses);
|
|
65
|
+
const missingClassCount = classes.filter((fact) => required.has(fact.class) && fact.state === "absent").length;
|
|
66
|
+
const unknownClassCount = classes.filter((fact) => required.has(fact.class) && fact.state === "unknown").length;
|
|
67
|
+
return {
|
|
68
|
+
state: unknownClassCount > 0
|
|
69
|
+
? "unknown"
|
|
70
|
+
: configuredClassCount > 0
|
|
71
|
+
? "present"
|
|
72
|
+
: "absent",
|
|
73
|
+
classes,
|
|
74
|
+
configuredClassCount,
|
|
75
|
+
ciReachableClassCount,
|
|
76
|
+
missingClassCount,
|
|
77
|
+
unknownClassCount,
|
|
78
|
+
sourceFingerprint: fingerprintMachineFeedback(packageScripts, workflowRuns),
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
const finalizeClassFact = (fact) => ({
|
|
82
|
+
class: fact.class,
|
|
83
|
+
state: fact.unknown
|
|
84
|
+
? "unknown"
|
|
85
|
+
: fact.localCommands.length > 0 || fact.ciReachable
|
|
86
|
+
? "present"
|
|
87
|
+
: "absent",
|
|
88
|
+
localCommands: [...new Set(fact.localCommands)].sort(),
|
|
89
|
+
ciReachable: fact.ciReachable,
|
|
90
|
+
evidence: fact.evidence,
|
|
91
|
+
});
|
|
92
|
+
const readRootPackageScripts = async (repoRoot) => {
|
|
93
|
+
const packageJsonPath = join(repoRoot, "package.json");
|
|
94
|
+
if (!existsSync(packageJsonPath))
|
|
95
|
+
return { errors: [] };
|
|
96
|
+
try {
|
|
97
|
+
const raw = await readFile(packageJsonPath, "utf8");
|
|
98
|
+
const parsed = JSON.parse(raw);
|
|
99
|
+
const scripts = new Map(Object.entries(parsed.scripts ?? {})
|
|
100
|
+
.filter((entry) => typeof entry[1] === "string"));
|
|
101
|
+
return { value: { path: packageJsonPath, scripts }, errors: [] };
|
|
102
|
+
}
|
|
103
|
+
catch (cause) {
|
|
104
|
+
return {
|
|
105
|
+
errors: [{
|
|
106
|
+
kind: "parse-error",
|
|
107
|
+
path: packageJsonPath,
|
|
108
|
+
detail: `Failed to parse package.json: ${String(cause)}`,
|
|
109
|
+
}],
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const readGithubWorkflowRuns = async (repoRoot) => {
|
|
114
|
+
const workflowDir = join(repoRoot, ".github", "workflows");
|
|
115
|
+
if (!existsSync(workflowDir))
|
|
116
|
+
return { value: [], errors: [] };
|
|
117
|
+
const entries = (await readdir(workflowDir, { withFileTypes: true }))
|
|
118
|
+
.sort((left, right) => left.name.localeCompare(right.name));
|
|
119
|
+
const runs = [];
|
|
120
|
+
const errors = [];
|
|
121
|
+
for (const entry of entries) {
|
|
122
|
+
if (!entry.isFile() || !/\.(ya?ml)$/u.test(entry.name))
|
|
123
|
+
continue;
|
|
124
|
+
const path = join(workflowDir, entry.name);
|
|
125
|
+
try {
|
|
126
|
+
const raw = await readFile(path, "utf8");
|
|
127
|
+
runs.push(...extractWorkflowRunCommands(path, raw));
|
|
128
|
+
}
|
|
129
|
+
catch (cause) {
|
|
130
|
+
errors.push({
|
|
131
|
+
kind: "parse-error",
|
|
132
|
+
path,
|
|
133
|
+
detail: `Failed to read workflow: ${String(cause)}`,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
value: runs.sort((left, right) => left.path.localeCompare(right.path) ||
|
|
139
|
+
left.command.localeCompare(right.command)),
|
|
140
|
+
errors: errors.sort((left, right) => left.path.localeCompare(right.path) ||
|
|
141
|
+
(left.detail ?? "").localeCompare(right.detail ?? "")),
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
const extractWorkflowRunCommands = (path, content) => {
|
|
145
|
+
const commands = [];
|
|
146
|
+
const lines = content.split(/\r?\n/u);
|
|
147
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
148
|
+
const line = lines[index] ?? "";
|
|
149
|
+
const match = line.match(/^\s*-?\s*run:\s*(.+)$/u);
|
|
150
|
+
if (match === null)
|
|
151
|
+
continue;
|
|
152
|
+
const rawCommand = match[1]?.trim() ?? "";
|
|
153
|
+
if (rawCommand === "|" || rawCommand === ">") {
|
|
154
|
+
const block = collectWorkflowRunBlock(lines, index, leadingWhitespace(line));
|
|
155
|
+
index = block.nextIndex - 1;
|
|
156
|
+
if (block.command.length > 0)
|
|
157
|
+
commands.push({ path, command: block.command });
|
|
158
|
+
continue;
|
|
159
|
+
}
|
|
160
|
+
if (rawCommand.length === 0)
|
|
161
|
+
continue;
|
|
162
|
+
commands.push({ path, command: rawCommand.replace(/^['"]|['"]$/g, "") });
|
|
163
|
+
}
|
|
164
|
+
return commands;
|
|
165
|
+
};
|
|
166
|
+
const collectWorkflowRunBlock = (lines, startIndex, runIndent) => {
|
|
167
|
+
const blockLines = [];
|
|
168
|
+
let index = startIndex + 1;
|
|
169
|
+
for (; index < lines.length; index += 1) {
|
|
170
|
+
const line = lines[index] ?? "";
|
|
171
|
+
if (line.trim().length === 0) {
|
|
172
|
+
blockLines.push("");
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (leadingWhitespace(line) <= runIndent)
|
|
176
|
+
break;
|
|
177
|
+
blockLines.push(line.trim());
|
|
178
|
+
}
|
|
179
|
+
return {
|
|
180
|
+
command: blockLines.join("\n").trim(),
|
|
181
|
+
nextIndex: index,
|
|
182
|
+
};
|
|
183
|
+
};
|
|
184
|
+
const leadingWhitespace = (line) => line.match(/^\s*/u)?.[0].length ?? 0;
|
|
185
|
+
const classifyScripts = (scripts) => {
|
|
186
|
+
const result = new Map();
|
|
187
|
+
for (const [name, command] of scripts) {
|
|
188
|
+
const classes = classifyCommand(`${name} ${command}`, scripts);
|
|
189
|
+
if (classes.size > 0)
|
|
190
|
+
result.set(name, classes);
|
|
191
|
+
}
|
|
192
|
+
return result;
|
|
193
|
+
};
|
|
194
|
+
const classifyCommand = (command, scripts, seen = new Set()) => {
|
|
195
|
+
const normalized = command.toLowerCase();
|
|
196
|
+
const classes = new Set();
|
|
197
|
+
if (/\b(build|turbo run build|tsc -b)\b/u.test(normalized))
|
|
198
|
+
classes.add("build");
|
|
199
|
+
if (/\b(typecheck|tsc --noemit|tsc -b)\b/u.test(normalized))
|
|
200
|
+
classes.add("typecheck");
|
|
201
|
+
if (/\b(test|bun test|vitest|jest|cargo test)\b/u.test(normalized))
|
|
202
|
+
classes.add("test");
|
|
203
|
+
if (/\b(lint|eslint|biome|static|dep:check|check)\b/u.test(normalized)) {
|
|
204
|
+
classes.add("static_analysis");
|
|
205
|
+
}
|
|
206
|
+
if (/\b(coverage|lcov|nyc|c8)\b/u.test(normalized))
|
|
207
|
+
classes.add("coverage");
|
|
208
|
+
for (const scriptName of referencedScripts(normalized)) {
|
|
209
|
+
if (scripts === undefined || seen.has(scriptName))
|
|
210
|
+
continue;
|
|
211
|
+
const script = scripts.get(scriptName);
|
|
212
|
+
if (script === undefined)
|
|
213
|
+
continue;
|
|
214
|
+
const nextSeen = new Set(seen);
|
|
215
|
+
nextSeen.add(scriptName);
|
|
216
|
+
for (const feedbackClass of classifyCommand(`${scriptName} ${script}`, scripts, nextSeen)) {
|
|
217
|
+
classes.add(feedbackClass);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return classes;
|
|
221
|
+
};
|
|
222
|
+
const referencedScripts = (command) => {
|
|
223
|
+
const scripts = [];
|
|
224
|
+
const regex = /\b(?:bun|npm|pnpm|yarn)\s+run\s+([a-z0-9:_-]+)/gu;
|
|
225
|
+
for (const match of command.matchAll(regex)) {
|
|
226
|
+
if (match[1] !== undefined)
|
|
227
|
+
scripts.push(match[1]);
|
|
228
|
+
}
|
|
229
|
+
return scripts;
|
|
230
|
+
};
|
|
231
|
+
const fingerprintMachineFeedback = (packageScripts, workflowRuns) => createHash("sha256")
|
|
232
|
+
.update(JSON.stringify({
|
|
233
|
+
packageScripts: packageScripts.value === undefined
|
|
234
|
+
? undefined
|
|
235
|
+
: [...packageScripts.value.scripts.entries()].sort(([left], [right]) => left.localeCompare(right)),
|
|
236
|
+
packageErrors: packageScripts.errors,
|
|
237
|
+
workflowRuns: workflowRuns.value,
|
|
238
|
+
workflowErrors: workflowRuns.errors,
|
|
239
|
+
}))
|
|
240
|
+
.digest("hex");
|
|
241
|
+
//# sourceMappingURL=machine-feedback-facts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"machine-feedback-facts.js","sourceRoot":"","sources":["../src/machine-feedback-facts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,OAAO;IACP,WAAW;IACX,MAAM;IACN,iBAAiB;IACjB,UAAU;CACF,CAAA;AAyCV,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC9C,QAAgB,EAChB,eAAoD,EACrB,EAAE;IACjC,MAAM,cAAc,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAC7D,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0C,CAAA;IAEpE,KAAK,MAAM,aAAa,IAAI,wBAAwB,EAAE,CAAC;QACrD,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE;YAC5B,KAAK,EAAE,aAAa;YACpB,aAAa,EAAE,EAAE;YACjB,WAAW,EAAE,KAAK;YAClB,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,KAAK;SACf,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,KAAK,MAAM,aAAa,IAAI,wBAAwB,EAAE,CAAC;YACrD,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACtD,CAAC;QACD,KAAK,MAAM,aAAa,IAAI,eAAe,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YAC1C,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACrE,KAAK,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,eAAe,EAAE,CAAC;YACpD,KAAK,MAAM,aAAa,IAAI,OAAO,EAAE,CAAC;gBACpC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAA;gBAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI;oBAC/B,OAAO,EAAE,WAAW,UAAU,EAAE;iBACjC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAChF,KAAK,MAAM,aAAa,IAAI,OAAO,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAA;YAC3C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;YACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;aAC1B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,wBAAwB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAC7D,iBAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC,CAClD,CAAA;IACD,MAAM,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAA;IACtF,MAAM,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAA;IAC/E,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAA;IACzC,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAC9D,CAAC,MAAM,CAAA;IACR,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAC/D,CAAC,MAAM,CAAA;IACR,OAAO;QACL,KAAK,EACH,iBAAiB,GAAG,CAAC;YACnB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,oBAAoB,GAAG,CAAC;gBACxB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ;QAChB,OAAO;QACP,oBAAoB;QACpB,qBAAqB;QACrB,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB,EAAE,0BAA0B,CAAC,cAAc,EAAE,YAAY,CAAC;KAC5E,CAAA;AACH,CAAC,CAAA;AAUD,MAAM,iBAAiB,GAAG,CAAC,IAAsB,EAA4B,EAAE,CAAC,CAAC;IAC/E,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,KAAK,EACH,IAAI,CAAC,OAAO;QACV,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW;YACjD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ;IAChB,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE;IACtD,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;CACxB,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,KAAK,EAClC,QAAgB,EAIf,EAAE;IACH,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAA;IACtD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAA;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmD,CAAA;QAChF,MAAM,OAAO,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aACjC,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC9E,CAAA;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAClE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,MAAM,EAAE,CAAC;oBACP,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,iCAAiC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACzD,CAAC;SACH,CAAA;IACH,CAAC;AACH,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,KAAK,EAClC,QAAgB,EAIf,EAAE;IACH,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;IAC1D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;IAC9D,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;SAClE,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC7D,MAAM,IAAI,GAA+D,EAAE,CAAA;IAC3E,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAAE,SAAQ;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,aAAa;gBACnB,IAAI;gBACJ,MAAM,EAAE,4BAA4B,MAAM,CAAC,KAAK,CAAC,EAAE;aACpD,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IACD,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,IAAI,CACd,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAC5C;QACD,MAAM,EAAE,MAAM,CAAC,IAAI,CACjB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACd,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC;YACnC,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CACxD;KACF,CAAA;AACH,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CACjC,IAAY,EACZ,OAAe,EACqD,EAAE;IACtE,MAAM,QAAQ,GAA+D,EAAE,CAAA;IAC/E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACrC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAClD,IAAI,KAAK,KAAK,IAAI;YAAE,SAAQ;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACzC,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC5E,KAAK,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;YAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;YAC7E,SAAQ;QACV,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,KAA4B,EAC5B,UAAkB,EAClB,SAAiB,EACyC,EAAE;IAC5D,MAAM,UAAU,GAAkB,EAAE,CAAA;IACpC,IAAI,KAAK,GAAG,UAAU,GAAG,CAAC,CAAA;IAC1B,OAAO,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,SAAS;YAAE,MAAK;QAC/C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;QACrC,SAAS,EAAE,KAAK;KACjB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;AAExF,MAAM,eAAe,GAAG,CACtB,OAAoC,EACoB,EAAE;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6C,CAAA;IACnE,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;QAC9D,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CACtB,OAAe,EACf,OAAqC,EACrC,OAA4B,IAAI,GAAG,EAAE,EACF,EAAE;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAA;IAC/C,IAAI,qCAAqC,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAChF,IAAI,sCAAsC,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACrF,IAAI,6CAA6C,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvF,IAAI,iDAAiD,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAChC,CAAC;IACD,IAAI,6BAA6B,CAAC,IAAI,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAE3E,KAAK,MAAM,UAAU,IAAI,iBAAiB,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAQ;QAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACtC,IAAI,MAAM,KAAK,SAAS;YAAE,SAAQ;QAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAA;QAC9B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACxB,KAAK,MAAM,aAAa,IAAI,eAAe,CAAC,GAAG,UAAU,IAAI,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1F,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAyB,EAAE;IACnE,MAAM,OAAO,GAAkB,EAAE,CAAA;IACjC,MAAM,KAAK,GAAG,kDAAkD,CAAA;IAChE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACpD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,0BAA0B,GAAG,CACjC,cAAkE,EAClE,YAAgE,EACxD,EAAE,CACV,UAAU,CAAC,QAAQ,CAAC;KACjB,MAAM,CACL,IAAI,CAAC,SAAS,CAAC;IACb,cAAc,EACZ,cAAc,CAAC,KAAK,KAAK,SAAS;QAChC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CACnE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAC1B;IACP,aAAa,EAAE,cAAc,CAAC,MAAM;IACpC,YAAY,EAAE,YAAY,CAAC,KAAK;IAChC,cAAc,EAAE,YAAY,CAAC,MAAM;CACpC,CAAC,CACH;KACA,MAAM,CAAC,KAAK,CAAC,CAAA"}
|
package/dist/pack.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAA;AA4B5D,eAAO,MAAM,cAAc,EAAE,aAAa,CAAC,SAAS,CActB,CAAA"}
|
package/dist/pack.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import { Shared02BusFactor, Shared03ChurnRate, SharedChurn01, } from "@skastr0/pulsar-core/shared-signals";
|
|
1
|
+
import { Shared02BusFactor, Shared03ChurnRate, SharedChurn01, SharedChurn02, SharedCochange01, } from "@skastr0/pulsar-core/shared-signals";
|
|
2
2
|
import { withConfigFactorLedger } from "@skastr0/pulsar-core/factors";
|
|
3
3
|
import { Shared05Suppression } from "./shared-05-suppression.js";
|
|
4
4
|
import { Shared06PrDepDelta } from "./shared-06-pr-dep-delta.js";
|
|
5
|
+
import { Shared07MachineFeedbackCoverage } from "./shared-07-machine-feedback-coverage.js";
|
|
6
|
+
import { Shared09ContractFreshness } from "./shared-09-contract-freshness.js";
|
|
7
|
+
import { Shared10DomainConstructionControl } from "./shared-10-domain-construction-control.js";
|
|
8
|
+
import { Shared11TheoryEncodingIndex } from "./shared-11-theory-encoding-index.js";
|
|
9
|
+
import { SharedCov01CoverageFacts } from "./shared-cov-01-coverage-facts.js";
|
|
5
10
|
const SHARED_PACK_CACHE_VERSION = "shared-pack-2026-05-06-applicability-1";
|
|
6
11
|
const withSharedPackCacheVersion = (signal) => ({
|
|
7
12
|
...signal,
|
|
@@ -11,10 +16,17 @@ const withSharedPackCacheVersion = (signal) => ({
|
|
|
11
16
|
});
|
|
12
17
|
export const SHARED_SIGNALS = [
|
|
13
18
|
SharedChurn01,
|
|
19
|
+
SharedChurn02,
|
|
20
|
+
SharedCochange01,
|
|
14
21
|
Shared02BusFactor,
|
|
15
22
|
Shared03ChurnRate,
|
|
16
23
|
Shared05Suppression,
|
|
17
24
|
Shared06PrDepDelta,
|
|
25
|
+
Shared07MachineFeedbackCoverage,
|
|
26
|
+
Shared09ContractFreshness,
|
|
27
|
+
Shared10DomainConstructionControl,
|
|
28
|
+
Shared11TheoryEncodingIndex,
|
|
29
|
+
SharedCov01CoverageFacts,
|
|
18
30
|
].map(withSharedPackCacheVersion)
|
|
19
31
|
.map(withConfigFactorLedger);
|
|
20
32
|
//# sourceMappingURL=pack.js.map
|
package/dist/pack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../src/pack.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,gBAAgB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAA;AAC1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,EAAE,iCAAiC,EAAE,MAAM,4CAA4C,CAAA;AAC9F,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAA;AAE5E,MAAM,yBAAyB,GAC7B,wCAAwC,CAAA;AAE1C,MAAM,0BAA0B,GAAG,CAAsB,MAAS,EAAK,EAAE,CAAC,CAAC;IACzE,GAAG,MAAM;IACT,YAAY,EACV,MAAM,CAAC,YAAY,KAAK,SAAS;QAC/B,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,GAAG,yBAAyB,IAAI,MAAM,CAAC,YAAY,EAAE;CAC5D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,cAAc,GAA6B;IACtD,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,+BAA+B;IAC/B,yBAAyB;IACzB,iCAAiC;IACjC,2BAA2B;IAC3B,wBAAwB;CACzB,CAAC,GAAG,CAAC,0BAA0B,CAAC;KAC9B,GAAG,CAAC,sBAAsB,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-05-suppression.d.ts","sourceRoot":"","sources":["../src/shared-05-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,MAAM,EACP,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,yBAAyB;;EAEpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAe7E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;YAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;SAClC,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE;YACd,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;YAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;SAClC,CAAA;KACF,CAAA;CACF;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"shared-05-suppression.d.ts","sourceRoot":"","sources":["../src/shared-05-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,MAAM,EACP,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,yBAAyB;;EAEpC,CAAA;AACF,MAAM,MAAM,yBAAyB,GAAG,OAAO,yBAAyB,CAAC,IAAI,CAAA;AAe7E,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,yBAAyB,EAAE,MAAM,CAAA;IAC1C,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpB,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;YAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;SAClC,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE;YACd,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;YAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;SAClC,CAAA;KACF,CAAA;CACF;AAED,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,yBAAyB,EAAE,yBAAyB,CA4G5F,CAAA"}
|
|
@@ -15,8 +15,16 @@ export const Shared05Suppression = {
|
|
|
15
15
|
top_n_diagnostics: 10,
|
|
16
16
|
},
|
|
17
17
|
inputs: [
|
|
18
|
-
{
|
|
19
|
-
|
|
18
|
+
{
|
|
19
|
+
id: "TS-SL-03-suppressions",
|
|
20
|
+
optional: true,
|
|
21
|
+
cacheFingerprint: "shared-05-typescript-suppression-input-v1",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "RS-SL-02-suppressions",
|
|
25
|
+
optional: true,
|
|
26
|
+
cacheFingerprint: "shared-05-rust-suppression-input-v1",
|
|
27
|
+
},
|
|
20
28
|
],
|
|
21
29
|
compute: (_config, inputs) => Effect.sync(() => {
|
|
22
30
|
const ts = (inputs.get("TS-SL-03-suppressions") ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-05-suppression.js","sourceRoot":"","sources":["../src/shared-05-suppression.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC;IACrD,iBAAiB,EAAE,MAAM,CAAC,MAAM;CACjC,CAAC,CAAA;AAkCF,MAAM,CAAC,MAAM,mBAAmB,GAAiE;IAC/F,EAAE,EAAE,kCAAkC;IACtC,KAAK,EAAE,wBAAwB;IAC/B,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,gBAAgB;IAC1B,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,kCAAkC;IAChD,YAAY,EAAE,yBAAyB;IACvC,aAAa,EAAE;QACb,iBAAiB,EAAE,EAAE;KACtB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"shared-05-suppression.js","sourceRoot":"","sources":["../src/shared-05-suppression.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-06-pr-dep-delta.d.ts","sourceRoot":"","sources":["../src/shared-06-pr-dep-delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,MAAM,EACP,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,wBAAwB;;EAEnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAe3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;YACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;YAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;SAC9B,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE;YACd,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;YACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;YAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;SAC9B,CAAA;KACF,CAAA;CACF;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"shared-06-pr-dep-delta.d.ts","sourceRoot":"","sources":["../src/shared-06-pr-dep-delta.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAEL,MAAM,EACP,MAAM,QAAQ,CAAA;AAEf,eAAO,MAAM,wBAAwB;;EAEnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAe3E,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAA;IACxC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAA;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,UAAU,CAAC,EAAE;YACpB,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;YACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;YAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;SAC9B,CAAA;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE;YACd,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;YACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;YAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;SAC9B,CAAA;KACF,CAAA;CACF;AAED,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,CAqFzF,CAAA"}
|
|
@@ -15,8 +15,16 @@ export const Shared06PrDepDelta = {
|
|
|
15
15
|
top_n_diagnostics: 10,
|
|
16
16
|
},
|
|
17
17
|
inputs: [
|
|
18
|
-
{
|
|
19
|
-
|
|
18
|
+
{
|
|
19
|
+
id: "TS-RP-02-pr-size",
|
|
20
|
+
optional: true,
|
|
21
|
+
cacheFingerprint: "shared-06-typescript-pr-delta-input-v1",
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "RS-RP-03-pr-size",
|
|
25
|
+
optional: true,
|
|
26
|
+
cacheFingerprint: "shared-06-rust-pr-delta-input-v1",
|
|
27
|
+
},
|
|
20
28
|
],
|
|
21
29
|
compute: (_config, inputs) => Effect.sync(() => {
|
|
22
30
|
const ts = (inputs.get("TS-RP-02-pr-size") ??
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-06-pr-dep-delta.js","sourceRoot":"","sources":["../src/shared-06-pr-dep-delta.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,MAAM,EACN,MAAM,GACP,MAAM,QAAQ,CAAA;AAEf,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;IACpD,iBAAiB,EAAE,MAAM,CAAC,MAAM;CACjC,CAAC,CAAA;AAqCF,MAAM,CAAC,MAAM,kBAAkB,GAA+D;IAC5F,EAAE,EAAE,+BAA+B;IACnC,KAAK,EAAE,qBAAqB;IAC5B,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,UAAU;IAChB,YAAY,EAAE,6BAA6B;IAC3C,YAAY,EAAE,wBAAwB;IACtC,aAAa,EAAE;QACb,iBAAiB,EAAE,EAAE;KACtB;IACD,MAAM,EAAE;QACN,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"shared-06-pr-dep-delta.js","sourceRoot":"","sources":["../src/shared-06-pr-dep-delta.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SignalContextTag, type Signal } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
import { type MachineFeedbackClass, type MachineFeedbackFacts } from "./machine-feedback-facts.js";
|
|
4
|
+
export declare const Shared07MachineFeedbackCoverageConfig: Schema.Struct<{
|
|
5
|
+
required_classes: Schema.Array$<Schema.Literal<["build", "typecheck", "test", "static_analysis", "coverage"]>>;
|
|
6
|
+
top_n_diagnostics: typeof Schema.Number;
|
|
7
|
+
}>;
|
|
8
|
+
export type Shared07MachineFeedbackCoverageConfig = typeof Shared07MachineFeedbackCoverageConfig.Type;
|
|
9
|
+
export interface Shared07MachineFeedbackCoverageOutput extends MachineFeedbackFacts {
|
|
10
|
+
readonly requiredClasses: ReadonlyArray<MachineFeedbackClass>;
|
|
11
|
+
readonly topDiagnostics: number;
|
|
12
|
+
readonly compositeConsumers: ReadonlyArray<string>;
|
|
13
|
+
readonly cacheContributors: ReadonlyArray<string>;
|
|
14
|
+
readonly calibrationSurface: string;
|
|
15
|
+
readonly enforcementCeiling: ReadonlyArray<string>;
|
|
16
|
+
}
|
|
17
|
+
export declare const Shared07MachineFeedbackCoverage: Signal<Shared07MachineFeedbackCoverageConfig, Shared07MachineFeedbackCoverageOutput, SignalContextTag>;
|
|
18
|
+
//# sourceMappingURL=shared-07-machine-feedback-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-07-machine-feedback-coverage.d.ts","sourceRoot":"","sources":["../src/shared-07-machine-feedback-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAGhB,KAAK,MAAM,EACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,6BAA6B,CAAA;AAUpC,eAAO,MAAM,qCAAqC;;;EAGhD,CAAA;AACF,MAAM,MAAM,qCAAqC,GAC/C,OAAO,qCAAqC,CAAC,IAAI,CAAA;AAEnD,MAAM,WAAW,qCAAsC,SAAQ,oBAAoB;IACjF,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC,oBAAoB,CAAC,CAAA;IAC7D,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAClD,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACjD,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,kBAAkB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACnD;AAED,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAClD,qCAAqC,EACrC,qCAAqC,EACrC,gBAAgB,CAyEjB,CAAA"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { SignalContextTag, SignalComputeError, } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
import { collectMachineFeedbackFacts, } from "./machine-feedback-facts.js";
|
|
4
|
+
const MachineFeedbackClassSchema = Schema.Literal("build", "typecheck", "test", "static_analysis", "coverage");
|
|
5
|
+
export const Shared07MachineFeedbackCoverageConfig = Schema.Struct({
|
|
6
|
+
required_classes: Schema.Array(MachineFeedbackClassSchema),
|
|
7
|
+
top_n_diagnostics: Schema.Number,
|
|
8
|
+
});
|
|
9
|
+
export const Shared07MachineFeedbackCoverage = {
|
|
10
|
+
id: "SHARED-07-machine-feedback-coverage",
|
|
11
|
+
title: "Machine feedback coverage",
|
|
12
|
+
aliases: ["SHARED-07"],
|
|
13
|
+
tier: 1,
|
|
14
|
+
category: "review-pain",
|
|
15
|
+
kind: "legibility",
|
|
16
|
+
cacheVersion: "scripts-and-github-workflows-v1",
|
|
17
|
+
configSchema: Shared07MachineFeedbackCoverageConfig,
|
|
18
|
+
defaultConfig: {
|
|
19
|
+
required_classes: ["build", "typecheck", "test", "static_analysis"],
|
|
20
|
+
top_n_diagnostics: 10,
|
|
21
|
+
},
|
|
22
|
+
inputs: [],
|
|
23
|
+
compute: (config) => Effect.gen(function* () {
|
|
24
|
+
const ctx = yield* SignalContextTag;
|
|
25
|
+
const facts = yield* Effect.tryPromise({
|
|
26
|
+
try: () => collectMachineFeedbackFacts(ctx.worktreePath, config.required_classes),
|
|
27
|
+
catch: (cause) => new SignalComputeError({
|
|
28
|
+
signalId: "SHARED-07-machine-feedback-coverage",
|
|
29
|
+
message: `Failed to compute machine feedback coverage: ${String(cause)}`,
|
|
30
|
+
cause,
|
|
31
|
+
}),
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
...facts,
|
|
35
|
+
requiredClasses: config.required_classes,
|
|
36
|
+
topDiagnostics: Math.max(0, Math.floor(config.top_n_diagnostics)),
|
|
37
|
+
compositeConsumers: [
|
|
38
|
+
"AI quicksand risk",
|
|
39
|
+
"contract safety gap",
|
|
40
|
+
"review shock",
|
|
41
|
+
],
|
|
42
|
+
cacheContributors: [
|
|
43
|
+
"package.json",
|
|
44
|
+
".github/workflows/*.yml",
|
|
45
|
+
".github/workflows/*.yaml",
|
|
46
|
+
"config.required_classes",
|
|
47
|
+
"config.top_n_diagnostics",
|
|
48
|
+
],
|
|
49
|
+
calibrationSurface: "config.required_classes; project-module policy slot not required for this fact provider",
|
|
50
|
+
enforcementCeiling: ["soft-warning", "trend"],
|
|
51
|
+
};
|
|
52
|
+
}),
|
|
53
|
+
score: () => 1,
|
|
54
|
+
diagnose: (out) => {
|
|
55
|
+
const required = new Set(out.requiredClasses);
|
|
56
|
+
return out.classes
|
|
57
|
+
.filter((entry) => required.has(entry.class) || entry.state === "present")
|
|
58
|
+
.slice(0, out.topDiagnostics)
|
|
59
|
+
.map((entry) => ({
|
|
60
|
+
severity: entry.state === "unknown"
|
|
61
|
+
? "warn"
|
|
62
|
+
: required.has(entry.class) && entry.state === "absent"
|
|
63
|
+
? "warn"
|
|
64
|
+
: "info",
|
|
65
|
+
message: `Machine feedback ${entry.class}: ${entry.state}` +
|
|
66
|
+
(entry.ciReachable ? " (CI reachable)" : ""),
|
|
67
|
+
data: {
|
|
68
|
+
class: entry.class,
|
|
69
|
+
state: entry.state,
|
|
70
|
+
localCommands: entry.localCommands,
|
|
71
|
+
ciReachable: entry.ciReachable,
|
|
72
|
+
evidence: entry.evidence,
|
|
73
|
+
},
|
|
74
|
+
}));
|
|
75
|
+
},
|
|
76
|
+
outputMetadata: () => ({ applicability: "not_applicable" }),
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=shared-07-machine-feedback-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-07-machine-feedback-coverage.js","sourceRoot":"","sources":["../src/shared-07-machine-feedback-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AACvC,OAAO,EACL,2BAA2B,GAG5B,MAAM,6BAA6B,CAAA;AAEpC,MAAM,0BAA0B,GAAG,MAAM,CAAC,OAAO,CAC/C,OAAO,EACP,WAAW,EACX,MAAM,EACN,iBAAiB,EACjB,UAAU,CACX,CAAA;AAED,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,MAAM,CAAC;IACjE,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC,MAAM;CACjC,CAAC,CAAA;AAaF,MAAM,CAAC,MAAM,+BAA+B,GAIxC;IACF,EAAE,EAAE,qCAAqC;IACzC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,aAAa;IACvB,IAAI,EAAE,YAAY;IAClB,YAAY,EAAE,iCAAiC;IAC/C,YAAY,EAAE,qCAAqC;IACnD,aAAa,EAAE;QACb,gBAAgB,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,CAAC;QACnE,iBAAiB,EAAE,EAAE;KACtB;IACD,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAA;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACrC,GAAG,EAAE,GAAG,EAAE,CAAC,2BAA2B,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC;YACjF,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,kBAAkB,CAAC;gBACrB,QAAQ,EAAE,qCAAqC;gBAC/C,OAAO,EAAE,gDAAgD,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxE,KAAK;aACN,CAAC;SACL,CAAC,CAAA;QACF,OAAO;YACL,GAAG,KAAK;YACR,eAAe,EAAE,MAAM,CAAC,gBAAgB;YACxC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjE,kBAAkB,EAAE;gBAClB,mBAAmB;gBACnB,qBAAqB;gBACrB,cAAc;aACf;YACD,iBAAiB,EAAE;gBACjB,cAAc;gBACd,yBAAyB;gBACzB,0BAA0B;gBAC1B,yBAAyB;gBACzB,0BAA0B;aAC3B;YACD,kBAAkB,EAAE,yFAAyF;YAC7G,kBAAkB,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC;SAC9C,CAAA;IACH,CAAC,CAAC;IACJ,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACd,QAAQ,EAAE,CAAC,GAAG,EAA6B,EAAE;QAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;QAC7C,OAAO,GAAG,CAAC,OAAO;aACf,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;aACzE,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC;aAC5B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACf,QAAQ,EACN,KAAK,CAAC,KAAK,KAAK,SAAS;gBACvB,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,QAAQ;oBACrD,CAAC,CAAC,MAAM;oBACR,CAAC,CAAC,MAAM;YACd,OAAO,EACL,oBAAoB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;gBACjD,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,aAAa,EAAE,KAAK,CAAC,aAAa;gBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB;SACF,CAAC,CAAC,CAAA;IACP,CAAC;IACD,cAAc,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,gBAAyB,EAAE,CAAC;CACrE,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReferenceDataTag, type Signal } from "@skastr0/pulsar-core/signal";
|
|
2
|
+
import { type ContractFreshnessFacts, type ContractFreshnessFinding } from "@skastr0/pulsar-core/reference-data";
|
|
3
|
+
import { Schema } from "effect";
|
|
4
|
+
export declare const Shared09ContractFreshnessConfig: Schema.Struct<{
|
|
5
|
+
top_n_diagnostics: typeof Schema.Number;
|
|
6
|
+
max_weighted_findings: typeof Schema.Number;
|
|
7
|
+
}>;
|
|
8
|
+
export type Shared09ContractFreshnessConfig = typeof Shared09ContractFreshnessConfig.Type;
|
|
9
|
+
export interface Shared09ContractFreshnessOutput extends ContractFreshnessFacts {
|
|
10
|
+
readonly topFindings: ReadonlyArray<ContractFreshnessFinding>;
|
|
11
|
+
readonly totalFindings: number;
|
|
12
|
+
readonly weightedFindings: number;
|
|
13
|
+
readonly scorePressure: number;
|
|
14
|
+
readonly diagnosticLimit: number;
|
|
15
|
+
readonly configuredContractCount: number;
|
|
16
|
+
readonly sourceFileCount: number;
|
|
17
|
+
readonly artifactFileCount: number;
|
|
18
|
+
readonly compositeConsumers: ReadonlyArray<string>;
|
|
19
|
+
readonly cacheContributors: ReadonlyArray<string>;
|
|
20
|
+
readonly calibrationSurface: string;
|
|
21
|
+
readonly evidenceClass: ReadonlyArray<string>;
|
|
22
|
+
readonly claimLimit: string;
|
|
23
|
+
readonly nonClaimLimit: string;
|
|
24
|
+
readonly knownFailureModes: ReadonlyArray<string>;
|
|
25
|
+
readonly enforcementCeiling: ReadonlyArray<string>;
|
|
26
|
+
}
|
|
27
|
+
export declare const Shared09ContractFreshness: Signal<Shared09ContractFreshnessConfig, Shared09ContractFreshnessOutput, ReferenceDataTag>;
|
|
28
|
+
//# sourceMappingURL=shared-09-contract-freshness.d.ts.map
|