baseguard 1.0.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 (244) hide show
  1. package/.eslintrc.json +25 -0
  2. package/.prettierrc +8 -0
  3. package/README.md +94 -0
  4. package/bin/base.js +494 -0
  5. package/dist/ai/fix-manager.d.ts +67 -0
  6. package/dist/ai/fix-manager.d.ts.map +1 -0
  7. package/dist/ai/fix-manager.js +326 -0
  8. package/dist/ai/fix-manager.js.map +1 -0
  9. package/dist/ai/gemini-analyzer.d.ts +116 -0
  10. package/dist/ai/gemini-analyzer.d.ts.map +1 -0
  11. package/dist/ai/gemini-analyzer.js +572 -0
  12. package/dist/ai/gemini-analyzer.js.map +1 -0
  13. package/dist/ai/index.d.ts +4 -0
  14. package/dist/ai/index.d.ts.map +1 -0
  15. package/dist/ai/index.js +5 -0
  16. package/dist/ai/index.js.map +1 -0
  17. package/dist/ai/jules-implementer.d.ts +115 -0
  18. package/dist/ai/jules-implementer.d.ts.map +1 -0
  19. package/dist/ai/jules-implementer.js +387 -0
  20. package/dist/ai/jules-implementer.js.map +1 -0
  21. package/dist/commands/automation.d.ts +5 -0
  22. package/dist/commands/automation.d.ts.map +1 -0
  23. package/dist/commands/automation.js +305 -0
  24. package/dist/commands/automation.js.map +1 -0
  25. package/dist/commands/check.d.ts +9 -0
  26. package/dist/commands/check.d.ts.map +1 -0
  27. package/dist/commands/check.js +113 -0
  28. package/dist/commands/check.js.map +1 -0
  29. package/dist/commands/config.d.ts +11 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +324 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/fix.d.ts +9 -0
  34. package/dist/commands/fix.d.ts.map +1 -0
  35. package/dist/commands/fix.js +207 -0
  36. package/dist/commands/fix.js.map +1 -0
  37. package/dist/commands/index.d.ts +6 -0
  38. package/dist/commands/index.d.ts.map +1 -0
  39. package/dist/commands/index.js +7 -0
  40. package/dist/commands/index.js.map +1 -0
  41. package/dist/commands/init.d.ts +9 -0
  42. package/dist/commands/init.d.ts.map +1 -0
  43. package/dist/commands/init.js +125 -0
  44. package/dist/commands/init.js.map +1 -0
  45. package/dist/core/api-key-manager.d.ts +83 -0
  46. package/dist/core/api-key-manager.d.ts.map +1 -0
  47. package/dist/core/api-key-manager.js +244 -0
  48. package/dist/core/api-key-manager.js.map +1 -0
  49. package/dist/core/baseguard.d.ts +46 -0
  50. package/dist/core/baseguard.d.ts.map +1 -0
  51. package/dist/core/baseguard.js +132 -0
  52. package/dist/core/baseguard.js.map +1 -0
  53. package/dist/core/baseline-checker.d.ts +63 -0
  54. package/dist/core/baseline-checker.d.ts.map +1 -0
  55. package/dist/core/baseline-checker.js +502 -0
  56. package/dist/core/baseline-checker.js.map +1 -0
  57. package/dist/core/cache-manager.d.ts +88 -0
  58. package/dist/core/cache-manager.d.ts.map +1 -0
  59. package/dist/core/cache-manager.js +213 -0
  60. package/dist/core/cache-manager.js.map +1 -0
  61. package/dist/core/configuration.d.ts +140 -0
  62. package/dist/core/configuration.d.ts.map +1 -0
  63. package/dist/core/configuration.js +474 -0
  64. package/dist/core/configuration.js.map +1 -0
  65. package/dist/core/directory-filter.d.ts +90 -0
  66. package/dist/core/directory-filter.d.ts.map +1 -0
  67. package/dist/core/directory-filter.js +319 -0
  68. package/dist/core/directory-filter.js.map +1 -0
  69. package/dist/core/error-handler.d.ts +110 -0
  70. package/dist/core/error-handler.d.ts.map +1 -0
  71. package/dist/core/error-handler.js +392 -0
  72. package/dist/core/error-handler.js.map +1 -0
  73. package/dist/core/file-processor.d.ts +80 -0
  74. package/dist/core/file-processor.d.ts.map +1 -0
  75. package/dist/core/file-processor.js +259 -0
  76. package/dist/core/file-processor.js.map +1 -0
  77. package/dist/core/gitignore-manager.d.ts +44 -0
  78. package/dist/core/gitignore-manager.d.ts.map +1 -0
  79. package/dist/core/gitignore-manager.js +147 -0
  80. package/dist/core/gitignore-manager.js.map +1 -0
  81. package/dist/core/index.d.ts +13 -0
  82. package/dist/core/index.d.ts.map +1 -0
  83. package/dist/core/index.js +13 -0
  84. package/dist/core/index.js.map +1 -0
  85. package/dist/core/lazy-loader.d.ts +68 -0
  86. package/dist/core/lazy-loader.d.ts.map +1 -0
  87. package/dist/core/lazy-loader.js +260 -0
  88. package/dist/core/lazy-loader.js.map +1 -0
  89. package/dist/core/memory-manager.d.ts +1 -0
  90. package/dist/core/memory-manager.d.ts.map +1 -0
  91. package/dist/core/memory-manager.js +2 -0
  92. package/dist/core/memory-manager.js.map +1 -0
  93. package/dist/core/startup-optimizer.d.ts +45 -0
  94. package/dist/core/startup-optimizer.d.ts.map +1 -0
  95. package/dist/core/startup-optimizer.js +140 -0
  96. package/dist/core/startup-optimizer.js.map +1 -0
  97. package/dist/git/automation-engine.d.ts +58 -0
  98. package/dist/git/automation-engine.d.ts.map +1 -0
  99. package/dist/git/automation-engine.js +318 -0
  100. package/dist/git/automation-engine.js.map +1 -0
  101. package/dist/git/github-manager.d.ts +71 -0
  102. package/dist/git/github-manager.d.ts.map +1 -0
  103. package/dist/git/github-manager.js +226 -0
  104. package/dist/git/github-manager.js.map +1 -0
  105. package/dist/git/hook-manager.d.ts +43 -0
  106. package/dist/git/hook-manager.d.ts.map +1 -0
  107. package/dist/git/hook-manager.js +191 -0
  108. package/dist/git/hook-manager.js.map +1 -0
  109. package/dist/git/index.d.ts +4 -0
  110. package/dist/git/index.d.ts.map +1 -0
  111. package/dist/git/index.js +5 -0
  112. package/dist/git/index.js.map +1 -0
  113. package/dist/index.d.ts +8 -0
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +9 -0
  116. package/dist/index.js.map +1 -0
  117. package/dist/parsers/feature-validator.d.ts +60 -0
  118. package/dist/parsers/feature-validator.d.ts.map +1 -0
  119. package/dist/parsers/feature-validator.js +483 -0
  120. package/dist/parsers/feature-validator.js.map +1 -0
  121. package/dist/parsers/index.d.ts +8 -0
  122. package/dist/parsers/index.d.ts.map +1 -0
  123. package/dist/parsers/index.js +9 -0
  124. package/dist/parsers/index.js.map +1 -0
  125. package/dist/parsers/parser-manager.d.ts +103 -0
  126. package/dist/parsers/parser-manager.d.ts.map +1 -0
  127. package/dist/parsers/parser-manager.js +321 -0
  128. package/dist/parsers/parser-manager.js.map +1 -0
  129. package/dist/parsers/parser.d.ts +23 -0
  130. package/dist/parsers/parser.d.ts.map +1 -0
  131. package/dist/parsers/parser.js +6 -0
  132. package/dist/parsers/parser.js.map +1 -0
  133. package/dist/parsers/react-parser.d.ts +22 -0
  134. package/dist/parsers/react-parser.d.ts.map +1 -0
  135. package/dist/parsers/react-parser.js +307 -0
  136. package/dist/parsers/react-parser.js.map +1 -0
  137. package/dist/parsers/svelte-parser.d.ts +33 -0
  138. package/dist/parsers/svelte-parser.d.ts.map +1 -0
  139. package/dist/parsers/svelte-parser.js +408 -0
  140. package/dist/parsers/svelte-parser.js.map +1 -0
  141. package/dist/parsers/vanilla-parser.d.ts +31 -0
  142. package/dist/parsers/vanilla-parser.d.ts.map +1 -0
  143. package/dist/parsers/vanilla-parser.js +590 -0
  144. package/dist/parsers/vanilla-parser.js.map +1 -0
  145. package/dist/parsers/vue-parser.d.ts +9 -0
  146. package/dist/parsers/vue-parser.d.ts.map +1 -0
  147. package/dist/parsers/vue-parser.js +16 -0
  148. package/dist/parsers/vue-parser.js.map +1 -0
  149. package/dist/terminal-header.d.ts +12 -0
  150. package/dist/terminal-header.js +45 -0
  151. package/dist/types/index.d.ts +83 -0
  152. package/dist/types/index.d.ts.map +1 -0
  153. package/dist/types/index.js +5 -0
  154. package/dist/types/index.js.map +1 -0
  155. package/dist/ui/components.d.ts +133 -0
  156. package/dist/ui/components.d.ts.map +1 -0
  157. package/dist/ui/components.js +482 -0
  158. package/dist/ui/components.js.map +1 -0
  159. package/dist/ui/help.d.ts +11 -0
  160. package/dist/ui/help.d.ts.map +1 -0
  161. package/dist/ui/help.js +161 -0
  162. package/dist/ui/help.js.map +1 -0
  163. package/dist/ui/index.d.ts +5 -0
  164. package/dist/ui/index.d.ts.map +1 -0
  165. package/dist/ui/index.js +5 -0
  166. package/dist/ui/index.js.map +1 -0
  167. package/dist/ui/prompts.d.ts +63 -0
  168. package/dist/ui/prompts.d.ts.map +1 -0
  169. package/dist/ui/prompts.js +611 -0
  170. package/dist/ui/prompts.js.map +1 -0
  171. package/dist/ui/terminal-header.d.ts +13 -0
  172. package/dist/ui/terminal-header.d.ts.map +1 -0
  173. package/dist/ui/terminal-header.js +46 -0
  174. package/dist/ui/terminal-header.js.map +1 -0
  175. package/package.json +80 -0
  176. package/src/ai/__tests__/gemini-analyzer.test.ts +181 -0
  177. package/src/ai/fix-manager.ts +362 -0
  178. package/src/ai/gemini-analyzer.ts +671 -0
  179. package/src/ai/index.ts +4 -0
  180. package/src/ai/jules-implementer.ts +459 -0
  181. package/src/commands/automation.ts +344 -0
  182. package/src/commands/check.ts +299 -0
  183. package/src/commands/config.ts +365 -0
  184. package/src/commands/fix.ts +234 -0
  185. package/src/commands/index.ts +6 -0
  186. package/src/commands/init.ts +142 -0
  187. package/src/commands/status.ts +0 -0
  188. package/src/core/api-key-manager.ts +298 -0
  189. package/src/core/baseguard.ts +742 -0
  190. package/src/core/baseline-checker.ts +563 -0
  191. package/src/core/cache-manager.ts +270 -0
  192. package/src/core/configuration-recovery.ts +676 -0
  193. package/src/core/configuration.ts +559 -0
  194. package/src/core/debug-logger.ts +590 -0
  195. package/src/core/directory-filter.ts +421 -0
  196. package/src/core/error-handler.ts +517 -0
  197. package/src/core/file-processor.ts +331 -0
  198. package/src/core/gitignore-manager.ts +169 -0
  199. package/src/core/graceful-degradation-manager.ts +596 -0
  200. package/src/core/index.ts +13 -0
  201. package/src/core/lazy-loader.ts +307 -0
  202. package/src/core/logger.ts +0 -0
  203. package/src/core/memory-manager.ts +294 -0
  204. package/src/core/startup-optimizer.ts +173 -0
  205. package/src/core/system-error-handler.ts +746 -0
  206. package/src/git/automation-engine.ts +361 -0
  207. package/src/git/github-manager.ts +260 -0
  208. package/src/git/hook-manager.ts +210 -0
  209. package/src/git/index.ts +4 -0
  210. package/src/index.ts +8 -0
  211. package/src/parsers/feature-validator.ts +559 -0
  212. package/src/parsers/index.ts +8 -0
  213. package/src/parsers/parser-manager.ts +419 -0
  214. package/src/parsers/parser.ts +26 -0
  215. package/src/parsers/react-parser-optimized.ts +161 -0
  216. package/src/parsers/react-parser.ts +359 -0
  217. package/src/parsers/svelte-parser.ts +506 -0
  218. package/src/parsers/vanilla-parser.ts +682 -0
  219. package/src/parsers/vue-parser.ts +472 -0
  220. package/src/types/index.ts +92 -0
  221. package/src/ui/components.ts +567 -0
  222. package/src/ui/help.ts +193 -0
  223. package/src/ui/index.ts +4 -0
  224. package/src/ui/prompts.ts +688 -0
  225. package/src/ui/terminal-header.ts +59 -0
  226. package/test-config-commands.js +56 -0
  227. package/test-header-simple.js +33 -0
  228. package/test-terminal-header.js +12 -0
  229. package/test-ui.js +29 -0
  230. package/tests/e2e/baseguard.e2e.test.ts +516 -0
  231. package/tests/e2e/cross-platform.e2e.test.ts +420 -0
  232. package/tests/e2e/git-integration.e2e.test.ts +487 -0
  233. package/tests/fixtures/react-project/package.json +14 -0
  234. package/tests/fixtures/react-project/src/App.css +76 -0
  235. package/tests/fixtures/react-project/src/App.tsx +77 -0
  236. package/tests/fixtures/svelte-project/package.json +11 -0
  237. package/tests/fixtures/svelte-project/src/App.svelte +369 -0
  238. package/tests/fixtures/vanilla-project/index.html +76 -0
  239. package/tests/fixtures/vanilla-project/script.js +331 -0
  240. package/tests/fixtures/vanilla-project/styles.css +359 -0
  241. package/tests/fixtures/vue-project/package.json +12 -0
  242. package/tests/fixtures/vue-project/src/App.vue +216 -0
  243. package/tsconfig.json +36 -0
  244. package/vitest.config.ts +10 -0
@@ -0,0 +1,115 @@
1
+ import type { Violation, Analysis, Fix } from '../types/index.js';
2
+ import { ErrorType } from '../core/error-handler.js';
3
+ /**
4
+ * Jules AI implementer for autonomous code fixing
5
+ */
6
+ export declare class JulesImplementer {
7
+ private apiKey;
8
+ private baseUrl;
9
+ private githubManager;
10
+ private fixManager;
11
+ constructor(apiKey: string);
12
+ /**
13
+ * Generate a fix using Jules AI
14
+ */
15
+ generateFix(violation: Violation, analysis: Analysis, repoSource?: string): Promise<Fix>;
16
+ /**
17
+ * Create a Jules session for fixing
18
+ */
19
+ private createSession;
20
+ /**
21
+ * Wait for Jules session completion
22
+ */
23
+ private waitForCompletion;
24
+ /**
25
+ * Get activities for a Jules session
26
+ */
27
+ private getActivities;
28
+ /**
29
+ * Extract fix from completed Jules session
30
+ */
31
+ private extractFix;
32
+ /**
33
+ * Extract code changes from Jules activities and session data
34
+ */
35
+ private extractCodeChanges;
36
+ /**
37
+ * Generate unified diff patch
38
+ */
39
+ private generateUnifiedDiff;
40
+ /**
41
+ * Generate fix explanation
42
+ */
43
+ private generateFixExplanation;
44
+ /**
45
+ * Generate human-readable preview
46
+ */
47
+ private generatePreview;
48
+ /**
49
+ * Build fix prompt for Jules
50
+ */
51
+ private buildFixPrompt;
52
+ /**
53
+ * Test Jules API connectivity
54
+ */
55
+ testConnection(): Promise<{
56
+ success: boolean;
57
+ error?: string;
58
+ errorType?: ErrorType;
59
+ }>;
60
+ /**
61
+ * Setup Jules GitHub integration
62
+ */
63
+ setupGitHubIntegration(): Promise<string>;
64
+ /**
65
+ * Check if GitHub integration is set up
66
+ */
67
+ isGitHubIntegrationSetup(): Promise<boolean>;
68
+ /**
69
+ * Verify GitHub connection and permissions
70
+ */
71
+ verifyGitHubConnection(): Promise<boolean>;
72
+ /**
73
+ * Get repository information
74
+ */
75
+ getRepositoryInfo(): {
76
+ owner: string | null;
77
+ name: string | null;
78
+ };
79
+ /**
80
+ * Get current source identifier
81
+ */
82
+ getSourceIdentifier(): Promise<string>;
83
+ /**
84
+ * Generate and apply fixes with interactive preview
85
+ */
86
+ generateAndApplyFixes(violations: Violation[], analyses: Analysis[]): Promise<{
87
+ applied: Fix[];
88
+ skipped: Fix[];
89
+ failed: {
90
+ fix: Fix;
91
+ error: string;
92
+ }[];
93
+ }>;
94
+ /**
95
+ * Preview a single fix
96
+ */
97
+ previewFix(fix: Fix): Promise<string>;
98
+ /**
99
+ * Apply a single fix
100
+ */
101
+ applySingleFix(fix: Fix): Promise<void>;
102
+ /**
103
+ * Rollback applied fixes
104
+ */
105
+ rollbackFix(filePath: string): Promise<void>;
106
+ /**
107
+ * Rollback all applied fixes
108
+ */
109
+ rollbackAllFixes(): Promise<void>;
110
+ /**
111
+ * Get list of applied fixes
112
+ */
113
+ getAppliedFixes(): string[];
114
+ }
115
+ //# sourceMappingURL=jules-implementer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jules-implementer.d.ts","sourceRoot":"","sources":["../../src/ai/jules-implementer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAA+B,MAAM,mBAAmB,CAAC;AAG/F,OAAO,EAA0B,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAG7E;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,MAAM;IAM1B;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C9F;;OAEG;YACW,aAAa;IAqC3B;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;YACW,aAAa;IAiC3B;;OAEG;YACW,UAAU;IAgCxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAQ9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC;IA4B5F;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/C;;OAEG;IACG,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlD;;OAEG;IACG,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhD;;OAEG;IACH,iBAAiB,IAAI;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;IAIlE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5C;;OAEG;IACG,qBAAqB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QAAC,MAAM,EAAE;YAAE,GAAG,EAAE,GAAG,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IA+B9J;;OAEG;IACG,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;CAG5B"}
@@ -0,0 +1,387 @@
1
+ import { GitHubManager } from '../git/github-manager.js';
2
+ import { FixManager } from './fix-manager.js';
3
+ import { ErrorHandler, APIError, ErrorType } from '../core/error-handler.js';
4
+ import chalk from 'chalk';
5
+ /**
6
+ * Jules AI implementer for autonomous code fixing
7
+ */
8
+ export class JulesImplementer {
9
+ apiKey;
10
+ baseUrl = 'https://jules.googleapis.com/v1alpha';
11
+ githubManager;
12
+ fixManager;
13
+ constructor(apiKey) {
14
+ this.apiKey = apiKey;
15
+ this.githubManager = new GitHubManager();
16
+ this.fixManager = new FixManager();
17
+ }
18
+ /**
19
+ * Generate a fix using Jules AI
20
+ */
21
+ async generateFix(violation, analysis, repoSource) {
22
+ const context = ErrorHandler.createContext('jules_fix_generation', {
23
+ feature: violation.feature,
24
+ file: violation.file,
25
+ browser: violation.browser
26
+ });
27
+ try {
28
+ // Get repository source if not provided
29
+ const source = repoSource || await this.githubManager.getCurrentSourceIdentifier();
30
+ // Create a session for this specific fix with retry logic
31
+ const session = await ErrorHandler.withRetry(() => this.createSession(violation, analysis, source), {
32
+ maxRetries: 2,
33
+ retryableErrors: [ErrorType.NETWORK, ErrorType.TIMEOUT, ErrorType.RATE_LIMIT, ErrorType.SERVER_ERROR]
34
+ });
35
+ // Monitor session activities until completion
36
+ const activities = await this.waitForCompletion(session.id);
37
+ // Extract the generated code changes
38
+ const fix = await this.extractFix(session.id, activities, violation, analysis);
39
+ return fix;
40
+ }
41
+ catch (error) {
42
+ const apiError = ErrorHandler.handleAPIError(error, context);
43
+ // Log error for debugging
44
+ console.error('Jules fix generation failed:', {
45
+ feature: violation.feature,
46
+ error: apiError.message,
47
+ type: apiError.type
48
+ });
49
+ // Re-throw with proper error handling
50
+ throw apiError;
51
+ }
52
+ }
53
+ /**
54
+ * Create a Jules session for fixing
55
+ */
56
+ async createSession(violation, analysis, source) {
57
+ const prompt = this.buildFixPrompt(violation, analysis);
58
+ const response = await fetch(`${this.baseUrl}/sessions`, {
59
+ method: 'POST',
60
+ headers: {
61
+ 'Content-Type': 'application/json',
62
+ 'X-Goog-Api-Key': this.apiKey
63
+ },
64
+ body: JSON.stringify({
65
+ prompt: prompt,
66
+ sourceContext: {
67
+ source: source, // e.g., "sources/github/user/repo"
68
+ githubRepoContext: {
69
+ startingBranch: "main"
70
+ }
71
+ },
72
+ title: `Fix ${violation.feature} compatibility in ${violation.file}`,
73
+ requirePlanApproval: false // Auto-approve for BaseGuard automation
74
+ })
75
+ });
76
+ if (!response.ok) {
77
+ const errorText = await response.text();
78
+ const error = new Error(`Jules API error: ${response.status} ${response.statusText} - ${errorText}`);
79
+ error.response = response;
80
+ throw error;
81
+ }
82
+ const sessionData = await response.json();
83
+ // Validate session response
84
+ ErrorHandler.validateAPIResponse(sessionData, ['id']);
85
+ return sessionData;
86
+ }
87
+ /**
88
+ * Wait for Jules session completion
89
+ */
90
+ async waitForCompletion(sessionId) {
91
+ let attempts = 0;
92
+ const maxAttempts = 30; // 5 minutes max (10 seconds * 30)
93
+ while (attempts < maxAttempts) {
94
+ const activities = await this.getActivities(sessionId);
95
+ const lastActivity = activities[activities.length - 1];
96
+ // Check if session is complete
97
+ if (lastActivity?.status === 'completed' || lastActivity?.type === 'agent_finished') {
98
+ return activities;
99
+ }
100
+ // Check for failure states
101
+ if (lastActivity?.status === 'failed' || lastActivity?.status === 'error') {
102
+ throw new Error(`Jules session failed: ${lastActivity.status}`);
103
+ }
104
+ // Wait 10 seconds before checking again
105
+ await new Promise(resolve => setTimeout(resolve, 10000));
106
+ attempts++;
107
+ }
108
+ throw new Error('Jules session timed out after 5 minutes');
109
+ }
110
+ /**
111
+ * Get activities for a Jules session
112
+ */
113
+ async getActivities(sessionId) {
114
+ const response = await fetch(`${this.baseUrl}/sessions/${sessionId}/activities`, {
115
+ headers: {
116
+ 'X-Goog-Api-Key': this.apiKey
117
+ }
118
+ });
119
+ if (!response.ok) {
120
+ const error = new Error(`Failed to get activities: ${response.status} ${response.statusText}`);
121
+ error.response = response;
122
+ throw error;
123
+ }
124
+ const data = await response.json();
125
+ // Validate response structure
126
+ if (!data || typeof data !== 'object') {
127
+ throw new APIError('Invalid activities response from Jules API', ErrorType.VALIDATION, {
128
+ suggestions: [
129
+ 'Check Jules API service status',
130
+ 'Verify session ID is valid',
131
+ 'Try the request again'
132
+ ]
133
+ });
134
+ }
135
+ return data.activities || [];
136
+ }
137
+ /**
138
+ * Extract fix from completed Jules session
139
+ */
140
+ async extractFix(sessionId, activities, violation, analysis) {
141
+ // Get the final session state to extract code changes
142
+ const sessionResponse = await fetch(`${this.baseUrl}/sessions/${sessionId}`, {
143
+ headers: {
144
+ 'X-Goog-Api-Key': this.apiKey
145
+ }
146
+ });
147
+ if (!sessionResponse.ok) {
148
+ throw new Error(`Failed to get session details: ${sessionResponse.status}`);
149
+ }
150
+ const sessionData = await sessionResponse.json();
151
+ // Extract code changes from activities or session data
152
+ const codeChanges = this.extractCodeChanges(activities, sessionData);
153
+ // Generate unified diff patch
154
+ const patch = this.generateUnifiedDiff(violation.file, codeChanges);
155
+ return {
156
+ violation,
157
+ analysis,
158
+ patch,
159
+ explanation: this.generateFixExplanation(violation, analysis, codeChanges),
160
+ filePath: violation.file,
161
+ preview: this.generatePreview(codeChanges),
162
+ confidence: 0.8, // Jules confidence score
163
+ testable: true
164
+ };
165
+ }
166
+ /**
167
+ * Extract code changes from Jules activities and session data
168
+ */
169
+ extractCodeChanges(activities, sessionData) {
170
+ // Look for code changes in activities
171
+ const codeActivity = activities.find(activity => activity.type === 'code_change' || activity.type === 'file_edit');
172
+ if (codeActivity) {
173
+ // Extract from activity data (implementation depends on Jules API response format)
174
+ return {
175
+ original: sessionData.originalCode || '',
176
+ modified: sessionData.modifiedCode || ''
177
+ };
178
+ }
179
+ // Fallback: extract from session data
180
+ return {
181
+ original: sessionData.originalCode || '',
182
+ modified: sessionData.modifiedCode || ''
183
+ };
184
+ }
185
+ /**
186
+ * Generate unified diff patch
187
+ */
188
+ generateUnifiedDiff(filePath, changes) {
189
+ const originalLines = changes.original.split('\n');
190
+ const modifiedLines = changes.modified.split('\n');
191
+ // Simple diff generation (in production, use a proper diff library)
192
+ let patch = `--- a/${filePath}\n+++ b/${filePath}\n`;
193
+ // Find differences and generate patch format
194
+ for (let i = 0; i < Math.max(originalLines.length, modifiedLines.length); i++) {
195
+ const originalLine = originalLines[i] || '';
196
+ const modifiedLine = modifiedLines[i] || '';
197
+ if (originalLine !== modifiedLine) {
198
+ if (originalLine) {
199
+ patch += `-${originalLine}\n`;
200
+ }
201
+ if (modifiedLine) {
202
+ patch += `+${modifiedLine}\n`;
203
+ }
204
+ }
205
+ }
206
+ return patch;
207
+ }
208
+ /**
209
+ * Generate fix explanation
210
+ */
211
+ generateFixExplanation(violation, analysis, changes) {
212
+ return `Fixed ${violation.feature} compatibility issue in ${violation.file}:\n\n` +
213
+ `- Added progressive enhancement using ${analysis.fixStrategy}\n` +
214
+ `- Implemented fallback for ${violation.browser} ${violation.required}\n` +
215
+ `- Applied best practices: ${analysis.bestPractices.join(', ')}\n\n` +
216
+ `This fix ensures the feature works across all target browsers while maintaining the original functionality.`;
217
+ }
218
+ /**
219
+ * Generate human-readable preview
220
+ */
221
+ generatePreview(changes) {
222
+ const originalLines = changes.original.split('\n');
223
+ const modifiedLines = changes.modified.split('\n');
224
+ let preview = 'Changes:\n';
225
+ for (let i = 0; i < Math.max(originalLines.length, modifiedLines.length); i++) {
226
+ const originalLine = originalLines[i];
227
+ const modifiedLine = modifiedLines[i];
228
+ if (originalLine !== modifiedLine) {
229
+ if (originalLine) {
230
+ preview += `- ${originalLine}\n`;
231
+ }
232
+ if (modifiedLine) {
233
+ preview += `+ ${modifiedLine}\n`;
234
+ }
235
+ }
236
+ }
237
+ return preview;
238
+ }
239
+ /**
240
+ * Build fix prompt for Jules
241
+ */
242
+ buildFixPrompt(violation, analysis) {
243
+ return `Fix browser compatibility issue in ${violation.file}:
244
+
245
+ ISSUE:
246
+ - Feature: ${violation.feature} (line ${violation.line})
247
+ - Unsupported in: ${violation.browser} ${violation.required}
248
+ - Baseline Status: ${violation.baselineStatus}
249
+ - Current code: ${violation.context}
250
+
251
+ ANALYSIS:
252
+ ${analysis.plainEnglish}
253
+
254
+ FIX STRATEGY:
255
+ ${analysis.fixStrategy}
256
+
257
+ REQUIREMENTS:
258
+ 1. Implement progressive enhancement using @supports for CSS features
259
+ 2. Use feature detection for JavaScript APIs
260
+ 3. Add appropriate fallbacks for older browsers
261
+ 4. Preserve all original functionality
262
+ 5. Follow best practices: ${analysis.bestPractices.join(', ')}
263
+ 6. Ensure the fix works in ${violation.browser} ${violation.required} and newer versions
264
+
265
+ Please fix this compatibility issue while maintaining the existing functionality. The fix should be production-ready and follow web standards.`;
266
+ }
267
+ /**
268
+ * Test Jules API connectivity
269
+ */
270
+ async testConnection() {
271
+ try {
272
+ const response = await fetch(`${this.baseUrl}/sessions`, {
273
+ method: 'GET',
274
+ headers: {
275
+ 'X-Goog-Api-Key': this.apiKey
276
+ }
277
+ });
278
+ if (response.ok || response.status === 404) {
279
+ // 404 is acceptable for sessions endpoint when no sessions exist
280
+ return { success: true };
281
+ }
282
+ else {
283
+ const error = new Error(`HTTP ${response.status}: ${response.statusText}`);
284
+ error.response = response;
285
+ throw error;
286
+ }
287
+ }
288
+ catch (error) {
289
+ const apiError = ErrorHandler.handleAPIError(error);
290
+ return {
291
+ success: false,
292
+ error: apiError.message,
293
+ errorType: apiError.type
294
+ };
295
+ }
296
+ }
297
+ /**
298
+ * Setup Jules GitHub integration
299
+ */
300
+ async setupGitHubIntegration() {
301
+ return await this.githubManager.setupJulesGitHubIntegration();
302
+ }
303
+ /**
304
+ * Check if GitHub integration is set up
305
+ */
306
+ async isGitHubIntegrationSetup() {
307
+ return await this.githubManager.isJulesIntegrationSetup();
308
+ }
309
+ /**
310
+ * Verify GitHub connection and permissions
311
+ */
312
+ async verifyGitHubConnection() {
313
+ return await this.githubManager.verifyGitHubConnection();
314
+ }
315
+ /**
316
+ * Get repository information
317
+ */
318
+ getRepositoryInfo() {
319
+ return this.githubManager.getRepositoryInfo();
320
+ }
321
+ /**
322
+ * Get current source identifier
323
+ */
324
+ async getSourceIdentifier() {
325
+ return await this.githubManager.getCurrentSourceIdentifier();
326
+ }
327
+ /**
328
+ * Generate and apply fixes with interactive preview
329
+ */
330
+ async generateAndApplyFixes(violations, analyses) {
331
+ const fixes = [];
332
+ // Generate fixes for each violation
333
+ for (let i = 0; i < violations.length; i++) {
334
+ const violation = violations[i];
335
+ const analysis = analyses[i];
336
+ if (!violation || !analysis) {
337
+ console.log(chalk.red(`❌ Missing violation or analysis data for index ${i}`));
338
+ continue;
339
+ }
340
+ try {
341
+ console.log(chalk.cyan(`\n🔧 Generating fix ${i + 1}/${violations.length} for ${violation.feature}...`));
342
+ const fix = await this.generateFix(violation, analysis);
343
+ fixes.push(fix);
344
+ }
345
+ catch (error) {
346
+ console.log(chalk.red(`❌ Failed to generate fix for ${violation.feature}: ${error instanceof Error ? error.message : 'Unknown error'}`));
347
+ }
348
+ }
349
+ if (fixes.length === 0) {
350
+ console.log(chalk.yellow('⚠️ No fixes were generated'));
351
+ return { applied: [], skipped: [], failed: [] };
352
+ }
353
+ // Apply fixes with interactive preview
354
+ return await this.fixManager.applyFixes(fixes);
355
+ }
356
+ /**
357
+ * Preview a single fix
358
+ */
359
+ async previewFix(fix) {
360
+ return await this.fixManager.generatePreview(fix);
361
+ }
362
+ /**
363
+ * Apply a single fix
364
+ */
365
+ async applySingleFix(fix) {
366
+ await this.fixManager.applyFix(fix);
367
+ }
368
+ /**
369
+ * Rollback applied fixes
370
+ */
371
+ async rollbackFix(filePath) {
372
+ await this.fixManager.rollbackFix(filePath);
373
+ }
374
+ /**
375
+ * Rollback all applied fixes
376
+ */
377
+ async rollbackAllFixes() {
378
+ await this.fixManager.rollbackAllFixes();
379
+ }
380
+ /**
381
+ * Get list of applied fixes
382
+ */
383
+ getAppliedFixes() {
384
+ return this.fixManager.getAppliedFixes();
385
+ }
386
+ }
387
+ //# sourceMappingURL=jules-implementer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jules-implementer.js","sourceRoot":"","sources":["../../src/ai/jules-implementer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Manage git automation and hooks
3
+ */
4
+ export declare function automation(action: string, options?: any): Promise<void>;
5
+ //# sourceMappingURL=automation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automation.d.ts","sourceRoot":"","sources":["../../src/commands/automation.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD7E"}