no-mistakes 0.91.3 → 0.93.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/README.md +7 -0
- package/analyze-project-types.d.ts +7 -0
- package/forbidden-call-types.d.ts +17 -0
- package/index-ci-infra.d.ts +45 -11
- package/index.d.ts +48 -53
- package/invocation-types.d.ts +27 -1
- package/named-query-types.d.ts +9 -0
- package/package.json +5 -5
- package/planning-impact-artifacts.js +5 -1
- package/types.d.ts +1 -0
package/README.md
CHANGED
|
@@ -199,3 +199,10 @@ See the full documentation in [docs/](../../docs/README.md), the
|
|
|
199
199
|
[CLI command index](../../docs/cli/README.md), and the
|
|
200
200
|
[Node/N-API guide](../../docs/node-api.md). Agents can use the compact
|
|
201
201
|
[packaged skill](../../skills/no-mistakes/SKILL.md).
|
|
202
|
+
|
|
203
|
+
The async `effects()` report keeps one row per physical call occurrence. Multiple
|
|
204
|
+
configured callable/category matches appear in optional `alternatives` using the
|
|
205
|
+
exported `EffectCallAlternative` type; singleton rows omit it. Category filters
|
|
206
|
+
project candidates before scalar selection and category counts. One occurrence
|
|
207
|
+
counts once per matched category, so category totals can exceed row count. See
|
|
208
|
+
[effect query details](../../docs/cli/effects.md).
|
|
@@ -3,6 +3,7 @@ import type { CiTopologyOptions } from "./workflow-topology-types";
|
|
|
3
3
|
import type { CiEnvOptions, CiImpactOptions, ImpactedChecksOptions } from "./ci-types";
|
|
4
4
|
import type { FetchesOptions, FlowOptions } from "./flow-types";
|
|
5
5
|
import type { ImportUsagesOptions } from "./import-usage-types";
|
|
6
|
+
import type { JobsPoolWarning } from "./invocation-types";
|
|
6
7
|
import type { MermaidValidationOptions } from "./mermaid-types";
|
|
7
8
|
import type {
|
|
8
9
|
DataPwOptions,
|
|
@@ -156,4 +157,10 @@ export interface AnalyzeProjectResult {
|
|
|
156
157
|
type: AnalyzeProjectReportRequest["type"];
|
|
157
158
|
result: unknown | EffectsReport | RscCallersReport;
|
|
158
159
|
}>;
|
|
160
|
+
/**
|
|
161
|
+
* Set when this call's resolved `jobs` differs from the process-wide Rayon pool.
|
|
162
|
+
* Omitted when the pool was just created or the resolved count already matches.
|
|
163
|
+
* Other analysis JSON objects use the same optional field.
|
|
164
|
+
*/
|
|
165
|
+
jobsPoolWarning?: JobsPoolWarning;
|
|
159
166
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Bounded source literals; no source code is evaluated. */
|
|
2
|
+
export type ForbiddenCallArgumentLiteral = string | number | boolean | null;
|
|
3
|
+
export type ForbiddenCallUnknownArguments = "finding" | "ignore";
|
|
4
|
+
export type ForbiddenCallArgumentPredicate = {
|
|
5
|
+
/** Zero-based argument index, from 0 through 31. */
|
|
6
|
+
position: number;
|
|
7
|
+
/** Optional single literal options-property name. */
|
|
8
|
+
property?: string;
|
|
9
|
+
} & (
|
|
10
|
+
| { equals: ForbiddenCallArgumentLiteral; arrayIncludes?: never; arrayExcludes?: never }
|
|
11
|
+
| { arrayIncludes: ForbiddenCallArgumentLiteral; equals?: never; arrayExcludes?: never }
|
|
12
|
+
| { arrayExcludes: ForbiddenCallArgumentLiteral; equals?: never; arrayIncludes?: never }
|
|
13
|
+
);
|
|
14
|
+
export interface ForbiddenCallArgumentConditions {
|
|
15
|
+
/** Between one and sixteen conjunctive predicates. */
|
|
16
|
+
all: ForbiddenCallArgumentPredicate[];
|
|
17
|
+
}
|
package/index-ci-infra.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import type { TypeScriptModulesOptions, TypeScriptModulesReport } from "./typescript-module-types";
|
|
2
|
+
import type {
|
|
3
|
+
PostgresCatalog,
|
|
4
|
+
PostgresCatalogOptions,
|
|
5
|
+
PostgresCompleteCatalog,
|
|
6
|
+
PostgresOrderingCatalog,
|
|
7
|
+
} from "./postgres-catalog-types";
|
|
1
8
|
// CI, impacted-checks, data-flow, infra, and Swift API declarations, split
|
|
2
9
|
// out of `index.d.ts` to stay under the 200-line file limit.
|
|
3
10
|
|
|
@@ -31,6 +38,7 @@ import type {
|
|
|
31
38
|
TestAuditReport,
|
|
32
39
|
TestsAuditOptions,
|
|
33
40
|
WithInvocationOptions,
|
|
41
|
+
WithInvocationResult,
|
|
34
42
|
WorkflowTopology,
|
|
35
43
|
WorkflowTopologyIndex,
|
|
36
44
|
} from "./types";
|
|
@@ -38,33 +46,41 @@ import type {
|
|
|
38
46
|
export function lockfileDiff(
|
|
39
47
|
options: WithInvocationOptions<LockfileDiffOptions>,
|
|
40
48
|
): Promise<LockfileDiffEntry[]>;
|
|
41
|
-
export function ciImpact(
|
|
42
|
-
|
|
49
|
+
export function ciImpact(
|
|
50
|
+
options: WithInvocationOptions<CiImpactOptions>,
|
|
51
|
+
): Promise<WithInvocationResult<CiImpactReport>>;
|
|
52
|
+
export function ciEnv(
|
|
53
|
+
options: WithInvocationOptions<CiEnvOptions>,
|
|
54
|
+
): Promise<WithInvocationResult<CiEnvReport>>;
|
|
43
55
|
export function ciTopology(
|
|
44
56
|
options?: WithInvocationOptions<CiTopologyOptions>,
|
|
45
|
-
): Promise<WorkflowTopology
|
|
57
|
+
): Promise<WithInvocationResult<WorkflowTopology>>;
|
|
46
58
|
export function ciTopologyImpact(
|
|
47
59
|
options: WithInvocationOptions<CiTopologyImpactOptions>,
|
|
48
|
-
): Promise<CiTopologyImpactReport
|
|
60
|
+
): Promise<WithInvocationResult<CiTopologyImpactReport>>;
|
|
49
61
|
/** Builds a query index over a `ciTopology()` result. Pure JS — never crosses the N-API boundary. */
|
|
50
62
|
export function createWorkflowTopologyIndex(topology: WorkflowTopology): WorkflowTopologyIndex;
|
|
51
63
|
export function impactedChecks(
|
|
52
64
|
options: WithInvocationOptions<ImpactedChecksOptions>,
|
|
53
|
-
): Promise<ImpactedChecksReport
|
|
54
|
-
export function dataPw(
|
|
55
|
-
|
|
65
|
+
): Promise<WithInvocationResult<ImpactedChecksReport>>;
|
|
66
|
+
export function dataPw(
|
|
67
|
+
options: WithInvocationOptions<DataPwOptions>,
|
|
68
|
+
): Promise<WithInvocationResult<DataPwReport>>;
|
|
69
|
+
export function effects(
|
|
70
|
+
options: WithInvocationOptions<EffectsOptions>,
|
|
71
|
+
): Promise<WithInvocationResult<EffectsReport>>;
|
|
56
72
|
export function rscCallers(
|
|
57
73
|
options: WithInvocationOptions<RscCallersOptions>,
|
|
58
|
-
): Promise<RscCallersReport
|
|
74
|
+
): Promise<WithInvocationResult<RscCallersReport>>;
|
|
59
75
|
export function registryExtension(
|
|
60
76
|
options: WithInvocationOptions<RegistryExtensionOptions>,
|
|
61
|
-
): Promise<RegistryExtensionReport
|
|
77
|
+
): Promise<WithInvocationResult<RegistryExtensionReport>>;
|
|
62
78
|
export function infraResourceRefs(
|
|
63
79
|
options: WithInvocationOptions<InfraOptions & { address: string }>,
|
|
64
80
|
): Promise<ResourceRefRow[]>;
|
|
65
81
|
export function infraOutputs(
|
|
66
82
|
options: WithInvocationOptions<InfraOptions & { moduleDir: string }>,
|
|
67
|
-
): Promise<ModuleOutputsResult
|
|
83
|
+
): Promise<WithInvocationResult<ModuleOutputsResult>>;
|
|
68
84
|
export function infraTestFor(
|
|
69
85
|
options: WithInvocationOptions<InfraOptions & { tfFile: string }>,
|
|
70
86
|
): Promise<TestForRow[]>;
|
|
@@ -78,4 +94,22 @@ export function version(): Promise<string>;
|
|
|
78
94
|
|
|
79
95
|
export function testsAudit(
|
|
80
96
|
options: WithInvocationOptions<TestsAuditOptions>,
|
|
81
|
-
): Promise<TestAuditReport
|
|
97
|
+
): Promise<WithInvocationResult<TestAuditReport>>;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Observe committed PostgreSQL metadata in a read-only transaction and return the catalog that
|
|
101
|
+
* `schemaCatalogPath` reads. Requires psql. `coverage: "ordering"` returns only the ordering facts.
|
|
102
|
+
*/
|
|
103
|
+
export function generatePostgresCatalog(
|
|
104
|
+
options: WithInvocationOptions<PostgresCatalogOptions & { coverage: "ordering" }>,
|
|
105
|
+
): Promise<WithInvocationResult<PostgresOrderingCatalog>>;
|
|
106
|
+
export function generatePostgresCatalog(
|
|
107
|
+
options: WithInvocationOptions<PostgresCatalogOptions & { coverage?: "complete" }>,
|
|
108
|
+
): Promise<WithInvocationResult<PostgresCompleteCatalog>>;
|
|
109
|
+
export function generatePostgresCatalog(
|
|
110
|
+
options: WithInvocationOptions<PostgresCatalogOptions>,
|
|
111
|
+
): Promise<WithInvocationResult<PostgresCatalog>>;
|
|
112
|
+
|
|
113
|
+
export function analyzeTypeScriptModules(
|
|
114
|
+
options: WithInvocationOptions<TypeScriptModulesOptions>,
|
|
115
|
+
): Promise<WithInvocationResult<TypeScriptModulesReport>>;
|
package/index.d.ts
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
import type { TypeScriptModulesOptions, TypeScriptModulesReport } from "./typescript-module-types";
|
|
2
2
|
export type * from "./typescript-module-types";
|
|
3
3
|
/** Analyze selected TS/JS modules asynchronously with source-local binding semantics. */
|
|
4
|
-
|
|
5
|
-
options: WithInvocationOptions<TypeScriptModulesOptions>,
|
|
6
|
-
): Promise<TypeScriptModulesReport>;
|
|
4
|
+
|
|
7
5
|
import type { PostgresSqlSource, PostgresSqlFacts } from "./postgres-source-types";
|
|
8
6
|
export { extractExecutedPostgresSql } from "./executed-postgres-sql-types";
|
|
9
7
|
export * from "./postgres-source-types";
|
|
10
8
|
/** Parse SQL on the native async worker without repository I/O or a database. */
|
|
11
9
|
export function parsePostgresSql(source: PostgresSqlSource): Promise<PostgresSqlFacts>;
|
|
12
10
|
export function parsePostgresSql(sources: PostgresSqlSource[]): Promise<PostgresSqlFacts[]>;
|
|
13
|
-
import type {
|
|
14
|
-
PostgresCatalog,
|
|
15
|
-
PostgresCatalogOptions,
|
|
16
|
-
PostgresCompleteCatalog,
|
|
17
|
-
PostgresOrderingCatalog,
|
|
18
|
-
} from "./postgres-catalog-types";
|
|
19
11
|
import type {
|
|
20
12
|
CheckReport,
|
|
21
13
|
AnalyzeProjectOptions,
|
|
@@ -74,6 +66,7 @@ import type {
|
|
|
74
66
|
ImportClosureResult,
|
|
75
67
|
WhyStep,
|
|
76
68
|
WithInvocationOptions,
|
|
69
|
+
WithInvocationResult,
|
|
77
70
|
WritePlanningImpactArtifactsOptions,
|
|
78
71
|
PlanningImpactArtifacts,
|
|
79
72
|
} from "./types";
|
|
@@ -83,71 +76,85 @@ export * from "./index-ci-infra";
|
|
|
83
76
|
|
|
84
77
|
export function dependencies(
|
|
85
78
|
options: WithInvocationOptions<TraversePathsOptions>,
|
|
86
|
-
): Promise<ImportClosureResult
|
|
79
|
+
): Promise<WithInvocationResult<ImportClosureResult>>;
|
|
87
80
|
export function dependencies(
|
|
88
81
|
options: WithInvocationOptions<TraverseGraphOptions>,
|
|
89
|
-
): Promise<DependencyResult
|
|
82
|
+
): Promise<WithInvocationResult<DependencyResult>>;
|
|
90
83
|
export function dependents(
|
|
91
84
|
options: WithInvocationOptions<TraverseOptions>,
|
|
92
|
-
): Promise<DependencyResult
|
|
93
|
-
export function related(
|
|
85
|
+
): Promise<WithInvocationResult<DependencyResult>>;
|
|
86
|
+
export function related(
|
|
87
|
+
options: WithInvocationOptions<TraverseOptions>,
|
|
88
|
+
): Promise<WithInvocationResult<DependencyResult>>;
|
|
94
89
|
export function analyzeProject(
|
|
95
90
|
options: WithInvocationOptions<AnalyzeProjectOptions>,
|
|
96
|
-
): Promise<AnalyzeProjectResult
|
|
91
|
+
): Promise<WithInvocationResult<AnalyzeProjectResult>>;
|
|
97
92
|
export function writePlanningImpactArtifacts(
|
|
98
93
|
options: WithInvocationOptions<WritePlanningImpactArtifactsOptions>,
|
|
99
|
-
): Promise<PlanningImpactArtifacts
|
|
94
|
+
): Promise<WithInvocationResult<PlanningImpactArtifacts>>;
|
|
100
95
|
export function symbols(
|
|
101
96
|
options: WithInvocationOptions<SymbolsSignatureImpactOptions>,
|
|
102
|
-
): Promise<SignatureImpactResult
|
|
103
|
-
export function symbols(
|
|
97
|
+
): Promise<WithInvocationResult<SignatureImpactResult>>;
|
|
98
|
+
export function symbols(
|
|
99
|
+
options: WithInvocationOptions<SymbolsListOptions>,
|
|
100
|
+
): Promise<WithInvocationResult<SymbolsResult>>;
|
|
104
101
|
export function symbols(
|
|
105
102
|
options: WithInvocationOptions<SymbolsOptions>,
|
|
106
|
-
): Promise<SymbolsResult | SignatureImpactResult
|
|
103
|
+
): Promise<WithInvocationResult<SymbolsResult | SignatureImpactResult>>;
|
|
107
104
|
export function importUsages(
|
|
108
105
|
options?: WithInvocationOptions<ImportUsagesOptions>,
|
|
109
|
-
): Promise<ImportUsagesResult
|
|
106
|
+
): Promise<WithInvocationResult<ImportUsagesResult>>;
|
|
110
107
|
export function importers(
|
|
111
108
|
options: WithInvocationOptions<ImportersOptions>,
|
|
112
|
-
): Promise<ImportersResult
|
|
109
|
+
): Promise<WithInvocationResult<ImportersResult>>;
|
|
113
110
|
export function exportsOf(
|
|
114
111
|
options: WithInvocationOptions<ExportsOfOptions>,
|
|
115
|
-
): Promise<ExportsOfResult
|
|
112
|
+
): Promise<WithInvocationResult<ExportsOfResult>>;
|
|
116
113
|
export function deadExports(
|
|
117
114
|
options: WithInvocationOptions<DeadExportsOptions>,
|
|
118
|
-
): Promise<DeadExportsResult
|
|
115
|
+
): Promise<WithInvocationResult<DeadExportsResult>>;
|
|
119
116
|
export function callSites(
|
|
120
117
|
options: WithInvocationOptions<CallSitesOptions>,
|
|
121
|
-
): Promise<CallSitesResult
|
|
118
|
+
): Promise<WithInvocationResult<CallSitesResult>>;
|
|
122
119
|
export function resolveCheck(
|
|
123
120
|
options: WithInvocationOptions<ResolveCheckOptions>,
|
|
124
|
-
): Promise<ResolveCheckResult
|
|
121
|
+
): Promise<WithInvocationResult<ResolveCheckResult>>;
|
|
125
122
|
export function resolveCheck(
|
|
126
123
|
options: WithInvocationOptions<ResolveCheckFilesOptions>,
|
|
127
|
-
): Promise<ResolveCheckBatchResult
|
|
128
|
-
export function fetches(
|
|
129
|
-
|
|
130
|
-
|
|
124
|
+
): Promise<WithInvocationResult<ResolveCheckBatchResult>>;
|
|
125
|
+
export function fetches(
|
|
126
|
+
options?: WithInvocationOptions<FetchesOptions>,
|
|
127
|
+
): Promise<WithInvocationResult<FetchReport>>;
|
|
128
|
+
export function flow(
|
|
129
|
+
options: WithInvocationOptions<FlowOptions>,
|
|
130
|
+
): Promise<WithInvocationResult<FlowReport>>;
|
|
131
|
+
export function check(
|
|
132
|
+
options?: WithInvocationOptions<CheckOptions>,
|
|
133
|
+
): Promise<WithInvocationResult<CheckReport>>;
|
|
131
134
|
export function resolveConfig(
|
|
132
135
|
options?: WithInvocationOptions<ProjectOptions>,
|
|
133
|
-
): Promise<ResolvedConfig
|
|
136
|
+
): Promise<WithInvocationResult<ResolvedConfig>>;
|
|
134
137
|
export function validateMermaidMarkdown(
|
|
135
138
|
options: WithInvocationOptions<MermaidValidationOptions>,
|
|
136
|
-
): Promise<MermaidValidationResult
|
|
137
|
-
export function testsPlan(
|
|
138
|
-
|
|
139
|
+
): Promise<WithInvocationResult<MermaidValidationResult>>;
|
|
140
|
+
export function testsPlan(
|
|
141
|
+
options: WithInvocationOptions<TestsPlanOptions>,
|
|
142
|
+
): Promise<WithInvocationResult<TestPlan>>;
|
|
143
|
+
export function testsImpact(
|
|
144
|
+
options: WithInvocationOptions<TestsImpactOptions>,
|
|
145
|
+
): Promise<WithInvocationResult<TestPlan>>;
|
|
139
146
|
export function testsTargets(
|
|
140
147
|
options: WithInvocationOptions<TestsTargetsOptions>,
|
|
141
|
-
): Promise<TestsTargetsReport
|
|
148
|
+
): Promise<WithInvocationResult<TestsTargetsReport>>;
|
|
142
149
|
export function testsWhy(
|
|
143
150
|
options: WithInvocationOptions<TestsWhyOptions>,
|
|
144
|
-
): Promise<Record<string, WhyStep[]
|
|
151
|
+
): Promise<WithInvocationResult<Record<string, WhyStep[]>>>;
|
|
145
152
|
export function testsComment(
|
|
146
153
|
options: WithInvocationOptions<TestsPlanDocumentOptions>,
|
|
147
154
|
): Promise<string>;
|
|
148
155
|
export function testsGraph(
|
|
149
156
|
options: WithInvocationOptions<TestsPlanDocumentOptions>,
|
|
150
|
-
): Promise<TestGraph
|
|
157
|
+
): Promise<WithInvocationResult<TestGraph>>;
|
|
151
158
|
export function testsGraphMermaid(
|
|
152
159
|
options: WithInvocationOptions<TestsPlanDocumentOptions>,
|
|
153
160
|
): Promise<string>;
|
|
@@ -163,7 +170,9 @@ export function playwrightRelated(
|
|
|
163
170
|
export function playwrightTests(
|
|
164
171
|
options?: WithInvocationOptions<PlaywrightOptions>,
|
|
165
172
|
): Promise<unknown>;
|
|
166
|
-
export function queues(
|
|
173
|
+
export function queues(
|
|
174
|
+
options?: WithInvocationOptions<ProjectOptions>,
|
|
175
|
+
): Promise<WithInvocationResult<QueueReport>>;
|
|
167
176
|
export function queueEdges(options?: WithInvocationOptions<ProjectOptions>): Promise<QueueEdge[]>;
|
|
168
177
|
export function queueRelated(options: WithInvocationOptions<ProjectOptions>): Promise<QueueEdge[]>;
|
|
169
178
|
export function queueCheck(
|
|
@@ -171,7 +180,7 @@ export function queueCheck(
|
|
|
171
180
|
): Promise<QueueCheckFinding[]>;
|
|
172
181
|
export function serverRoutes(
|
|
173
182
|
options?: WithInvocationOptions<ProjectOptions>,
|
|
174
|
-
): Promise<ServerRoutesReport
|
|
183
|
+
): Promise<WithInvocationResult<ServerRoutesReport>>;
|
|
175
184
|
export function serverRouteList(
|
|
176
185
|
options?: WithInvocationOptions<ProjectOptions>,
|
|
177
186
|
): Promise<unknown[]>;
|
|
@@ -183,7 +192,7 @@ export function serverRouteRelated(
|
|
|
183
192
|
): Promise<GraphEdge[]>;
|
|
184
193
|
export function serverContracts(
|
|
185
194
|
options?: WithInvocationOptions<ProjectOptions>,
|
|
186
|
-
): Promise<ServerContractsReport
|
|
195
|
+
): Promise<WithInvocationResult<ServerContractsReport>>;
|
|
187
196
|
export function reactAnalyze(
|
|
188
197
|
options?: WithInvocationOptions<ProjectOptions>,
|
|
189
198
|
): Promise<ReactComponentFacts[]>;
|
|
@@ -192,18 +201,4 @@ export function reactCheck(
|
|
|
192
201
|
): Promise<ReactViolation[]>;
|
|
193
202
|
export function reactUsages(
|
|
194
203
|
options: WithInvocationOptions<ProjectOptions & { target: string }>,
|
|
195
|
-
): Promise<ReactUsagesReport
|
|
196
|
-
|
|
197
|
-
/**
|
|
198
|
-
* Observe committed PostgreSQL metadata in a read-only transaction and return the catalog that
|
|
199
|
-
* `schemaCatalogPath` reads. Requires psql. `coverage: "ordering"` returns only the ordering facts.
|
|
200
|
-
*/
|
|
201
|
-
export function generatePostgresCatalog(
|
|
202
|
-
options: WithInvocationOptions<PostgresCatalogOptions & { coverage: "ordering" }>,
|
|
203
|
-
): Promise<PostgresOrderingCatalog>;
|
|
204
|
-
export function generatePostgresCatalog(
|
|
205
|
-
options: WithInvocationOptions<PostgresCatalogOptions & { coverage?: "complete" }>,
|
|
206
|
-
): Promise<PostgresCompleteCatalog>;
|
|
207
|
-
export function generatePostgresCatalog(
|
|
208
|
-
options: WithInvocationOptions<PostgresCatalogOptions>,
|
|
209
|
-
): Promise<PostgresCatalog>;
|
|
204
|
+
): Promise<WithInvocationResult<ReactUsagesReport>>;
|
package/invocation-types.d.ts
CHANGED
|
@@ -11,12 +11,17 @@ export interface InvocationOptions {
|
|
|
11
11
|
/**
|
|
12
12
|
* Rayon worker count. A positive integer takes precedence over `RAYON_NUM_THREADS`.
|
|
13
13
|
* Omit, `0`, or `null` uses `RAYON_NUM_THREADS`, falling back to CPU count when
|
|
14
|
-
* unset or invalid, matching CLI `--jobs 0`.
|
|
14
|
+
* unset, zero, or invalid, matching CLI `--jobs 0`.
|
|
15
15
|
* The first analysis request with valid UTF-8 JSON and invocation controls that
|
|
16
16
|
* acquires the invocation lock initializes the process-wide pool before
|
|
17
17
|
* command-specific options are validated. A later command-validation failure
|
|
18
18
|
* can therefore still select the pool; JSON/control or lock failures cannot.
|
|
19
19
|
* Later calls cannot resize an already initialized pool.
|
|
20
|
+
* The call that installs the pool does not warn. A later call whose resolved
|
|
21
|
+
* count differs keeps that pool, does not fail, and includes `jobsPoolWarning`
|
|
22
|
+
* on the JSON object. Omit, `0`, or `null` does not warn when the resolved
|
|
23
|
+
* count matches the pool. Concurrent `analyzeProject()` calls and same-user CLI
|
|
24
|
+
* runs queue on the per-user invocation lock, and each queued run uses the full pool.
|
|
20
25
|
*/
|
|
21
26
|
jobs?: number | null;
|
|
22
27
|
/** `ci` sets unbounded command and lock timeouts. CLI `--profile ci` does the same. */
|
|
@@ -27,6 +32,27 @@ export interface InvocationOptions {
|
|
|
27
32
|
|
|
28
33
|
export type WithInvocationOptions<T> = T & InvocationOptions;
|
|
29
34
|
|
|
35
|
+
/** Metadata emitted only on analysis JSON objects, never arrays or scalar results. */
|
|
36
|
+
export interface InvocationResultMetadata {
|
|
37
|
+
jobsPoolWarning?: JobsPoolWarning;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type WithInvocationResult<T> = T extends readonly unknown[]
|
|
41
|
+
? T
|
|
42
|
+
: T extends object
|
|
43
|
+
? T & InvocationResultMetadata
|
|
44
|
+
: T;
|
|
45
|
+
|
|
46
|
+
/** Present when a later call's resolved `jobs` cannot resize the process-wide Rayon pool. */
|
|
47
|
+
export interface JobsPoolWarning {
|
|
48
|
+
code: "rayon-pool-size";
|
|
49
|
+
message: string;
|
|
50
|
+
/** Worker count resolved from this call's `jobs` and `RAYON_NUM_THREADS`. */
|
|
51
|
+
requestedJobs: number;
|
|
52
|
+
/** Worker count recorded for the process pool. */
|
|
53
|
+
effectiveJobs: number;
|
|
54
|
+
}
|
|
55
|
+
|
|
30
56
|
/** One live span; siblings may overlap and labels form the enclosing phase path. */
|
|
31
57
|
export interface ActiveTimingSpan {
|
|
32
58
|
id: number;
|
package/named-query-types.d.ts
CHANGED
|
@@ -47,6 +47,12 @@ export interface EffectsOptions {
|
|
|
47
47
|
depth?: number;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/** One distinct configured match for a physical call occurrence. */
|
|
51
|
+
export interface EffectCallAlternative {
|
|
52
|
+
callee: string;
|
|
53
|
+
category?: string;
|
|
54
|
+
}
|
|
55
|
+
|
|
50
56
|
export interface EffectCallSite {
|
|
51
57
|
file: string;
|
|
52
58
|
line: number;
|
|
@@ -54,12 +60,15 @@ export interface EffectCallSite {
|
|
|
54
60
|
category?: string;
|
|
55
61
|
caller?: string;
|
|
56
62
|
depth: number;
|
|
63
|
+
/** Sorted distinct matches, omitted unless multiple matches remain after category projection. */
|
|
64
|
+
alternatives?: EffectCallAlternative[];
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
export interface EffectsReport {
|
|
60
68
|
kind: string;
|
|
61
69
|
entry: string;
|
|
62
70
|
callSites: EffectCallSite[];
|
|
71
|
+
/** Physical occurrence count per matched category; sums can exceed callSites.length. */
|
|
63
72
|
byCategory: Record<string, number>;
|
|
64
73
|
}
|
|
65
74
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "no-mistakes",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.93.0",
|
|
4
4
|
"description": "Deterministic impact maps, test plans, Playwright coverage, and repository checks for coding agents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
}
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"no-mistakes-darwin-arm64": "0.
|
|
69
|
-
"no-mistakes-linux-arm64-gnu": "0.
|
|
70
|
-
"no-mistakes-linux-x64-gnu": "0.
|
|
71
|
-
"no-mistakes-win32-x64-msvc": "0.
|
|
68
|
+
"no-mistakes-darwin-arm64": "0.93.0",
|
|
69
|
+
"no-mistakes-linux-arm64-gnu": "0.93.0",
|
|
70
|
+
"no-mistakes-linux-x64-gnu": "0.93.0",
|
|
71
|
+
"no-mistakes-win32-x64-msvc": "0.93.0"
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -88,7 +88,11 @@ async function writePlanningImpactArtifactsUnlocked(options, analyzeProject, ren
|
|
|
88
88
|
(privateOutput) => writeSuccess(privateOutput, artifacts),
|
|
89
89
|
renameNoReplace,
|
|
90
90
|
);
|
|
91
|
-
return {
|
|
91
|
+
return {
|
|
92
|
+
outputDirectory: output.path,
|
|
93
|
+
...artifacts,
|
|
94
|
+
...(result.jobsPoolWarning ? { jobsPoolWarning: result.jobsPoolWarning } : {}),
|
|
95
|
+
};
|
|
92
96
|
} catch (error) {
|
|
93
97
|
if (mayWriteFailureArtifacts && !artifactErrors.isOutputRestorationFailure(error)) {
|
|
94
98
|
try {
|
package/types.d.ts
CHANGED