popeye-cli 2.0.0 → 2.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.
Files changed (117) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/CONTRIBUTING.md +23 -2
  3. package/README.md +47 -18
  4. package/dist/adapters/gemini.js +3 -3
  5. package/dist/adapters/openai.js +2 -2
  6. package/dist/adapters/openai.js.map +1 -1
  7. package/dist/auth/gemini.js +1 -1
  8. package/dist/cli/commands/create.d.ts.map +1 -1
  9. package/dist/cli/commands/create.js +11 -5
  10. package/dist/cli/commands/create.js.map +1 -1
  11. package/dist/cli/commands/resume.d.ts.map +1 -1
  12. package/dist/cli/commands/resume.js +9 -1
  13. package/dist/cli/commands/resume.js.map +1 -1
  14. package/dist/cli/interactive.d.ts.map +1 -1
  15. package/dist/cli/interactive.js +29 -3
  16. package/dist/cli/interactive.js.map +1 -1
  17. package/dist/config/defaults.d.ts.map +1 -1
  18. package/dist/config/defaults.js +7 -2
  19. package/dist/config/defaults.js.map +1 -1
  20. package/dist/config/index.d.ts +1 -7
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/popeye-md.d.ts +32 -0
  23. package/dist/config/popeye-md.d.ts.map +1 -0
  24. package/dist/config/popeye-md.js +111 -0
  25. package/dist/config/popeye-md.js.map +1 -0
  26. package/dist/config/schema.d.ts +3 -21
  27. package/dist/config/schema.d.ts.map +1 -1
  28. package/dist/config/schema.js +21 -8
  29. package/dist/config/schema.js.map +1 -1
  30. package/dist/pipeline/bridges/review-bridge.d.ts +70 -0
  31. package/dist/pipeline/bridges/review-bridge.d.ts.map +1 -0
  32. package/dist/pipeline/bridges/review-bridge.js +266 -0
  33. package/dist/pipeline/bridges/review-bridge.js.map +1 -0
  34. package/dist/pipeline/consensus/consensus-runner.js +3 -3
  35. package/dist/pipeline/consensus/consensus-runner.js.map +1 -1
  36. package/dist/pipeline/orchestrator.d.ts +2 -0
  37. package/dist/pipeline/orchestrator.d.ts.map +1 -1
  38. package/dist/pipeline/orchestrator.js +5 -1
  39. package/dist/pipeline/orchestrator.js.map +1 -1
  40. package/dist/pipeline/phases/implementation.d.ts.map +1 -1
  41. package/dist/pipeline/phases/implementation.js +5 -2
  42. package/dist/pipeline/phases/implementation.js.map +1 -1
  43. package/dist/pipeline/phases/intake.d.ts.map +1 -1
  44. package/dist/pipeline/phases/intake.js +13 -4
  45. package/dist/pipeline/phases/intake.js.map +1 -1
  46. package/dist/pipeline/phases/recovery-loop.d.ts.map +1 -1
  47. package/dist/pipeline/phases/recovery-loop.js +2 -0
  48. package/dist/pipeline/phases/recovery-loop.js.map +1 -1
  49. package/dist/pipeline/type-defs/artifacts.d.ts +5 -0
  50. package/dist/pipeline/type-defs/artifacts.d.ts.map +1 -1
  51. package/dist/pipeline/type-defs/artifacts.js +1 -0
  52. package/dist/pipeline/type-defs/artifacts.js.map +1 -1
  53. package/dist/pipeline/type-defs/audit.d.ts +3 -0
  54. package/dist/pipeline/type-defs/audit.d.ts.map +1 -1
  55. package/dist/pipeline/type-defs/checks.d.ts +1 -0
  56. package/dist/pipeline/type-defs/checks.d.ts.map +1 -1
  57. package/dist/pipeline/type-defs/packets.d.ts +15 -0
  58. package/dist/pipeline/type-defs/packets.d.ts.map +1 -1
  59. package/dist/pipeline/type-defs/state.d.ts +6 -0
  60. package/dist/pipeline/type-defs/state.d.ts.map +1 -1
  61. package/dist/pipeline/type-defs/state.js +2 -0
  62. package/dist/pipeline/type-defs/state.js.map +1 -1
  63. package/dist/types/consensus.d.ts +5 -1
  64. package/dist/types/consensus.d.ts.map +1 -1
  65. package/dist/types/consensus.js +15 -4
  66. package/dist/types/consensus.js.map +1 -1
  67. package/dist/types/index.d.ts +1 -1
  68. package/dist/types/index.d.ts.map +1 -1
  69. package/dist/types/index.js +1 -1
  70. package/dist/types/index.js.map +1 -1
  71. package/dist/types/project.d.ts +1 -1
  72. package/dist/types/project.d.ts.map +1 -1
  73. package/dist/types/project.js +39 -10
  74. package/dist/types/project.js.map +1 -1
  75. package/dist/types/workflow.d.ts +1 -7
  76. package/dist/types/workflow.d.ts.map +1 -1
  77. package/dist/types/workflow.js +1 -1
  78. package/dist/types/workflow.js.map +1 -1
  79. package/dist/upgrade/handlers.js +5 -5
  80. package/dist/upgrade/handlers.js.map +1 -1
  81. package/dist/workflow/index.d.ts.map +1 -1
  82. package/dist/workflow/index.js +18 -14
  83. package/dist/workflow/index.js.map +1 -1
  84. package/dist/workflow/website-strategy.js +1 -1
  85. package/dist/workflow/website-strategy.js.map +1 -1
  86. package/package.json +1 -1
  87. package/src/adapters/gemini.ts +3 -3
  88. package/src/adapters/openai.ts +2 -2
  89. package/src/auth/gemini.ts +1 -1
  90. package/src/cli/commands/create.ts +12 -6
  91. package/src/cli/commands/resume.ts +9 -1
  92. package/src/cli/interactive.ts +32 -3
  93. package/src/config/defaults.ts +7 -2
  94. package/src/config/popeye-md.ts +139 -0
  95. package/src/config/schema.ts +21 -8
  96. package/src/pipeline/bridges/review-bridge.ts +371 -0
  97. package/src/pipeline/consensus/consensus-runner.ts +3 -3
  98. package/src/pipeline/orchestrator.ts +8 -0
  99. package/src/pipeline/phases/implementation.ts +6 -2
  100. package/src/pipeline/phases/intake.ts +18 -4
  101. package/src/pipeline/phases/recovery-loop.ts +2 -0
  102. package/src/pipeline/type-defs/artifacts.ts +1 -0
  103. package/src/pipeline/type-defs/state.ts +2 -0
  104. package/src/types/consensus.ts +16 -4
  105. package/src/types/index.ts +1 -0
  106. package/src/types/project.ts +39 -10
  107. package/src/types/workflow.ts +1 -1
  108. package/src/upgrade/handlers.ts +5 -5
  109. package/src/workflow/index.ts +18 -14
  110. package/src/workflow/website-strategy.ts +1 -1
  111. package/tests/cli/model-command.test.ts +19 -9
  112. package/tests/config/config.test.ts +3 -3
  113. package/tests/config/popeye-md.test.ts +168 -0
  114. package/tests/pipeline/bridges/review-bridge.test.ts +243 -0
  115. package/tests/pipeline/session-guidance.test.ts +205 -0
  116. package/tests/types/consensus.test.ts +1 -1
  117. package/tests/workflow/pipeline-bootstrap.test.ts +162 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Shared popeye.md configuration reader.
3
+ * Reads project-local config from the YAML frontmatter in popeye.md.
4
+ * Used by both interactive mode and CLI commands.
5
+ */
6
+ import { promises as fs } from 'node:fs';
7
+ import path from 'node:path';
8
+ import { OutputLanguageSchema } from '../types/project.js';
9
+ // ─── Reader ──────────────────────────────────────────────
10
+ /**
11
+ * Read popeye.md from a project directory.
12
+ * Parses YAML frontmatter for project configuration.
13
+ *
14
+ * @param projectDir - Absolute path to the project root
15
+ * @returns Parsed config or null if file doesn't exist or is invalid
16
+ */
17
+ export async function readPopeyeMdConfig(projectDir) {
18
+ const configPath = path.join(projectDir, 'popeye.md');
19
+ try {
20
+ const content = await fs.readFile(configPath, 'utf-8');
21
+ // Parse YAML frontmatter
22
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---/);
23
+ if (!frontmatterMatch) {
24
+ return null;
25
+ }
26
+ const frontmatter = frontmatterMatch[1];
27
+ const config = {};
28
+ // Parse each line of YAML
29
+ for (const line of frontmatter.split('\n')) {
30
+ const match = line.match(/^(\w+):\s*(.+)$/);
31
+ if (match) {
32
+ const [, key, value] = match;
33
+ const cleanValue = value.trim();
34
+ switch (key) {
35
+ case 'language':
36
+ if (OutputLanguageSchema.safeParse(cleanValue).success) {
37
+ config.language = cleanValue;
38
+ }
39
+ break;
40
+ case 'reviewer':
41
+ if (['openai', 'gemini', 'grok'].includes(cleanValue)) {
42
+ config.reviewer = cleanValue;
43
+ }
44
+ break;
45
+ case 'arbitrator':
46
+ if (['openai', 'gemini', 'grok', 'off'].includes(cleanValue)) {
47
+ if (cleanValue === 'off') {
48
+ config.enableArbitration = false;
49
+ }
50
+ else {
51
+ config.arbitrator = cleanValue;
52
+ config.enableArbitration = true;
53
+ }
54
+ }
55
+ break;
56
+ case 'created':
57
+ config.created = cleanValue;
58
+ break;
59
+ case 'lastRun':
60
+ config.lastRun = cleanValue;
61
+ break;
62
+ case 'projectName':
63
+ config.projectName = cleanValue;
64
+ break;
65
+ case 'openaiModel':
66
+ if (cleanValue.length > 0) {
67
+ config.openaiModel = cleanValue;
68
+ }
69
+ break;
70
+ case 'geminiModel':
71
+ if (cleanValue.length > 0) {
72
+ config.geminiModel = cleanValue;
73
+ }
74
+ break;
75
+ case 'grokModel':
76
+ if (cleanValue.length > 0) {
77
+ config.grokModel = cleanValue;
78
+ }
79
+ break;
80
+ }
81
+ }
82
+ }
83
+ // Extract notes section if present
84
+ const notesMatch = content.match(/## Notes\n([\s\S]*?)(?=\n## |$)/);
85
+ if (notesMatch) {
86
+ config.notes = notesMatch[1].trim();
87
+ }
88
+ // Return config only if we have the essential fields
89
+ if (config.language && config.reviewer) {
90
+ return {
91
+ language: config.language,
92
+ reviewer: config.reviewer,
93
+ arbitrator: config.arbitrator || 'gemini',
94
+ enableArbitration: config.enableArbitration ?? true,
95
+ created: config.created || new Date().toISOString(),
96
+ lastRun: config.lastRun || new Date().toISOString(),
97
+ projectName: config.projectName,
98
+ description: config.description,
99
+ notes: config.notes,
100
+ openaiModel: config.openaiModel,
101
+ geminiModel: config.geminiModel,
102
+ grokModel: config.grokModel,
103
+ };
104
+ }
105
+ return null;
106
+ }
107
+ catch {
108
+ return null;
109
+ }
110
+ }
111
+ //# sourceMappingURL=popeye-md.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popeye-md.js","sourceRoot":"","sources":["../../src/config/popeye-md.ts"],"names":[],"mappings":"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"}
@@ -31,13 +31,7 @@ export declare const ConsensusSettingsSchema: z.ZodObject<{
31
31
  * OpenAI API settings schema
32
32
  */
33
33
  export declare const OpenAISettingsSchema: z.ZodObject<{
34
- model: z.ZodDefault<z.ZodEnum<{
35
- "gpt-4o": "gpt-4o";
36
- "gpt-4o-mini": "gpt-4o-mini";
37
- "gpt-4-turbo": "gpt-4-turbo";
38
- "o1-preview": "o1-preview";
39
- "o1-mini": "o1-mini";
40
- }>>;
34
+ model: z.ZodDefault<z.ZodString>;
41
35
  temperature: z.ZodDefault<z.ZodNumber>;
42
36
  max_tokens: z.ZodDefault<z.ZodNumber>;
43
37
  available_models: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -62,13 +56,7 @@ export declare const GrokSettingsSchema: z.ZodObject<{
62
56
  */
63
57
  export declare const APISettingsSchema: z.ZodObject<{
64
58
  openai: z.ZodDefault<z.ZodObject<{
65
- model: z.ZodDefault<z.ZodEnum<{
66
- "gpt-4o": "gpt-4o";
67
- "gpt-4o-mini": "gpt-4o-mini";
68
- "gpt-4-turbo": "gpt-4-turbo";
69
- "o1-preview": "o1-preview";
70
- "o1-mini": "o1-mini";
71
- }>>;
59
+ model: z.ZodDefault<z.ZodString>;
72
60
  temperature: z.ZodDefault<z.ZodNumber>;
73
61
  max_tokens: z.ZodDefault<z.ZodNumber>;
74
62
  available_models: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -190,13 +178,7 @@ export declare const ConfigSchema: z.ZodObject<{
190
178
  }, z.core.$strip>>;
191
179
  apis: z.ZodDefault<z.ZodObject<{
192
180
  openai: z.ZodDefault<z.ZodObject<{
193
- model: z.ZodDefault<z.ZodEnum<{
194
- "gpt-4o": "gpt-4o";
195
- "gpt-4o-mini": "gpt-4o-mini";
196
- "gpt-4-turbo": "gpt-4-turbo";
197
- "o1-preview": "o1-preview";
198
- "o1-mini": "o1-mini";
199
- }>>;
181
+ model: z.ZodDefault<z.ZodString>;
200
182
  temperature: z.ZodDefault<z.ZodNumber>;
201
183
  max_tokens: z.ZodDefault<z.ZodNumber>;
202
184
  available_models: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;iBAQlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAS/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;iBAgB5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;iBAI/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;iBAK/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAkDvB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;iBAQlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;iBAY/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;iBAE/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAqB5B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;iBAI/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;iBAInC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAYhC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;iBAK/B,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAuDvB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -20,14 +20,17 @@ export const ConsensusSettingsSchema = z.object({
20
20
  * OpenAI API settings schema
21
21
  */
22
22
  export const OpenAISettingsSchema = z.object({
23
- model: z
24
- .enum(['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1-preview', 'o1-mini'])
25
- .default('gpt-4o'),
23
+ model: z.string().min(1).default('gpt-4.1'),
26
24
  temperature: z.number().min(0).max(2).default(0.3),
27
25
  max_tokens: z.number().min(100).max(32000).default(4096),
28
26
  available_models: z
29
27
  .array(z.string())
30
- .default(['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1-preview', 'o1-mini']),
28
+ .default([
29
+ 'gpt-4.1', 'gpt-4.1-mini', 'gpt-4.1-nano',
30
+ 'o3', 'o3-mini', 'o4-mini',
31
+ 'gpt-4o', 'gpt-4o-mini',
32
+ 'gpt-4-turbo', 'o1-preview', 'o1-mini',
33
+ ]),
31
34
  });
32
35
  /**
33
36
  * Claude API settings schema
@@ -49,10 +52,15 @@ export const GrokSettingsSchema = z.object({
49
52
  */
50
53
  export const APISettingsSchema = z.object({
51
54
  openai: OpenAISettingsSchema.default({
52
- model: 'gpt-4o',
55
+ model: 'gpt-4.1',
53
56
  temperature: 0.3,
54
57
  max_tokens: 4096,
55
- available_models: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1-preview', 'o1-mini'],
58
+ available_models: [
59
+ 'gpt-4.1', 'gpt-4.1-mini', 'gpt-4.1-nano',
60
+ 'o3', 'o3-mini', 'o4-mini',
61
+ 'gpt-4o', 'gpt-4o-mini',
62
+ 'gpt-4-turbo', 'o1-preview', 'o1-mini',
63
+ ],
56
64
  }),
57
65
  claude: ClaudeSettingsSchema.default({
58
66
  model: 'claude-sonnet-4-20250514',
@@ -127,10 +135,15 @@ export const ConfigSchema = z.object({
127
135
  }),
128
136
  apis: APISettingsSchema.default({
129
137
  openai: {
130
- model: 'gpt-4o',
138
+ model: 'gpt-4.1',
131
139
  temperature: 0.3,
132
140
  max_tokens: 4096,
133
- available_models: ['gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'o1-preview', 'o1-mini'],
141
+ available_models: [
142
+ 'gpt-4.1', 'gpt-4.1-mini', 'gpt-4.1-nano',
143
+ 'o3', 'o3-mini', 'o4-mini',
144
+ 'gpt-4o', 'gpt-4o-mini',
145
+ 'gpt-4-turbo', 'o1-preview', 'o1-mini',
146
+ ],
134
147
  },
135
148
  claude: {
136
149
  model: 'claude-sonnet-4-20250514',
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Review Bridge — connects /review (rich audit-mode scanner) to the pipeline
3
+ * artifact + CR system when a project is pipeline-managed.
4
+ *
5
+ * When pipeline state exists, /review produces pipeline-native audit_report
6
+ * artifacts and Change Requests instead of injecting recovery milestones
7
+ * into state.json. This keeps the pipeline as the single source of truth.
8
+ */
9
+ import type { ProjectState } from '../../types/workflow.js';
10
+ import type { PipelineState, ArtifactRef } from '../types.js';
11
+ import type { AuditFinding as WorkflowAuditFinding, AuditCategory as WorkflowCategory, AuditSeverity as WorkflowSeverity } from '../../types/audit.js';
12
+ import type { AuditFinding as PipelineAuditFinding, AuditSeverity as PipelineSeverity } from '../type-defs/audit.js';
13
+ import type { ChangeRequest } from '../types.js';
14
+ export interface ReviewBridgeOptions {
15
+ projectDir: string;
16
+ depth?: number;
17
+ strict?: boolean;
18
+ onProgress?: (stage: string, message: string) => void;
19
+ }
20
+ export interface ReviewBridgeResult {
21
+ success: boolean;
22
+ findingsCount: number;
23
+ changeRequestCount: number;
24
+ overallScore: number;
25
+ recommendation: string;
26
+ artifactsCreated: number;
27
+ error?: string;
28
+ }
29
+ /**
30
+ * Check if a project is pipeline-managed.
31
+ * A project is pipeline-managed if its state has a pipeline object
32
+ * with a pipelinePhase field.
33
+ *
34
+ * @param state - The project state to check
35
+ * @returns True if pipeline-managed
36
+ */
37
+ export declare function isPipelineManaged(state: ProjectState): boolean;
38
+ /**
39
+ * Extract pipeline state from project state.
40
+ *
41
+ * @param state - The project state
42
+ * @returns Pipeline state or undefined
43
+ */
44
+ export declare function extractPipelineState(state: ProjectState): PipelineState | undefined;
45
+ export declare function mapSeverity(severity: WorkflowSeverity): PipelineSeverity;
46
+ /** Map workflow audit categories to pipeline audit categories */
47
+ type PipelineCategory = 'integration' | 'config' | 'tests' | 'schema' | 'security' | 'deployment';
48
+ export declare function mapCategory(category: WorkflowCategory): PipelineCategory;
49
+ export declare function categoryToChangeType(category: PipelineCategory): ChangeRequest['change_type'];
50
+ /**
51
+ * Convert a workflow AuditFinding to a pipeline AuditFinding.
52
+ *
53
+ * @param finding - Workflow finding
54
+ * @param snapshotRef - Pipeline artifact ref for the repo snapshot
55
+ * @returns Pipeline-native audit finding
56
+ */
57
+ export declare function convertFinding(finding: WorkflowAuditFinding, snapshotRef: ArtifactRef): PipelineAuditFinding;
58
+ /**
59
+ * Run /review through the pipeline bridge.
60
+ * Uses the rich audit-mode scanner but writes results as pipeline artifacts
61
+ * and creates Change Requests for blocking findings.
62
+ *
63
+ * Does NOT inject recovery milestones — the pipeline RECOVERY_LOOP handles fixes.
64
+ *
65
+ * @param options - Bridge options
66
+ * @returns Bridge result with counts and score
67
+ */
68
+ export declare function runReviewBridge(options: ReviewBridgeOptions): Promise<ReviewBridgeResult>;
69
+ export {};
70
+ //# sourceMappingURL=review-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-bridge.d.ts","sourceRoot":"","sources":["../../../src/pipeline/bridges/review-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EACV,aAAa,EAGb,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,YAAY,IAAI,oBAAoB,EAAE,aAAa,IAAI,gBAAgB,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvJ,OAAO,KAAK,EAAE,YAAY,IAAI,oBAAoB,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvD;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS,CAEnF;AAYD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAExE;AAID,iEAAiE;AACjE,KAAK,gBAAgB,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAalG,wBAAgB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAExE;AAcD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,aAAa,CAAC,aAAa,CAAC,CAE7F;AAID;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,oBAAoB,EAC7B,WAAW,EAAE,WAAW,GACvB,oBAAoB,CAatB;AAID;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkK/F"}
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Review Bridge — connects /review (rich audit-mode scanner) to the pipeline
3
+ * artifact + CR system when a project is pipeline-managed.
4
+ *
5
+ * When pipeline state exists, /review produces pipeline-native audit_report
6
+ * artifacts and Change Requests instead of injecting recovery milestones
7
+ * into state.json. This keeps the pipeline as the single source of truth.
8
+ */
9
+ import { randomUUID } from 'node:crypto';
10
+ import { createArtifactManager } from '../artifact-manager.js';
11
+ import { buildChangeRequest, formatChangeRequest, routeChangeRequest } from '../change-request.js';
12
+ import { generateRepoSnapshot, createSnapshotArtifact } from '../repo-snapshot.js';
13
+ import { scanProject } from '../../workflow/audit-scanner.js';
14
+ import { analyzeProject, calculateAuditScores } from '../../workflow/audit-analyzer.js';
15
+ import { buildSummaryReport, buildAuditReport } from '../../workflow/audit-reporter.js';
16
+ import { loadProject, updateState } from '../../state/index.js';
17
+ // ─── Pipeline Detection ──────────────────────────────────
18
+ /**
19
+ * Check if a project is pipeline-managed.
20
+ * A project is pipeline-managed if its state has a pipeline object
21
+ * with a pipelinePhase field.
22
+ *
23
+ * @param state - The project state to check
24
+ * @returns True if pipeline-managed
25
+ */
26
+ export function isPipelineManaged(state) {
27
+ const pipeline = state.pipeline;
28
+ return !!pipeline?.pipelinePhase;
29
+ }
30
+ /**
31
+ * Extract pipeline state from project state.
32
+ *
33
+ * @param state - The project state
34
+ * @returns Pipeline state or undefined
35
+ */
36
+ export function extractPipelineState(state) {
37
+ return state.pipeline;
38
+ }
39
+ // ─── Severity Mapping ────────────────────────────────────
40
+ /** Map workflow audit severity to pipeline severity */
41
+ const SEVERITY_MAP = {
42
+ critical: 'P0',
43
+ major: 'P1',
44
+ minor: 'P2',
45
+ info: 'P3',
46
+ };
47
+ export function mapSeverity(severity) {
48
+ return SEVERITY_MAP[severity];
49
+ }
50
+ const CATEGORY_MAP = {
51
+ 'feature-completeness': 'integration',
52
+ 'integration-wiring': 'integration',
53
+ 'test-coverage': 'tests',
54
+ 'config-deployment': 'config',
55
+ 'dependency-sanity': 'deployment',
56
+ 'consistency': 'schema',
57
+ 'security': 'security',
58
+ 'documentation': 'deployment',
59
+ };
60
+ export function mapCategory(category) {
61
+ return CATEGORY_MAP[category];
62
+ }
63
+ // ─── CR Routing ──────────────────────────────────────────
64
+ /** Determine CR change_type from pipeline audit category */
65
+ const CATEGORY_TO_CHANGE_TYPE = {
66
+ integration: 'architecture',
67
+ schema: 'architecture',
68
+ security: 'requirement',
69
+ tests: 'config',
70
+ config: 'config',
71
+ deployment: 'config',
72
+ };
73
+ export function categoryToChangeType(category) {
74
+ return CATEGORY_TO_CHANGE_TYPE[category];
75
+ }
76
+ // ─── Finding Conversion ──────────────────────────────────
77
+ /**
78
+ * Convert a workflow AuditFinding to a pipeline AuditFinding.
79
+ *
80
+ * @param finding - Workflow finding
81
+ * @param snapshotRef - Pipeline artifact ref for the repo snapshot
82
+ * @returns Pipeline-native audit finding
83
+ */
84
+ export function convertFinding(finding, snapshotRef) {
85
+ const severity = mapSeverity(finding.severity);
86
+ return {
87
+ id: finding.id,
88
+ severity,
89
+ category: mapCategory(finding.category),
90
+ description: `${finding.title}: ${finding.description}`,
91
+ evidence: [snapshotRef],
92
+ file_path: finding.evidence[0]?.file,
93
+ line_number: finding.evidence[0]?.line,
94
+ suggested_owner: 'AUDITOR',
95
+ blocking: severity === 'P0' || severity === 'P1',
96
+ };
97
+ }
98
+ // ─── Bridge Orchestrator ─────────────────────────────────
99
+ /**
100
+ * Run /review through the pipeline bridge.
101
+ * Uses the rich audit-mode scanner but writes results as pipeline artifacts
102
+ * and creates Change Requests for blocking findings.
103
+ *
104
+ * Does NOT inject recovery milestones — the pipeline RECOVERY_LOOP handles fixes.
105
+ *
106
+ * @param options - Bridge options
107
+ * @returns Bridge result with counts and score
108
+ */
109
+ export async function runReviewBridge(options) {
110
+ const { projectDir, onProgress } = options;
111
+ const depth = options.depth ?? 2;
112
+ const strict = options.strict ?? false;
113
+ try {
114
+ // 1. Load state and extract pipeline
115
+ const state = await loadProject(projectDir);
116
+ const pipeline = extractPipelineState(state);
117
+ if (!pipeline) {
118
+ return { success: false, findingsCount: 0, changeRequestCount: 0, overallScore: 0, recommendation: 'error', artifactsCreated: 0, error: 'No pipeline state found' };
119
+ }
120
+ const artifactManager = createArtifactManager(projectDir);
121
+ artifactManager.ensureDocsStructure();
122
+ const artifacts = [];
123
+ // 2. Generate fresh repo snapshot (pipeline anchor)
124
+ onProgress?.('bridge', 'Generating repo snapshot...');
125
+ const snapshot = await generateRepoSnapshot(projectDir);
126
+ const snapshotEntry = createSnapshotArtifact(snapshot, artifactManager, 'AUDIT');
127
+ artifacts.push(snapshotEntry);
128
+ pipeline.latestRepoSnapshot = artifactManager.toArtifactRef(snapshotEntry);
129
+ const snapshotRef = artifactManager.toArtifactRef(snapshotEntry);
130
+ // 3. Run rich audit-mode scanner (Stage 1: Scan)
131
+ onProgress?.('bridge', 'Running project scan...');
132
+ const scan = await scanProject(projectDir, state.language, (msg) => onProgress?.('bridge-scan', msg));
133
+ const summary = buildSummaryReport(scan, state);
134
+ onProgress?.('bridge', `Scan complete: ${scan.totalSourceFiles} source files, ${scan.totalLinesOfCode} LOC`);
135
+ // 4. Run AI analysis (Stage 2: Analyze)
136
+ onProgress?.('bridge', 'Running AI analysis...');
137
+ const { findings: workflowFindings, searchMetadata } = await analyzeProject(scan, state, {
138
+ depth,
139
+ strict,
140
+ projectDir,
141
+ });
142
+ const scores = calculateAuditScores(workflowFindings, scan);
143
+ const auditReport = buildAuditReport(summary, workflowFindings, scores, searchMetadata, { strict }, randomUUID());
144
+ onProgress?.('bridge', `Analysis complete: score ${scores.overallScore}%, ${workflowFindings.length} findings`);
145
+ // 5. Convert findings to pipeline format
146
+ const pipelineFindings = workflowFindings.map((f) => convertFinding(f, snapshotRef));
147
+ // 6. Build pipeline audit report and store as artifact
148
+ const pipelineAuditReport = {
149
+ audit_id: `audit-${randomUUID().split('-')[0]}`,
150
+ timestamp: new Date().toISOString(),
151
+ repo_snapshot: snapshotRef,
152
+ overall_status: (auditReport.recommendation === 'pass' ? 'PASS' : 'FAIL'),
153
+ findings: pipelineFindings,
154
+ system_risk_score: 100 - scores.overallScore,
155
+ recovery_required: auditReport.recommendation === 'major-rework',
156
+ };
157
+ const auditJsonEntry = artifactManager.createAndStoreJson('audit_report', pipelineAuditReport, 'AUDIT');
158
+ artifacts.push(auditJsonEntry);
159
+ // Store raw text report too
160
+ const textReport = formatAuditSummary(pipelineFindings, scores.overallScore, auditReport.recommendation);
161
+ const auditTextEntry = artifactManager.createAndStoreText('audit_report', textReport, 'AUDIT');
162
+ artifacts.push(auditTextEntry);
163
+ // 7. Create Change Requests for blocking findings
164
+ const changeRequests = [];
165
+ const blockingFindings = pipelineFindings.filter((f) => f.blocking);
166
+ if (blockingFindings.length > 0) {
167
+ // Group by category for targeted CRs
168
+ const byCategory = new Map();
169
+ for (const f of blockingFindings) {
170
+ const group = byCategory.get(f.category) ?? [];
171
+ group.push(f);
172
+ byCategory.set(f.category, group);
173
+ }
174
+ for (const [category, findings] of byCategory) {
175
+ const changeType = categoryToChangeType(category);
176
+ const cr = buildChangeRequest({
177
+ originPhase: 'AUDIT',
178
+ requestedBy: 'AUDITOR',
179
+ changeType,
180
+ description: `${findings.length} blocking ${category} finding(s): ${findings.map((f) => f.description.slice(0, 80)).join('; ')}`,
181
+ justification: 'Blocking audit findings from /review require pipeline resolution',
182
+ affectedArtifacts: [snapshotRef],
183
+ affectedPhases: getAffectedPhases(category),
184
+ riskLevel: findings.some((f) => f.severity === 'P0') ? 'high' : 'medium',
185
+ });
186
+ changeRequests.push(cr);
187
+ // Store CR as artifact
188
+ const crEntry = artifactManager.createAndStoreText('change_request', formatChangeRequest(cr), 'AUDIT');
189
+ artifacts.push(crEntry);
190
+ // Register in pipeline state for orchestrator routing
191
+ if (!pipeline.pendingChangeRequests) {
192
+ pipeline.pendingChangeRequests = [];
193
+ }
194
+ pipeline.pendingChangeRequests.push({
195
+ cr_id: cr.cr_id,
196
+ change_type: cr.change_type,
197
+ target_phase: routeChangeRequest(cr),
198
+ status: 'proposed',
199
+ });
200
+ }
201
+ }
202
+ // 8. Persist pipeline state
203
+ pipeline.artifacts.push(...artifacts);
204
+ // Update INDEX.md
205
+ artifactManager.updateIndex(pipeline.artifacts);
206
+ // Save updated state (pipeline object is a reference on state)
207
+ await updateState(projectDir, {
208
+ auditReportPath: auditJsonEntry.path,
209
+ auditLastRunAt: new Date().toISOString(),
210
+ auditRunId: pipelineAuditReport.audit_id,
211
+ });
212
+ onProgress?.('bridge', `Bridge complete: ${artifacts.length} artifacts, ${changeRequests.length} CRs created`);
213
+ return {
214
+ success: true,
215
+ findingsCount: pipelineFindings.length,
216
+ changeRequestCount: changeRequests.length,
217
+ overallScore: scores.overallScore,
218
+ recommendation: auditReport.recommendation,
219
+ artifactsCreated: artifacts.length,
220
+ };
221
+ }
222
+ catch (err) {
223
+ const error = err instanceof Error ? err.message : 'Unknown error';
224
+ return { success: false, findingsCount: 0, changeRequestCount: 0, overallScore: 0, recommendation: 'error', artifactsCreated: 0, error };
225
+ }
226
+ }
227
+ // ─── Helpers ─────────────────────────────────────────────
228
+ /** Get affected phases for a finding category */
229
+ function getAffectedPhases(category) {
230
+ switch (category) {
231
+ case 'integration':
232
+ case 'schema':
233
+ return ['CONSENSUS_ARCHITECTURE', 'IMPLEMENTATION'];
234
+ case 'security':
235
+ return ['CONSENSUS_MASTER_PLAN', 'IMPLEMENTATION'];
236
+ case 'tests':
237
+ return ['QA_VALIDATION'];
238
+ case 'config':
239
+ case 'deployment':
240
+ return ['IMPLEMENTATION', 'PRODUCTION_GATE'];
241
+ }
242
+ }
243
+ /** Format a text summary of pipeline audit findings */
244
+ function formatAuditSummary(findings, score, recommendation) {
245
+ const lines = [
246
+ '# Pipeline Audit Report (via /review bridge)',
247
+ '',
248
+ `**Score:** ${score}%`,
249
+ `**Recommendation:** ${recommendation}`,
250
+ `**Findings:** ${findings.length}`,
251
+ `**Blocking:** ${findings.filter((f) => f.blocking).length}`,
252
+ '',
253
+ '## Findings',
254
+ '',
255
+ ];
256
+ for (const f of findings) {
257
+ lines.push(`### [${f.severity}] ${f.description.slice(0, 120)}`);
258
+ lines.push(`- Category: ${f.category}`);
259
+ lines.push(`- Blocking: ${f.blocking ? 'Yes' : 'No'}`);
260
+ if (f.file_path)
261
+ lines.push(`- File: ${f.file_path}${f.line_number ? `:${f.line_number}` : ''}`);
262
+ lines.push('');
263
+ }
264
+ return lines.join('\n');
265
+ }
266
+ //# sourceMappingURL=review-bridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-bridge.js","sourceRoot":"","sources":["../../../src/pipeline/bridges/review-bridge.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,8 @@ import { buildConsensusPacket } from '../packets/consensus-packet-builder.js';
12
12
  // Re-use existing consensus infrastructure
13
13
  import { iterateUntilConsensus } from '../../workflow/consensus.js';
14
14
  const DEFAULT_PROVIDERS = [
15
- { provider: 'openai', model: 'gpt-4o', temperature: 0.3 },
16
- { provider: 'gemini', model: 'gemini-2.0-flash', temperature: 0.3 },
15
+ { provider: 'openai', model: 'gpt-4.1', temperature: 0.3 },
16
+ { provider: 'gemini', model: 'gemini-2.5-flash', temperature: 0.3 },
17
17
  ];
18
18
  // ─── Consensus Runner ────────────────────────────────────
19
19
  export class ConsensusRunner {
@@ -76,7 +76,7 @@ export class ConsensusRunner {
76
76
  const vote = {
77
77
  reviewer_id: 'iterative-reviewer',
78
78
  provider: 'openai',
79
- model: this.config.consensusConfig?.openaiModel ?? 'gpt-4o',
79
+ model: this.config.consensusConfig?.openaiModel ?? 'gpt-4.1',
80
80
  temperature: this.config.consensusConfig?.temperature ?? 0.3,
81
81
  prompt_hash: createHash('sha256').update(prompt).digest('hex'),
82
82
  vote: result.approved ? 'APPROVE' : 'REJECT',