no-mistakes 0.91.2 → 0.92.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 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
+ }
@@ -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(options: WithInvocationOptions<CiImpactOptions>): Promise<CiImpactReport>;
42
- export function ciEnv(options: WithInvocationOptions<CiEnvOptions>): Promise<CiEnvReport>;
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(options: WithInvocationOptions<DataPwOptions>): Promise<DataPwReport>;
55
- export function effects(options: WithInvocationOptions<EffectsOptions>): Promise<EffectsReport>;
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
- export function analyzeTypeScriptModules(
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(options: WithInvocationOptions<TraverseOptions>): Promise<DependencyResult>;
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(options: WithInvocationOptions<SymbolsListOptions>): Promise<SymbolsResult>;
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(options?: WithInvocationOptions<FetchesOptions>): Promise<FetchReport>;
129
- export function flow(options: WithInvocationOptions<FlowOptions>): Promise<FlowReport>;
130
- export function check(options?: WithInvocationOptions<CheckOptions>): Promise<CheckReport>;
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(options: WithInvocationOptions<TestsPlanOptions>): Promise<TestPlan>;
138
- export function testsImpact(options: WithInvocationOptions<TestsImpactOptions>): Promise<TestPlan>;
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(options?: WithInvocationOptions<ProjectOptions>): Promise<QueueReport>;
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>>;
@@ -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;
@@ -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.91.2",
3
+ "version": "0.92.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.91.2",
69
- "no-mistakes-linux-arm64-gnu": "0.91.2",
70
- "no-mistakes-linux-x64-gnu": "0.91.2",
71
- "no-mistakes-win32-x64-msvc": "0.91.2"
68
+ "no-mistakes-darwin-arm64": "0.92.0",
69
+ "no-mistakes-linux-arm64-gnu": "0.92.0",
70
+ "no-mistakes-linux-x64-gnu": "0.92.0",
71
+ "no-mistakes-win32-x64-msvc": "0.92.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 { outputDirectory: output.path, ...artifacts };
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
@@ -17,3 +17,4 @@ export * from "./postgres-query-annotation-types";
17
17
  export * from "./postgres-catalog-types";
18
18
  export * from "./planning-impact-artifacts-types";
19
19
  export * from "./declared-payload-types";
20
+ export type * from "./forbidden-call-types";