forge-cc 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/dist/cli.js +7 -1
  2. package/dist/cli.js.map +1 -1
  3. package/package.json +3 -2
  4. package/dist/gates/codex-gate.d.ts +0 -51
  5. package/dist/gates/codex-gate.js +0 -121
  6. package/dist/gates/codex-gate.js.map +0 -1
  7. package/dist/gates/prd-gate.d.ts +0 -7
  8. package/dist/gates/prd-gate.js +0 -193
  9. package/dist/gates/prd-gate.js.map +0 -1
  10. package/dist/gates/remediation.d.ts +0 -46
  11. package/dist/gates/remediation.js +0 -423
  12. package/dist/gates/remediation.js.map +0 -1
  13. package/dist/gates/review-gate.d.ts +0 -16
  14. package/dist/gates/review-gate.js +0 -479
  15. package/dist/gates/review-gate.js.map +0 -1
  16. package/dist/gates/runtime-gate.d.ts +0 -5
  17. package/dist/gates/runtime-gate.js +0 -99
  18. package/dist/gates/runtime-gate.js.map +0 -1
  19. package/dist/gates/test-analysis.d.ts +0 -21
  20. package/dist/gates/test-analysis.js +0 -394
  21. package/dist/gates/test-analysis.js.map +0 -1
  22. package/dist/gates/visual-capture.d.ts +0 -24
  23. package/dist/gates/visual-capture.js +0 -144
  24. package/dist/gates/visual-capture.js.map +0 -1
  25. package/dist/gates/visual-gate.d.ts +0 -18
  26. package/dist/gates/visual-gate.js +0 -234
  27. package/dist/gates/visual-gate.js.map +0 -1
  28. package/dist/gates/visual-reviewer.d.ts +0 -11
  29. package/dist/gates/visual-reviewer.js +0 -211
  30. package/dist/gates/visual-reviewer.js.map +0 -1
  31. package/dist/go/auto-chain.d.ts +0 -136
  32. package/dist/go/auto-chain.js +0 -389
  33. package/dist/go/auto-chain.js.map +0 -1
  34. package/dist/go/executor.d.ts +0 -137
  35. package/dist/go/executor.js +0 -447
  36. package/dist/go/executor.js.map +0 -1
  37. package/dist/go/finalize.d.ts +0 -108
  38. package/dist/go/finalize.js +0 -331
  39. package/dist/go/finalize.js.map +0 -1
  40. package/dist/go/linear-sync-cli.d.ts +0 -55
  41. package/dist/go/linear-sync-cli.js +0 -192
  42. package/dist/go/linear-sync-cli.js.map +0 -1
  43. package/dist/go/linear-sync.d.ts +0 -112
  44. package/dist/go/linear-sync.js +0 -375
  45. package/dist/go/linear-sync.js.map +0 -1
  46. package/dist/go/prd-queue.d.ts +0 -43
  47. package/dist/go/prd-queue.js +0 -67
  48. package/dist/go/prd-queue.js.map +0 -1
  49. package/dist/go/prd-selector.d.ts +0 -57
  50. package/dist/go/prd-selector.js +0 -101
  51. package/dist/go/prd-selector.js.map +0 -1
  52. package/dist/go/verify-loop.d.ts +0 -64
  53. package/dist/go/verify-loop.js +0 -327
  54. package/dist/go/verify-loop.js.map +0 -1
  55. package/dist/hooks/pre-commit.d.ts +0 -5
  56. package/dist/hooks/pre-commit.js +0 -75
  57. package/dist/hooks/pre-commit.js.map +0 -1
  58. package/dist/linear/issues.d.ts +0 -22
  59. package/dist/linear/issues.js +0 -51
  60. package/dist/linear/issues.js.map +0 -1
  61. package/dist/linear/milestones.d.ts +0 -11
  62. package/dist/linear/milestones.js +0 -32
  63. package/dist/linear/milestones.js.map +0 -1
  64. package/dist/linear/projects.d.ts +0 -16
  65. package/dist/linear/projects.js +0 -51
  66. package/dist/linear/projects.js.map +0 -1
  67. package/dist/reporter/human.d.ts +0 -7
  68. package/dist/reporter/human.js +0 -93
  69. package/dist/reporter/human.js.map +0 -1
  70. package/dist/reporter/json.d.ts +0 -2
  71. package/dist/reporter/json.js +0 -4
  72. package/dist/reporter/json.js.map +0 -1
  73. package/dist/setup/structural-templates.d.ts +0 -12
  74. package/dist/setup/structural-templates.js +0 -288
  75. package/dist/setup/structural-templates.js.map +0 -1
  76. package/dist/setup/templates.d.ts +0 -17
  77. package/dist/setup/templates.js +0 -109
  78. package/dist/setup/templates.js.map +0 -1
  79. package/dist/setup/test-planner.d.ts +0 -38
  80. package/dist/setup/test-planner.js +0 -91
  81. package/dist/setup/test-planner.js.map +0 -1
  82. package/dist/setup/test-scaffold.d.ts +0 -31
  83. package/dist/setup/test-scaffold.js +0 -209
  84. package/dist/setup/test-scaffold.js.map +0 -1
  85. package/dist/setup/test-templates.d.ts +0 -37
  86. package/dist/setup/test-templates.js +0 -313
  87. package/dist/setup/test-templates.js.map +0 -1
  88. package/dist/spec/generator.d.ts +0 -34
  89. package/dist/spec/generator.js +0 -227
  90. package/dist/spec/generator.js.map +0 -1
  91. package/dist/spec/interview.d.ts +0 -142
  92. package/dist/spec/interview.js +0 -287
  93. package/dist/spec/interview.js.map +0 -1
  94. package/dist/spec/linear-sync.d.ts +0 -48
  95. package/dist/spec/linear-sync.js +0 -125
  96. package/dist/spec/linear-sync.js.map +0 -1
  97. package/dist/spec/scanner.d.ts +0 -79
  98. package/dist/spec/scanner.js +0 -566
  99. package/dist/spec/scanner.js.map +0 -1
  100. package/dist/spec/templates.d.ts +0 -375
  101. package/dist/spec/templates.js +0 -95
  102. package/dist/spec/templates.js.map +0 -1
  103. package/dist/state/prd-status.d.ts +0 -62
  104. package/dist/state/prd-status.js +0 -122
  105. package/dist/state/prd-status.js.map +0 -1
  106. package/dist/state/reader.d.ts +0 -7
  107. package/dist/state/reader.js +0 -43
  108. package/dist/state/reader.js.map +0 -1
  109. package/dist/state/writer.d.ts +0 -21
  110. package/dist/state/writer.js +0 -106
  111. package/dist/state/writer.js.map +0 -1
  112. package/dist/team/consensus.d.ts +0 -28
  113. package/dist/team/consensus.js +0 -130
  114. package/dist/team/consensus.js.map +0 -1
  115. package/dist/team/index.d.ts +0 -4
  116. package/dist/team/index.js +0 -5
  117. package/dist/team/index.js.map +0 -1
  118. package/dist/team/lifecycle.d.ts +0 -37
  119. package/dist/team/lifecycle.js +0 -92
  120. package/dist/team/lifecycle.js.map +0 -1
  121. package/dist/team/reviewer.d.ts +0 -10
  122. package/dist/team/reviewer.js +0 -345
  123. package/dist/team/reviewer.js.map +0 -1
  124. package/dist/team/types.d.ts +0 -269
  125. package/dist/team/types.js +0 -70
  126. package/dist/team/types.js.map +0 -1
  127. package/dist/utils/browser.d.ts +0 -10
  128. package/dist/utils/browser.js +0 -96
  129. package/dist/utils/browser.js.map +0 -1
  130. package/dist/utils/platform.d.ts +0 -29
  131. package/dist/utils/platform.js +0 -90
  132. package/dist/utils/platform.js.map +0 -1
  133. package/dist/worktree/identity.d.ts +0 -9
  134. package/dist/worktree/identity.js +0 -32
  135. package/dist/worktree/identity.js.map +0 -1
  136. package/dist/worktree/parallel.d.ts +0 -87
  137. package/dist/worktree/parallel.js +0 -328
  138. package/dist/worktree/parallel.js.map +0 -1
  139. package/dist/worktree/session.d.ts +0 -67
  140. package/dist/worktree/session.js +0 -194
  141. package/dist/worktree/session.js.map +0 -1
  142. package/dist/worktree/state-merge.d.ts +0 -43
  143. package/dist/worktree/state-merge.js +0 -162
  144. package/dist/worktree/state-merge.js.map +0 -1
@@ -1,345 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { readFileSync, existsSync } from "node:fs";
3
- import { join } from "node:path";
4
- // ---------------------------------------------------------------------------
5
- // Diff Parsing (local copy — review-gate.ts does not export these)
6
- // ---------------------------------------------------------------------------
7
- const DIFF_FILE_RE = /^diff --git a\/(.+?) b\/(.+?)$/;
8
- const HUNK_HEADER_RE = /^@@ -\d+(?:,\d+)? \+(\d+)(?:,\d+)? @@/;
9
- function parseDiffHunks(diffContent) {
10
- const lines = diffContent.split("\n");
11
- const hunks = [];
12
- let currentFile = "";
13
- let currentHunk = null;
14
- let currentLine = 0;
15
- for (const line of lines) {
16
- // New file header
17
- const fileMatch = line.match(DIFF_FILE_RE);
18
- if (fileMatch) {
19
- if (currentHunk)
20
- hunks.push(currentHunk);
21
- currentFile = fileMatch[2];
22
- currentHunk = null;
23
- continue;
24
- }
25
- // New hunk header
26
- const hunkMatch = line.match(HUNK_HEADER_RE);
27
- if (hunkMatch) {
28
- if (currentHunk)
29
- hunks.push(currentHunk);
30
- currentLine = parseInt(hunkMatch[1], 10);
31
- currentHunk = {
32
- file: currentFile,
33
- startLine: currentLine,
34
- content: "",
35
- addedLines: [],
36
- removedLines: [],
37
- };
38
- continue;
39
- }
40
- if (!currentHunk)
41
- continue;
42
- currentHunk.content += line + "\n";
43
- if (line.startsWith("+") && !line.startsWith("+++")) {
44
- currentHunk.addedLines.push({ line: currentLine, text: line.slice(1) });
45
- currentLine++;
46
- }
47
- else if (line.startsWith("-") && !line.startsWith("---")) {
48
- currentHunk.removedLines.push({
49
- line: currentLine,
50
- text: line.slice(1),
51
- });
52
- // Removed lines don't advance the new-file line counter
53
- }
54
- else {
55
- // Context line
56
- currentLine++;
57
- }
58
- }
59
- if (currentHunk)
60
- hunks.push(currentHunk);
61
- return hunks;
62
- }
63
- // ---------------------------------------------------------------------------
64
- // Diff Retrieval
65
- // ---------------------------------------------------------------------------
66
- function getDiffContent(projectDir, baseBranch) {
67
- const execOpts = { cwd: projectDir, encoding: "utf-8", timeout: 30_000 };
68
- // Try diff against base branch first if provided
69
- if (baseBranch) {
70
- try {
71
- const diff = execSync(`git diff ${baseBranch}...HEAD`, execOpts);
72
- if (diff.trim())
73
- return diff;
74
- }
75
- catch {
76
- // Fall through to other strategies
77
- }
78
- }
79
- // Try HEAD~1 (last commit's diff)
80
- try {
81
- const diff = execSync("git diff HEAD~1", execOpts);
82
- if (diff.trim())
83
- return diff;
84
- }
85
- catch {
86
- // Fall through
87
- }
88
- // Try staged changes
89
- try {
90
- const diff = execSync("git diff --cached", execOpts);
91
- if (diff.trim())
92
- return diff;
93
- }
94
- catch {
95
- // Fall through
96
- }
97
- // Try unstaged changes
98
- try {
99
- const diff = execSync("git diff", execOpts);
100
- if (diff.trim())
101
- return diff;
102
- }
103
- catch {
104
- // Nothing available
105
- }
106
- return null;
107
- }
108
- // ---------------------------------------------------------------------------
109
- // PRD Checklist Extraction
110
- // ---------------------------------------------------------------------------
111
- function extractPrdChecklist(prdPath, projectDir) {
112
- const checklist = [];
113
- if (!prdPath)
114
- return checklist;
115
- const resolvedPath = prdPath.startsWith("/") || prdPath.includes(":")
116
- ? prdPath
117
- : join(projectDir, prdPath);
118
- if (!existsSync(resolvedPath))
119
- return checklist;
120
- try {
121
- const content = readFileSync(resolvedPath, "utf-8");
122
- const lines = content.split("\n");
123
- let currentSection = "General";
124
- for (const line of lines) {
125
- const trimmed = line.trim();
126
- // Track section headings (## or ###)
127
- const headingMatch = trimmed.match(/^#{2,3}\s+(.+)/);
128
- if (headingMatch) {
129
- currentSection = headingMatch[1].trim();
130
- continue;
131
- }
132
- // Unchecked checkbox lines: - [ ] ...
133
- const checkboxMatch = trimmed.match(/^-\s+\[ \]\s+(.+)/);
134
- if (checkboxMatch) {
135
- checklist.push({
136
- text: checkboxMatch[1].trim(),
137
- section: currentSection,
138
- });
139
- }
140
- }
141
- }
142
- catch {
143
- // PRD unreadable -- skip
144
- }
145
- return checklist;
146
- }
147
- // ---------------------------------------------------------------------------
148
- // Finding ID Generator
149
- // ---------------------------------------------------------------------------
150
- function generateFindingId() {
151
- return "f-" + Math.random().toString(36).slice(2, 8);
152
- }
153
- // ---------------------------------------------------------------------------
154
- // Keyword Extraction (for PRD criterion matching)
155
- // ---------------------------------------------------------------------------
156
- const STOP_WORDS = new Set([
157
- "the",
158
- "and",
159
- "for",
160
- "are",
161
- "but",
162
- "not",
163
- "you",
164
- "all",
165
- "can",
166
- "has",
167
- "her",
168
- "was",
169
- "one",
170
- "our",
171
- "out",
172
- "its",
173
- "his",
174
- "how",
175
- "may",
176
- "who",
177
- "did",
178
- "get",
179
- "let",
180
- "say",
181
- "she",
182
- "too",
183
- "use",
184
- "way",
185
- "each",
186
- "which",
187
- "their",
188
- "will",
189
- "other",
190
- "about",
191
- "many",
192
- "then",
193
- "them",
194
- "been",
195
- "have",
196
- "from",
197
- "with",
198
- "they",
199
- "this",
200
- "that",
201
- "what",
202
- "when",
203
- "make",
204
- "like",
205
- "just",
206
- "over",
207
- "such",
208
- "take",
209
- "into",
210
- "than",
211
- "most",
212
- "also",
213
- "should",
214
- "would",
215
- "could",
216
- "must",
217
- "shall",
218
- "might",
219
- "does",
220
- "display",
221
- "show",
222
- "page",
223
- "user",
224
- "view",
225
- "click",
226
- "able",
227
- "ensure",
228
- "given",
229
- ]);
230
- function extractKeywords(text) {
231
- return text
232
- .toLowerCase()
233
- .replace(/[^a-z0-9\s-]/g, " ")
234
- .split(/\s+/)
235
- .filter((w) => w.length >= 3 && !STOP_WORDS.has(w));
236
- }
237
- // ---------------------------------------------------------------------------
238
- // Main: reviewWaveDiff
239
- // ---------------------------------------------------------------------------
240
- function reviewWaveDiff(options) {
241
- const { projectDir, prdPath, baseBranch } = options;
242
- const findings = [];
243
- // 1. Get diff content
244
- const diffContent = getDiffContent(projectDir, baseBranch);
245
- if (!diffContent)
246
- return findings;
247
- // 2. Parse into hunks
248
- const hunks = parseDiffHunks(diffContent);
249
- if (hunks.length === 0)
250
- return findings;
251
- // 3. Extract PRD checklist
252
- const prdChecklist = extractPrdChecklist(prdPath, projectDir);
253
- // 4. For each PRD criterion, check if any hunk addresses it
254
- for (const criterion of prdChecklist) {
255
- const keywords = extractKeywords(criterion.text);
256
- if (keywords.length === 0)
257
- continue;
258
- let matched = false;
259
- for (const hunk of hunks) {
260
- const hunkText = hunk.content.toLowerCase();
261
- const fileText = hunk.file.toLowerCase();
262
- const keywordHits = keywords.filter((kw) => hunkText.includes(kw) || fileText.includes(kw));
263
- // Require at least 40% of keywords to match
264
- if (keywordHits.length >= Math.ceil(keywords.length * 0.4)) {
265
- matched = true;
266
- break;
267
- }
268
- }
269
- if (!matched) {
270
- findings.push({
271
- id: generateFindingId(),
272
- severity: "error",
273
- message: `PRD criterion may not be addressed: "${criterion.text}"`,
274
- remediation: `Review PRD section "${criterion.section}" and ensure this criterion is covered by the current changes.`,
275
- source: `PRD: ${criterion.section}`,
276
- });
277
- }
278
- }
279
- // 5. Check added lines for common issues
280
- for (const hunk of hunks) {
281
- // Only check TypeScript/JavaScript files for code-level issues
282
- if (!/\.[tj]sx?$/.test(hunk.file))
283
- continue;
284
- for (const addedLine of hunk.addedLines) {
285
- const text = addedLine.text;
286
- // console.log( -> warning
287
- if (/console\.log\(/.test(text)) {
288
- findings.push({
289
- id: generateFindingId(),
290
- severity: "warning",
291
- file: hunk.file,
292
- line: addedLine.line,
293
- message: "console.log() left in code -- consider removing debug output.",
294
- remediation: "Remove console.log statements before committing, or use a proper logger.",
295
- source: "Style: debug output",
296
- });
297
- }
298
- // : any type usage -> warning
299
- if (/:\s*any\b/.test(text) &&
300
- !text.includes("// eslint-disable") &&
301
- !text.includes("@ts-")) {
302
- findings.push({
303
- id: generateFindingId(),
304
- severity: "warning",
305
- file: hunk.file,
306
- line: addedLine.line,
307
- message: "Explicit 'any' type used -- consider using a more specific type.",
308
- remediation: "Replace 'any' with a specific type or 'unknown' for type safety.",
309
- source: "Style: TypeScript strict mode",
310
- });
311
- }
312
- // TODO|FIXME|HACK -> warning
313
- if (/\b(TODO|FIXME|HACK)\b/.test(text)) {
314
- findings.push({
315
- id: generateFindingId(),
316
- severity: "warning",
317
- file: hunk.file,
318
- line: addedLine.line,
319
- message: "TODO/FIXME/HACK marker found in new code.",
320
- remediation: "Resolve the TODO or track it as a separate issue before merging.",
321
- source: "Style: code cleanliness",
322
- });
323
- }
324
- // Missing .js in relative imports -> error
325
- // Match from "./..." or from '../...' without .js extension
326
- if (/from\s+["'][.][^"']*(?<!\.js)["']/.test(text)) {
327
- findings.push({
328
- id: generateFindingId(),
329
- severity: "error",
330
- file: hunk.file,
331
- line: addedLine.line,
332
- message: "Relative import missing .js extension (ES module requirement).",
333
- remediation: "Add .js extension to all relative imports per ES module convention.",
334
- source: "Style: ES module imports",
335
- });
336
- }
337
- }
338
- }
339
- return findings;
340
- }
341
- // ---------------------------------------------------------------------------
342
- // Exports
343
- // ---------------------------------------------------------------------------
344
- export { reviewWaveDiff };
345
- //# sourceMappingURL=reviewer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reviewer.js","sourceRoot":"","sources":["../../src/team/reviewer.ts"],"names":[],"mappings":"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"}
@@ -1,269 +0,0 @@
1
- import { z } from "zod";
2
- export declare const AgentRoleSchema: z.ZodEnum<["executive", "builder", "reviewer", "notetaker"]>;
3
- export type AgentRole = z.infer<typeof AgentRoleSchema>;
4
- export declare const TeamConfigSchema: z.ZodObject<{
5
- teamName: z.ZodString;
6
- prdSlug: z.ZodString;
7
- milestoneNumber: z.ZodNumber;
8
- roles: z.ZodRecord<z.ZodString, z.ZodEnum<["executive", "builder", "reviewer", "notetaker"]>>;
9
- }, "strip", z.ZodTypeAny, {
10
- teamName: string;
11
- prdSlug: string;
12
- milestoneNumber: number;
13
- roles: Record<string, "executive" | "builder" | "reviewer" | "notetaker">;
14
- }, {
15
- teamName: string;
16
- prdSlug: string;
17
- milestoneNumber: number;
18
- roles: Record<string, "executive" | "builder" | "reviewer" | "notetaker">;
19
- }>;
20
- export type TeamConfig = z.infer<typeof TeamConfigSchema>;
21
- export declare const FindingSchema: z.ZodObject<{
22
- id: z.ZodString;
23
- severity: z.ZodEnum<["error", "warning"]>;
24
- file: z.ZodOptional<z.ZodString>;
25
- line: z.ZodOptional<z.ZodNumber>;
26
- message: z.ZodString;
27
- remediation: z.ZodString;
28
- source: z.ZodString;
29
- }, "strip", z.ZodTypeAny, {
30
- message: string;
31
- id: string;
32
- severity: "error" | "warning";
33
- remediation: string;
34
- source: string;
35
- file?: string | undefined;
36
- line?: number | undefined;
37
- }, {
38
- message: string;
39
- id: string;
40
- severity: "error" | "warning";
41
- remediation: string;
42
- source: string;
43
- file?: string | undefined;
44
- line?: number | undefined;
45
- }>;
46
- export type Finding = z.infer<typeof FindingSchema>;
47
- export declare const ConsensusRoundSchema: z.ZodObject<{
48
- findingId: z.ZodString;
49
- round: z.ZodNumber;
50
- builderName: z.ZodString;
51
- response: z.ZodEnum<["agree", "disagree", "alternative"]>;
52
- reason: z.ZodOptional<z.ZodString>;
53
- alternativeProposal: z.ZodOptional<z.ZodString>;
54
- }, "strip", z.ZodTypeAny, {
55
- findingId: string;
56
- round: number;
57
- builderName: string;
58
- response: "agree" | "disagree" | "alternative";
59
- reason?: string | undefined;
60
- alternativeProposal?: string | undefined;
61
- }, {
62
- findingId: string;
63
- round: number;
64
- builderName: string;
65
- response: "agree" | "disagree" | "alternative";
66
- reason?: string | undefined;
67
- alternativeProposal?: string | undefined;
68
- }>;
69
- export type ConsensusRound = z.infer<typeof ConsensusRoundSchema>;
70
- export declare const ConsensusResultSchema: z.ZodObject<{
71
- findingId: z.ZodString;
72
- resolution: z.ZodEnum<["accepted", "rejected", "escalated"]>;
73
- rounds: z.ZodArray<z.ZodObject<{
74
- findingId: z.ZodString;
75
- round: z.ZodNumber;
76
- builderName: z.ZodString;
77
- response: z.ZodEnum<["agree", "disagree", "alternative"]>;
78
- reason: z.ZodOptional<z.ZodString>;
79
- alternativeProposal: z.ZodOptional<z.ZodString>;
80
- }, "strip", z.ZodTypeAny, {
81
- findingId: string;
82
- round: number;
83
- builderName: string;
84
- response: "agree" | "disagree" | "alternative";
85
- reason?: string | undefined;
86
- alternativeProposal?: string | undefined;
87
- }, {
88
- findingId: string;
89
- round: number;
90
- builderName: string;
91
- response: "agree" | "disagree" | "alternative";
92
- reason?: string | undefined;
93
- alternativeProposal?: string | undefined;
94
- }>, "many">;
95
- finalDecision: z.ZodOptional<z.ZodString>;
96
- }, "strip", z.ZodTypeAny, {
97
- findingId: string;
98
- resolution: "accepted" | "rejected" | "escalated";
99
- rounds: {
100
- findingId: string;
101
- round: number;
102
- builderName: string;
103
- response: "agree" | "disagree" | "alternative";
104
- reason?: string | undefined;
105
- alternativeProposal?: string | undefined;
106
- }[];
107
- finalDecision?: string | undefined;
108
- }, {
109
- findingId: string;
110
- resolution: "accepted" | "rejected" | "escalated";
111
- rounds: {
112
- findingId: string;
113
- round: number;
114
- builderName: string;
115
- response: "agree" | "disagree" | "alternative";
116
- reason?: string | undefined;
117
- alternativeProposal?: string | undefined;
118
- }[];
119
- finalDecision?: string | undefined;
120
- }>;
121
- export type ConsensusResult = z.infer<typeof ConsensusResultSchema>;
122
- export declare const TeamReviewResultSchema: z.ZodObject<{
123
- findings: z.ZodArray<z.ZodObject<{
124
- id: z.ZodString;
125
- severity: z.ZodEnum<["error", "warning"]>;
126
- file: z.ZodOptional<z.ZodString>;
127
- line: z.ZodOptional<z.ZodNumber>;
128
- message: z.ZodString;
129
- remediation: z.ZodString;
130
- source: z.ZodString;
131
- }, "strip", z.ZodTypeAny, {
132
- message: string;
133
- id: string;
134
- severity: "error" | "warning";
135
- remediation: string;
136
- source: string;
137
- file?: string | undefined;
138
- line?: number | undefined;
139
- }, {
140
- message: string;
141
- id: string;
142
- severity: "error" | "warning";
143
- remediation: string;
144
- source: string;
145
- file?: string | undefined;
146
- line?: number | undefined;
147
- }>, "many">;
148
- consensusResults: z.ZodArray<z.ZodObject<{
149
- findingId: z.ZodString;
150
- resolution: z.ZodEnum<["accepted", "rejected", "escalated"]>;
151
- rounds: z.ZodArray<z.ZodObject<{
152
- findingId: z.ZodString;
153
- round: z.ZodNumber;
154
- builderName: z.ZodString;
155
- response: z.ZodEnum<["agree", "disagree", "alternative"]>;
156
- reason: z.ZodOptional<z.ZodString>;
157
- alternativeProposal: z.ZodOptional<z.ZodString>;
158
- }, "strip", z.ZodTypeAny, {
159
- findingId: string;
160
- round: number;
161
- builderName: string;
162
- response: "agree" | "disagree" | "alternative";
163
- reason?: string | undefined;
164
- alternativeProposal?: string | undefined;
165
- }, {
166
- findingId: string;
167
- round: number;
168
- builderName: string;
169
- response: "agree" | "disagree" | "alternative";
170
- reason?: string | undefined;
171
- alternativeProposal?: string | undefined;
172
- }>, "many">;
173
- finalDecision: z.ZodOptional<z.ZodString>;
174
- }, "strip", z.ZodTypeAny, {
175
- findingId: string;
176
- resolution: "accepted" | "rejected" | "escalated";
177
- rounds: {
178
- findingId: string;
179
- round: number;
180
- builderName: string;
181
- response: "agree" | "disagree" | "alternative";
182
- reason?: string | undefined;
183
- alternativeProposal?: string | undefined;
184
- }[];
185
- finalDecision?: string | undefined;
186
- }, {
187
- findingId: string;
188
- resolution: "accepted" | "rejected" | "escalated";
189
- rounds: {
190
- findingId: string;
191
- round: number;
192
- builderName: string;
193
- response: "agree" | "disagree" | "alternative";
194
- reason?: string | undefined;
195
- alternativeProposal?: string | undefined;
196
- }[];
197
- finalDecision?: string | undefined;
198
- }>, "many">;
199
- duration_ms: z.ZodNumber;
200
- }, "strip", z.ZodTypeAny, {
201
- findings: {
202
- message: string;
203
- id: string;
204
- severity: "error" | "warning";
205
- remediation: string;
206
- source: string;
207
- file?: string | undefined;
208
- line?: number | undefined;
209
- }[];
210
- consensusResults: {
211
- findingId: string;
212
- resolution: "accepted" | "rejected" | "escalated";
213
- rounds: {
214
- findingId: string;
215
- round: number;
216
- builderName: string;
217
- response: "agree" | "disagree" | "alternative";
218
- reason?: string | undefined;
219
- alternativeProposal?: string | undefined;
220
- }[];
221
- finalDecision?: string | undefined;
222
- }[];
223
- duration_ms: number;
224
- }, {
225
- findings: {
226
- message: string;
227
- id: string;
228
- severity: "error" | "warning";
229
- remediation: string;
230
- source: string;
231
- file?: string | undefined;
232
- line?: number | undefined;
233
- }[];
234
- consensusResults: {
235
- findingId: string;
236
- resolution: "accepted" | "rejected" | "escalated";
237
- rounds: {
238
- findingId: string;
239
- round: number;
240
- builderName: string;
241
- response: "agree" | "disagree" | "alternative";
242
- reason?: string | undefined;
243
- alternativeProposal?: string | undefined;
244
- }[];
245
- finalDecision?: string | undefined;
246
- }[];
247
- duration_ms: number;
248
- }>;
249
- export type TeamReviewResult = z.infer<typeof TeamReviewResultSchema>;
250
- export declare const CodexCommentSchema: z.ZodObject<{
251
- id: z.ZodNumber;
252
- body: z.ZodString;
253
- path: z.ZodString;
254
- line: z.ZodOptional<z.ZodNumber>;
255
- resolved: z.ZodBoolean;
256
- }, "strip", z.ZodTypeAny, {
257
- path: string;
258
- id: number;
259
- body: string;
260
- resolved: boolean;
261
- line?: number | undefined;
262
- }, {
263
- path: string;
264
- id: number;
265
- body: string;
266
- resolved: boolean;
267
- line?: number | undefined;
268
- }>;
269
- export type CodexComment = z.infer<typeof CodexCommentSchema>;