@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.
- package/dist/{build-V66FAQXB.js → build-HQMSVN6N.js} +3 -3
- package/dist/{check-LOMVIRHX.js → check-PCSQPYDM.js} +2 -2
- package/dist/{chunk-QM53IQHM.js → chunk-2QX7T24B.js} +1 -1
- package/dist/{chunk-XDCHRVE3.js → chunk-4XHZQRRK.js} +2 -2
- package/dist/{chunk-7B5C6U2K.js → chunk-A6A7JIRD.js} +35 -2
- package/dist/{chunk-Z4Z5DNW4.js → chunk-B3POLMII.js} +12 -0
- package/dist/chunk-CKRLVEIO.js +119 -0
- package/dist/{chunk-HD74F6W2.js → chunk-FWMGC5FP.js} +1 -0
- package/dist/{chunk-H2AHNI75.js → chunk-LCK2LGVR.js} +1 -1
- package/dist/{chunk-FHG3ILE4.js → chunk-OBYZDT2E.js} +38 -8
- package/dist/{chunk-AIP6MR42.js → chunk-PMXE5XOJ.js} +1 -1
- package/dist/{chunk-VM3IWOT5.js → chunk-QSEF4T3Y.js} +13 -5
- package/dist/{chunk-NPSRD26F.js → chunk-UHDAYPHH.js} +1 -1
- package/dist/{chunk-2APB25TT.js → chunk-VSH3IXDQ.js} +7 -3
- package/dist/{chunk-644FVGIQ.js → chunk-WPMR7RQ4.js} +9 -2
- package/dist/chunk-XVNDDHAF.js +65 -0
- package/dist/{risk-detector-plpgsql-HWKS4OLR.js → chunk-Y5ANTCKE.js} +3 -412
- package/dist/{chunk-SGJG3BKD.js → chunk-Z7A4BEWF.js} +1 -1
- package/dist/{ci-ZWRVWNFX.js → ci-Z4525QW6.js} +3095 -709
- package/dist/{cli-2JNBJUBB.js → cli-Q2XIQDRS.js} +72 -54
- package/dist/commands/ci/commands/ci-prod-db-operations.d.ts +6 -4
- package/dist/commands/ci/commands/ci-prod-types.d.ts +3 -0
- package/dist/commands/ci/commands/ci-prod-workflow.d.ts +1 -1
- package/dist/commands/ci/commands/ci-resolvers.d.ts +1 -1
- package/dist/commands/ci/commands/ci-supabase-local.d.ts +4 -0
- package/dist/commands/ci/machine/actors/build/build-and-playwright.d.ts +1 -1
- package/dist/commands/ci/machine/actors/db/collect-schema-stats.d.ts +15 -2
- package/dist/commands/ci/machine/actors/db/production-preview.d.ts +32 -4
- package/dist/commands/ci/machine/actors/db/schema-canonical-diff.d.ts +30 -1
- package/dist/commands/ci/machine/actors/db/sync-schema.d.ts +1 -0
- package/dist/commands/ci/machine/actors/finalize/index.d.ts +0 -1
- package/dist/commands/ci/machine/actors/index.d.ts +1 -1
- package/dist/commands/ci/machine/actors/setup/local.d.ts +2 -0
- package/dist/commands/ci/machine/actors/setup/pr-common.d.ts +3 -0
- package/dist/commands/ci/machine/actors/setup/pr-local.d.ts +2 -0
- package/dist/commands/ci/machine/commands/machine-runner.d.ts +6 -0
- package/dist/commands/ci/machine/commands/step-telemetry.d.ts +16 -0
- package/dist/commands/ci/machine/contract.d.ts +40 -0
- package/dist/commands/ci/machine/formatters/github-comment-types.d.ts +7 -2
- package/dist/commands/ci/machine/formatters/github-comment.d.ts +2 -1
- package/dist/commands/ci/machine/formatters/sections/final-comment.d.ts +2 -1
- package/dist/commands/ci/machine/formatters/sections/index.d.ts +1 -1
- package/dist/commands/ci/machine/formatters/sections/production-schema-status.d.ts +30 -0
- package/dist/commands/ci/machine/formatters/summary.d.ts +4 -4
- package/dist/commands/ci/machine/guards.d.ts +4 -0
- package/dist/commands/ci/machine/helpers.d.ts +33 -0
- package/dist/commands/ci/machine/machine-state-helpers.d.ts +1 -1
- package/dist/commands/ci/machine/machine.d.ts +71 -11
- package/dist/commands/ci/machine/types.d.ts +9 -0
- package/dist/commands/ci/utils/ci-diagnostics.d.ts +67 -0
- package/dist/commands/ci/utils/ci-summary.d.ts +118 -0
- package/dist/commands/ci/utils/db-url-utils.d.ts +4 -77
- package/dist/commands/ci/utils/github-api.d.ts +14 -0
- package/dist/commands/db/apply/contract.d.ts +73 -0
- package/dist/commands/db/apply/helpers/alter-statement-parsers.d.ts +95 -0
- package/dist/commands/db/apply/helpers/data-compatibility-checker.d.ts +0 -61
- package/dist/commands/db/apply/helpers/function-plan-false-positive-filter.d.ts +36 -0
- package/dist/commands/db/apply/helpers/hazard-handler.d.ts +4 -4
- package/dist/commands/db/apply/helpers/index.d.ts +14 -5
- package/dist/commands/db/apply/helpers/partition-acl-cleaner.d.ts +3 -1
- package/dist/commands/db/apply/helpers/pg-schema-diff-helpers.d.ts +69 -6
- package/dist/commands/db/apply/helpers/plan-ast.d.ts +56 -0
- package/dist/commands/db/apply/helpers/plan-check-filter.d.ts +26 -0
- package/dist/commands/db/apply/helpers/plan-drop-protection.d.ts +43 -0
- package/dist/commands/db/apply/helpers/plan-ordering.d.ts +6 -0
- package/dist/commands/db/apply/helpers/plan-statement-parser.d.ts +39 -0
- package/dist/commands/db/apply/helpers/plan-validator.d.ts +8 -40
- package/dist/commands/db/apply/helpers/retry-logic.d.ts +1 -10
- package/dist/commands/db/apply/helpers/temp-db-bootstrap.d.ts +18 -0
- package/dist/commands/db/apply/helpers/temp-db-dsn.d.ts +14 -0
- package/dist/commands/db/apply/machine.d.ts +56 -32
- package/dist/commands/db/commands/db-apply-error.d.ts +5 -0
- package/dist/commands/db/commands/db-apply.d.ts +2 -0
- package/dist/commands/db/commands/db-sync/directory-placement-check.d.ts +4 -0
- package/dist/commands/db/commands/db-sync/error-classifier.d.ts +1 -1
- package/dist/commands/db/commands/db-sync/plan-boundary-reconciliation.d.ts +3 -0
- package/dist/commands/db/commands/db-sync/precheck-helpers.d.ts +18 -0
- package/dist/commands/db/commands/db-sync/production-precheck.d.ts +15 -0
- package/dist/commands/db/commands/db-sync/risk-scan-collectors.d.ts +11 -0
- package/dist/commands/db/commands/db-sync.d.ts +11 -5
- package/dist/commands/db/sync/contract.d.ts +80 -0
- package/dist/commands/db/sync/machine.d.ts +60 -1
- package/dist/commands/db/types.d.ts +5 -0
- package/dist/commands/db/utils/boundary-policy/rule-compiler.d.ts +2 -1
- package/dist/commands/db/utils/boundary-policy/types.d.ts +21 -0
- package/dist/commands/db/utils/boundary-policy-runtime.d.ts +12 -3
- package/dist/commands/db/utils/boundary-policy.d.ts +1 -1
- package/dist/commands/db/utils/db-target.d.ts +5 -3
- package/dist/commands/db/utils/declarative-dependency-collectors.d.ts +6 -0
- package/dist/commands/db/utils/declarative-dependency-contract.d.ts +78 -0
- package/dist/commands/db/utils/declarative-dependency-sql-utils.d.ts +49 -0
- package/dist/commands/db/utils/declarative-dependency-warning-governance.d.ts +24 -0
- package/dist/commands/db/utils/preflight-check.d.ts +1 -1
- package/dist/commands/db/utils/preflight-checks/declarative-dependency-checks.d.ts +4 -0
- package/dist/commands/db/utils/preflight-checks/idempotent-risk-checks.d.ts +4 -0
- package/dist/commands/db/utils/preflight-checks/schema-boundary-checks.d.ts +4 -0
- package/dist/commands/db/utils/preflight-checks/schema-risk-policy.d.ts +4 -0
- package/dist/commands/db/utils/preflight-checks/supabase-checks.d.ts +12 -0
- package/dist/commands/db/utils/psql.d.ts +23 -0
- package/dist/commands/db/utils/sql-table-extractor.d.ts +42 -1
- package/dist/commands/env/commands/setup/types.d.ts +1 -0
- package/dist/commands/env/constants/local-supabase.d.ts +4 -1
- package/dist/commands/observability.d.ts +72 -0
- package/dist/commands/observability.helpers.d.ts +25 -0
- package/dist/commands/template-check/commands/template-check.d.ts +1 -0
- package/dist/commands/template-check/contract.d.ts +4 -3
- package/dist/commands/template-check/machine.d.ts +1 -1
- package/dist/commands/workflow/commands/deploy-production.d.ts +0 -1
- package/dist/constants/versions.d.ts +1 -1
- package/dist/{db-XULCILOU.js → db-BPQ2TEQM.js} +14618 -11273
- package/dist/{dev-5YXNPTCJ.js → dev-MLRKIP7F.js} +5 -5
- package/dist/{doctor-MZLOA53G.js → doctor-ROSWSMLH.js} +2 -2
- package/dist/{env-SS66PZ4B.js → env-WNHJVLOT.js} +37 -20
- package/dist/{env-HMMRSYCI.js → env-XPPACZM4.js} +2 -2
- package/dist/{env-files-2UIUYLLR.js → env-files-HRNUGZ5O.js} +1 -1
- package/dist/{error-handler-HEXBRNVV.js → error-handler-YRQWRDEF.js} +17 -0
- package/dist/{hotfix-YA3DGLOM.js → hotfix-Z5EGVSMH.js} +4 -4
- package/dist/index.js +4 -4
- package/dist/{init-ZIL6LRFO.js → init-S2ATHLJ6.js} +1 -1
- package/dist/{inject-test-attrs-P44BVTQS.js → inject-test-attrs-XN4I2AOR.js} +2 -2
- package/dist/internal/machines/index.d.ts +1 -1
- package/dist/internal/machines/snapshot-helpers.d.ts +6 -0
- package/dist/{manifest-TMFLESHW.js → manifest-EGCAZ4TK.js} +1 -1
- package/dist/observability-CJA5UFIC.js +721 -0
- package/dist/{risk-detector-4U6ZJ2G5.js → risk-detector-VO5HJR4R.js} +1 -1
- package/dist/{risk-detector-core-TK4OAI3N.js → risk-detector-core-7WZJZ5ZI.js} +61 -3
- package/dist/risk-detector-plpgsql-ULV7NLDB.js +638 -0
- package/dist/{template-check-3P4HZXVY.js → template-check-BDFMT6ZO.js} +23 -6
- package/dist/{upgrade-NUK3ZBCL.js → upgrade-BDUWBRT5.js} +1 -1
- package/dist/utils/db-url-utils.d.ts +81 -0
- package/dist/validators/risk-detector-plpgsql.d.ts +3 -1
- package/dist/{vuln-check-2W7N5TA2.js → vuln-check-66RXX3TO.js} +1 -1
- package/dist/{vuln-checker-IQJ56RUV.js → vuln-checker-FFOGOJPT.js} +1 -1
- package/dist/{watch-PNTKZYFB.js → watch-ITYW57SL.js} +1 -1
- package/dist/{workflow-H75N4BXX.js → workflow-UZIZ2JUS.js} +2 -3
- package/package.json +3 -3
- package/dist/chunk-IBVVGH6X.js +0 -33
- package/dist/chunk-KWX3JHCY.js +0 -85
- 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 {
|
|
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
|
|
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
|
|
9
|
-
* - Generates structured summary
|
|
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 '
|
|
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
|
|
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 →
|
|
12
|
-
*
|
|
13
|
-
*
|
|
11
|
+
* 3. [ci-pr] setup → initialComment → syncSchema → applySeeds → postSeedPr
|
|
12
|
+
* execution: setupRoles → staticChecks → buildAndPlaywright → appStart
|
|
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").
|
|
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" | "
|
|
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: "
|
|
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
|