@runa-ai/runa-cli 0.7.1 → 0.7.2

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.
Files changed (136) hide show
  1. package/dist/{build-HUDIP6KU.js → build-HQMSVN6N.js} +3 -3
  2. package/dist/{check-LOMVIRHX.js → check-PCSQPYDM.js} +2 -2
  3. package/dist/{chunk-QM53IQHM.js → chunk-2QX7T24B.js} +1 -1
  4. package/dist/{chunk-XDCHRVE3.js → chunk-4XHZQRRK.js} +2 -2
  5. package/dist/{chunk-7B5C6U2K.js → chunk-A6A7JIRD.js} +35 -2
  6. package/dist/{chunk-Z4Z5DNW4.js → chunk-B3POLMII.js} +12 -0
  7. package/dist/chunk-CKRLVEIO.js +119 -0
  8. package/dist/{chunk-HD74F6W2.js → chunk-FWMGC5FP.js} +1 -0
  9. package/dist/{chunk-H2AHNI75.js → chunk-LCK2LGVR.js} +1 -1
  10. package/dist/{chunk-FHG3ILE4.js → chunk-OBYZDT2E.js} +38 -8
  11. package/dist/{chunk-AFY3TX4I.js → chunk-PMXE5XOJ.js} +1 -1
  12. package/dist/{chunk-VM3IWOT5.js → chunk-QSEF4T3Y.js} +13 -5
  13. package/dist/{chunk-NPSRD26F.js → chunk-UHDAYPHH.js} +1 -1
  14. package/dist/{chunk-2APB25TT.js → chunk-VSH3IXDQ.js} +7 -3
  15. package/dist/{chunk-644FVGIQ.js → chunk-WPMR7RQ4.js} +9 -2
  16. package/dist/{chunk-EMB6IZFT.js → chunk-XVNDDHAF.js} +20 -1
  17. package/dist/{risk-detector-plpgsql-HWKS4OLR.js → chunk-Y5ANTCKE.js} +3 -412
  18. package/dist/{chunk-CCW3PLQY.js → chunk-Z7A4BEWF.js} +1 -1
  19. package/dist/{ci-XY6IKEDC.js → ci-Z4525QW6.js} +2150 -488
  20. package/dist/{cli-UZA4RBNQ.js → cli-Q2XIQDRS.js} +72 -54
  21. package/dist/commands/ci/commands/ci-prod-db-operations.d.ts +6 -4
  22. package/dist/commands/ci/commands/ci-prod-types.d.ts +3 -0
  23. package/dist/commands/ci/commands/ci-prod-workflow.d.ts +1 -1
  24. package/dist/commands/ci/commands/ci-resolvers.d.ts +1 -1
  25. package/dist/commands/ci/commands/ci-supabase-local.d.ts +4 -0
  26. package/dist/commands/ci/machine/actors/build/build-and-playwright.d.ts +1 -1
  27. package/dist/commands/ci/machine/actors/db/collect-schema-stats.d.ts +11 -1
  28. package/dist/commands/ci/machine/actors/db/production-preview.d.ts +22 -4
  29. package/dist/commands/ci/machine/actors/db/schema-canonical-diff.d.ts +8 -1
  30. package/dist/commands/ci/machine/actors/db/sync-schema.d.ts +1 -0
  31. package/dist/commands/ci/machine/actors/finalize/index.d.ts +0 -1
  32. package/dist/commands/ci/machine/actors/index.d.ts +1 -1
  33. package/dist/commands/ci/machine/actors/setup/local.d.ts +2 -0
  34. package/dist/commands/ci/machine/actors/setup/pr-common.d.ts +3 -0
  35. package/dist/commands/ci/machine/actors/setup/pr-local.d.ts +2 -0
  36. package/dist/commands/ci/machine/commands/machine-runner.d.ts +5 -1
  37. package/dist/commands/ci/machine/commands/step-telemetry.d.ts +16 -0
  38. package/dist/commands/ci/machine/contract.d.ts +40 -0
  39. package/dist/commands/ci/machine/formatters/github-comment-types.d.ts +7 -2
  40. package/dist/commands/ci/machine/formatters/github-comment.d.ts +2 -1
  41. package/dist/commands/ci/machine/formatters/sections/final-comment.d.ts +2 -1
  42. package/dist/commands/ci/machine/formatters/sections/index.d.ts +1 -1
  43. package/dist/commands/ci/machine/formatters/summary.d.ts +4 -4
  44. package/dist/commands/ci/machine/guards.d.ts +4 -0
  45. package/dist/commands/ci/machine/helpers.d.ts +25 -0
  46. package/dist/commands/ci/machine/machine-state-helpers.d.ts +1 -1
  47. package/dist/commands/ci/machine/machine.d.ts +15 -8
  48. package/dist/commands/ci/machine/types.d.ts +9 -0
  49. package/dist/commands/ci/utils/ci-diagnostics.d.ts +67 -0
  50. package/dist/commands/ci/utils/ci-summary.d.ts +118 -0
  51. package/dist/commands/ci/utils/db-url-utils.d.ts +4 -77
  52. package/dist/commands/ci/utils/github-api.d.ts +14 -0
  53. package/dist/commands/db/apply/contract.d.ts +73 -0
  54. package/dist/commands/db/apply/helpers/alter-statement-parsers.d.ts +95 -0
  55. package/dist/commands/db/apply/helpers/data-compatibility-checker.d.ts +0 -61
  56. package/dist/commands/db/apply/helpers/function-plan-false-positive-filter.d.ts +36 -0
  57. package/dist/commands/db/apply/helpers/hazard-handler.d.ts +4 -4
  58. package/dist/commands/db/apply/helpers/index.d.ts +14 -5
  59. package/dist/commands/db/apply/helpers/partition-acl-cleaner.d.ts +3 -1
  60. package/dist/commands/db/apply/helpers/pg-schema-diff-helpers.d.ts +69 -6
  61. package/dist/commands/db/apply/helpers/plan-ast.d.ts +56 -0
  62. package/dist/commands/db/apply/helpers/plan-check-filter.d.ts +26 -0
  63. package/dist/commands/db/apply/helpers/plan-drop-protection.d.ts +43 -0
  64. package/dist/commands/db/apply/helpers/plan-ordering.d.ts +6 -0
  65. package/dist/commands/db/apply/helpers/plan-statement-parser.d.ts +39 -0
  66. package/dist/commands/db/apply/helpers/plan-validator.d.ts +8 -40
  67. package/dist/commands/db/apply/helpers/retry-logic.d.ts +1 -10
  68. package/dist/commands/db/apply/helpers/temp-db-bootstrap.d.ts +18 -0
  69. package/dist/commands/db/apply/helpers/temp-db-dsn.d.ts +14 -0
  70. package/dist/commands/db/apply/machine.d.ts +56 -32
  71. package/dist/commands/db/commands/db-apply-error.d.ts +5 -0
  72. package/dist/commands/db/commands/db-apply.d.ts +2 -0
  73. package/dist/commands/db/commands/db-sync/directory-placement-check.d.ts +4 -0
  74. package/dist/commands/db/commands/db-sync/error-classifier.d.ts +1 -1
  75. package/dist/commands/db/commands/db-sync/plan-boundary-reconciliation.d.ts +3 -0
  76. package/dist/commands/db/commands/db-sync/precheck-helpers.d.ts +18 -0
  77. package/dist/commands/db/commands/db-sync/production-precheck.d.ts +15 -0
  78. package/dist/commands/db/commands/db-sync/risk-scan-collectors.d.ts +11 -0
  79. package/dist/commands/db/commands/db-sync.d.ts +11 -5
  80. package/dist/commands/db/sync/contract.d.ts +80 -0
  81. package/dist/commands/db/sync/machine.d.ts +60 -1
  82. package/dist/commands/db/types.d.ts +5 -0
  83. package/dist/commands/db/utils/boundary-policy/rule-compiler.d.ts +2 -1
  84. package/dist/commands/db/utils/boundary-policy/types.d.ts +21 -0
  85. package/dist/commands/db/utils/boundary-policy-runtime.d.ts +12 -3
  86. package/dist/commands/db/utils/boundary-policy.d.ts +1 -1
  87. package/dist/commands/db/utils/db-target.d.ts +5 -3
  88. package/dist/commands/db/utils/declarative-dependency-collectors.d.ts +6 -0
  89. package/dist/commands/db/utils/declarative-dependency-contract.d.ts +78 -0
  90. package/dist/commands/db/utils/declarative-dependency-sql-utils.d.ts +49 -0
  91. package/dist/commands/db/utils/declarative-dependency-warning-governance.d.ts +24 -0
  92. package/dist/commands/db/utils/preflight-check.d.ts +1 -1
  93. package/dist/commands/db/utils/preflight-checks/declarative-dependency-checks.d.ts +4 -0
  94. package/dist/commands/db/utils/preflight-checks/idempotent-risk-checks.d.ts +4 -0
  95. package/dist/commands/db/utils/preflight-checks/schema-boundary-checks.d.ts +4 -0
  96. package/dist/commands/db/utils/preflight-checks/schema-risk-policy.d.ts +4 -0
  97. package/dist/commands/db/utils/preflight-checks/supabase-checks.d.ts +12 -0
  98. package/dist/commands/db/utils/psql.d.ts +23 -0
  99. package/dist/commands/db/utils/sql-table-extractor.d.ts +42 -1
  100. package/dist/commands/env/commands/setup/types.d.ts +1 -0
  101. package/dist/commands/env/constants/local-supabase.d.ts +4 -1
  102. package/dist/commands/observability.d.ts +72 -0
  103. package/dist/commands/observability.helpers.d.ts +25 -0
  104. package/dist/commands/template-check/contract.d.ts +3 -3
  105. package/dist/commands/template-check/machine.d.ts +1 -1
  106. package/dist/commands/workflow/commands/deploy-production.d.ts +0 -1
  107. package/dist/constants/versions.d.ts +1 -1
  108. package/dist/{db-Q3GF7JWP.js → db-BPQ2TEQM.js} +14361 -11076
  109. package/dist/{dev-5YXNPTCJ.js → dev-MLRKIP7F.js} +5 -5
  110. package/dist/{doctor-MZLOA53G.js → doctor-ROSWSMLH.js} +2 -2
  111. package/dist/{env-GMB3THRG.js → env-WNHJVLOT.js} +37 -20
  112. package/dist/{env-HMMRSYCI.js → env-XPPACZM4.js} +2 -2
  113. package/dist/{env-files-2UIUYLLR.js → env-files-HRNUGZ5O.js} +1 -1
  114. package/dist/{error-handler-HEXBRNVV.js → error-handler-YRQWRDEF.js} +17 -0
  115. package/dist/{hotfix-NDTPY2T4.js → hotfix-Z5EGVSMH.js} +4 -4
  116. package/dist/index.js +4 -4
  117. package/dist/{init-U4VCRHTD.js → init-S2ATHLJ6.js} +1 -1
  118. package/dist/{inject-test-attrs-P44BVTQS.js → inject-test-attrs-XN4I2AOR.js} +2 -2
  119. package/dist/internal/machines/index.d.ts +1 -1
  120. package/dist/internal/machines/snapshot-helpers.d.ts +6 -0
  121. package/dist/{manifest-TMFLESHW.js → manifest-EGCAZ4TK.js} +1 -1
  122. package/dist/observability-CJA5UFIC.js +721 -0
  123. package/dist/{risk-detector-4U6ZJ2G5.js → risk-detector-VO5HJR4R.js} +1 -1
  124. package/dist/{risk-detector-core-TK4OAI3N.js → risk-detector-core-7WZJZ5ZI.js} +61 -3
  125. package/dist/risk-detector-plpgsql-ULV7NLDB.js +638 -0
  126. package/dist/{template-check-FFJVDLBF.js → template-check-BDFMT6ZO.js} +1 -1
  127. package/dist/{upgrade-7TWORWBV.js → upgrade-BDUWBRT5.js} +1 -1
  128. package/dist/utils/db-url-utils.d.ts +81 -0
  129. package/dist/validators/risk-detector-plpgsql.d.ts +3 -1
  130. package/dist/{vuln-check-6CMNPSBR.js → vuln-check-66RXX3TO.js} +1 -1
  131. package/dist/{vuln-checker-EJJTNDNE.js → vuln-checker-FFOGOJPT.js} +1 -1
  132. package/dist/{watch-PNTKZYFB.js → watch-ITYW57SL.js} +1 -1
  133. package/dist/{workflow-H75N4BXX.js → workflow-UZIZ2JUS.js} +2 -3
  134. package/package.json +3 -3
  135. package/dist/chunk-AKZAN4BC.js +0 -90
  136. package/dist/commands/ci/machine/actors/finalize/summary.d.ts +0 -32
@@ -48,6 +48,7 @@ export declare const RepoKindSchema: z.ZodEnum<{
48
48
  }>;
49
49
  export type RepoKind = z.infer<typeof RepoKindSchema>;
50
50
  export declare const StepStatusSchema: z.ZodEnum<{
51
+ killed: "killed";
51
52
  timeout: "timeout";
52
53
  skipped: "skipped";
53
54
  failed: "failed";
@@ -116,6 +117,9 @@ export declare const CiInputSchema: z.ZodObject<{
116
117
  branchName: z.ZodOptional<z.ZodString>;
117
118
  skipStaticChecks: z.ZodOptional<z.ZodBoolean>;
118
119
  skipBuild: z.ZodOptional<z.ZodBoolean>;
120
+ skipLocalDbStart: z.ZodOptional<z.ZodBoolean>;
121
+ assumeSupabaseReady: z.ZodOptional<z.ZodBoolean>;
122
+ skipPlaywrightInstall: z.ZodOptional<z.ZodBoolean>;
119
123
  skipDbCodegen: z.ZodOptional<z.ZodBoolean>;
120
124
  failFast: z.ZodOptional<z.ZodString>;
121
125
  maxWaitSeconds: z.ZodOptional<z.ZodString>;
@@ -173,6 +177,8 @@ export type DbSetupResult = z.infer<typeof DbSetupResultSchema>;
173
177
  */
174
178
  export declare const RolesSetupResultSchema: z.ZodObject<{
175
179
  passed: z.ZodBoolean;
180
+ skipped: z.ZodOptional<z.ZodBoolean>;
181
+ skipReason: z.ZodOptional<z.ZodString>;
176
182
  appDatabaseUrl: z.ZodOptional<z.ZodString>;
177
183
  error: z.ZodOptional<z.ZodString>;
178
184
  }, z.core.$strip>;
@@ -266,6 +272,7 @@ export type FinalizeResult = z.infer<typeof FinalizeResultSchema>;
266
272
  */
267
273
  export declare const StepSummarySchema: z.ZodObject<{
268
274
  status: z.ZodEnum<{
275
+ killed: "killed";
269
276
  timeout: "timeout";
270
277
  skipped: "skipped";
271
278
  failed: "failed";
@@ -274,6 +281,22 @@ export declare const StepSummarySchema: z.ZodObject<{
274
281
  exitCode: z.ZodOptional<z.ZodNumber>;
275
282
  logPath: z.ZodOptional<z.ZodString>;
276
283
  error: z.ZodOptional<z.ZodString>;
284
+ reason: z.ZodOptional<z.ZodString>;
285
+ title: z.ZodOptional<z.ZodString>;
286
+ phase: z.ZodOptional<z.ZodEnum<{
287
+ db: "db";
288
+ test: "test";
289
+ build: "build";
290
+ setup: "setup";
291
+ github: "github";
292
+ observability: "observability";
293
+ finalize: "finalize";
294
+ }>>;
295
+ parentStep: z.ZodOptional<z.ZodString>;
296
+ optional: z.ZodOptional<z.ZodBoolean>;
297
+ startedAt: z.ZodOptional<z.ZodString>;
298
+ endedAt: z.ZodOptional<z.ZodString>;
299
+ durationMs: z.ZodOptional<z.ZodNumber>;
277
300
  }, z.core.$strip>;
278
301
  export type StepSummary = z.infer<typeof StepSummarySchema>;
279
302
  /**
@@ -322,6 +345,7 @@ export declare const CiOutputSchema: z.ZodObject<{
322
345
  }>;
323
346
  steps: z.ZodRecord<z.ZodString, z.ZodObject<{
324
347
  status: z.ZodEnum<{
348
+ killed: "killed";
325
349
  timeout: "timeout";
326
350
  skipped: "skipped";
327
351
  failed: "failed";
@@ -330,6 +354,22 @@ export declare const CiOutputSchema: z.ZodObject<{
330
354
  exitCode: z.ZodOptional<z.ZodNumber>;
331
355
  logPath: z.ZodOptional<z.ZodString>;
332
356
  error: z.ZodOptional<z.ZodString>;
357
+ reason: z.ZodOptional<z.ZodString>;
358
+ title: z.ZodOptional<z.ZodString>;
359
+ phase: z.ZodOptional<z.ZodEnum<{
360
+ db: "db";
361
+ test: "test";
362
+ build: "build";
363
+ setup: "setup";
364
+ github: "github";
365
+ observability: "observability";
366
+ finalize: "finalize";
367
+ }>>;
368
+ parentStep: z.ZodOptional<z.ZodString>;
369
+ optional: z.ZodOptional<z.ZodBoolean>;
370
+ startedAt: z.ZodOptional<z.ZodString>;
371
+ endedAt: z.ZodOptional<z.ZodString>;
372
+ durationMs: z.ZodOptional<z.ZodNumber>;
333
373
  }, z.core.$strip>>;
334
374
  layers: z.ZodRecord<z.ZodCoercedNumber<unknown>, z.ZodObject<{
335
375
  status: z.ZodEnum<{
@@ -5,11 +5,11 @@
5
5
  * Extracted from: github-comment.ts for better code organization
6
6
  */
7
7
  import type { ExpectedDriftEntry } from '../actors/db/schema-stats.js';
8
- import type { LayerResult, PrContext, ProductionPreview, SchemaDriftSnapshot, SchemaStatsSnapshot, SupabaseConnection } from '../types.js';
8
+ import type { CiPhase, LayerResult, PrContext, ProductionPreview, SchemaDriftSnapshot, SchemaStatsSnapshot, SupabaseConnection } from '../types.js';
9
9
  /**
10
10
  * CI step definition for progress tracking.
11
11
  */
12
- export type CiStep = 'setup' | 'syncSchema' | 'applySeeds' | 'staticChecks' | 'build' | 'runTests' | 'finalize';
12
+ export type CiStep = 'setup' | 'syncSchema' | 'applySeeds' | 'postSeedChecks' | 'observability' | 'staticChecks' | 'build' | 'runTests' | 'finalize';
13
13
  /**
14
14
  * Step status for progress display.
15
15
  */
@@ -27,6 +27,7 @@ export interface StepInfo {
27
27
  */
28
28
  export type StepTimings = Partial<Record<CiStep, number>>;
29
29
  export interface CommentInput {
30
+ phase: CiPhase;
30
31
  exitCode: 0 | 1 | 2;
31
32
  branchName: string | null;
32
33
  prContext: PrContext | null;
@@ -50,9 +51,11 @@ export interface CommentInput {
50
51
  * Input for progress comment generation.
51
52
  */
52
53
  export interface ProgressCommentInput {
54
+ phase: CiPhase;
53
55
  currentStep: CiStep;
54
56
  completedSteps: CiStep[];
55
57
  failedStep: CiStep | null;
58
+ skippedSteps?: CiStep[];
56
59
  branchName: string | null;
57
60
  prContext: PrContext | null;
58
61
  supabase: SupabaseConnection | null;
@@ -87,4 +90,6 @@ export declare const CI_STEPS: Array<{
87
90
  * Blocking layers for DB deploy (0-3).
88
91
  */
89
92
  export declare const BLOCKING_LAYERS: number[];
93
+ export declare const CI_OBSERVABILITY_SECTION_START_MARKER = "<!-- runa-ci-observability:start -->";
94
+ export declare const CI_OBSERVABILITY_SECTION_END_MARKER = "<!-- runa-ci-observability:end -->";
90
95
  //# sourceMappingURL=github-comment-types.d.ts.map
@@ -18,7 +18,8 @@
18
18
  import type { CiContext } from '../types.js';
19
19
  import type { CiStep, CommentInput, ProgressCommentInput, StepTimings } from './github-comment-types.js';
20
20
  export type { CiStep, ProgressCommentInput, StepInfo, StepStatus, StepTimings, } from './github-comment-types.js';
21
- export { generateCommentBody, generateProgressCommentBody, getGitHubEnv, } from './sections/index.js';
21
+ export { CI_OBSERVABILITY_SECTION_END_MARKER, CI_OBSERVABILITY_SECTION_START_MARKER, } from './github-comment-types.js';
22
+ export { generateCommentBody, generateObservabilitySectionBody, generateProgressCommentBody, getGitHubEnv, } from './sections/index.js';
22
23
  /**
23
24
  * Options for intermediate comment generation.
24
25
  */
@@ -6,7 +6,8 @@
6
6
  *
7
7
  * Usage: Called by upsertComment actor at CI completion
8
8
  */
9
- import type { CommentInput } from '../github-comment-types.js';
9
+ import { type CommentInput } from '../github-comment-types.js';
10
+ export declare function generateObservabilitySectionBody(input: CommentInput): string;
10
11
  /**
11
12
  * Generate GitHub PR comment body from CI context (final result or intermediate).
12
13
  */
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Purpose: Export all section generators for GitHub PR comments
5
5
  */
6
- export { generateCommentBody } from './final-comment.js';
6
+ export { generateCommentBody, generateObservabilitySectionBody } from './final-comment.js';
7
7
  export { BLOCKING_LAYERS, checkBlockingLayersPassed, formatDuration, formatGitDiffDetails, formatLayerResults, formatSingleLayer, formatSqlDetails, getGitHubEnv, getStatusIcon, } from './format-helpers.js';
8
8
  export { generateProgressCommentBody } from './progress-comment.js';
9
9
  export { formatSchemaMatrix } from './schema-matrix.js';
@@ -5,15 +5,15 @@
5
5
  * Pattern: Pure function - takes context data, returns structured summary
6
6
  *
7
7
  * Usage:
8
- * - Called by writeSummary actor in finalize state
9
- * - Generates structured summary for CI result artifacts
8
+ * - Called by machine finalization to prepare CI result artifacts
9
+ * - Generates structured summary before runner-level persistence
10
10
  *
11
11
  * blockingPolicy:
12
12
  * - Computed from layer results + runa-strict classification
13
13
  * - dbDeployAllowed: true if all blocking layers (0-3) passed
14
14
  * - Used by /deploy-db workflow to gate production DB deploys
15
15
  */
16
- import type { CiSummary } from '../actors/finalize/summary.js';
16
+ import type { CiSummary } from '../../utils/ci-summary.js';
17
17
  import type { CiContext } from '../types.js';
18
18
  export interface WriteSummaryInput {
19
19
  cwd: string;
@@ -21,7 +21,7 @@ export interface WriteSummaryInput {
21
21
  }
22
22
  /**
23
23
  * Create summary input from CI context.
24
- * Use this in machine.ts to generate the writeSummary actor input.
24
+ * Use this in machine.ts / runner completion to build the final summary payload.
25
25
  */
26
26
  export declare function createSummaryInput(context: CiContext): WriteSummaryInput;
27
27
  //# sourceMappingURL=summary.d.ts.map
@@ -91,6 +91,10 @@ export declare function shouldSetupRoles(context: CiContext): boolean;
91
91
  * Check if GitHub comment should be posted.
92
92
  */
93
93
  export declare function shouldPostGitHubComment(context: CiContext): boolean;
94
+ /**
95
+ * Check if ci-pr is running in test-only phase.
96
+ */
97
+ export declare function isTestPhase(context: CiContext): boolean;
94
98
  /**
95
99
  * Check if context has an error.
96
100
  */
@@ -15,6 +15,11 @@ import type { CiContext } from './types.js';
15
15
  export declare const CORE_LAYERS: readonly [1, 2, 3];
16
16
  /** E2E layer (warning): 4 */
17
17
  export declare const E2E_LAYER = 4;
18
+ export type ExecutionOwner = 'sdk' | 'external';
19
+ type OwnershipContext = {
20
+ input: Pick<CiContext['input'], 'skipLocalDbStart' | 'assumeSupabaseReady' | 'skipPlaywrightInstall'>;
21
+ diagnostics: Pick<CiContext['diagnostics'], 'setup'>;
22
+ };
18
23
  /**
19
24
  * Get layers to run in the core test phase.
20
25
  *
@@ -29,6 +34,25 @@ export declare function getLayersForCorePhase(selectedLayers: number[], mode: st
29
34
  * Check if E2E layer (4) is selected.
30
35
  */
31
36
  export declare function hasE2ELayer(selectedLayers: number[]): boolean;
37
+ export declare function getRuntimeOwner(context: OwnershipContext): ExecutionOwner;
38
+ export declare function shouldReusePreparedRuntime(context: OwnershipContext): boolean;
39
+ export declare function getPlaywrightOwner(context: OwnershipContext): ExecutionOwner;
40
+ export declare function shouldReusePreparedPlaywright(context: OwnershipContext): boolean;
41
+ /**
42
+ * Check whether the current run includes schema file changes.
43
+ *
44
+ * This relies on syncSchema actor's git diff snapshot, which compares
45
+ * `supabase/schemas/**` against the PR base branch.
46
+ */
47
+ export declare function hasSchemaGitChanges(context: CiContext): boolean;
48
+ /**
49
+ * Skip the expensive post-apply check in GitHub Actions PR preview runs.
50
+ *
51
+ * Preview CI always starts from a fresh local Supabase instance on an ephemeral
52
+ * runner, so re-running `db apply --check` immediately after a successful apply
53
+ * does not add meaningful signal on the critical path.
54
+ */
55
+ export declare function shouldSkipSchemaPostCheck(context: CiContext): boolean;
32
56
  /**
33
57
  * Determine whether schema stats can safely reuse the synced CI database
34
58
  * instead of rebuilding a temporary reference database.
@@ -123,4 +147,5 @@ export declare function computeExitCodeFromLayerResults(layerResults: Record<num
123
147
  status: string;
124
148
  exitCode: number;
125
149
  }>): 0 | 1 | 2;
150
+ export {};
126
151
  //# sourceMappingURL=helpers.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import type { LayerContentResult } from '../commands/ci-layer-content.js';
2
2
  import type { UpsertCommentInput } from './actors/finalize/github.js';
3
- import type { WriteSummaryInput } from './actors/finalize/summary.js';
4
3
  import type { RunLayersInput } from './actors/test/run-layers.js';
4
+ import { type WriteSummaryInput } from './formatters/summary.js';
5
5
  import type { CiContext } from './types.js';
6
6
  export declare const CI_COMMENT_MARKER = "<!-- runa-ci-report -->";
7
7
  export declare function filterRunnableLayers(selectedLayers: number[], layerContent: LayerContentResult | null | undefined): number[];
@@ -47,7 +47,7 @@
47
47
  import { type SnapshotFrom } from 'xstate';
48
48
  import type { CiContext, CiEvent } from './types.js';
49
49
  export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent, {
50
- [x: string]: import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").StaticChecksOutput, import("./index.js").StaticChecksInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").CapabilitiesOutput, import("./index.js").CapabilitiesInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").AppStartOutput, import("./index.js").AppStartInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").PlaywrightInstallOutput, import("./index.js").PlaywrightInstallInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").SyncSchemaOutput, import("./index.js").SyncSchemaInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ApplySeedsOutput, import("./index.js").ApplySeedsInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ProductionPreviewOutput, import("./index.js").ProductionPreviewInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./actors/setup/local.js").LocalSetupOutput, import("./actors/setup/local.js").LocalSetupInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./actors/setup/pr-local.js").PrLocalSetupOutput, import("./actors/setup/pr-local.js").PrLocalSetupInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ResetDbOutput, import("./index.js").ResetDbInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").PullProductionOutput, import("./index.js").PullProductionInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").CollectSchemaStatsOutput, import("./index.js").CollectSchemaStatsInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").SetupRolesOutput, import("./index.js").SetupRolesInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").InstallPgTapOutput, import("./index.js").InstallPgTapInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").AppBuildOutput, import("./index.js").AppBuildInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").BuildAndPlaywrightOutput, import("./index.js").BuildAndPlaywrightInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").RunLayersOutput, import("./index.js").RunLayersInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").WriteSummaryOutput, import("./index.js").WriteSummaryInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").UpsertCommentOutput, import("./index.js").UpsertCommentInput, import("xstate").EventObject>> | undefined;
50
+ [x: string]: import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").StaticChecksOutput, import("./index.js").StaticChecksInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").CapabilitiesOutput, import("./index.js").CapabilitiesInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").AppStartOutput, import("./index.js").AppStartInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").PlaywrightInstallOutput, import("./index.js").PlaywrightInstallInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").SyncSchemaOutput, import("./index.js").SyncSchemaInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ApplySeedsOutput, import("./index.js").ApplySeedsInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ProductionPreviewOutput, import("./index.js").ProductionPreviewInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./actors/setup/local.js").LocalSetupOutput, import("./actors/setup/local.js").LocalSetupInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./actors/setup/pr-local.js").PrLocalSetupOutput, import("./actors/setup/pr-local.js").PrLocalSetupInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").ResetDbOutput, import("./index.js").ResetDbInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").PullProductionOutput, import("./index.js").PullProductionInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").CollectSchemaStatsOutput, import("./index.js").CollectSchemaStatsInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").SetupRolesOutput, import("./index.js").SetupRolesInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").InstallPgTapOutput, import("./index.js").InstallPgTapInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").AppBuildOutput, import("./index.js").AppBuildInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").BuildAndPlaywrightOutput, import("./index.js").BuildAndPlaywrightInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").RunLayersOutput, import("./index.js").RunLayersInput, import("xstate").EventObject>> | import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<import("./index.js").UpsertCommentOutput, import("./index.js").UpsertCommentInput, import("xstate").EventObject>> | undefined;
51
51
  }, {
52
52
  src: "staticChecks";
53
53
  logic: import("xstate").PromiseActorLogic<import("./index.js").StaticChecksOutput, import("./index.js").StaticChecksInput, import("xstate").EventObject>;
@@ -116,10 +116,6 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
116
116
  src: "runLayers";
117
117
  logic: import("xstate").PromiseActorLogic<import("./index.js").RunLayersOutput, import("./index.js").RunLayersInput, import("xstate").EventObject>;
118
118
  id: string | undefined;
119
- } | {
120
- src: "writeSummary";
121
- logic: import("xstate").PromiseActorLogic<import("./index.js").WriteSummaryOutput, import("./index.js").WriteSummaryInput, import("xstate").EventObject>;
122
- id: string | undefined;
123
119
  } | {
124
120
  src: "upsertComment";
125
121
  logic: import("xstate").PromiseActorLogic<import("./index.js").UpsertCommentOutput, import("./index.js").UpsertCommentInput, import("xstate").EventObject>;
@@ -172,16 +168,16 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
172
168
  }, never, "done" | "failed" | "staticChecks" | "idle" | "capabilities" | "appStart" | "syncSchema" | "applySeeds" | "productionPreview" | "pullProduction" | "collectSchemaStats" | "setupRoles" | "installPgTap" | "buildAndPlaywright" | "initialComment" | "dbReset" | "runCoreTests" | "coreTestsFailed" | "coreTestsComplete" | "decidePath" | {
173
169
  setup: "local" | "resolving" | "prLocal" | "complete";
174
170
  } | {
175
- finalize: "writeSummary" | "complete" | "postComment";
171
+ finalize: "complete" | "writeSummary" | "postComment";
176
172
  } | {
177
173
  postSeedPr: {
174
+ observability: "done" | "productionPreview" | "collectSchemaStats";
178
175
  execution: "done" | "failed" | "staticChecks" | "capabilities" | "appStart" | "setupRoles" | "buildAndPlaywright" | "runCoreTests" | "coreTestsFailed" | "coreTestsComplete" | {
179
176
  e2ePhase: {
180
177
  intermediateComment: "done" | "checking" | "posting";
181
178
  e2eTests: "done" | "running";
182
179
  };
183
180
  };
184
- observability: "done" | "productionPreview" | "collectSchemaStats";
185
181
  };
186
182
  } | {
187
183
  e2ePhase: {
@@ -219,6 +215,9 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
219
215
  branchName?: string | undefined;
220
216
  skipStaticChecks?: boolean | undefined;
221
217
  skipBuild?: boolean | undefined;
218
+ skipLocalDbStart?: boolean | undefined;
219
+ assumeSupabaseReady?: boolean | undefined;
220
+ skipPlaywrightInstall?: boolean | undefined;
222
221
  skipDbCodegen?: boolean | undefined;
223
222
  failFast?: string | undefined;
224
223
  maxWaitSeconds?: string | undefined;
@@ -231,10 +230,18 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
231
230
  status: "success" | "timeout" | "failure" | "cancelled";
232
231
  repoKind: "unknown" | "monorepo" | "pj-repo";
233
232
  steps: Record<string, {
234
- status: "timeout" | "skipped" | "failed" | "passed";
233
+ status: "killed" | "timeout" | "skipped" | "failed" | "passed";
235
234
  exitCode?: number | undefined;
236
235
  logPath?: string | undefined;
237
236
  error?: string | undefined;
237
+ reason?: string | undefined;
238
+ title?: string | undefined;
239
+ phase?: "db" | "test" | "build" | "setup" | "github" | "observability" | "finalize" | undefined;
240
+ parentStep?: string | undefined;
241
+ optional?: boolean | undefined;
242
+ startedAt?: string | undefined;
243
+ endedAt?: string | undefined;
244
+ durationMs?: number | undefined;
238
245
  }>;
239
246
  layers: Record<number, {
240
247
  status: "killed" | "timeout" | "skipped" | "failed" | "passed";
@@ -13,6 +13,7 @@
13
13
  * - types.ts: Re-exports + machine-specific types (CiContext, CiEvent)
14
14
  */
15
15
  import type { CiSummary } from '../utils/ci-summary.js';
16
+ import type { CiDiagnostics } from '../utils/ci-diagnostics.js';
16
17
  import type { ExpectedDriftEntry, SchemaStatsSnapshot } from './actors/db/schema-stats.js';
17
18
  import type { CiDbMode as _CiDbMode, CiExecutionEnv as _CiExecutionEnv, CiInput as _CiInput, CiMode as _CiMode, CiOutput as _CiOutput, CiPhase as _CiPhase, CiPrPolicy as _CiPrPolicy, DetectedApp as _DetectedApp, LayerSummary as _LayerResult, LayerStatus as _LayerStatus, PrContext as _PrContext, RepoKind as _RepoKind, StepSummary as _StepResult, StepStatus as _StepStatus, SupabaseConnection as _SupabaseConnection } from './contract.js';
18
19
  export type CiMode = _CiMode;
@@ -30,6 +31,10 @@ export type CiPrPolicy = _CiPrPolicy;
30
31
  export type SupabaseConnection = _SupabaseConnection;
31
32
  export type StepResult = _StepResult;
32
33
  export type LayerResult = _LayerResult;
34
+ export interface StepOverride {
35
+ status?: StepStatus;
36
+ reason?: string;
37
+ }
33
38
  export type { ExpectedDriftEntry, SchemaStatsSnapshot } from './actors/db/schema-stats.js';
34
39
  /**
35
40
  * Schema change statistics extracted from SQL diff.
@@ -185,8 +190,12 @@ export interface CiContext {
185
190
  testsRun: boolean;
186
191
  /** Skip reasons for layers without content (layer number → reason) */
187
192
  layerSkipReasons: Record<number, string>;
193
+ /** Summary-specific overrides for tracked steps (status/reason) */
194
+ stepOverrides: Record<string, StepOverride>;
188
195
  /** CI summary for reporting */
189
196
  summary: CiSummary | null;
197
+ /** Machine-readable diagnostics for setup/wait behavior */
198
+ diagnostics: CiDiagnostics;
190
199
  /** Summary file path */
191
200
  summaryPath: string | null;
192
201
  /** Schema drift snapshot (ci-pr modes only) */
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ export declare const ExecutionOwnerSchema: z.ZodEnum<{
3
+ external: "external";
4
+ sdk: "sdk";
5
+ }>;
6
+ export type ExecutionOwner = z.output<typeof ExecutionOwnerSchema>;
7
+ export declare const SupabaseResolutionStrategySchema: z.ZodEnum<{
8
+ "assume-ready": "assume-ready";
9
+ "status-polling": "status-polling";
10
+ "fallback-default": "fallback-default";
11
+ }>;
12
+ export declare const SupabaseResolutionSourceSchema: z.ZodEnum<{
13
+ "assumed-local-config": "assumed-local-config";
14
+ "status-json": "status-json";
15
+ "default-fallback": "default-fallback";
16
+ }>;
17
+ export declare const SupabaseResolutionDiagnosticsSchema: z.ZodObject<{
18
+ strategy: z.ZodEnum<{
19
+ "assume-ready": "assume-ready";
20
+ "status-polling": "status-polling";
21
+ "fallback-default": "fallback-default";
22
+ }>;
23
+ finalSource: z.ZodEnum<{
24
+ "assumed-local-config": "assumed-local-config";
25
+ "status-json": "status-json";
26
+ "default-fallback": "default-fallback";
27
+ }>;
28
+ attempts: z.ZodNumber;
29
+ maxAttempts: z.ZodNumber;
30
+ sleepSeconds: z.ZodNumber;
31
+ waitedMs: z.ZodNumber;
32
+ retriesExhausted: z.ZodOptional<z.ZodBoolean>;
33
+ lastError: z.ZodOptional<z.ZodString>;
34
+ }, z.core.$strict>;
35
+ export type SupabaseResolutionDiagnostics = z.output<typeof SupabaseResolutionDiagnosticsSchema>;
36
+ export declare const CiDiagnosticsSchema: z.ZodObject<{
37
+ setup: z.ZodOptional<z.ZodObject<{
38
+ runtimeOwner: z.ZodOptional<z.ZodEnum<{
39
+ external: "external";
40
+ sdk: "sdk";
41
+ }>>;
42
+ playwrightOwner: z.ZodOptional<z.ZodEnum<{
43
+ external: "external";
44
+ sdk: "sdk";
45
+ }>>;
46
+ supabase: z.ZodOptional<z.ZodObject<{
47
+ strategy: z.ZodEnum<{
48
+ "assume-ready": "assume-ready";
49
+ "status-polling": "status-polling";
50
+ "fallback-default": "fallback-default";
51
+ }>;
52
+ finalSource: z.ZodEnum<{
53
+ "assumed-local-config": "assumed-local-config";
54
+ "status-json": "status-json";
55
+ "default-fallback": "default-fallback";
56
+ }>;
57
+ attempts: z.ZodNumber;
58
+ maxAttempts: z.ZodNumber;
59
+ sleepSeconds: z.ZodNumber;
60
+ waitedMs: z.ZodNumber;
61
+ retriesExhausted: z.ZodOptional<z.ZodBoolean>;
62
+ lastError: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strict>>;
64
+ }, z.core.$strict>>;
65
+ }, z.core.$strict>;
66
+ export type CiDiagnostics = z.output<typeof CiDiagnosticsSchema>;
67
+ //# sourceMappingURL=ci-diagnostics.d.ts.map
@@ -53,6 +53,36 @@ export declare const CiSummarySchema: z.ZodObject<{
53
53
  "pj-repo": "pj-repo";
54
54
  }>;
55
55
  detected: z.ZodRecord<z.ZodString, z.ZodUnknown>;
56
+ diagnostics: z.ZodDefault<z.ZodObject<{
57
+ setup: z.ZodOptional<z.ZodObject<{
58
+ runtimeOwner: z.ZodOptional<z.ZodEnum<{
59
+ external: "external";
60
+ sdk: "sdk";
61
+ }>>;
62
+ playwrightOwner: z.ZodOptional<z.ZodEnum<{
63
+ external: "external";
64
+ sdk: "sdk";
65
+ }>>;
66
+ supabase: z.ZodOptional<z.ZodObject<{
67
+ strategy: z.ZodEnum<{
68
+ "assume-ready": "assume-ready";
69
+ "status-polling": "status-polling";
70
+ "fallback-default": "fallback-default";
71
+ }>;
72
+ finalSource: z.ZodEnum<{
73
+ "assumed-local-config": "assumed-local-config";
74
+ "status-json": "status-json";
75
+ "default-fallback": "default-fallback";
76
+ }>;
77
+ attempts: z.ZodNumber;
78
+ maxAttempts: z.ZodNumber;
79
+ sleepSeconds: z.ZodNumber;
80
+ waitedMs: z.ZodNumber;
81
+ retriesExhausted: z.ZodOptional<z.ZodBoolean>;
82
+ lastError: z.ZodOptional<z.ZodString>;
83
+ }, z.core.$strict>>;
84
+ }, z.core.$strict>>;
85
+ }, z.core.$strict>>;
56
86
  steps: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
57
87
  status: z.ZodEnum<{
58
88
  killed: "killed";
@@ -63,6 +93,23 @@ export declare const CiSummarySchema: z.ZodObject<{
63
93
  }>;
64
94
  exitCode: z.ZodOptional<z.ZodNumber>;
65
95
  logPath: z.ZodOptional<z.ZodString>;
96
+ error: z.ZodOptional<z.ZodString>;
97
+ reason: z.ZodOptional<z.ZodString>;
98
+ title: z.ZodOptional<z.ZodString>;
99
+ phase: z.ZodOptional<z.ZodEnum<{
100
+ db: "db";
101
+ test: "test";
102
+ build: "build";
103
+ setup: "setup";
104
+ github: "github";
105
+ observability: "observability";
106
+ finalize: "finalize";
107
+ }>>;
108
+ parentStep: z.ZodOptional<z.ZodString>;
109
+ optional: z.ZodOptional<z.ZodBoolean>;
110
+ startedAt: z.ZodOptional<z.ZodString>;
111
+ endedAt: z.ZodOptional<z.ZodString>;
112
+ durationMs: z.ZodOptional<z.ZodNumber>;
66
113
  }, z.core.$strict>>>;
67
114
  layers: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
68
115
  status: z.ZodEnum<{
@@ -89,6 +136,77 @@ export declare const CiSummarySchema: z.ZodObject<{
89
136
  step: z.ZodString;
90
137
  details: z.ZodOptional<z.ZodString>;
91
138
  }, z.core.$strict>>>;
139
+ dbOutcome: z.ZodOptional<z.ZodObject<{
140
+ command: z.ZodString;
141
+ exitMode: z.ZodEnum<{
142
+ success: "success";
143
+ success_with_warnings: "success_with_warnings";
144
+ failed: "failed";
145
+ timeout: "timeout";
146
+ cancelled: "cancelled";
147
+ }>;
148
+ startedAt: z.ZodString;
149
+ endedAt: z.ZodString;
150
+ durationMs: z.ZodNumber;
151
+ phases: z.ZodArray<z.ZodObject<{
152
+ id: z.ZodString;
153
+ label: z.ZodString;
154
+ status: z.ZodEnum<{
155
+ failed: "failed";
156
+ timeout: "timeout";
157
+ cancelled: "cancelled";
158
+ pending: "pending";
159
+ running: "running";
160
+ passed: "passed";
161
+ warning: "warning";
162
+ skipped: "skipped";
163
+ }>;
164
+ startedAt: z.ZodOptional<z.ZodString>;
165
+ endedAt: z.ZodOptional<z.ZodString>;
166
+ durationMs: z.ZodOptional<z.ZodNumber>;
167
+ timeoutMs: z.ZodOptional<z.ZodNumber>;
168
+ warningCount: z.ZodOptional<z.ZodNumber>;
169
+ error: z.ZodOptional<z.ZodObject<{
170
+ code: z.ZodString;
171
+ message: z.ZodString;
172
+ statusCode: z.ZodOptional<z.ZodNumber>;
173
+ retryable: z.ZodBoolean;
174
+ retryAfterMs: z.ZodOptional<z.ZodNumber>;
175
+ phase: z.ZodOptional<z.ZodString>;
176
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
177
+ }, z.core.$strict>>;
178
+ warnings: z.ZodOptional<z.ZodArray<z.ZodObject<{
179
+ code: z.ZodString;
180
+ message: z.ZodString;
181
+ phase: z.ZodString;
182
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
183
+ }, z.core.$strict>>>;
184
+ metrics: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
185
+ }, z.core.$strict>>;
186
+ warnings: z.ZodArray<z.ZodObject<{
187
+ code: z.ZodString;
188
+ message: z.ZodString;
189
+ phase: z.ZodString;
190
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
191
+ }, z.core.$strict>>;
192
+ errors: z.ZodArray<z.ZodObject<{
193
+ code: z.ZodString;
194
+ message: z.ZodString;
195
+ statusCode: z.ZodOptional<z.ZodNumber>;
196
+ retryable: z.ZodBoolean;
197
+ retryAfterMs: z.ZodOptional<z.ZodNumber>;
198
+ phase: z.ZodOptional<z.ZodString>;
199
+ details: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
200
+ }, z.core.$strict>>;
201
+ summary: z.ZodObject<{
202
+ passed: z.ZodNumber;
203
+ warnings: z.ZodNumber;
204
+ failed: z.ZodNumber;
205
+ skipped: z.ZodNumber;
206
+ timedOut: z.ZodNumber;
207
+ }, z.core.$strict>;
208
+ nextActions: z.ZodOptional<z.ZodArray<z.ZodString>>;
209
+ }, z.core.$strict>>;
92
210
  blockingPolicy: z.ZodOptional<z.ZodObject<{
93
211
  profile: z.ZodOptional<z.ZodEnum<{
94
212
  "runa-strict": "runa-strict";