@runa-ai/runa-cli 0.7.0 → 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 (139) hide show
  1. package/dist/{build-V66FAQXB.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-AIP6MR42.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-XVNDDHAF.js +65 -0
  17. package/dist/{risk-detector-plpgsql-HWKS4OLR.js → chunk-Y5ANTCKE.js} +3 -412
  18. package/dist/{chunk-SGJG3BKD.js → chunk-Z7A4BEWF.js} +1 -1
  19. package/dist/{ci-ZWRVWNFX.js → ci-Z4525QW6.js} +3095 -709
  20. package/dist/{cli-2JNBJUBB.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 +15 -2
  28. package/dist/commands/ci/machine/actors/db/production-preview.d.ts +32 -4
  29. package/dist/commands/ci/machine/actors/db/schema-canonical-diff.d.ts +30 -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 +6 -0
  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/sections/production-schema-status.d.ts +30 -0
  44. package/dist/commands/ci/machine/formatters/summary.d.ts +4 -4
  45. package/dist/commands/ci/machine/guards.d.ts +4 -0
  46. package/dist/commands/ci/machine/helpers.d.ts +33 -0
  47. package/dist/commands/ci/machine/machine-state-helpers.d.ts +1 -1
  48. package/dist/commands/ci/machine/machine.d.ts +71 -11
  49. package/dist/commands/ci/machine/types.d.ts +9 -0
  50. package/dist/commands/ci/utils/ci-diagnostics.d.ts +67 -0
  51. package/dist/commands/ci/utils/ci-summary.d.ts +118 -0
  52. package/dist/commands/ci/utils/db-url-utils.d.ts +4 -77
  53. package/dist/commands/ci/utils/github-api.d.ts +14 -0
  54. package/dist/commands/db/apply/contract.d.ts +73 -0
  55. package/dist/commands/db/apply/helpers/alter-statement-parsers.d.ts +95 -0
  56. package/dist/commands/db/apply/helpers/data-compatibility-checker.d.ts +0 -61
  57. package/dist/commands/db/apply/helpers/function-plan-false-positive-filter.d.ts +36 -0
  58. package/dist/commands/db/apply/helpers/hazard-handler.d.ts +4 -4
  59. package/dist/commands/db/apply/helpers/index.d.ts +14 -5
  60. package/dist/commands/db/apply/helpers/partition-acl-cleaner.d.ts +3 -1
  61. package/dist/commands/db/apply/helpers/pg-schema-diff-helpers.d.ts +69 -6
  62. package/dist/commands/db/apply/helpers/plan-ast.d.ts +56 -0
  63. package/dist/commands/db/apply/helpers/plan-check-filter.d.ts +26 -0
  64. package/dist/commands/db/apply/helpers/plan-drop-protection.d.ts +43 -0
  65. package/dist/commands/db/apply/helpers/plan-ordering.d.ts +6 -0
  66. package/dist/commands/db/apply/helpers/plan-statement-parser.d.ts +39 -0
  67. package/dist/commands/db/apply/helpers/plan-validator.d.ts +8 -40
  68. package/dist/commands/db/apply/helpers/retry-logic.d.ts +1 -10
  69. package/dist/commands/db/apply/helpers/temp-db-bootstrap.d.ts +18 -0
  70. package/dist/commands/db/apply/helpers/temp-db-dsn.d.ts +14 -0
  71. package/dist/commands/db/apply/machine.d.ts +56 -32
  72. package/dist/commands/db/commands/db-apply-error.d.ts +5 -0
  73. package/dist/commands/db/commands/db-apply.d.ts +2 -0
  74. package/dist/commands/db/commands/db-sync/directory-placement-check.d.ts +4 -0
  75. package/dist/commands/db/commands/db-sync/error-classifier.d.ts +1 -1
  76. package/dist/commands/db/commands/db-sync/plan-boundary-reconciliation.d.ts +3 -0
  77. package/dist/commands/db/commands/db-sync/precheck-helpers.d.ts +18 -0
  78. package/dist/commands/db/commands/db-sync/production-precheck.d.ts +15 -0
  79. package/dist/commands/db/commands/db-sync/risk-scan-collectors.d.ts +11 -0
  80. package/dist/commands/db/commands/db-sync.d.ts +11 -5
  81. package/dist/commands/db/sync/contract.d.ts +80 -0
  82. package/dist/commands/db/sync/machine.d.ts +60 -1
  83. package/dist/commands/db/types.d.ts +5 -0
  84. package/dist/commands/db/utils/boundary-policy/rule-compiler.d.ts +2 -1
  85. package/dist/commands/db/utils/boundary-policy/types.d.ts +21 -0
  86. package/dist/commands/db/utils/boundary-policy-runtime.d.ts +12 -3
  87. package/dist/commands/db/utils/boundary-policy.d.ts +1 -1
  88. package/dist/commands/db/utils/db-target.d.ts +5 -3
  89. package/dist/commands/db/utils/declarative-dependency-collectors.d.ts +6 -0
  90. package/dist/commands/db/utils/declarative-dependency-contract.d.ts +78 -0
  91. package/dist/commands/db/utils/declarative-dependency-sql-utils.d.ts +49 -0
  92. package/dist/commands/db/utils/declarative-dependency-warning-governance.d.ts +24 -0
  93. package/dist/commands/db/utils/preflight-check.d.ts +1 -1
  94. package/dist/commands/db/utils/preflight-checks/declarative-dependency-checks.d.ts +4 -0
  95. package/dist/commands/db/utils/preflight-checks/idempotent-risk-checks.d.ts +4 -0
  96. package/dist/commands/db/utils/preflight-checks/schema-boundary-checks.d.ts +4 -0
  97. package/dist/commands/db/utils/preflight-checks/schema-risk-policy.d.ts +4 -0
  98. package/dist/commands/db/utils/preflight-checks/supabase-checks.d.ts +12 -0
  99. package/dist/commands/db/utils/psql.d.ts +23 -0
  100. package/dist/commands/db/utils/sql-table-extractor.d.ts +42 -1
  101. package/dist/commands/env/commands/setup/types.d.ts +1 -0
  102. package/dist/commands/env/constants/local-supabase.d.ts +4 -1
  103. package/dist/commands/observability.d.ts +72 -0
  104. package/dist/commands/observability.helpers.d.ts +25 -0
  105. package/dist/commands/template-check/commands/template-check.d.ts +1 -0
  106. package/dist/commands/template-check/contract.d.ts +4 -3
  107. package/dist/commands/template-check/machine.d.ts +1 -1
  108. package/dist/commands/workflow/commands/deploy-production.d.ts +0 -1
  109. package/dist/constants/versions.d.ts +1 -1
  110. package/dist/{db-XULCILOU.js → db-BPQ2TEQM.js} +14618 -11273
  111. package/dist/{dev-5YXNPTCJ.js → dev-MLRKIP7F.js} +5 -5
  112. package/dist/{doctor-MZLOA53G.js → doctor-ROSWSMLH.js} +2 -2
  113. package/dist/{env-SS66PZ4B.js → env-WNHJVLOT.js} +37 -20
  114. package/dist/{env-HMMRSYCI.js → env-XPPACZM4.js} +2 -2
  115. package/dist/{env-files-2UIUYLLR.js → env-files-HRNUGZ5O.js} +1 -1
  116. package/dist/{error-handler-HEXBRNVV.js → error-handler-YRQWRDEF.js} +17 -0
  117. package/dist/{hotfix-YA3DGLOM.js → hotfix-Z5EGVSMH.js} +4 -4
  118. package/dist/index.js +4 -4
  119. package/dist/{init-ZIL6LRFO.js → init-S2ATHLJ6.js} +1 -1
  120. package/dist/{inject-test-attrs-P44BVTQS.js → inject-test-attrs-XN4I2AOR.js} +2 -2
  121. package/dist/internal/machines/index.d.ts +1 -1
  122. package/dist/internal/machines/snapshot-helpers.d.ts +6 -0
  123. package/dist/{manifest-TMFLESHW.js → manifest-EGCAZ4TK.js} +1 -1
  124. package/dist/observability-CJA5UFIC.js +721 -0
  125. package/dist/{risk-detector-4U6ZJ2G5.js → risk-detector-VO5HJR4R.js} +1 -1
  126. package/dist/{risk-detector-core-TK4OAI3N.js → risk-detector-core-7WZJZ5ZI.js} +61 -3
  127. package/dist/risk-detector-plpgsql-ULV7NLDB.js +638 -0
  128. package/dist/{template-check-3P4HZXVY.js → template-check-BDFMT6ZO.js} +23 -6
  129. package/dist/{upgrade-NUK3ZBCL.js → upgrade-BDUWBRT5.js} +1 -1
  130. package/dist/utils/db-url-utils.d.ts +81 -0
  131. package/dist/validators/risk-detector-plpgsql.d.ts +3 -1
  132. package/dist/{vuln-check-2W7N5TA2.js → vuln-check-66RXX3TO.js} +1 -1
  133. package/dist/{vuln-checker-IQJ56RUV.js → vuln-checker-FFOGOJPT.js} +1 -1
  134. package/dist/{watch-PNTKZYFB.js → watch-ITYW57SL.js} +1 -1
  135. package/dist/{workflow-H75N4BXX.js → workflow-UZIZ2JUS.js} +2 -3
  136. package/package.json +3 -3
  137. package/dist/chunk-IBVVGH6X.js +0 -33
  138. package/dist/chunk-KWX3JHCY.js +0 -85
  139. 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';
@@ -0,0 +1,30 @@
1
+ import { type ExpectedDriftEntry, type IndexDiff, type SchemaStats, type SchemaStatsSnapshot } from '../../actors/db/schema-stats.js';
2
+ import { type CanonicalSchemaDiff } from '../../actors/db/schema-canonical-diff.js';
3
+ import type { ProductionPreview } from '../../types.js';
4
+ export interface ProductionSchemaSignals {
5
+ previewHasChanges: boolean;
6
+ indexDiff: IndexDiff | null;
7
+ semanticDiff: CanonicalSchemaDiff | null;
8
+ countDiffs: CountDiffEntry[];
9
+ hasIndexChanges: boolean;
10
+ hasUnexpectedIndexChanges: boolean;
11
+ hasSemanticChanges: boolean;
12
+ hasCountChanges: boolean;
13
+ hasUnexpectedCountChanges: boolean;
14
+ hasKnownDriftOnly: boolean;
15
+ knownDriftReasons: string[];
16
+ requiresDeploy: boolean;
17
+ previewMissedChanges: boolean;
18
+ previewOnlyChanges: boolean;
19
+ }
20
+ export interface CountDiffEntry {
21
+ schema: string;
22
+ field: keyof SchemaStats;
23
+ value: number;
24
+ reference: number;
25
+ delta: number;
26
+ expected: boolean;
27
+ reason?: string;
28
+ }
29
+ export declare function getProductionSchemaSignals(productionPreview: ProductionPreview | null, schemaStats: SchemaStatsSnapshot | null, expectedDrift?: ExpectedDriftEntry[]): ProductionSchemaSignals;
30
+ //# sourceMappingURL=production-schema-status.d.ts.map
@@ -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,33 @@ 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;
56
+ /**
57
+ * Determine whether schema stats can safely reuse the synced CI database
58
+ * instead of rebuilding a temporary reference database.
59
+ *
60
+ * This optimization is only valid for PR CI runs where local-only overlays
61
+ * such as ci.custom.sql are never applied.
62
+ */
63
+ export declare function shouldReuseCiReferenceStats(context: CiContext): boolean;
32
64
  /** Layer result status type */
33
65
  export type LayerStatus = 'passed' | 'failed' | 'skipped' | 'timeout' | 'killed';
34
66
  /**
@@ -115,4 +147,5 @@ export declare function computeExitCodeFromLayerResults(layerResults: Record<num
115
147
  status: string;
116
148
  exitCode: number;
117
149
  }>): 0 | 1 | 2;
150
+ export {};
118
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[];
@@ -8,9 +8,10 @@
8
8
  * 1. idle → START → setup (mode-aware: localSetup or prLocalSetup)
9
9
  * 2. [ci-local] setup → dbReset → pullProduction? → syncSchema → applySeeds
10
10
  * → productionPreview → collectSchemaStats → installPgTap → runCoreTests → done
11
- * 3. [ci-pr] setup → initialComment → syncSchema → applySeeds → productionPreview
12
- * collectSchemaStatssetupRolesstaticChecksbuildAndPlaywright
13
- * appStart → capabilities → runCoreTests → e2ePhase → finalize → done
11
+ * 3. [ci-pr] setup → initialComment → syncSchema → applySeeds → postSeedPr
12
+ * execution: setupRolesstaticChecksbuildAndPlaywrightappStart
13
+ * → capabilities → runCoreTests → e2ePhase → finalize → done
14
+ * observability: productionPreview ∥ collectSchemaStats
14
15
  *
15
16
  * State Flow (detailed):
16
17
  * idle → setup → initialComment? → dbReset? → pullProduction? → syncSchema → applySeeds
@@ -46,7 +47,7 @@
46
47
  import { type SnapshotFrom } from 'xstate';
47
48
  import type { CiContext, CiEvent } from './types.js';
48
49
  export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent, {
49
- [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;
50
51
  }, {
51
52
  src: "staticChecks";
52
53
  logic: import("xstate").PromiseActorLogic<import("./index.js").StaticChecksOutput, import("./index.js").StaticChecksInput, import("xstate").EventObject>;
@@ -115,10 +116,6 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
115
116
  src: "runLayers";
116
117
  logic: import("xstate").PromiseActorLogic<import("./index.js").RunLayersOutput, import("./index.js").RunLayersInput, import("xstate").EventObject>;
117
118
  id: string | undefined;
118
- } | {
119
- src: "writeSummary";
120
- logic: import("xstate").PromiseActorLogic<import("./index.js").WriteSummaryOutput, import("./index.js").WriteSummaryInput, import("xstate").EventObject>;
121
- id: string | undefined;
122
119
  } | {
123
120
  src: "upsertComment";
124
121
  logic: import("xstate").PromiseActorLogic<import("./index.js").UpsertCommentOutput, import("./index.js").UpsertCommentInput, import("xstate").EventObject>;
@@ -168,10 +165,20 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
168
165
  } | {
169
166
  type: "allTestsPassed";
170
167
  params: unknown;
171
- }, never, "done" | "failed" | "staticChecks" | "idle" | "capabilities" | "appStart" | "syncSchema" | "applySeeds" | "productionPreview" | "pullProduction" | "collectSchemaStats" | "setupRoles" | "installPgTap" | "buildAndPlaywright" | "initialComment" | "dbReset" | "decidePath" | "runCoreTests" | "coreTestsFailed" | "coreTestsComplete" | {
168
+ }, never, "done" | "failed" | "staticChecks" | "idle" | "capabilities" | "appStart" | "syncSchema" | "applySeeds" | "productionPreview" | "pullProduction" | "collectSchemaStats" | "setupRoles" | "installPgTap" | "buildAndPlaywright" | "initialComment" | "dbReset" | "runCoreTests" | "coreTestsFailed" | "coreTestsComplete" | "decidePath" | {
172
169
  setup: "local" | "resolving" | "prLocal" | "complete";
173
170
  } | {
174
- finalize: "writeSummary" | "complete" | "postComment";
171
+ finalize: "complete" | "writeSummary" | "postComment";
172
+ } | {
173
+ postSeedPr: {
174
+ observability: "done" | "productionPreview" | "collectSchemaStats";
175
+ execution: "done" | "failed" | "staticChecks" | "capabilities" | "appStart" | "setupRoles" | "buildAndPlaywright" | "runCoreTests" | "coreTestsFailed" | "coreTestsComplete" | {
176
+ e2ePhase: {
177
+ intermediateComment: "done" | "checking" | "posting";
178
+ e2eTests: "done" | "running";
179
+ };
180
+ };
181
+ };
175
182
  } | {
176
183
  e2ePhase: {
177
184
  intermediateComment: "done" | "checking" | "posting";
@@ -208,6 +215,9 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
208
215
  branchName?: string | undefined;
209
216
  skipStaticChecks?: boolean | undefined;
210
217
  skipBuild?: boolean | undefined;
218
+ skipLocalDbStart?: boolean | undefined;
219
+ assumeSupabaseReady?: boolean | undefined;
220
+ skipPlaywrightInstall?: boolean | undefined;
211
221
  skipDbCodegen?: boolean | undefined;
212
222
  failFast?: string | undefined;
213
223
  maxWaitSeconds?: string | undefined;
@@ -220,10 +230,18 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
220
230
  status: "success" | "timeout" | "failure" | "cancelled";
221
231
  repoKind: "unknown" | "monorepo" | "pj-repo";
222
232
  steps: Record<string, {
223
- status: "timeout" | "skipped" | "failed" | "passed";
233
+ status: "killed" | "timeout" | "skipped" | "failed" | "passed";
224
234
  exitCode?: number | undefined;
225
235
  logPath?: string | undefined;
226
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;
227
245
  }>;
228
246
  layers: Record<number, {
229
247
  status: "killed" | "timeout" | "skipped" | "failed" | "passed";
@@ -257,6 +275,48 @@ export declare const ciMachine: import("xstate").StateMachine<CiContext, CiEvent
257
275
  readonly pullProduction: {};
258
276
  readonly syncSchema: {};
259
277
  readonly applySeeds: {};
278
+ readonly postSeedPr: {
279
+ states: {
280
+ readonly execution: {
281
+ states: {
282
+ readonly setupRoles: {};
283
+ readonly staticChecks: {};
284
+ readonly buildAndPlaywright: {};
285
+ readonly appStart: {};
286
+ readonly capabilities: {};
287
+ readonly runCoreTests: {};
288
+ readonly coreTestsComplete: {};
289
+ readonly coreTestsFailed: {};
290
+ readonly e2ePhase: {
291
+ states: {
292
+ readonly intermediateComment: {
293
+ states: {
294
+ readonly checking: {};
295
+ readonly posting: {};
296
+ readonly done: {};
297
+ };
298
+ };
299
+ readonly e2eTests: {
300
+ states: {
301
+ readonly running: {};
302
+ readonly done: {};
303
+ };
304
+ };
305
+ };
306
+ };
307
+ readonly failed: {};
308
+ readonly done: {};
309
+ };
310
+ };
311
+ readonly observability: {
312
+ states: {
313
+ readonly productionPreview: {};
314
+ readonly collectSchemaStats: {};
315
+ readonly done: {};
316
+ };
317
+ };
318
+ };
319
+ };
260
320
  readonly productionPreview: {};
261
321
  readonly collectSchemaStats: {};
262
322
  readonly decidePath: {};
@@ -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