popeye-cli 1.0.1 → 1.2.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 (216) hide show
  1. package/.env.example +24 -1
  2. package/CONTRIBUTING.md +275 -0
  3. package/OPEN_SOURCE_MANIFESTO.md +172 -0
  4. package/README.md +832 -123
  5. package/dist/adapters/claude.d.ts +19 -4
  6. package/dist/adapters/claude.d.ts.map +1 -1
  7. package/dist/adapters/claude.js +908 -42
  8. package/dist/adapters/claude.js.map +1 -1
  9. package/dist/adapters/gemini.d.ts +55 -0
  10. package/dist/adapters/gemini.d.ts.map +1 -0
  11. package/dist/adapters/gemini.js +318 -0
  12. package/dist/adapters/gemini.js.map +1 -0
  13. package/dist/adapters/grok.d.ts +73 -0
  14. package/dist/adapters/grok.d.ts.map +1 -0
  15. package/dist/adapters/grok.js +430 -0
  16. package/dist/adapters/grok.js.map +1 -0
  17. package/dist/adapters/openai.d.ts +1 -1
  18. package/dist/adapters/openai.d.ts.map +1 -1
  19. package/dist/adapters/openai.js +47 -8
  20. package/dist/adapters/openai.js.map +1 -1
  21. package/dist/auth/claude.d.ts +11 -9
  22. package/dist/auth/claude.d.ts.map +1 -1
  23. package/dist/auth/claude.js +107 -71
  24. package/dist/auth/claude.js.map +1 -1
  25. package/dist/auth/gemini.d.ts +58 -0
  26. package/dist/auth/gemini.d.ts.map +1 -0
  27. package/dist/auth/gemini.js +172 -0
  28. package/dist/auth/gemini.js.map +1 -0
  29. package/dist/auth/grok.d.ts +73 -0
  30. package/dist/auth/grok.d.ts.map +1 -0
  31. package/dist/auth/grok.js +211 -0
  32. package/dist/auth/grok.js.map +1 -0
  33. package/dist/auth/index.d.ts +14 -7
  34. package/dist/auth/index.d.ts.map +1 -1
  35. package/dist/auth/index.js +41 -6
  36. package/dist/auth/index.js.map +1 -1
  37. package/dist/auth/keychain.d.ts +20 -7
  38. package/dist/auth/keychain.d.ts.map +1 -1
  39. package/dist/auth/keychain.js +85 -29
  40. package/dist/auth/keychain.js.map +1 -1
  41. package/dist/auth/openai.d.ts +2 -2
  42. package/dist/auth/openai.d.ts.map +1 -1
  43. package/dist/auth/openai.js +30 -32
  44. package/dist/auth/openai.js.map +1 -1
  45. package/dist/cli/commands/auth.d.ts +1 -1
  46. package/dist/cli/commands/auth.d.ts.map +1 -1
  47. package/dist/cli/commands/auth.js +79 -8
  48. package/dist/cli/commands/auth.js.map +1 -1
  49. package/dist/cli/commands/create.d.ts.map +1 -1
  50. package/dist/cli/commands/create.js +15 -4
  51. package/dist/cli/commands/create.js.map +1 -1
  52. package/dist/cli/interactive.d.ts.map +1 -1
  53. package/dist/cli/interactive.js +1494 -114
  54. package/dist/cli/interactive.js.map +1 -1
  55. package/dist/config/defaults.d.ts +9 -1
  56. package/dist/config/defaults.d.ts.map +1 -1
  57. package/dist/config/defaults.js +19 -2
  58. package/dist/config/defaults.js.map +1 -1
  59. package/dist/config/index.d.ts +19 -0
  60. package/dist/config/index.d.ts.map +1 -1
  61. package/dist/config/index.js +33 -1
  62. package/dist/config/index.js.map +1 -1
  63. package/dist/config/schema.d.ts +47 -0
  64. package/dist/config/schema.d.ts.map +1 -1
  65. package/dist/config/schema.js +29 -1
  66. package/dist/config/schema.js.map +1 -1
  67. package/dist/generators/fullstack.d.ts +32 -0
  68. package/dist/generators/fullstack.d.ts.map +1 -0
  69. package/dist/generators/fullstack.js +497 -0
  70. package/dist/generators/fullstack.js.map +1 -0
  71. package/dist/generators/index.d.ts +4 -3
  72. package/dist/generators/index.d.ts.map +1 -1
  73. package/dist/generators/index.js +15 -1
  74. package/dist/generators/index.js.map +1 -1
  75. package/dist/generators/python.d.ts +17 -1
  76. package/dist/generators/python.d.ts.map +1 -1
  77. package/dist/generators/python.js +34 -20
  78. package/dist/generators/python.js.map +1 -1
  79. package/dist/generators/templates/fullstack.d.ts +113 -0
  80. package/dist/generators/templates/fullstack.d.ts.map +1 -0
  81. package/dist/generators/templates/fullstack.js +1004 -0
  82. package/dist/generators/templates/fullstack.js.map +1 -0
  83. package/dist/generators/typescript.d.ts +19 -1
  84. package/dist/generators/typescript.d.ts.map +1 -1
  85. package/dist/generators/typescript.js +37 -20
  86. package/dist/generators/typescript.js.map +1 -1
  87. package/dist/state/index.d.ts +108 -0
  88. package/dist/state/index.d.ts.map +1 -1
  89. package/dist/state/index.js +551 -4
  90. package/dist/state/index.js.map +1 -1
  91. package/dist/state/registry.d.ts +52 -0
  92. package/dist/state/registry.d.ts.map +1 -0
  93. package/dist/state/registry.js +215 -0
  94. package/dist/state/registry.js.map +1 -0
  95. package/dist/types/cli.d.ts +8 -0
  96. package/dist/types/cli.d.ts.map +1 -1
  97. package/dist/types/cli.js.map +1 -1
  98. package/dist/types/consensus.d.ts +186 -4
  99. package/dist/types/consensus.d.ts.map +1 -1
  100. package/dist/types/consensus.js +35 -3
  101. package/dist/types/consensus.js.map +1 -1
  102. package/dist/types/project.d.ts +76 -0
  103. package/dist/types/project.d.ts.map +1 -1
  104. package/dist/types/project.js +1 -1
  105. package/dist/types/project.js.map +1 -1
  106. package/dist/types/workflow.d.ts +217 -16
  107. package/dist/types/workflow.d.ts.map +1 -1
  108. package/dist/types/workflow.js +40 -1
  109. package/dist/types/workflow.js.map +1 -1
  110. package/dist/workflow/auto-fix.d.ts +45 -0
  111. package/dist/workflow/auto-fix.d.ts.map +1 -0
  112. package/dist/workflow/auto-fix.js +274 -0
  113. package/dist/workflow/auto-fix.js.map +1 -0
  114. package/dist/workflow/consensus.d.ts +70 -2
  115. package/dist/workflow/consensus.d.ts.map +1 -1
  116. package/dist/workflow/consensus.js +872 -17
  117. package/dist/workflow/consensus.js.map +1 -1
  118. package/dist/workflow/execution-mode.d.ts +10 -4
  119. package/dist/workflow/execution-mode.d.ts.map +1 -1
  120. package/dist/workflow/execution-mode.js +547 -58
  121. package/dist/workflow/execution-mode.js.map +1 -1
  122. package/dist/workflow/index.d.ts +14 -2
  123. package/dist/workflow/index.d.ts.map +1 -1
  124. package/dist/workflow/index.js +69 -6
  125. package/dist/workflow/index.js.map +1 -1
  126. package/dist/workflow/milestone-workflow.d.ts +34 -0
  127. package/dist/workflow/milestone-workflow.d.ts.map +1 -0
  128. package/dist/workflow/milestone-workflow.js +414 -0
  129. package/dist/workflow/milestone-workflow.js.map +1 -0
  130. package/dist/workflow/plan-mode.d.ts +80 -3
  131. package/dist/workflow/plan-mode.d.ts.map +1 -1
  132. package/dist/workflow/plan-mode.js +767 -49
  133. package/dist/workflow/plan-mode.js.map +1 -1
  134. package/dist/workflow/plan-storage.d.ts +386 -0
  135. package/dist/workflow/plan-storage.d.ts.map +1 -0
  136. package/dist/workflow/plan-storage.js +878 -0
  137. package/dist/workflow/plan-storage.js.map +1 -0
  138. package/dist/workflow/project-verification.d.ts +37 -0
  139. package/dist/workflow/project-verification.d.ts.map +1 -0
  140. package/dist/workflow/project-verification.js +381 -0
  141. package/dist/workflow/project-verification.js.map +1 -0
  142. package/dist/workflow/task-workflow.d.ts +37 -0
  143. package/dist/workflow/task-workflow.d.ts.map +1 -0
  144. package/dist/workflow/task-workflow.js +386 -0
  145. package/dist/workflow/task-workflow.js.map +1 -0
  146. package/dist/workflow/test-runner.d.ts +9 -0
  147. package/dist/workflow/test-runner.d.ts.map +1 -1
  148. package/dist/workflow/test-runner.js +101 -5
  149. package/dist/workflow/test-runner.js.map +1 -1
  150. package/dist/workflow/ui-designer.d.ts +82 -0
  151. package/dist/workflow/ui-designer.d.ts.map +1 -0
  152. package/dist/workflow/ui-designer.js +234 -0
  153. package/dist/workflow/ui-designer.js.map +1 -0
  154. package/dist/workflow/ui-setup.d.ts +58 -0
  155. package/dist/workflow/ui-setup.d.ts.map +1 -0
  156. package/dist/workflow/ui-setup.js +685 -0
  157. package/dist/workflow/ui-setup.js.map +1 -0
  158. package/dist/workflow/ui-verification.d.ts +114 -0
  159. package/dist/workflow/ui-verification.d.ts.map +1 -0
  160. package/dist/workflow/ui-verification.js +258 -0
  161. package/dist/workflow/ui-verification.js.map +1 -0
  162. package/dist/workflow/workflow-logger.d.ts +110 -0
  163. package/dist/workflow/workflow-logger.d.ts.map +1 -0
  164. package/dist/workflow/workflow-logger.js +267 -0
  165. package/dist/workflow/workflow-logger.js.map +1 -0
  166. package/dist/workflow/workspace-manager.d.ts +342 -0
  167. package/dist/workflow/workspace-manager.d.ts.map +1 -0
  168. package/dist/workflow/workspace-manager.js +733 -0
  169. package/dist/workflow/workspace-manager.js.map +1 -0
  170. package/package.json +2 -2
  171. package/src/adapters/claude.ts +1067 -47
  172. package/src/adapters/gemini.ts +373 -0
  173. package/src/adapters/grok.ts +492 -0
  174. package/src/adapters/openai.ts +48 -9
  175. package/src/auth/claude.ts +120 -78
  176. package/src/auth/gemini.ts +207 -0
  177. package/src/auth/grok.ts +255 -0
  178. package/src/auth/index.ts +47 -9
  179. package/src/auth/keychain.ts +95 -28
  180. package/src/auth/openai.ts +29 -36
  181. package/src/cli/commands/auth.ts +89 -10
  182. package/src/cli/commands/create.ts +13 -4
  183. package/src/cli/interactive.ts +1774 -142
  184. package/src/config/defaults.ts +19 -2
  185. package/src/config/index.ts +36 -1
  186. package/src/config/schema.ts +30 -1
  187. package/src/generators/fullstack.ts +551 -0
  188. package/src/generators/index.ts +25 -1
  189. package/src/generators/python.ts +65 -20
  190. package/src/generators/templates/fullstack.ts +1047 -0
  191. package/src/generators/typescript.ts +69 -20
  192. package/src/state/index.ts +713 -4
  193. package/src/state/registry.ts +278 -0
  194. package/src/types/cli.ts +8 -0
  195. package/src/types/consensus.ts +197 -6
  196. package/src/types/project.ts +82 -1
  197. package/src/types/workflow.ts +90 -1
  198. package/src/workflow/auto-fix.ts +340 -0
  199. package/src/workflow/consensus.ts +1180 -16
  200. package/src/workflow/execution-mode.ts +673 -74
  201. package/src/workflow/index.ts +95 -6
  202. package/src/workflow/milestone-workflow.ts +576 -0
  203. package/src/workflow/plan-mode.ts +924 -50
  204. package/src/workflow/plan-storage.ts +1282 -0
  205. package/src/workflow/project-verification.ts +471 -0
  206. package/src/workflow/task-workflow.ts +528 -0
  207. package/src/workflow/test-runner.ts +120 -5
  208. package/src/workflow/ui-designer.ts +337 -0
  209. package/src/workflow/ui-setup.ts +797 -0
  210. package/src/workflow/ui-verification.ts +357 -0
  211. package/src/workflow/workflow-logger.ts +353 -0
  212. package/src/workflow/workspace-manager.ts +912 -0
  213. package/tests/config/config.test.ts +1 -1
  214. package/tests/types/consensus.test.ts +3 -3
  215. package/tests/workflow/plan-mode.test.ts +213 -0
  216. package/tests/workflow/test-runner.test.ts +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/adapters/claude.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Google Gemini API adapter
3
+ * Handles consensus reviews and arbitration
4
+ */
5
+ import { GoogleGenerativeAI } from '@google/generative-ai';
6
+ import type { ConsensusResult, ArbitrationResult } from '../types/consensus.js';
7
+ /**
8
+ * Supported Gemini models
9
+ */
10
+ export type GeminiModel = 'gemini-2.0-flash' | 'gemini-1.5-pro' | 'gemini-1.5-flash';
11
+ /**
12
+ * Default Gemini configuration
13
+ */
14
+ export declare const DEFAULT_GEMINI_CONFIG: {
15
+ model: GeminiModel;
16
+ temperature: number;
17
+ maxTokens: number;
18
+ };
19
+ /**
20
+ * Create a Gemini client with stored credentials
21
+ */
22
+ export declare function createClient(): Promise<GoogleGenerativeAI>;
23
+ /**
24
+ * Request consensus review from Gemini
25
+ *
26
+ * @param plan - The development plan to review
27
+ * @param context - Project context
28
+ * @param config - Configuration options
29
+ * @returns Consensus result
30
+ */
31
+ export declare function requestConsensus(plan: string, context: string, config?: {
32
+ model?: GeminiModel;
33
+ temperature?: number;
34
+ maxTokens?: number;
35
+ }): Promise<ConsensusResult>;
36
+ /**
37
+ * Request arbitration from Gemini when consensus is stuck
38
+ *
39
+ * @param plan - The best plan achieved
40
+ * @param reviewerFeedback - Feedback from the reviewer
41
+ * @param claudeFeedback - Claude's perspective on the plan
42
+ * @param iterations - Number of iterations attempted
43
+ * @param scores - Score history
44
+ * @returns Arbitration decision
45
+ */
46
+ export declare function requestArbitration(plan: string, reviewerFeedback: string, claudeFeedback: string, iterations: number, scores: number[]): Promise<ArbitrationResult>;
47
+ /**
48
+ * Parse the consensus response from Gemini
49
+ */
50
+ export declare function parseConsensusResponse(response: string): ConsensusResult;
51
+ /**
52
+ * Validate that the Gemini API key is working
53
+ */
54
+ export declare function validateApiKey(): Promise<boolean>;
55
+ //# sourceMappingURL=gemini.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGhF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,qBAAqB;WACH,WAAW;;;CAGzC,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAQhE;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,eAAe,CAAC,CA2B1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AA6GD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsCxE;AAgGD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CASvD"}
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Google Gemini API adapter
3
+ * Handles consensus reviews and arbitration
4
+ */
5
+ import { GoogleGenerativeAI } from '@google/generative-ai';
6
+ import { getGeminiToken } from '../auth/index.js';
7
+ /**
8
+ * Default Gemini configuration
9
+ */
10
+ export const DEFAULT_GEMINI_CONFIG = {
11
+ model: 'gemini-2.0-flash',
12
+ temperature: 0.3,
13
+ maxTokens: 4096,
14
+ };
15
+ /**
16
+ * Create a Gemini client with stored credentials
17
+ */
18
+ export async function createClient() {
19
+ const apiKey = await getGeminiToken();
20
+ if (!apiKey) {
21
+ throw new Error('Gemini API key not found. Run: popeye auth gemini');
22
+ }
23
+ return new GoogleGenerativeAI(apiKey);
24
+ }
25
+ /**
26
+ * Request consensus review from Gemini
27
+ *
28
+ * @param plan - The development plan to review
29
+ * @param context - Project context
30
+ * @param config - Configuration options
31
+ * @returns Consensus result
32
+ */
33
+ export async function requestConsensus(plan, context, config = {}) {
34
+ const { model = DEFAULT_GEMINI_CONFIG.model, temperature = DEFAULT_GEMINI_CONFIG.temperature, maxTokens = DEFAULT_GEMINI_CONFIG.maxTokens, } = config;
35
+ const client = await createClient();
36
+ const generativeModel = client.getGenerativeModel({ model });
37
+ const prompt = buildConsensusPrompt(plan, context);
38
+ try {
39
+ const result = await generativeModel.generateContent({
40
+ contents: [{ role: 'user', parts: [{ text: prompt }] }],
41
+ generationConfig: {
42
+ temperature,
43
+ maxOutputTokens: maxTokens,
44
+ },
45
+ });
46
+ const response = result.response.text();
47
+ return parseConsensusResponse(response);
48
+ }
49
+ catch (error) {
50
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
51
+ throw new Error(`Gemini API error: ${errorMsg}`);
52
+ }
53
+ }
54
+ /**
55
+ * Request arbitration from Gemini when consensus is stuck
56
+ *
57
+ * @param plan - The best plan achieved
58
+ * @param reviewerFeedback - Feedback from the reviewer
59
+ * @param claudeFeedback - Claude's perspective on the plan
60
+ * @param iterations - Number of iterations attempted
61
+ * @param scores - Score history
62
+ * @returns Arbitration decision
63
+ */
64
+ export async function requestArbitration(plan, reviewerFeedback, claudeFeedback, iterations, scores) {
65
+ const client = await createClient();
66
+ const generativeModel = client.getGenerativeModel({ model: 'gemini-2.0-flash' });
67
+ const prompt = buildArbitrationPrompt(plan, reviewerFeedback, claudeFeedback, iterations, scores);
68
+ try {
69
+ const result = await generativeModel.generateContent({
70
+ contents: [{ role: 'user', parts: [{ text: prompt }] }],
71
+ generationConfig: {
72
+ temperature: 0.2,
73
+ maxOutputTokens: 4096,
74
+ },
75
+ });
76
+ const response = result.response.text();
77
+ return parseArbitrationResponse(response);
78
+ }
79
+ catch (error) {
80
+ const errorMsg = error instanceof Error ? error.message : 'Unknown error';
81
+ throw new Error(`Gemini arbitration error: ${errorMsg}`);
82
+ }
83
+ }
84
+ /**
85
+ * Build the consensus review prompt
86
+ */
87
+ function buildConsensusPrompt(plan, context) {
88
+ return `You are a senior software architect reviewing a development plan.
89
+ Analyze the following plan for completeness, correctness, and feasibility.
90
+
91
+ PROJECT CONTEXT:
92
+ ${context}
93
+
94
+ PROPOSED PLAN:
95
+ ${plan}
96
+
97
+ Please provide your response in EXACTLY this format (use these exact headers):
98
+
99
+ ANALYSIS:
100
+ [Your detailed analysis here]
101
+
102
+ STRENGTHS:
103
+ - [Strength 1]
104
+ - [Strength 2]
105
+ - [etc.]
106
+
107
+ CONCERNS:
108
+ - [Concern 1]
109
+ - [Concern 2]
110
+ - [etc.]
111
+
112
+ RECOMMENDATIONS:
113
+ - [Recommendation 1]
114
+ - [Recommendation 2]
115
+ - [etc.]
116
+
117
+ CONSENSUS: [X]%
118
+
119
+ Scoring guide:
120
+ - 95-100%: Ready for execution, no changes needed
121
+ - 85-94%: Minor revisions needed, mostly good
122
+ - 70-84%: Significant revisions needed
123
+ - Below 70%: Major rework required
124
+
125
+ Be thorough but constructive. Focus on actionable feedback.`;
126
+ }
127
+ /**
128
+ * Build the arbitration prompt
129
+ */
130
+ function buildArbitrationPrompt(plan, reviewerFeedback, claudeFeedback, iterations, scores) {
131
+ const scoreHistory = scores.map((s, i) => `Iteration ${i + 1}: ${s}%`).join(', ');
132
+ return `You are an impartial arbitrator resolving a disagreement between two AI systems about a development plan.
133
+
134
+ SITUATION:
135
+ - Claude (code generator) created a plan
136
+ - A reviewer (OpenAI/Gemini) has been reviewing and providing feedback
137
+ - They have gone through ${iterations} iterations without reaching 95% consensus
138
+ - Score history: ${scoreHistory}
139
+
140
+ THE PLAN:
141
+ ${plan}
142
+
143
+ REVIEWER'S LATEST FEEDBACK:
144
+ ${reviewerFeedback}
145
+
146
+ CLAUDE'S PERSPECTIVE:
147
+ ${claudeFeedback}
148
+
149
+ As the arbitrator, you must:
150
+ 1. Analyze both perspectives objectively
151
+ 2. Determine if the remaining concerns are:
152
+ - CRITICAL: Must be addressed before proceeding
153
+ - MINOR: Can be addressed during implementation
154
+ - SUBJECTIVE: Matters of preference, not correctness
155
+ 3. Make a final decision
156
+
157
+ Respond in EXACTLY this format:
158
+
159
+ ANALYSIS:
160
+ [Your analysis of the disagreement]
161
+
162
+ CRITICAL_CONCERNS:
163
+ - [List any truly critical issues, or "None" if none exist]
164
+
165
+ MINOR_CONCERNS:
166
+ - [List minor issues that can be addressed during implementation]
167
+
168
+ SUBJECTIVE_CONCERNS:
169
+ - [List preference-based concerns that don't affect correctness]
170
+
171
+ DECISION: [APPROVE or REVISE]
172
+
173
+ FINAL_SCORE: [X]%
174
+
175
+ REASONING:
176
+ [Explain your decision]
177
+
178
+ SUGGESTED_CHANGES:
179
+ - [If REVISE, list specific changes needed]
180
+ - [If APPROVE, write "None - plan is acceptable"]`;
181
+ }
182
+ /**
183
+ * Parse the consensus response from Gemini
184
+ */
185
+ export function parseConsensusResponse(response) {
186
+ // Extract consensus score - look for various formats
187
+ let score = 0;
188
+ const scorePatterns = [
189
+ /CONSENSUS:\s*(\d+)%/i,
190
+ /CONSENSUS\s*SCORE:\s*(\d+)%/i,
191
+ /(\d+)%\s*consensus/i,
192
+ /score[:\s]+(\d+)%/i,
193
+ ];
194
+ for (const pattern of scorePatterns) {
195
+ const match = response.match(pattern);
196
+ if (match) {
197
+ score = parseInt(match[1], 10);
198
+ break;
199
+ }
200
+ }
201
+ // Extract sections with better handling of markdown headers
202
+ const analysis = extractSection(response, ['ANALYSIS', '## Analysis', '### Analysis']);
203
+ const strengthsText = extractSection(response, ['STRENGTHS', '## Strengths', '### Strengths']);
204
+ const concernsText = extractSection(response, ['CONCERNS', '## Concerns', '### Concerns']);
205
+ const recommendationsText = extractSection(response, ['RECOMMENDATIONS', '## Recommendations', '### Recommendations']);
206
+ // Parse lists from sections
207
+ const strengths = parseList(strengthsText);
208
+ const concerns = parseList(concernsText);
209
+ const recommendations = parseList(recommendationsText);
210
+ return {
211
+ score,
212
+ analysis: analysis.trim(),
213
+ strengths,
214
+ concerns,
215
+ recommendations,
216
+ approved: score >= 95,
217
+ rawResponse: response,
218
+ };
219
+ }
220
+ /**
221
+ * Parse the arbitration response
222
+ */
223
+ function parseArbitrationResponse(response) {
224
+ // Extract score
225
+ const scoreMatch = response.match(/FINAL_SCORE:\s*(\d+)%/i);
226
+ const score = scoreMatch ? parseInt(scoreMatch[1], 10) : 0;
227
+ // Extract decision
228
+ const decisionMatch = response.match(/DECISION:\s*(APPROVE|REVISE)/i);
229
+ const approved = decisionMatch ? decisionMatch[1].toUpperCase() === 'APPROVE' : score >= 90;
230
+ // Extract sections
231
+ const analysis = extractSection(response, ['ANALYSIS']);
232
+ const criticalConcerns = parseList(extractSection(response, ['CRITICAL_CONCERNS']));
233
+ const minorConcerns = parseList(extractSection(response, ['MINOR_CONCERNS']));
234
+ const subjectiveConcerns = parseList(extractSection(response, ['SUBJECTIVE_CONCERNS']));
235
+ const reasoning = extractSection(response, ['REASONING']);
236
+ const suggestedChanges = parseList(extractSection(response, ['SUGGESTED_CHANGES']));
237
+ return {
238
+ approved,
239
+ score,
240
+ analysis,
241
+ criticalConcerns: criticalConcerns.filter(c => c.toLowerCase() !== 'none'),
242
+ minorConcerns: minorConcerns.filter(c => c.toLowerCase() !== 'none'),
243
+ subjectiveConcerns: subjectiveConcerns.filter(c => c.toLowerCase() !== 'none'),
244
+ reasoning,
245
+ suggestedChanges: suggestedChanges.filter(c => !c.toLowerCase().includes('none')),
246
+ rawResponse: response,
247
+ };
248
+ }
249
+ /**
250
+ * Extract a section from the response with multiple possible headers
251
+ */
252
+ function extractSection(response, headers) {
253
+ // Build pattern to match any of the headers
254
+ const headerPattern = headers.map(h => h.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')).join('|');
255
+ const startPattern = new RegExp(`(${headerPattern})[:\\s]*\\n?`, 'i');
256
+ const startMatch = response.match(startPattern);
257
+ if (!startMatch || startMatch.index === undefined)
258
+ return '';
259
+ const startIndex = startMatch.index + startMatch[0].length;
260
+ // Find the next section header (any capitalized word followed by colon or markdown header)
261
+ const endPattern = /\n(?:#{1,3}\s+)?[A-Z][A-Z_]+[:\s]/;
262
+ const remaining = response.slice(startIndex);
263
+ const endMatch = remaining.match(endPattern);
264
+ if (!endMatch || endMatch.index === undefined) {
265
+ return remaining.trim();
266
+ }
267
+ return remaining.slice(0, endMatch.index).trim();
268
+ }
269
+ /**
270
+ * Parse a bulleted or numbered list from text
271
+ */
272
+ function parseList(text) {
273
+ if (!text)
274
+ return [];
275
+ const lines = text.split('\n');
276
+ const items = [];
277
+ for (const line of lines) {
278
+ const trimmed = line.trim();
279
+ // Skip empty lines and section headers
280
+ if (!trimmed)
281
+ continue;
282
+ if (trimmed.match(/^#{1,3}\s/))
283
+ continue; // Skip markdown headers
284
+ if (trimmed.match(/^[A-Z][A-Z_]+:/))
285
+ continue; // Skip section headers
286
+ // Match bullets (-, *, +) or numbers (1., 2., etc.)
287
+ const bulletMatch = trimmed.match(/^[-*+]\s+(.+)$/);
288
+ const numberMatch = trimmed.match(/^\d+\.\s+(.+)$/);
289
+ if (bulletMatch) {
290
+ items.push(bulletMatch[1].trim());
291
+ }
292
+ else if (numberMatch) {
293
+ items.push(numberMatch[1].trim());
294
+ }
295
+ else if (trimmed && !trimmed.match(/^[A-Z]+:/i)) {
296
+ // Only add non-header lines that have substantial content
297
+ if (trimmed.length > 10 && !trimmed.startsWith('**') && !trimmed.endsWith(':')) {
298
+ items.push(trimmed);
299
+ }
300
+ }
301
+ }
302
+ return items;
303
+ }
304
+ /**
305
+ * Validate that the Gemini API key is working
306
+ */
307
+ export async function validateApiKey() {
308
+ try {
309
+ const client = await createClient();
310
+ const model = client.getGenerativeModel({ model: 'gemini-2.0-flash' });
311
+ await model.generateContent('Say "OK" if you can hear me.');
312
+ return true;
313
+ }
314
+ catch {
315
+ return false;
316
+ }
317
+ }
318
+ //# sourceMappingURL=gemini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/adapters/gemini.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * xAI Grok API adapter
3
+ * Handles consensus reviews and arbitration using Grok models
4
+ *
5
+ * Uses OpenAI SDK with custom baseURL since Grok API is OpenAI-compatible
6
+ */
7
+ import OpenAI from 'openai';
8
+ import type { ConsensusResult, ArbitrationResult } from '../types/consensus.js';
9
+ /**
10
+ * Default Grok configuration
11
+ */
12
+ export declare const DEFAULT_GROK_CONFIG: {
13
+ model: string;
14
+ temperature: number;
15
+ maxTokens: number;
16
+ };
17
+ /**
18
+ * Create a Grok client using OpenAI SDK with custom baseURL
19
+ */
20
+ export declare function createClient(): Promise<OpenAI>;
21
+ /**
22
+ * Request consensus review from Grok
23
+ *
24
+ * @param plan - The development plan to review
25
+ * @param context - Project context
26
+ * @param config - Configuration options
27
+ * @returns Consensus result
28
+ */
29
+ export declare function requestConsensus(plan: string, context: string, config?: {
30
+ model?: string;
31
+ temperature?: number;
32
+ maxTokens?: number;
33
+ }): Promise<ConsensusResult>;
34
+ /**
35
+ * Request arbitration from Grok when consensus is stuck
36
+ *
37
+ * @param plan - The best plan achieved
38
+ * @param reviewerFeedback - Feedback from the reviewer
39
+ * @param claudeFeedback - Claude's perspective on the plan
40
+ * @param iterations - Number of iterations attempted
41
+ * @param scores - Score history
42
+ * @returns Arbitration decision
43
+ */
44
+ export declare function requestArbitration(plan: string, reviewerFeedback: string, claudeFeedback: string, iterations: number, scores: number[]): Promise<ArbitrationResult>;
45
+ /**
46
+ * Parse the consensus response from Grok
47
+ * Uses same format as OpenAI/Gemini for consistency
48
+ */
49
+ export declare function parseConsensusResponse(response: string): ConsensusResult;
50
+ /**
51
+ * Validate that the Grok API key is working
52
+ */
53
+ export declare function validateApiKey(): Promise<boolean>;
54
+ /**
55
+ * List available Grok models (if API supports it)
56
+ */
57
+ export declare function listAvailableModels(): Promise<string[]>;
58
+ /**
59
+ * Expand a brief idea into a full specification using Grok
60
+ *
61
+ * @param idea - The brief project idea
62
+ * @param language - Target programming language
63
+ * @returns Expanded specification
64
+ */
65
+ export declare function expandIdea(idea: string, language: 'python' | 'typescript' | 'fullstack'): Promise<string>;
66
+ /**
67
+ * Get feedback on generated code using Grok
68
+ *
69
+ * @param code - The code to review
70
+ * @param context - Context about what the code should do
71
+ */
72
+ export declare function reviewCode(code: string, context: string): Promise<ConsensusResult>;
73
+ //# sourceMappingURL=grok.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/adapters/grok.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAIhF;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;CAI/B,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAWpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GACxE,OAAO,CAAC,eAAe,CAAC,CA4B1B;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EAAE,GACf,OAAO,CAAC,iBAAiB,CAAC,CAkB5B;AA6GD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAsCxE;AAuGD;;GAEG;AACH,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAYvD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAa7D;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,WAAW,GAC9C,OAAO,CAAC,MAAM,CAAC,CAwCjB;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA+BxF"}