vibe-fabric 0.1.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/LICENSE +21 -0
- package/README.md +171 -0
- package/dist/cli/commands/claude.d.ts +19 -0
- package/dist/cli/commands/claude.d.ts.map +1 -0
- package/dist/cli/commands/claude.js +107 -0
- package/dist/cli/commands/claude.js.map +1 -0
- package/dist/cli/commands/coverage.d.ts +37 -0
- package/dist/cli/commands/coverage.d.ts.map +1 -0
- package/dist/cli/commands/coverage.js +374 -0
- package/dist/cli/commands/coverage.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +30 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +187 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/gaps.d.ts +52 -0
- package/dist/cli/commands/gaps.d.ts.map +1 -0
- package/dist/cli/commands/gaps.js +487 -0
- package/dist/cli/commands/gaps.js.map +1 -0
- package/dist/cli/commands/help.d.ts +7 -0
- package/dist/cli/commands/help.d.ts.map +1 -0
- package/dist/cli/commands/help.js +51 -0
- package/dist/cli/commands/help.js.map +1 -0
- package/dist/cli/commands/init.d.ts +39 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +246 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/prd.d.ts +30 -0
- package/dist/cli/commands/prd.d.ts.map +1 -0
- package/dist/cli/commands/prd.js +179 -0
- package/dist/cli/commands/prd.js.map +1 -0
- package/dist/cli/commands/repo/add.d.ts +36 -0
- package/dist/cli/commands/repo/add.d.ts.map +1 -0
- package/dist/cli/commands/repo/add.js +303 -0
- package/dist/cli/commands/repo/add.js.map +1 -0
- package/dist/cli/commands/scope.d.ts +36 -0
- package/dist/cli/commands/scope.d.ts.map +1 -0
- package/dist/cli/commands/scope.js +312 -0
- package/dist/cli/commands/scope.js.map +1 -0
- package/dist/cli/commands/send.d.ts +43 -0
- package/dist/cli/commands/send.d.ts.map +1 -0
- package/dist/cli/commands/send.js +469 -0
- package/dist/cli/commands/send.js.map +1 -0
- package/dist/cli/commands/status.d.ts +32 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +422 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/sync.d.ts +37 -0
- package/dist/cli/commands/sync.d.ts.map +1 -0
- package/dist/cli/commands/sync.js +299 -0
- package/dist/cli/commands/sync.js.map +1 -0
- package/dist/cli/commands/version.d.ts +7 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +45 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +65 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/components/ActiveScopes.d.ts +13 -0
- package/dist/cli/ui/components/ActiveScopes.d.ts.map +1 -0
- package/dist/cli/ui/components/ActiveScopes.js +25 -0
- package/dist/cli/ui/components/ActiveScopes.js.map +1 -0
- package/dist/cli/ui/components/EmptyState.d.ts +24 -0
- package/dist/cli/ui/components/EmptyState.d.ts.map +1 -0
- package/dist/cli/ui/components/EmptyState.js +13 -0
- package/dist/cli/ui/components/EmptyState.js.map +1 -0
- package/dist/cli/ui/components/Header.d.ts +11 -0
- package/dist/cli/ui/components/Header.d.ts.map +1 -0
- package/dist/cli/ui/components/Header.js +32 -0
- package/dist/cli/ui/components/Header.js.map +1 -0
- package/dist/cli/ui/components/PrdCoverage.d.ts +12 -0
- package/dist/cli/ui/components/PrdCoverage.d.ts.map +1 -0
- package/dist/cli/ui/components/PrdCoverage.js +15 -0
- package/dist/cli/ui/components/PrdCoverage.js.map +1 -0
- package/dist/cli/ui/components/RecentActivity.d.ts +12 -0
- package/dist/cli/ui/components/RecentActivity.d.ts.map +1 -0
- package/dist/cli/ui/components/RecentActivity.js +40 -0
- package/dist/cli/ui/components/RecentActivity.js.map +1 -0
- package/dist/cli/ui/components/RepoList.d.ts +12 -0
- package/dist/cli/ui/components/RepoList.d.ts.map +1 -0
- package/dist/cli/ui/components/RepoList.js +24 -0
- package/dist/cli/ui/components/RepoList.js.map +1 -0
- package/dist/cli/ui/components/Shortcuts.d.ts +7 -0
- package/dist/cli/ui/components/Shortcuts.d.ts.map +1 -0
- package/dist/cli/ui/components/Shortcuts.js +7 -0
- package/dist/cli/ui/components/Shortcuts.js.map +1 -0
- package/dist/cli/ui/components/index.d.ts +12 -0
- package/dist/cli/ui/components/index.d.ts.map +1 -0
- package/dist/cli/ui/components/index.js +12 -0
- package/dist/cli/ui/components/index.js.map +1 -0
- package/dist/cli/ui/dashboard.d.ts +9 -0
- package/dist/cli/ui/dashboard.d.ts.map +1 -0
- package/dist/cli/ui/dashboard.js +102 -0
- package/dist/cli/ui/dashboard.js.map +1 -0
- package/dist/core/commands.d.ts +32 -0
- package/dist/core/commands.d.ts.map +1 -0
- package/dist/core/commands.js +361 -0
- package/dist/core/commands.js.map +1 -0
- package/dist/core/config.d.ts +18 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +78 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/coverage.d.ts +32 -0
- package/dist/core/coverage.d.ts.map +1 -0
- package/dist/core/coverage.js +286 -0
- package/dist/core/coverage.js.map +1 -0
- package/dist/core/dashboard/data.d.ts +73 -0
- package/dist/core/dashboard/data.d.ts.map +1 -0
- package/dist/core/dashboard/data.js +250 -0
- package/dist/core/dashboard/data.js.map +1 -0
- package/dist/core/dependencies.d.ts +39 -0
- package/dist/core/dependencies.d.ts.map +1 -0
- package/dist/core/dependencies.js +160 -0
- package/dist/core/dependencies.js.map +1 -0
- package/dist/core/doctor/auth.d.ts +22 -0
- package/dist/core/doctor/auth.d.ts.map +1 -0
- package/dist/core/doctor/auth.js +147 -0
- package/dist/core/doctor/auth.js.map +1 -0
- package/dist/core/doctor/config.d.ts +26 -0
- package/dist/core/doctor/config.d.ts.map +1 -0
- package/dist/core/doctor/config.js +172 -0
- package/dist/core/doctor/config.js.map +1 -0
- package/dist/core/doctor/environment.d.ts +26 -0
- package/dist/core/doctor/environment.d.ts.map +1 -0
- package/dist/core/doctor/environment.js +145 -0
- package/dist/core/doctor/environment.js.map +1 -0
- package/dist/core/doctor/index.d.ts +44 -0
- package/dist/core/doctor/index.d.ts.map +1 -0
- package/dist/core/doctor/index.js +134 -0
- package/dist/core/doctor/index.js.map +1 -0
- package/dist/core/doctor/repos.d.ts +22 -0
- package/dist/core/doctor/repos.d.ts.map +1 -0
- package/dist/core/doctor/repos.js +262 -0
- package/dist/core/doctor/repos.js.map +1 -0
- package/dist/core/doctor/sync.d.ts +18 -0
- package/dist/core/doctor/sync.d.ts.map +1 -0
- package/dist/core/doctor/sync.js +146 -0
- package/dist/core/doctor/sync.js.map +1 -0
- package/dist/core/gaps.d.ts +70 -0
- package/dist/core/gaps.d.ts.map +1 -0
- package/dist/core/gaps.js +448 -0
- package/dist/core/gaps.js.map +1 -0
- package/dist/core/github.d.ts +38 -0
- package/dist/core/github.d.ts.map +1 -0
- package/dist/core/github.js +102 -0
- package/dist/core/github.js.map +1 -0
- package/dist/core/prd/analyzer.d.ts +44 -0
- package/dist/core/prd/analyzer.d.ts.map +1 -0
- package/dist/core/prd/analyzer.js +259 -0
- package/dist/core/prd/analyzer.js.map +1 -0
- package/dist/core/prd/check.d.ts +17 -0
- package/dist/core/prd/check.d.ts.map +1 -0
- package/dist/core/prd/check.js +154 -0
- package/dist/core/prd/check.js.map +1 -0
- package/dist/core/prd/index.d.ts +6 -0
- package/dist/core/prd/index.d.ts.map +1 -0
- package/dist/core/prd/index.js +6 -0
- package/dist/core/prd/index.js.map +1 -0
- package/dist/core/project.d.ts +13 -0
- package/dist/core/project.d.ts.map +1 -0
- package/dist/core/project.js +810 -0
- package/dist/core/project.js.map +1 -0
- package/dist/core/prompts.d.ts +52 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +266 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/repo/framework.d.ts +38 -0
- package/dist/core/repo/framework.d.ts.map +1 -0
- package/dist/core/repo/framework.js +142 -0
- package/dist/core/repo/framework.js.map +1 -0
- package/dist/core/repo/index.d.ts +6 -0
- package/dist/core/repo/index.d.ts.map +1 -0
- package/dist/core/repo/index.js +6 -0
- package/dist/core/repo/index.js.map +1 -0
- package/dist/core/repo/templates/claude-agents.d.ts +6 -0
- package/dist/core/repo/templates/claude-agents.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-agents.js +173 -0
- package/dist/core/repo/templates/claude-agents.js.map +1 -0
- package/dist/core/repo/templates/claude-commands.d.ts +6 -0
- package/dist/core/repo/templates/claude-commands.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-commands.js +278 -0
- package/dist/core/repo/templates/claude-commands.js.map +1 -0
- package/dist/core/repo/templates/claude-prompts.d.ts +6 -0
- package/dist/core/repo/templates/claude-prompts.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-prompts.js +258 -0
- package/dist/core/repo/templates/claude-prompts.js.map +1 -0
- package/dist/core/repo/templates/claude-scripts.d.ts +6 -0
- package/dist/core/repo/templates/claude-scripts.d.ts.map +1 -0
- package/dist/core/repo/templates/claude-scripts.js +212 -0
- package/dist/core/repo/templates/claude-scripts.js.map +1 -0
- package/dist/core/repo/templates/index.d.ts +22 -0
- package/dist/core/repo/templates/index.d.ts.map +1 -0
- package/dist/core/repo/templates/index.js +121 -0
- package/dist/core/repo/templates/index.js.map +1 -0
- package/dist/core/repo/templates/vibe-readme.d.ts +6 -0
- package/dist/core/repo/templates/vibe-readme.d.ts.map +1 -0
- package/dist/core/repo/templates/vibe-readme.js +204 -0
- package/dist/core/repo/templates/vibe-readme.js.map +1 -0
- package/dist/core/repo/templates/vibe-scripts.d.ts +6 -0
- package/dist/core/repo/templates/vibe-scripts.d.ts.map +1 -0
- package/dist/core/repo/templates/vibe-scripts.js +308 -0
- package/dist/core/repo/templates/vibe-scripts.js.map +1 -0
- package/dist/core/repo/validation.d.ts +46 -0
- package/dist/core/repo/validation.d.ts.map +1 -0
- package/dist/core/repo/validation.js +154 -0
- package/dist/core/repo/validation.js.map +1 -0
- package/dist/core/runner.d.ts +38 -0
- package/dist/core/runner.d.ts.map +1 -0
- package/dist/core/runner.js +124 -0
- package/dist/core/runner.js.map +1 -0
- package/dist/core/send.d.ts +83 -0
- package/dist/core/send.d.ts.map +1 -0
- package/dist/core/send.js +565 -0
- package/dist/core/send.js.map +1 -0
- package/dist/core/status.d.ts +76 -0
- package/dist/core/status.d.ts.map +1 -0
- package/dist/core/status.js +430 -0
- package/dist/core/status.js.map +1 -0
- package/dist/core/sync/aggregator.d.ts +22 -0
- package/dist/core/sync/aggregator.d.ts.map +1 -0
- package/dist/core/sync/aggregator.js +278 -0
- package/dist/core/sync/aggregator.js.map +1 -0
- package/dist/core/sync/completion.d.ts +37 -0
- package/dist/core/sync/completion.d.ts.map +1 -0
- package/dist/core/sync/completion.js +264 -0
- package/dist/core/sync/completion.js.map +1 -0
- package/dist/core/sync/index.d.ts +51 -0
- package/dist/core/sync/index.d.ts.map +1 -0
- package/dist/core/sync/index.js +200 -0
- package/dist/core/sync/index.js.map +1 -0
- package/dist/core/sync/scanner.d.ts +39 -0
- package/dist/core/sync/scanner.d.ts.map +1 -0
- package/dist/core/sync/scanner.js +364 -0
- package/dist/core/sync/scanner.js.map +1 -0
- package/dist/types/config.d.ts +157 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +58 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/coverage.d.ts +100 -0
- package/dist/types/coverage.d.ts.map +1 -0
- package/dist/types/coverage.js +8 -0
- package/dist/types/coverage.js.map +1 -0
- package/dist/types/doctor.d.ts +68 -0
- package/dist/types/doctor.d.ts.map +1 -0
- package/dist/types/doctor.js +5 -0
- package/dist/types/doctor.js.map +1 -0
- package/dist/types/gaps.d.ts +129 -0
- package/dist/types/gaps.d.ts.map +1 -0
- package/dist/types/gaps.js +8 -0
- package/dist/types/gaps.js.map +1 -0
- package/dist/types/prompts.d.ts +99 -0
- package/dist/types/prompts.d.ts.map +1 -0
- package/dist/types/prompts.js +5 -0
- package/dist/types/prompts.js.map +1 -0
- package/dist/types/runner.d.ts +156 -0
- package/dist/types/runner.d.ts.map +1 -0
- package/dist/types/runner.js +41 -0
- package/dist/types/runner.js.map +1 -0
- package/dist/types/send.d.ts +157 -0
- package/dist/types/send.d.ts.map +1 -0
- package/dist/types/send.js +18 -0
- package/dist/types/send.js.map +1 -0
- package/dist/types/status.d.ts +150 -0
- package/dist/types/status.d.ts.map +1 -0
- package/dist/types/status.js +15 -0
- package/dist/types/status.js.map +1 -0
- package/dist/types/sync.d.ts +259 -0
- package/dist/types/sync.d.ts.map +1 -0
- package/dist/types/sync.js +38 -0
- package/dist/types/sync.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Repository configuration schema
|
|
4
|
+
*/
|
|
5
|
+
export declare const RepoSchema: z.ZodObject<{
|
|
6
|
+
alias: z.ZodString;
|
|
7
|
+
url: z.ZodString;
|
|
8
|
+
owner: z.ZodString;
|
|
9
|
+
name: z.ZodString;
|
|
10
|
+
branch: z.ZodDefault<z.ZodString>;
|
|
11
|
+
type: z.ZodDefault<z.ZodEnum<["github"]>>;
|
|
12
|
+
status: z.ZodDefault<z.ZodEnum<["active", "planned", "archived"]>>;
|
|
13
|
+
addedAt: z.ZodOptional<z.ZodString>;
|
|
14
|
+
frameworkInjected: z.ZodDefault<z.ZodBoolean>;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
alias: string;
|
|
17
|
+
url: string;
|
|
18
|
+
owner: string;
|
|
19
|
+
name: string;
|
|
20
|
+
branch: string;
|
|
21
|
+
type: "github";
|
|
22
|
+
status: "active" | "planned" | "archived";
|
|
23
|
+
frameworkInjected: boolean;
|
|
24
|
+
addedAt?: string | undefined;
|
|
25
|
+
}, {
|
|
26
|
+
alias: string;
|
|
27
|
+
url: string;
|
|
28
|
+
owner: string;
|
|
29
|
+
name: string;
|
|
30
|
+
branch?: string | undefined;
|
|
31
|
+
type?: "github" | undefined;
|
|
32
|
+
status?: "active" | "planned" | "archived" | undefined;
|
|
33
|
+
addedAt?: string | undefined;
|
|
34
|
+
frameworkInjected?: boolean | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Project configuration schema
|
|
38
|
+
*/
|
|
39
|
+
export declare const ProjectSchema: z.ZodObject<{
|
|
40
|
+
name: z.ZodString;
|
|
41
|
+
version: z.ZodOptional<z.ZodString>;
|
|
42
|
+
created: z.ZodString;
|
|
43
|
+
type: z.ZodOptional<z.ZodEnum<["existing", "new"]>>;
|
|
44
|
+
}, "strip", z.ZodTypeAny, {
|
|
45
|
+
name: string;
|
|
46
|
+
created: string;
|
|
47
|
+
type?: "existing" | "new" | undefined;
|
|
48
|
+
version?: string | undefined;
|
|
49
|
+
}, {
|
|
50
|
+
name: string;
|
|
51
|
+
created: string;
|
|
52
|
+
type?: "existing" | "new" | undefined;
|
|
53
|
+
version?: string | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
/**
|
|
56
|
+
* Main configuration schema
|
|
57
|
+
*/
|
|
58
|
+
export declare const ConfigSchema: z.ZodObject<{
|
|
59
|
+
project: z.ZodObject<{
|
|
60
|
+
name: z.ZodString;
|
|
61
|
+
version: z.ZodOptional<z.ZodString>;
|
|
62
|
+
created: z.ZodString;
|
|
63
|
+
type: z.ZodOptional<z.ZodEnum<["existing", "new"]>>;
|
|
64
|
+
}, "strip", z.ZodTypeAny, {
|
|
65
|
+
name: string;
|
|
66
|
+
created: string;
|
|
67
|
+
type?: "existing" | "new" | undefined;
|
|
68
|
+
version?: string | undefined;
|
|
69
|
+
}, {
|
|
70
|
+
name: string;
|
|
71
|
+
created: string;
|
|
72
|
+
type?: "existing" | "new" | undefined;
|
|
73
|
+
version?: string | undefined;
|
|
74
|
+
}>;
|
|
75
|
+
repos: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
76
|
+
alias: z.ZodString;
|
|
77
|
+
url: z.ZodString;
|
|
78
|
+
owner: z.ZodString;
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
branch: z.ZodDefault<z.ZodString>;
|
|
81
|
+
type: z.ZodDefault<z.ZodEnum<["github"]>>;
|
|
82
|
+
status: z.ZodDefault<z.ZodEnum<["active", "planned", "archived"]>>;
|
|
83
|
+
addedAt: z.ZodOptional<z.ZodString>;
|
|
84
|
+
frameworkInjected: z.ZodDefault<z.ZodBoolean>;
|
|
85
|
+
}, "strip", z.ZodTypeAny, {
|
|
86
|
+
alias: string;
|
|
87
|
+
url: string;
|
|
88
|
+
owner: string;
|
|
89
|
+
name: string;
|
|
90
|
+
branch: string;
|
|
91
|
+
type: "github";
|
|
92
|
+
status: "active" | "planned" | "archived";
|
|
93
|
+
frameworkInjected: boolean;
|
|
94
|
+
addedAt?: string | undefined;
|
|
95
|
+
}, {
|
|
96
|
+
alias: string;
|
|
97
|
+
url: string;
|
|
98
|
+
owner: string;
|
|
99
|
+
name: string;
|
|
100
|
+
branch?: string | undefined;
|
|
101
|
+
type?: "github" | undefined;
|
|
102
|
+
status?: "active" | "planned" | "archived" | undefined;
|
|
103
|
+
addedAt?: string | undefined;
|
|
104
|
+
frameworkInjected?: boolean | undefined;
|
|
105
|
+
}>, "many">>;
|
|
106
|
+
}, "strip", z.ZodTypeAny, {
|
|
107
|
+
project: {
|
|
108
|
+
name: string;
|
|
109
|
+
created: string;
|
|
110
|
+
type?: "existing" | "new" | undefined;
|
|
111
|
+
version?: string | undefined;
|
|
112
|
+
};
|
|
113
|
+
repos: {
|
|
114
|
+
alias: string;
|
|
115
|
+
url: string;
|
|
116
|
+
owner: string;
|
|
117
|
+
name: string;
|
|
118
|
+
branch: string;
|
|
119
|
+
type: "github";
|
|
120
|
+
status: "active" | "planned" | "archived";
|
|
121
|
+
frameworkInjected: boolean;
|
|
122
|
+
addedAt?: string | undefined;
|
|
123
|
+
}[];
|
|
124
|
+
}, {
|
|
125
|
+
project: {
|
|
126
|
+
name: string;
|
|
127
|
+
created: string;
|
|
128
|
+
type?: "existing" | "new" | undefined;
|
|
129
|
+
version?: string | undefined;
|
|
130
|
+
};
|
|
131
|
+
repos?: {
|
|
132
|
+
alias: string;
|
|
133
|
+
url: string;
|
|
134
|
+
owner: string;
|
|
135
|
+
name: string;
|
|
136
|
+
branch?: string | undefined;
|
|
137
|
+
type?: "github" | undefined;
|
|
138
|
+
status?: "active" | "planned" | "archived" | undefined;
|
|
139
|
+
addedAt?: string | undefined;
|
|
140
|
+
frameworkInjected?: boolean | undefined;
|
|
141
|
+
}[] | undefined;
|
|
142
|
+
}>;
|
|
143
|
+
/**
|
|
144
|
+
* Inferred types from Zod schemas
|
|
145
|
+
*/
|
|
146
|
+
export type Repo = z.infer<typeof RepoSchema>;
|
|
147
|
+
export type Project = z.infer<typeof ProjectSchema>;
|
|
148
|
+
export type Config = z.infer<typeof ConfigSchema>;
|
|
149
|
+
/**
|
|
150
|
+
* Validate project name for directory creation
|
|
151
|
+
*/
|
|
152
|
+
export declare function isValidProjectName(name: string): boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Get validation error for project name
|
|
155
|
+
*/
|
|
156
|
+
export declare function getProjectNameError(name: string): string | null;
|
|
157
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUrB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EAKxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGvB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc/D"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Repository configuration schema
|
|
4
|
+
*/
|
|
5
|
+
export const RepoSchema = z.object({
|
|
6
|
+
alias: z.string().min(1, 'Alias is required'),
|
|
7
|
+
url: z.string().min(1, 'URL is required'),
|
|
8
|
+
owner: z.string().min(1, 'Owner is required'),
|
|
9
|
+
name: z.string().min(1, 'Repository name is required'),
|
|
10
|
+
branch: z.string().default('main'),
|
|
11
|
+
type: z.enum(['github']).default('github'),
|
|
12
|
+
status: z.enum(['active', 'planned', 'archived']).default('active'),
|
|
13
|
+
addedAt: z.string().datetime().optional(),
|
|
14
|
+
frameworkInjected: z.boolean().default(false),
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Project configuration schema
|
|
18
|
+
*/
|
|
19
|
+
export const ProjectSchema = z.object({
|
|
20
|
+
name: z.string().min(1, 'Project name is required'),
|
|
21
|
+
version: z.string().optional(),
|
|
22
|
+
created: z.string().datetime(),
|
|
23
|
+
type: z.enum(['existing', 'new']).optional(),
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Main configuration schema
|
|
27
|
+
*/
|
|
28
|
+
export const ConfigSchema = z.object({
|
|
29
|
+
project: ProjectSchema,
|
|
30
|
+
repos: z.array(RepoSchema).default([]),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Validate project name for directory creation
|
|
34
|
+
*/
|
|
35
|
+
export function isValidProjectName(name) {
|
|
36
|
+
// Allow alphanumeric, hyphens, underscores
|
|
37
|
+
const validPattern = /^[a-zA-Z0-9][a-zA-Z0-9_-]*$/;
|
|
38
|
+
return validPattern.test(name) && name.length <= 100;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get validation error for project name
|
|
42
|
+
*/
|
|
43
|
+
export function getProjectNameError(name) {
|
|
44
|
+
if (!name || name.length === 0) {
|
|
45
|
+
return 'Project name is required';
|
|
46
|
+
}
|
|
47
|
+
if (name.length > 100) {
|
|
48
|
+
return 'Project name must be 100 characters or less';
|
|
49
|
+
}
|
|
50
|
+
if (!/^[a-zA-Z0-9]/.test(name)) {
|
|
51
|
+
return 'Project name must start with a letter or number';
|
|
52
|
+
}
|
|
53
|
+
if (!/^[a-zA-Z0-9][a-zA-Z0-9_-]*$/.test(name)) {
|
|
54
|
+
return 'Project name can only contain letters, numbers, hyphens, and underscores';
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAC7C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAC7C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,6BAA6B,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACzC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAC9C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,0BAA0B,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;CAC7C,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACvC,CAAC,CAAC;AASH;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,2CAA2C;IAC3C,MAAM,YAAY,GAAG,6BAA6B,CAAC;IACnD,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,0BAA0B,CAAC;IACpC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACtB,OAAO,6CAA6C,CAAC;IACvD,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,iDAAiD,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,0EAA0E,CAAC;IACpF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coverage command types
|
|
3
|
+
*
|
|
4
|
+
* Extended coverage types for detailed PRD coverage analysis
|
|
5
|
+
* including per-requirement breakdowns and status grouping.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Requirement implementation status
|
|
9
|
+
*/
|
|
10
|
+
export type RequirementStatus = 'implemented' | 'in_progress' | 'not_started';
|
|
11
|
+
/**
|
|
12
|
+
* Individual requirement with full details
|
|
13
|
+
*/
|
|
14
|
+
export interface RequirementDetail {
|
|
15
|
+
id: string;
|
|
16
|
+
title: string;
|
|
17
|
+
status: RequirementStatus;
|
|
18
|
+
module: string;
|
|
19
|
+
priority: string;
|
|
20
|
+
scopeId: string | null;
|
|
21
|
+
scopeIds: string[];
|
|
22
|
+
completedAt: string | null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Module coverage with requirements
|
|
26
|
+
*/
|
|
27
|
+
export interface ModuleCoverage {
|
|
28
|
+
name: string;
|
|
29
|
+
total: number;
|
|
30
|
+
implemented: number;
|
|
31
|
+
inProgress: number;
|
|
32
|
+
notStarted: number;
|
|
33
|
+
percentage: number;
|
|
34
|
+
requirements: RequirementDetail[];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Requirements grouped by status
|
|
38
|
+
*/
|
|
39
|
+
export interface RequirementsByStatus {
|
|
40
|
+
implemented: RequirementDetail[];
|
|
41
|
+
inProgress: RequirementDetail[];
|
|
42
|
+
notStarted: RequirementDetail[];
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Scope reference for coverage linking
|
|
46
|
+
*/
|
|
47
|
+
export interface ScopeRef {
|
|
48
|
+
id: string;
|
|
49
|
+
title: string;
|
|
50
|
+
status: string;
|
|
51
|
+
requirements: string[];
|
|
52
|
+
completedAt: string | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Extended coverage data with full requirement details
|
|
56
|
+
*/
|
|
57
|
+
export interface ExtendedCoverageData {
|
|
58
|
+
totalRequirements: number;
|
|
59
|
+
implementedRequirements: number;
|
|
60
|
+
inProgressRequirements: number;
|
|
61
|
+
notStartedRequirements: number;
|
|
62
|
+
coveragePercentage: number;
|
|
63
|
+
modules: ModuleCoverage[];
|
|
64
|
+
byStatus: RequirementsByStatus;
|
|
65
|
+
scopes: ScopeRef[];
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* JSON output structure for coverage command
|
|
69
|
+
*/
|
|
70
|
+
export interface CoverageJsonOutput {
|
|
71
|
+
timestamp: string;
|
|
72
|
+
summary: {
|
|
73
|
+
total: number;
|
|
74
|
+
implemented: number;
|
|
75
|
+
inProgress: number;
|
|
76
|
+
notStarted: number;
|
|
77
|
+
percentage: number;
|
|
78
|
+
};
|
|
79
|
+
modules: Array<{
|
|
80
|
+
name: string;
|
|
81
|
+
total: number;
|
|
82
|
+
implemented: number;
|
|
83
|
+
inProgress: number;
|
|
84
|
+
notStarted: number;
|
|
85
|
+
percentage: number;
|
|
86
|
+
requirements: Array<{
|
|
87
|
+
id: string;
|
|
88
|
+
title: string;
|
|
89
|
+
status: RequirementStatus;
|
|
90
|
+
scope: string | null;
|
|
91
|
+
completedAt: string | null;
|
|
92
|
+
}>;
|
|
93
|
+
}>;
|
|
94
|
+
byStatus: {
|
|
95
|
+
implemented: string[];
|
|
96
|
+
inProgress: string[];
|
|
97
|
+
notStarted: string[];
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/types/coverage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,iBAAiB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,UAAU,EAAE,iBAAiB,EAAE,CAAC;IAChC,UAAU,EAAE,iBAAiB,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,KAAK,CAAC;YAClB,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,iBAAiB,CAAC;YAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;SAC5B,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/types/coverage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Doctor health check types
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Categories of health checks
|
|
6
|
+
*/
|
|
7
|
+
export type CheckCategory = 'environment' | 'config' | 'auth' | 'repos' | 'sync';
|
|
8
|
+
/**
|
|
9
|
+
* Status of a health check
|
|
10
|
+
*/
|
|
11
|
+
export type CheckStatus = 'passed' | 'failed' | 'warning';
|
|
12
|
+
/**
|
|
13
|
+
* Result of a single health check
|
|
14
|
+
*/
|
|
15
|
+
export interface CheckResult {
|
|
16
|
+
name: string;
|
|
17
|
+
category: CheckCategory;
|
|
18
|
+
status: CheckStatus;
|
|
19
|
+
details?: string;
|
|
20
|
+
fix?: string;
|
|
21
|
+
fixable?: boolean;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Summary of all doctor checks
|
|
25
|
+
*/
|
|
26
|
+
export interface DoctorSummary {
|
|
27
|
+
passed: number;
|
|
28
|
+
failed: number;
|
|
29
|
+
warnings: number;
|
|
30
|
+
checks: CheckResult[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A health check definition
|
|
34
|
+
*/
|
|
35
|
+
export interface HealthCheck {
|
|
36
|
+
name: string;
|
|
37
|
+
category: CheckCategory;
|
|
38
|
+
critical?: boolean;
|
|
39
|
+
run: () => Promise<CheckResult>;
|
|
40
|
+
fix?: () => Promise<boolean>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Doctor options from CLI
|
|
44
|
+
*/
|
|
45
|
+
export interface DoctorOptions {
|
|
46
|
+
verbose: boolean;
|
|
47
|
+
fix: boolean;
|
|
48
|
+
json: boolean;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* JSON output format for doctor command
|
|
52
|
+
*/
|
|
53
|
+
export interface DoctorJsonOutput {
|
|
54
|
+
timestamp: string;
|
|
55
|
+
summary: {
|
|
56
|
+
passed: number;
|
|
57
|
+
failed: number;
|
|
58
|
+
warnings: number;
|
|
59
|
+
};
|
|
60
|
+
checks: Array<{
|
|
61
|
+
category: CheckCategory;
|
|
62
|
+
name: string;
|
|
63
|
+
status: CheckStatus;
|
|
64
|
+
details?: string;
|
|
65
|
+
fix?: string;
|
|
66
|
+
}>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/types/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,aAAa,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/types/doctor.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gap command types
|
|
3
|
+
*
|
|
4
|
+
* Types for gap analysis reporting including missing implementations,
|
|
5
|
+
* partial implementations, orphaned implementations, and suggestions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Gap type classification
|
|
9
|
+
*/
|
|
10
|
+
export type GapType = 'missing' | 'partial' | 'orphaned';
|
|
11
|
+
/**
|
|
12
|
+
* Gap priority level
|
|
13
|
+
*/
|
|
14
|
+
export type GapPriority = 'P1' | 'P2' | 'P3' | 'P4';
|
|
15
|
+
/**
|
|
16
|
+
* Base gap interface
|
|
17
|
+
*/
|
|
18
|
+
export interface BaseGap {
|
|
19
|
+
type: GapType;
|
|
20
|
+
priority: GapPriority;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Missing implementation gap
|
|
24
|
+
* Requirements without any linked scopes
|
|
25
|
+
*/
|
|
26
|
+
export interface MissingGap extends BaseGap {
|
|
27
|
+
type: 'missing';
|
|
28
|
+
requirementId: string;
|
|
29
|
+
title: string;
|
|
30
|
+
module: string;
|
|
31
|
+
impact: string;
|
|
32
|
+
tags: string[];
|
|
33
|
+
suggestion: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Partial implementation gap
|
|
37
|
+
* Scopes that are in progress with < 100% completion
|
|
38
|
+
*/
|
|
39
|
+
export interface PartialGap extends BaseGap {
|
|
40
|
+
type: 'partial';
|
|
41
|
+
scopeId: string;
|
|
42
|
+
title: string;
|
|
43
|
+
status: string;
|
|
44
|
+
progress: number;
|
|
45
|
+
blocked: boolean;
|
|
46
|
+
blockerReason?: string;
|
|
47
|
+
requirements: string[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Orphaned implementation gap
|
|
51
|
+
* Code or API endpoints not linked to requirements
|
|
52
|
+
*/
|
|
53
|
+
export interface OrphanedGap extends BaseGap {
|
|
54
|
+
type: 'orphaned';
|
|
55
|
+
identifier: string;
|
|
56
|
+
repository: string;
|
|
57
|
+
files: string[];
|
|
58
|
+
suggestedAction: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Union type for all gap types
|
|
62
|
+
*/
|
|
63
|
+
export type Gap = MissingGap | PartialGap | OrphanedGap;
|
|
64
|
+
/**
|
|
65
|
+
* Gap summary by priority
|
|
66
|
+
*/
|
|
67
|
+
export interface GapsByPriority {
|
|
68
|
+
P1: number;
|
|
69
|
+
P2: number;
|
|
70
|
+
P3: number;
|
|
71
|
+
P4: number;
|
|
72
|
+
total: number;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Gap summary by type
|
|
76
|
+
*/
|
|
77
|
+
export interface GapsByType {
|
|
78
|
+
missing: number;
|
|
79
|
+
partial: number;
|
|
80
|
+
orphaned: number;
|
|
81
|
+
total: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Complete gap summary
|
|
85
|
+
*/
|
|
86
|
+
export interface GapSummary {
|
|
87
|
+
byPriority: GapsByPriority;
|
|
88
|
+
byType: GapsByType;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Suggested scope for remediation
|
|
92
|
+
*/
|
|
93
|
+
export interface SuggestedScope {
|
|
94
|
+
title: string;
|
|
95
|
+
priority: GapPriority;
|
|
96
|
+
requirements: string[];
|
|
97
|
+
estimatedEffort: 'S' | 'M' | 'L' | 'XL';
|
|
98
|
+
module: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Complete gap analysis data
|
|
102
|
+
*/
|
|
103
|
+
export interface GapAnalysisData {
|
|
104
|
+
summary: GapSummary;
|
|
105
|
+
gaps: {
|
|
106
|
+
missing: MissingGap[];
|
|
107
|
+
partial: PartialGap[];
|
|
108
|
+
orphaned: OrphanedGap[];
|
|
109
|
+
};
|
|
110
|
+
suggestions: SuggestedScope[];
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* JSON output structure for --json flag
|
|
114
|
+
*/
|
|
115
|
+
export interface GapsJsonOutput {
|
|
116
|
+
timestamp: string;
|
|
117
|
+
summary: GapSummary;
|
|
118
|
+
gaps: Gap[];
|
|
119
|
+
suggestions: SuggestedScope[];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Filter options for gap analysis
|
|
123
|
+
*/
|
|
124
|
+
export interface GapFilterOptions {
|
|
125
|
+
priority?: GapPriority;
|
|
126
|
+
type?: GapType;
|
|
127
|
+
module?: string;
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=gaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaps.d.ts","sourceRoot":"","sources":["../../src/types/gaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaps.js","sourceRoot":"","sources":["../../src/types/gaps.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the prompt system
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Supported operations that have prompt templates
|
|
6
|
+
*/
|
|
7
|
+
export type PromptOperation = 'prd' | 'scope' | 'gaps' | 'analyze';
|
|
8
|
+
/**
|
|
9
|
+
* Phases of an operation
|
|
10
|
+
*/
|
|
11
|
+
export type PromptPhase = 'assess' | 'execute' | 'synthesize';
|
|
12
|
+
/**
|
|
13
|
+
* Variable definition in a prompt template
|
|
14
|
+
*/
|
|
15
|
+
export interface PromptVariable {
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
required: boolean;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parsed prompt template metadata
|
|
22
|
+
*/
|
|
23
|
+
export interface PromptMetadata {
|
|
24
|
+
title: string;
|
|
25
|
+
operation: PromptOperation;
|
|
26
|
+
phase: PromptPhase;
|
|
27
|
+
variables: PromptVariable[];
|
|
28
|
+
filePath: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Task definition from assessment output
|
|
32
|
+
*/
|
|
33
|
+
export interface AssessmentTask {
|
|
34
|
+
id: number;
|
|
35
|
+
name: string;
|
|
36
|
+
description: string;
|
|
37
|
+
prompt: string;
|
|
38
|
+
interactive: boolean;
|
|
39
|
+
context: Record<string, unknown>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Assessment output format
|
|
43
|
+
*/
|
|
44
|
+
export interface AssessmentOutput {
|
|
45
|
+
complexity: 'S' | 'M' | 'L' | 'XL';
|
|
46
|
+
assessment: Record<string, unknown>;
|
|
47
|
+
tasks: AssessmentTask[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Task output base format
|
|
51
|
+
*/
|
|
52
|
+
export interface TaskOutput {
|
|
53
|
+
task: string;
|
|
54
|
+
status: 'complete' | 'failed';
|
|
55
|
+
[key: string]: unknown;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Variable values for prompt substitution
|
|
59
|
+
*/
|
|
60
|
+
export type PromptVariables = Record<string, string | number | boolean | unknown[]>;
|
|
61
|
+
/**
|
|
62
|
+
* Result of variable substitution
|
|
63
|
+
*/
|
|
64
|
+
export interface SubstitutionResult {
|
|
65
|
+
content: string;
|
|
66
|
+
substitutedCount: number;
|
|
67
|
+
missingVariables: string[];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Prompt validation result
|
|
71
|
+
*/
|
|
72
|
+
export interface PromptValidation {
|
|
73
|
+
valid: boolean;
|
|
74
|
+
errors: string[];
|
|
75
|
+
warnings: string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Schema field definition for output validation
|
|
79
|
+
*/
|
|
80
|
+
export interface SchemaField {
|
|
81
|
+
type: 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
82
|
+
required: boolean;
|
|
83
|
+
description?: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Output schema for validation
|
|
87
|
+
*/
|
|
88
|
+
export interface OutputSchema {
|
|
89
|
+
fields: Record<string, SchemaField>;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Output validation result
|
|
93
|
+
*/
|
|
94
|
+
export interface OutputValidation {
|
|
95
|
+
valid: boolean;
|
|
96
|
+
missingFields: string[];
|
|
97
|
+
invalidFields: string[];
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/types/prompts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,CAAC,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB"}
|