popeye-cli 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +240 -32
- package/cheatsheet.md +407 -0
- package/dist/cli/commands/db.d.ts +10 -0
- package/dist/cli/commands/db.d.ts.map +1 -0
- package/dist/cli/commands/db.js +240 -0
- package/dist/cli/commands/db.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +18 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +255 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +96 -0
- package/dist/cli/interactive.js.map +1 -1
- package/dist/generators/admin-wizard.d.ts +25 -0
- package/dist/generators/admin-wizard.d.ts.map +1 -0
- package/dist/generators/admin-wizard.js +123 -0
- package/dist/generators/admin-wizard.js.map +1 -0
- package/dist/generators/all.d.ts.map +1 -1
- package/dist/generators/all.js +10 -3
- package/dist/generators/all.js.map +1 -1
- package/dist/generators/database.d.ts +58 -0
- package/dist/generators/database.d.ts.map +1 -0
- package/dist/generators/database.js +229 -0
- package/dist/generators/database.js.map +1 -0
- package/dist/generators/fullstack.d.ts.map +1 -1
- package/dist/generators/fullstack.js +23 -7
- package/dist/generators/fullstack.js.map +1 -1
- package/dist/generators/index.d.ts +2 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +2 -0
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/templates/admin-wizard-python.d.ts +32 -0
- package/dist/generators/templates/admin-wizard-python.d.ts.map +1 -0
- package/dist/generators/templates/admin-wizard-python.js +425 -0
- package/dist/generators/templates/admin-wizard-python.js.map +1 -0
- package/dist/generators/templates/admin-wizard-react.d.ts +48 -0
- package/dist/generators/templates/admin-wizard-react.d.ts.map +1 -0
- package/dist/generators/templates/admin-wizard-react.js +554 -0
- package/dist/generators/templates/admin-wizard-react.js.map +1 -0
- package/dist/generators/templates/database-docker.d.ts +23 -0
- package/dist/generators/templates/database-docker.d.ts.map +1 -0
- package/dist/generators/templates/database-docker.js +221 -0
- package/dist/generators/templates/database-docker.js.map +1 -0
- package/dist/generators/templates/database-python.d.ts +54 -0
- package/dist/generators/templates/database-python.d.ts.map +1 -0
- package/dist/generators/templates/database-python.js +723 -0
- package/dist/generators/templates/database-python.js.map +1 -0
- package/dist/generators/templates/database-typescript.d.ts +34 -0
- package/dist/generators/templates/database-typescript.d.ts.map +1 -0
- package/dist/generators/templates/database-typescript.js +232 -0
- package/dist/generators/templates/database-typescript.js.map +1 -0
- package/dist/generators/templates/fullstack.d.ts.map +1 -1
- package/dist/generators/templates/fullstack.js +29 -0
- package/dist/generators/templates/fullstack.js.map +1 -1
- package/dist/generators/templates/index.d.ts +5 -0
- package/dist/generators/templates/index.d.ts.map +1 -1
- package/dist/generators/templates/index.js +5 -0
- package/dist/generators/templates/index.js.map +1 -1
- package/dist/state/index.d.ts +10 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +22 -0
- package/dist/state/index.js.map +1 -1
- package/dist/types/consensus.d.ts +3 -0
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/consensus.js +1 -0
- package/dist/types/consensus.js.map +1 -1
- package/dist/types/database-runtime.d.ts +86 -0
- package/dist/types/database-runtime.d.ts.map +1 -0
- package/dist/types/database-runtime.js +61 -0
- package/dist/types/database-runtime.js.map +1 -0
- package/dist/types/database.d.ts +85 -0
- package/dist/types/database.d.ts.map +1 -0
- package/dist/types/database.js +71 -0
- package/dist/types/database.js.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/tester.d.ts +138 -0
- package/dist/types/tester.d.ts.map +1 -0
- package/dist/types/tester.js +110 -0
- package/dist/types/tester.js.map +1 -0
- package/dist/types/workflow.d.ts +166 -0
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/types/workflow.js +14 -0
- package/dist/types/workflow.js.map +1 -1
- package/dist/workflow/db-setup-runner.d.ts +63 -0
- package/dist/workflow/db-setup-runner.d.ts.map +1 -0
- package/dist/workflow/db-setup-runner.js +336 -0
- package/dist/workflow/db-setup-runner.js.map +1 -0
- package/dist/workflow/db-state-machine.d.ts +30 -0
- package/dist/workflow/db-state-machine.d.ts.map +1 -0
- package/dist/workflow/db-state-machine.js +51 -0
- package/dist/workflow/db-state-machine.js.map +1 -0
- package/dist/workflow/execution-mode.js +2 -2
- package/dist/workflow/execution-mode.js.map +1 -1
- package/dist/workflow/index.d.ts +3 -0
- package/dist/workflow/index.d.ts.map +1 -1
- package/dist/workflow/index.js +3 -0
- package/dist/workflow/index.js.map +1 -1
- package/dist/workflow/task-workflow.d.ts +5 -0
- package/dist/workflow/task-workflow.d.ts.map +1 -1
- package/dist/workflow/task-workflow.js +172 -6
- package/dist/workflow/task-workflow.js.map +1 -1
- package/dist/workflow/tester.d.ts +120 -0
- package/dist/workflow/tester.d.ts.map +1 -0
- package/dist/workflow/tester.js +589 -0
- package/dist/workflow/tester.js.map +1 -0
- package/dist/workflow/workflow-logger.d.ts +1 -1
- package/dist/workflow/workflow-logger.d.ts.map +1 -1
- package/dist/workflow/workflow-logger.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/commands/db.ts +281 -0
- package/src/cli/commands/doctor.ts +273 -0
- package/src/cli/commands/index.ts +2 -0
- package/src/cli/index.ts +4 -0
- package/src/cli/interactive.ts +102 -0
- package/src/generators/admin-wizard.ts +146 -0
- package/src/generators/all.ts +10 -3
- package/src/generators/database.ts +286 -0
- package/src/generators/fullstack.ts +26 -9
- package/src/generators/index.ts +12 -0
- package/src/generators/templates/admin-wizard-python.ts +431 -0
- package/src/generators/templates/admin-wizard-react.ts +560 -0
- package/src/generators/templates/database-docker.ts +227 -0
- package/src/generators/templates/database-python.ts +734 -0
- package/src/generators/templates/database-typescript.ts +238 -0
- package/src/generators/templates/fullstack.ts +29 -0
- package/src/generators/templates/index.ts +5 -0
- package/src/state/index.ts +29 -0
- package/src/types/consensus.ts +3 -0
- package/src/types/database-runtime.ts +69 -0
- package/src/types/database.ts +84 -0
- package/src/types/index.ts +50 -0
- package/src/types/tester.ts +136 -0
- package/src/types/workflow.ts +31 -0
- package/src/workflow/db-setup-runner.ts +391 -0
- package/src/workflow/db-state-machine.ts +58 -0
- package/src/workflow/execution-mode.ts +2 -2
- package/src/workflow/index.ts +3 -0
- package/src/workflow/task-workflow.ts +227 -5
- package/src/workflow/tester.ts +723 -0
- package/src/workflow/workflow-logger.ts +2 -0
- package/tests/generators/admin-wizard-orchestrator.test.ts +64 -0
- package/tests/generators/admin-wizard-templates.test.ts +366 -0
- package/tests/generators/cross-phase-integration.test.ts +383 -0
- package/tests/generators/database.test.ts +456 -0
- package/tests/generators/fe-be-db-integration.test.ts +613 -0
- package/tests/types/database-runtime.test.ts +158 -0
- package/tests/types/database.test.ts +187 -0
- package/tests/types/tester.test.ts +174 -0
- package/tests/workflow/db-setup-runner.test.ts +211 -0
- package/tests/workflow/db-state-machine.test.ts +117 -0
- package/tests/workflow/tester.test.ts +401 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tester (QA) skill type definitions
|
|
3
|
+
* Defines test planning, review, and fix plan structures
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
/**
|
|
7
|
+
* Test verdict from the Tester's review
|
|
8
|
+
*/
|
|
9
|
+
export const TestVerdictSchema = z.enum(['PASS', 'PASS_WITH_NOTES', 'FAIL']);
|
|
10
|
+
/**
|
|
11
|
+
* Scope components that a test plan can cover
|
|
12
|
+
*/
|
|
13
|
+
export const TestScopeSchema = z.enum(['frontend', 'backend', 'db', 'infra']);
|
|
14
|
+
/**
|
|
15
|
+
* A structured test command to execute
|
|
16
|
+
*/
|
|
17
|
+
export const TestCommandSchema = z.object({
|
|
18
|
+
/** The shell command to run */
|
|
19
|
+
command: z.string().min(1),
|
|
20
|
+
/** Working directory (relative to project root) */
|
|
21
|
+
cwd: z.string().optional(),
|
|
22
|
+
/** Human-readable purpose of this command */
|
|
23
|
+
purpose: z.string().min(1),
|
|
24
|
+
/** Whether this command must pass for the test run to succeed */
|
|
25
|
+
required: z.boolean(),
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Individual test case in the test matrix
|
|
29
|
+
*/
|
|
30
|
+
export const TestCaseSchema = z.object({
|
|
31
|
+
/** Unique identifier within the test plan */
|
|
32
|
+
id: z.string().min(1),
|
|
33
|
+
/** Category: unit, integration, e2e, smoke, lint, build */
|
|
34
|
+
category: z.string().min(1),
|
|
35
|
+
/** Human-readable description of what is being tested */
|
|
36
|
+
description: z.string().min(1),
|
|
37
|
+
/** What must be true for this test to pass */
|
|
38
|
+
acceptanceCriteria: z.string().min(1),
|
|
39
|
+
/** What evidence (log output, report) is needed to verify */
|
|
40
|
+
evidenceRequired: z.string().min(1),
|
|
41
|
+
/** Priority: critical, high, medium, low */
|
|
42
|
+
priority: z.enum(['critical', 'high', 'medium', 'low']),
|
|
43
|
+
});
|
|
44
|
+
/**
|
|
45
|
+
* Structured test plan output from the Tester
|
|
46
|
+
*/
|
|
47
|
+
export const TestPlanOutputSchema = z.object({
|
|
48
|
+
/** What risks this test plan targets */
|
|
49
|
+
summary: z.string().min(1),
|
|
50
|
+
/** Components covered by this plan */
|
|
51
|
+
scope: z.array(TestScopeSchema).min(1),
|
|
52
|
+
/** Matrix of test cases with acceptance criteria */
|
|
53
|
+
testMatrix: z.array(TestCaseSchema).min(1),
|
|
54
|
+
/** Exact commands to execute (with cwd, purpose, required flag) */
|
|
55
|
+
commands: z.array(TestCommandSchema).min(1),
|
|
56
|
+
/** Top risks this test plan focuses on (3-7 items) */
|
|
57
|
+
riskFocus: z.array(z.string().min(1)).min(1),
|
|
58
|
+
/** What evidence (logs, reports) to capture */
|
|
59
|
+
evidenceRequired: z.array(z.string().min(1)).min(1),
|
|
60
|
+
/** Minimum verification always present: build, lint, smoke */
|
|
61
|
+
minimumVerification: z.array(z.string().min(1)).min(1),
|
|
62
|
+
/** Rationale if tester decides no custom tests are needed (min verification still applies) */
|
|
63
|
+
noTestsRationale: z.string().optional(),
|
|
64
|
+
});
|
|
65
|
+
/**
|
|
66
|
+
* Post-run review from the Tester
|
|
67
|
+
*/
|
|
68
|
+
export const TestRunReviewSchema = z.object({
|
|
69
|
+
/** Overall verdict */
|
|
70
|
+
verdict: TestVerdictSchema,
|
|
71
|
+
/** Summary of the review */
|
|
72
|
+
summary: z.string().min(1),
|
|
73
|
+
/** List of evidence that was checked */
|
|
74
|
+
evidenceReviewed: z.array(z.string().min(1)).min(1),
|
|
75
|
+
/** Specific failures found (empty array if PASS) */
|
|
76
|
+
failures: z.array(z.string()),
|
|
77
|
+
/** Missing evidence or coverage gaps */
|
|
78
|
+
gaps: z.array(z.string()),
|
|
79
|
+
/** Recommendations for improvement */
|
|
80
|
+
recommendations: z.array(z.string()),
|
|
81
|
+
/** Whether this verdict requires consensus (true if FAIL) */
|
|
82
|
+
requiresConsensus: z.boolean(),
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Individual fix step in a TestFixPlan
|
|
86
|
+
*/
|
|
87
|
+
export const FixStepSchema = z.object({
|
|
88
|
+
/** File to modify */
|
|
89
|
+
file: z.string().min(1),
|
|
90
|
+
/** Description of the change */
|
|
91
|
+
change: z.string().min(1),
|
|
92
|
+
/** Why this change is needed */
|
|
93
|
+
reason: z.string().min(1),
|
|
94
|
+
});
|
|
95
|
+
/**
|
|
96
|
+
* Fix plan proposed by the Tester when tests fail
|
|
97
|
+
*/
|
|
98
|
+
export const TestFixPlanSchema = z.object({
|
|
99
|
+
/** Which acceptance criteria failed */
|
|
100
|
+
failedCriteria: z.array(z.string().min(1)).min(1),
|
|
101
|
+
/** Root cause analysis from the Tester */
|
|
102
|
+
rootCauseAnalysis: z.string().min(1),
|
|
103
|
+
/** Ordered steps to fix the failures */
|
|
104
|
+
fixSteps: z.array(FixStepSchema).min(1),
|
|
105
|
+
/** Risks of introducing regressions */
|
|
106
|
+
regressionRisks: z.array(z.string()),
|
|
107
|
+
/** Strategy for re-testing after fix */
|
|
108
|
+
retestStrategy: z.string().min(1),
|
|
109
|
+
});
|
|
110
|
+
//# sourceMappingURL=tester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tester.js","sourceRoot":"","sources":["../../src/types/tester.ts"],"names":[],"mappings":"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"}
|
package/dist/types/workflow.d.ts
CHANGED
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import type { OutputLanguage, OpenAIModel } from './project.js';
|
|
7
7
|
import type { ConsensusIteration } from './consensus.js';
|
|
8
|
+
import type { TestPlanOutput } from './tester.js';
|
|
9
|
+
import type { DbConfig } from './database.js';
|
|
8
10
|
/**
|
|
9
11
|
* Workflow phases
|
|
10
12
|
*/
|
|
@@ -70,6 +72,15 @@ export interface Task {
|
|
|
70
72
|
backendConsensus?: AppConsensusTracking;
|
|
71
73
|
unifiedConsensus?: AppConsensusTracking;
|
|
72
74
|
appTarget?: 'frontend' | 'backend' | 'unified';
|
|
75
|
+
qaTestPlanText?: string;
|
|
76
|
+
qaTestPlanParsed?: TestPlanOutput;
|
|
77
|
+
qaTestPlanScore?: number;
|
|
78
|
+
qaTestPlanIterations?: number;
|
|
79
|
+
qaTestPlanApproved?: boolean;
|
|
80
|
+
qaTestPlanDoc?: string;
|
|
81
|
+
qaVerdict?: 'PASS' | 'PASS_WITH_NOTES' | 'FAIL';
|
|
82
|
+
qaReviewNotes?: string;
|
|
83
|
+
qaReviewDoc?: string;
|
|
73
84
|
}
|
|
74
85
|
/**
|
|
75
86
|
* Zod schema for per-app consensus tracking
|
|
@@ -130,6 +141,50 @@ export declare const TaskSchema: z.ZodObject<{
|
|
|
130
141
|
backend: "backend";
|
|
131
142
|
unified: "unified";
|
|
132
143
|
}>>;
|
|
144
|
+
qaTestPlanText: z.ZodOptional<z.ZodString>;
|
|
145
|
+
qaTestPlanParsed: z.ZodOptional<z.ZodObject<{
|
|
146
|
+
summary: z.ZodString;
|
|
147
|
+
scope: z.ZodArray<z.ZodEnum<{
|
|
148
|
+
frontend: "frontend";
|
|
149
|
+
backend: "backend";
|
|
150
|
+
db: "db";
|
|
151
|
+
infra: "infra";
|
|
152
|
+
}>>;
|
|
153
|
+
testMatrix: z.ZodArray<z.ZodObject<{
|
|
154
|
+
id: z.ZodString;
|
|
155
|
+
category: z.ZodString;
|
|
156
|
+
description: z.ZodString;
|
|
157
|
+
acceptanceCriteria: z.ZodString;
|
|
158
|
+
evidenceRequired: z.ZodString;
|
|
159
|
+
priority: z.ZodEnum<{
|
|
160
|
+
critical: "critical";
|
|
161
|
+
high: "high";
|
|
162
|
+
medium: "medium";
|
|
163
|
+
low: "low";
|
|
164
|
+
}>;
|
|
165
|
+
}, z.core.$strip>>;
|
|
166
|
+
commands: z.ZodArray<z.ZodObject<{
|
|
167
|
+
command: z.ZodString;
|
|
168
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
169
|
+
purpose: z.ZodString;
|
|
170
|
+
required: z.ZodBoolean;
|
|
171
|
+
}, z.core.$strip>>;
|
|
172
|
+
riskFocus: z.ZodArray<z.ZodString>;
|
|
173
|
+
evidenceRequired: z.ZodArray<z.ZodString>;
|
|
174
|
+
minimumVerification: z.ZodArray<z.ZodString>;
|
|
175
|
+
noTestsRationale: z.ZodOptional<z.ZodString>;
|
|
176
|
+
}, z.core.$strip>>;
|
|
177
|
+
qaTestPlanScore: z.ZodOptional<z.ZodNumber>;
|
|
178
|
+
qaTestPlanIterations: z.ZodOptional<z.ZodNumber>;
|
|
179
|
+
qaTestPlanApproved: z.ZodOptional<z.ZodBoolean>;
|
|
180
|
+
qaTestPlanDoc: z.ZodOptional<z.ZodString>;
|
|
181
|
+
qaVerdict: z.ZodOptional<z.ZodEnum<{
|
|
182
|
+
PASS: "PASS";
|
|
183
|
+
PASS_WITH_NOTES: "PASS_WITH_NOTES";
|
|
184
|
+
FAIL: "FAIL";
|
|
185
|
+
}>>;
|
|
186
|
+
qaReviewNotes: z.ZodOptional<z.ZodString>;
|
|
187
|
+
qaReviewDoc: z.ZodOptional<z.ZodString>;
|
|
133
188
|
}, z.core.$strip>;
|
|
134
189
|
/**
|
|
135
190
|
* Milestone containing multiple tasks
|
|
@@ -219,6 +274,50 @@ export declare const MilestoneSchema: z.ZodObject<{
|
|
|
219
274
|
backend: "backend";
|
|
220
275
|
unified: "unified";
|
|
221
276
|
}>>;
|
|
277
|
+
qaTestPlanText: z.ZodOptional<z.ZodString>;
|
|
278
|
+
qaTestPlanParsed: z.ZodOptional<z.ZodObject<{
|
|
279
|
+
summary: z.ZodString;
|
|
280
|
+
scope: z.ZodArray<z.ZodEnum<{
|
|
281
|
+
frontend: "frontend";
|
|
282
|
+
backend: "backend";
|
|
283
|
+
db: "db";
|
|
284
|
+
infra: "infra";
|
|
285
|
+
}>>;
|
|
286
|
+
testMatrix: z.ZodArray<z.ZodObject<{
|
|
287
|
+
id: z.ZodString;
|
|
288
|
+
category: z.ZodString;
|
|
289
|
+
description: z.ZodString;
|
|
290
|
+
acceptanceCriteria: z.ZodString;
|
|
291
|
+
evidenceRequired: z.ZodString;
|
|
292
|
+
priority: z.ZodEnum<{
|
|
293
|
+
critical: "critical";
|
|
294
|
+
high: "high";
|
|
295
|
+
medium: "medium";
|
|
296
|
+
low: "low";
|
|
297
|
+
}>;
|
|
298
|
+
}, z.core.$strip>>;
|
|
299
|
+
commands: z.ZodArray<z.ZodObject<{
|
|
300
|
+
command: z.ZodString;
|
|
301
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
302
|
+
purpose: z.ZodString;
|
|
303
|
+
required: z.ZodBoolean;
|
|
304
|
+
}, z.core.$strip>>;
|
|
305
|
+
riskFocus: z.ZodArray<z.ZodString>;
|
|
306
|
+
evidenceRequired: z.ZodArray<z.ZodString>;
|
|
307
|
+
minimumVerification: z.ZodArray<z.ZodString>;
|
|
308
|
+
noTestsRationale: z.ZodOptional<z.ZodString>;
|
|
309
|
+
}, z.core.$strip>>;
|
|
310
|
+
qaTestPlanScore: z.ZodOptional<z.ZodNumber>;
|
|
311
|
+
qaTestPlanIterations: z.ZodOptional<z.ZodNumber>;
|
|
312
|
+
qaTestPlanApproved: z.ZodOptional<z.ZodBoolean>;
|
|
313
|
+
qaTestPlanDoc: z.ZodOptional<z.ZodString>;
|
|
314
|
+
qaVerdict: z.ZodOptional<z.ZodEnum<{
|
|
315
|
+
PASS: "PASS";
|
|
316
|
+
PASS_WITH_NOTES: "PASS_WITH_NOTES";
|
|
317
|
+
FAIL: "FAIL";
|
|
318
|
+
}>>;
|
|
319
|
+
qaReviewNotes: z.ZodOptional<z.ZodString>;
|
|
320
|
+
qaReviewDoc: z.ZodOptional<z.ZodString>;
|
|
222
321
|
}, z.core.$strip>>;
|
|
223
322
|
plan: z.ZodOptional<z.ZodString>;
|
|
224
323
|
consensusScore: z.ZodOptional<z.ZodNumber>;
|
|
@@ -286,6 +385,10 @@ export interface ProjectState {
|
|
|
286
385
|
strategyError?: string;
|
|
287
386
|
/** Absolute paths to discovered source documentation files */
|
|
288
387
|
sourceDocPaths?: string[];
|
|
388
|
+
/** Whether QA Tester skill is active (default: true for new projects, undefined/false for existing) */
|
|
389
|
+
qaEnabled?: boolean;
|
|
390
|
+
/** Database configuration tracking (workspace projects only) */
|
|
391
|
+
dbConfig?: DbConfig;
|
|
289
392
|
}
|
|
290
393
|
/**
|
|
291
394
|
* Zod schema for project state validation
|
|
@@ -380,6 +483,50 @@ export declare const ProjectStateSchema: z.ZodObject<{
|
|
|
380
483
|
backend: "backend";
|
|
381
484
|
unified: "unified";
|
|
382
485
|
}>>;
|
|
486
|
+
qaTestPlanText: z.ZodOptional<z.ZodString>;
|
|
487
|
+
qaTestPlanParsed: z.ZodOptional<z.ZodObject<{
|
|
488
|
+
summary: z.ZodString;
|
|
489
|
+
scope: z.ZodArray<z.ZodEnum<{
|
|
490
|
+
frontend: "frontend";
|
|
491
|
+
backend: "backend";
|
|
492
|
+
db: "db";
|
|
493
|
+
infra: "infra";
|
|
494
|
+
}>>;
|
|
495
|
+
testMatrix: z.ZodArray<z.ZodObject<{
|
|
496
|
+
id: z.ZodString;
|
|
497
|
+
category: z.ZodString;
|
|
498
|
+
description: z.ZodString;
|
|
499
|
+
acceptanceCriteria: z.ZodString;
|
|
500
|
+
evidenceRequired: z.ZodString;
|
|
501
|
+
priority: z.ZodEnum<{
|
|
502
|
+
critical: "critical";
|
|
503
|
+
high: "high";
|
|
504
|
+
medium: "medium";
|
|
505
|
+
low: "low";
|
|
506
|
+
}>;
|
|
507
|
+
}, z.core.$strip>>;
|
|
508
|
+
commands: z.ZodArray<z.ZodObject<{
|
|
509
|
+
command: z.ZodString;
|
|
510
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
511
|
+
purpose: z.ZodString;
|
|
512
|
+
required: z.ZodBoolean;
|
|
513
|
+
}, z.core.$strip>>;
|
|
514
|
+
riskFocus: z.ZodArray<z.ZodString>;
|
|
515
|
+
evidenceRequired: z.ZodArray<z.ZodString>;
|
|
516
|
+
minimumVerification: z.ZodArray<z.ZodString>;
|
|
517
|
+
noTestsRationale: z.ZodOptional<z.ZodString>;
|
|
518
|
+
}, z.core.$strip>>;
|
|
519
|
+
qaTestPlanScore: z.ZodOptional<z.ZodNumber>;
|
|
520
|
+
qaTestPlanIterations: z.ZodOptional<z.ZodNumber>;
|
|
521
|
+
qaTestPlanApproved: z.ZodOptional<z.ZodBoolean>;
|
|
522
|
+
qaTestPlanDoc: z.ZodOptional<z.ZodString>;
|
|
523
|
+
qaVerdict: z.ZodOptional<z.ZodEnum<{
|
|
524
|
+
PASS: "PASS";
|
|
525
|
+
PASS_WITH_NOTES: "PASS_WITH_NOTES";
|
|
526
|
+
FAIL: "FAIL";
|
|
527
|
+
}>>;
|
|
528
|
+
qaReviewNotes: z.ZodOptional<z.ZodString>;
|
|
529
|
+
qaReviewDoc: z.ZodOptional<z.ZodString>;
|
|
383
530
|
}, z.core.$strip>>;
|
|
384
531
|
plan: z.ZodOptional<z.ZodString>;
|
|
385
532
|
consensusScore: z.ZodOptional<z.ZodNumber>;
|
|
@@ -441,6 +588,25 @@ export declare const ProjectStateSchema: z.ZodObject<{
|
|
|
441
588
|
websiteStrategy: z.ZodOptional<z.ZodString>;
|
|
442
589
|
strategyError: z.ZodOptional<z.ZodString>;
|
|
443
590
|
sourceDocPaths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
591
|
+
qaEnabled: z.ZodOptional<z.ZodBoolean>;
|
|
592
|
+
dbConfig: z.ZodOptional<z.ZodObject<{
|
|
593
|
+
designed: z.ZodBoolean;
|
|
594
|
+
mode: z.ZodOptional<z.ZodEnum<{
|
|
595
|
+
local_docker: "local_docker";
|
|
596
|
+
managed: "managed";
|
|
597
|
+
}>>;
|
|
598
|
+
vectorRequired: z.ZodBoolean;
|
|
599
|
+
status: z.ZodEnum<{
|
|
600
|
+
error: "error";
|
|
601
|
+
unconfigured: "unconfigured";
|
|
602
|
+
configured: "configured";
|
|
603
|
+
applying: "applying";
|
|
604
|
+
ready: "ready";
|
|
605
|
+
}>;
|
|
606
|
+
lastError: z.ZodOptional<z.ZodString>;
|
|
607
|
+
migrationsApplied: z.ZodNumber;
|
|
608
|
+
readinessCheckedAt: z.ZodOptional<z.ZodString>;
|
|
609
|
+
}, z.core.$strip>>;
|
|
444
610
|
}, z.core.$strip>;
|
|
445
611
|
/**
|
|
446
612
|
* Workflow event types for state machine
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"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"}
|
package/dist/types/workflow.js
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { OutputLanguageSchema } from './project.js';
|
|
7
|
+
import { TestPlanOutputSchema, TestVerdictSchema } from './tester.js';
|
|
8
|
+
import { DbConfigSchema } from './database.js';
|
|
7
9
|
/**
|
|
8
10
|
* Workflow phases
|
|
9
11
|
*/
|
|
@@ -52,6 +54,16 @@ export const TaskSchema = z.object({
|
|
|
52
54
|
backendConsensus: AppConsensusTrackingSchema.optional(),
|
|
53
55
|
unifiedConsensus: AppConsensusTrackingSchema.optional(),
|
|
54
56
|
appTarget: z.enum(['frontend', 'backend', 'unified']).optional(),
|
|
57
|
+
// Tester (QA) tracking
|
|
58
|
+
qaTestPlanText: z.string().optional(),
|
|
59
|
+
qaTestPlanParsed: TestPlanOutputSchema.optional(),
|
|
60
|
+
qaTestPlanScore: z.number().optional(),
|
|
61
|
+
qaTestPlanIterations: z.number().optional(),
|
|
62
|
+
qaTestPlanApproved: z.boolean().optional(),
|
|
63
|
+
qaTestPlanDoc: z.string().optional(),
|
|
64
|
+
qaVerdict: TestVerdictSchema.optional(),
|
|
65
|
+
qaReviewNotes: z.string().optional(),
|
|
66
|
+
qaReviewDoc: z.string().optional(),
|
|
55
67
|
});
|
|
56
68
|
/**
|
|
57
69
|
* Zod schema for Milestone
|
|
@@ -122,5 +134,7 @@ export const ProjectStateSchema = z.object({
|
|
|
122
134
|
websiteStrategy: z.string().optional(),
|
|
123
135
|
strategyError: z.string().optional(),
|
|
124
136
|
sourceDocPaths: z.array(z.string()).optional(),
|
|
137
|
+
qaEnabled: z.boolean().optional(),
|
|
138
|
+
dbConfig: DbConfigSchema.optional(),
|
|
125
139
|
});
|
|
126
140
|
//# sourceMappingURL=workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIpD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAG7E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGtG;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/types/workflow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIpD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAG7E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AAGtG;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AA0DnG;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,uBAAuB;IACvB,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,yCAAyC;IACzC,iBAAiB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACvD,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACvD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChE,uBAAuB;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,gBAAgB,EAAE,oBAAoB,CAAC,QAAQ,EAAE;IACjD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,SAAS,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACvC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAoCH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAC1B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACrC,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,kBAAkB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC1C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,yCAAyC;IACzC,iBAAiB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACxD,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACvD,gBAAgB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAyCH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,QAAQ,EAAE,oBAAoB;IAC9B,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACtF,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,mBAAmB;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC;IACpC,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,KAAK,CACvB,CAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;YACjB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;YACpB,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC9B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7B,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;YACpC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;YACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;SACxB,CAAC;QACF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC,CACH;IACD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACpC,CAAC,CAAC,QAAQ,EAAE;IACb,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtC,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database setup pipeline runner
|
|
3
|
+
* Executes sequential steps to configure, migrate, and verify a database
|
|
4
|
+
*/
|
|
5
|
+
import type { DbStatus, DbSetupStep } from '../types/database.js';
|
|
6
|
+
import type { SetupResult } from '../types/database-runtime.js';
|
|
7
|
+
/**
|
|
8
|
+
* Options for the setup pipeline
|
|
9
|
+
*/
|
|
10
|
+
export interface SetupPipelineOptions {
|
|
11
|
+
/** Skip seed step */
|
|
12
|
+
skipSeed?: boolean;
|
|
13
|
+
/** Callback for step progress */
|
|
14
|
+
onStep?: (step: DbSetupStep, status: 'start' | 'success' | 'fail', message: string) => void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Read and parse a .env file for key=value pairs
|
|
18
|
+
*
|
|
19
|
+
* @param envPath - Path to .env file
|
|
20
|
+
* @returns Map of environment variable key-value pairs
|
|
21
|
+
*/
|
|
22
|
+
export declare function readEnvFile(envPath: string): Promise<Record<string, string>>;
|
|
23
|
+
/**
|
|
24
|
+
* Scan migration files for prerequisite extension comments
|
|
25
|
+
* Looks for lines like: # popeye:requires_extension=vector
|
|
26
|
+
*
|
|
27
|
+
* @param migrationsDir - Path to migrations/versions/ directory
|
|
28
|
+
* @returns Array of required extension names
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseMigrationPrereqs(migrationsDir: string): Promise<string[]>;
|
|
31
|
+
/**
|
|
32
|
+
* Derive the snake_case package name from the project state
|
|
33
|
+
*
|
|
34
|
+
* @param projectDir - Project root directory
|
|
35
|
+
* @returns Python package name
|
|
36
|
+
*/
|
|
37
|
+
export declare function getPackageName(projectDir: string): Promise<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the backend directory path
|
|
40
|
+
*
|
|
41
|
+
* @param projectDir - Project root directory
|
|
42
|
+
* @returns Absolute path to apps/backend
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveBackendDir(projectDir: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Run the complete database setup pipeline
|
|
47
|
+
*
|
|
48
|
+
* Steps execute sequentially. Pipeline stops on first failure.
|
|
49
|
+
*
|
|
50
|
+
* @param projectDir - Project root directory
|
|
51
|
+
* @param options - Pipeline options
|
|
52
|
+
* @returns Full pipeline result
|
|
53
|
+
*/
|
|
54
|
+
export declare function runDbSetupPipeline(projectDir: string, options?: SetupPipelineOptions): Promise<SetupResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Compute the new DB status after a pipeline run and validate the transition
|
|
57
|
+
*
|
|
58
|
+
* @param currentStatus - Current DB status from state
|
|
59
|
+
* @param pipelineResult - Result of the pipeline run
|
|
60
|
+
* @returns New DB status after validated transition
|
|
61
|
+
*/
|
|
62
|
+
export declare function computePostPipelineStatus(currentStatus: DbStatus, pipelineResult: SetupResult): DbStatus;
|
|
63
|
+
//# sourceMappingURL=db-setup-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-setup-runner.d.ts","sourceRoot":"","sources":["../../src/workflow/db-setup-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7F;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAsBlF;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBpF;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAUxE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAoLD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAuBD;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,QAAQ,EACvB,cAAc,EAAE,WAAW,GAC1B,QAAQ,CAKV"}
|