@gxp-dev/tools 2.0.62 → 2.0.64

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 (182) hide show
  1. package/README.md +32 -31
  2. package/bin/gx-devtools.js +74 -54
  3. package/bin/lib/cli.js +23 -21
  4. package/bin/lib/commands/add-dependency.js +366 -325
  5. package/bin/lib/commands/assets.js +137 -139
  6. package/bin/lib/commands/build.js +169 -174
  7. package/bin/lib/commands/datastore.js +181 -183
  8. package/bin/lib/commands/dev.js +127 -131
  9. package/bin/lib/commands/extensions.js +147 -149
  10. package/bin/lib/commands/extract-config.js +73 -67
  11. package/bin/lib/commands/index.js +12 -12
  12. package/bin/lib/commands/init.js +342 -240
  13. package/bin/lib/commands/publish.js +69 -75
  14. package/bin/lib/commands/socket.js +69 -69
  15. package/bin/lib/commands/ssl.js +14 -14
  16. package/bin/lib/constants.js +10 -24
  17. package/bin/lib/tui/App.tsx +761 -705
  18. package/bin/lib/tui/components/AIPanel.tsx +191 -171
  19. package/bin/lib/tui/components/CommandInput.tsx +394 -343
  20. package/bin/lib/tui/components/GeminiPanel.tsx +175 -151
  21. package/bin/lib/tui/components/Header.tsx +23 -21
  22. package/bin/lib/tui/components/LogPanel.tsx +244 -220
  23. package/bin/lib/tui/components/TabBar.tsx +50 -48
  24. package/bin/lib/tui/components/WelcomeScreen.tsx +126 -71
  25. package/bin/lib/tui/index.tsx +37 -39
  26. package/bin/lib/tui/services/AIService.ts +518 -462
  27. package/bin/lib/tui/services/ExtensionService.ts +140 -129
  28. package/bin/lib/tui/services/GeminiService.ts +367 -337
  29. package/bin/lib/tui/services/ServiceManager.ts +344 -322
  30. package/bin/lib/tui/services/SocketService.ts +168 -168
  31. package/bin/lib/tui/services/ViteService.ts +88 -88
  32. package/bin/lib/tui/services/index.ts +47 -22
  33. package/bin/lib/utils/ai-scaffold.js +291 -280
  34. package/bin/lib/utils/extract-config.js +157 -140
  35. package/bin/lib/utils/files.js +82 -86
  36. package/bin/lib/utils/index.js +7 -7
  37. package/bin/lib/utils/paths.js +34 -34
  38. package/bin/lib/utils/prompts.js +194 -169
  39. package/bin/lib/utils/ssl.js +79 -81
  40. package/browser-extensions/README.md +0 -1
  41. package/browser-extensions/chrome/background.js +244 -237
  42. package/browser-extensions/chrome/content.js +32 -29
  43. package/browser-extensions/chrome/devtools.html +7 -7
  44. package/browser-extensions/chrome/devtools.js +19 -19
  45. package/browser-extensions/chrome/inspector.js +802 -767
  46. package/browser-extensions/chrome/manifest.json +71 -63
  47. package/browser-extensions/chrome/panel.html +674 -636
  48. package/browser-extensions/chrome/panel.js +722 -712
  49. package/browser-extensions/chrome/popup.html +586 -543
  50. package/browser-extensions/chrome/popup.js +282 -244
  51. package/browser-extensions/chrome/rules.json +1 -1
  52. package/browser-extensions/chrome/test-chrome.html +216 -136
  53. package/browser-extensions/chrome/test-mixed-content.html +284 -189
  54. package/browser-extensions/chrome/test-uri-pattern.html +221 -198
  55. package/browser-extensions/firefox/README.md +9 -6
  56. package/browser-extensions/firefox/background.js +221 -218
  57. package/browser-extensions/firefox/content.js +55 -52
  58. package/browser-extensions/firefox/debug-errors.html +386 -228
  59. package/browser-extensions/firefox/debug-https.html +153 -105
  60. package/browser-extensions/firefox/devtools.html +7 -7
  61. package/browser-extensions/firefox/devtools.js +23 -20
  62. package/browser-extensions/firefox/inspector.js +802 -767
  63. package/browser-extensions/firefox/manifest.json +68 -68
  64. package/browser-extensions/firefox/panel.html +674 -636
  65. package/browser-extensions/firefox/panel.js +722 -712
  66. package/browser-extensions/firefox/popup.html +572 -535
  67. package/browser-extensions/firefox/popup.js +281 -236
  68. package/browser-extensions/firefox/test-gramercy.html +170 -125
  69. package/browser-extensions/firefox/test-imports.html +59 -55
  70. package/browser-extensions/firefox/test-masking.html +231 -140
  71. package/browser-extensions/firefox/test-uri-pattern.html +221 -198
  72. package/dist/tui/App.d.ts +1 -1
  73. package/dist/tui/App.d.ts.map +1 -1
  74. package/dist/tui/App.js +154 -150
  75. package/dist/tui/App.js.map +1 -1
  76. package/dist/tui/components/AIPanel.d.ts.map +1 -1
  77. package/dist/tui/components/AIPanel.js +42 -35
  78. package/dist/tui/components/AIPanel.js.map +1 -1
  79. package/dist/tui/components/CommandInput.d.ts +1 -1
  80. package/dist/tui/components/CommandInput.d.ts.map +1 -1
  81. package/dist/tui/components/CommandInput.js +92 -62
  82. package/dist/tui/components/CommandInput.js.map +1 -1
  83. package/dist/tui/components/GeminiPanel.d.ts.map +1 -1
  84. package/dist/tui/components/GeminiPanel.js +37 -30
  85. package/dist/tui/components/GeminiPanel.js.map +1 -1
  86. package/dist/tui/components/Header.d.ts.map +1 -1
  87. package/dist/tui/components/Header.js +1 -1
  88. package/dist/tui/components/Header.js.map +1 -1
  89. package/dist/tui/components/LogPanel.d.ts +1 -1
  90. package/dist/tui/components/LogPanel.d.ts.map +1 -1
  91. package/dist/tui/components/LogPanel.js +26 -24
  92. package/dist/tui/components/LogPanel.js.map +1 -1
  93. package/dist/tui/components/TabBar.d.ts +2 -2
  94. package/dist/tui/components/TabBar.d.ts.map +1 -1
  95. package/dist/tui/components/TabBar.js +11 -11
  96. package/dist/tui/components/TabBar.js.map +1 -1
  97. package/dist/tui/components/WelcomeScreen.d.ts.map +1 -1
  98. package/dist/tui/components/WelcomeScreen.js +6 -6
  99. package/dist/tui/components/WelcomeScreen.js.map +1 -1
  100. package/dist/tui/index.d.ts.map +1 -1
  101. package/dist/tui/index.js +8 -8
  102. package/dist/tui/index.js.map +1 -1
  103. package/dist/tui/services/AIService.d.ts +2 -2
  104. package/dist/tui/services/AIService.d.ts.map +1 -1
  105. package/dist/tui/services/AIService.js +165 -125
  106. package/dist/tui/services/AIService.js.map +1 -1
  107. package/dist/tui/services/ExtensionService.d.ts +1 -1
  108. package/dist/tui/services/ExtensionService.d.ts.map +1 -1
  109. package/dist/tui/services/ExtensionService.js +33 -26
  110. package/dist/tui/services/ExtensionService.js.map +1 -1
  111. package/dist/tui/services/GeminiService.d.ts +1 -1
  112. package/dist/tui/services/GeminiService.d.ts.map +1 -1
  113. package/dist/tui/services/GeminiService.js +87 -76
  114. package/dist/tui/services/GeminiService.js.map +1 -1
  115. package/dist/tui/services/ServiceManager.d.ts +3 -3
  116. package/dist/tui/services/ServiceManager.d.ts.map +1 -1
  117. package/dist/tui/services/ServiceManager.js +72 -58
  118. package/dist/tui/services/ServiceManager.js.map +1 -1
  119. package/dist/tui/services/SocketService.d.ts.map +1 -1
  120. package/dist/tui/services/SocketService.js +32 -32
  121. package/dist/tui/services/SocketService.js.map +1 -1
  122. package/dist/tui/services/ViteService.d.ts.map +1 -1
  123. package/dist/tui/services/ViteService.js +26 -28
  124. package/dist/tui/services/ViteService.js.map +1 -1
  125. package/dist/tui/services/index.d.ts +6 -6
  126. package/dist/tui/services/index.d.ts.map +1 -1
  127. package/dist/tui/services/index.js +6 -6
  128. package/dist/tui/services/index.js.map +1 -1
  129. package/mcp/gxp-api-server.js +83 -81
  130. package/package.json +109 -93
  131. package/runtime/PortalContainer.vue +258 -234
  132. package/runtime/dev-tools/DevToolsModal.vue +153 -155
  133. package/runtime/dev-tools/LayoutSwitcher.vue +144 -140
  134. package/runtime/dev-tools/MockDataEditor.vue +456 -433
  135. package/runtime/dev-tools/SocketSimulator.vue +379 -371
  136. package/runtime/dev-tools/StoreInspector.vue +517 -455
  137. package/runtime/dev-tools/index.js +5 -5
  138. package/runtime/fallback-layouts/PrivateLayout.vue +2 -2
  139. package/runtime/fallback-layouts/PublicLayout.vue +2 -2
  140. package/runtime/fallback-layouts/SystemLayout.vue +2 -2
  141. package/runtime/gxpStringsPlugin.js +159 -134
  142. package/runtime/index.html +17 -19
  143. package/runtime/main.js +24 -22
  144. package/runtime/mock-api/auth-middleware.js +15 -15
  145. package/runtime/mock-api/image-generator.js +46 -46
  146. package/runtime/mock-api/index.js +55 -55
  147. package/runtime/mock-api/response-generator.js +116 -105
  148. package/runtime/mock-api/route-generator.js +107 -84
  149. package/runtime/mock-api/socket-triggers.js +94 -93
  150. package/runtime/mock-api/spec-loader.js +79 -80
  151. package/runtime/package.json +3 -0
  152. package/runtime/server.js +68 -68
  153. package/runtime/stores/gxpPortalConfigStore.js +204 -186
  154. package/runtime/stores/index.js +2 -2
  155. package/runtime/vite-inspector-plugin.js +858 -707
  156. package/runtime/vite-source-tracker-plugin.js +132 -113
  157. package/runtime/vite.config.js +207 -132
  158. package/scripts/launch-chrome.js +41 -41
  159. package/scripts/pack-chrome.js +38 -39
  160. package/socket-events/AiSessionMessageCreated.json +17 -17
  161. package/socket-events/SocialStreamPostCreated.json +23 -23
  162. package/socket-events/SocialStreamPostVariantCompleted.json +22 -22
  163. package/template/.claude/agents/gxp-developer.md +100 -99
  164. package/template/.claude/settings.json +7 -7
  165. package/template/AGENTS.md +30 -23
  166. package/template/GEMINI.md +20 -20
  167. package/template/README.md +70 -53
  168. package/template/app-manifest.json +2 -4
  169. package/template/configuration.json +10 -10
  170. package/template/default-styling.css +1 -1
  171. package/template/index.html +18 -20
  172. package/template/main.js +24 -22
  173. package/template/src/DemoPage.vue +415 -362
  174. package/template/src/Plugin.vue +76 -85
  175. package/template/src/stores/index.js +3 -3
  176. package/template/src/stores/test-data.json +164 -172
  177. package/template/theme-layouts/AdditionalStyling.css +50 -50
  178. package/template/theme-layouts/PrivateLayout.vue +8 -12
  179. package/template/theme-layouts/PublicLayout.vue +8 -12
  180. package/template/theme-layouts/SystemLayout.vue +8 -12
  181. package/template/vite.extend.js +45 -0
  182. package/template/vite.config.js +0 -409
@@ -1 +1 @@
1
- {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/AIService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AIService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/AIService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type BrowserType = 'chrome' | 'firefox';
1
+ export type BrowserType = "chrome" | "firefox";
2
2
  export interface ExtensionOptions {
3
3
  browser: BrowserType;
4
4
  cwd?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AA0DD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CA6E9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEhE"}
1
+ {"version":3,"file":"ExtensionService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE9C,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,WAAW,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CACtB;AA8DD,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAoF9D;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAEhE"}
@@ -1,20 +1,20 @@
1
- import { serviceManager } from './ServiceManager.js';
2
- import path from 'path';
3
- import fs from 'fs';
4
- import { fileURLToPath } from 'url';
1
+ import { serviceManager } from "./ServiceManager.js";
2
+ import path from "path";
3
+ import fs from "fs";
4
+ import { fileURLToPath } from "url";
5
5
  // Get the toolkit root directory
6
6
  function getToolkitRoot() {
7
7
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
8
  // Navigate from dist/tui/services to project root (3 levels up)
9
9
  // dist/tui/services -> dist/tui -> dist -> gx-devtools
10
- return path.resolve(__dirname, '..', '..', '..');
10
+ return path.resolve(__dirname, "..", "..", "..");
11
11
  }
12
12
  /**
13
13
  * Generate extension defaults based on environment variables
14
14
  * This creates a defaults.json file that the popup.js reads on load
15
15
  */
16
16
  function generateExtensionDefaults(extensionPath, useHttps, port) {
17
- const protocol = useHttps ? 'https' : 'http';
17
+ const protocol = useHttps ? "https" : "http";
18
18
  const baseUrl = `${protocol}://localhost:${port}`;
19
19
  const defaults = {
20
20
  // Extension should be enabled by default when launched from CLI
@@ -22,7 +22,7 @@ function generateExtensionDefaults(extensionPath, useHttps, port) {
22
22
  // JS redirect URL based on env
23
23
  jsRedirectUrl: `${baseUrl}/src/Plugin.vue`,
24
24
  // CSS redirect URL (empty by default, uses blank CSS)
25
- cssRedirectUrl: '',
25
+ cssRedirectUrl: "",
26
26
  // CSS override should be enabled by default
27
27
  cssRuleEnabled: true,
28
28
  // Return blank CSS by default
@@ -34,18 +34,18 @@ function generateExtensionDefaults(extensionPath, useHttps, port) {
34
34
  clearCacheOnEnable: true,
35
35
  disableCacheForRedirects: true,
36
36
  };
37
- const defaultsPath = path.join(extensionPath, 'defaults.json');
37
+ const defaultsPath = path.join(extensionPath, "defaults.json");
38
38
  fs.writeFileSync(defaultsPath, JSON.stringify(defaults, null, 2));
39
39
  }
40
40
  // Find the extension path (project-local or toolkit built-in)
41
41
  function findExtensionPath(browser, cwd) {
42
42
  // Check local project first
43
- const localPath = path.join(cwd, 'browser-extensions', browser);
43
+ const localPath = path.join(cwd, "browser-extensions", browser);
44
44
  if (fs.existsSync(localPath)) {
45
45
  return localPath;
46
46
  }
47
47
  // Fall back to toolkit's built-in extension
48
- const toolkitPath = path.join(getToolkitRoot(), 'browser-extensions', browser);
48
+ const toolkitPath = path.join(getToolkitRoot(), "browser-extensions", browser);
49
49
  if (fs.existsSync(toolkitPath)) {
50
50
  return toolkitPath;
51
51
  }
@@ -56,7 +56,7 @@ export function startExtension(options) {
56
56
  const cwd = options.cwd || process.cwd();
57
57
  const serviceId = `ext-${browser}`;
58
58
  // Compute the start URL based on options
59
- const protocol = useHttps ? 'https' : 'http';
59
+ const protocol = useHttps ? "https" : "http";
60
60
  const startUrl = `${protocol}://localhost:${port}`;
61
61
  // Check if already running
62
62
  if (serviceManager.isRunning(serviceId)) {
@@ -68,7 +68,7 @@ export function startExtension(options) {
68
68
  const errorState = serviceManager.start({
69
69
  id: serviceId,
70
70
  name: `${browser.charAt(0).toUpperCase() + browser.slice(1)} Extension`,
71
- command: 'echo',
71
+ command: "echo",
72
72
  args: [`Extension not found for ${browser}`],
73
73
  cwd,
74
74
  });
@@ -76,44 +76,51 @@ export function startExtension(options) {
76
76
  }
77
77
  // Generate defaults.json for the extension based on environment
78
78
  generateExtensionDefaults(extensionPath, useHttps, port);
79
- if (browser === 'firefox') {
79
+ if (browser === "firefox") {
80
80
  const config = {
81
81
  id: serviceId,
82
- name: 'Firefox Extension',
83
- command: 'npx',
84
- args: ['web-ext', 'run', '--source-dir', extensionPath, '--start-url', startUrl],
82
+ name: "Firefox Extension",
83
+ command: "npx",
84
+ args: [
85
+ "web-ext",
86
+ "run",
87
+ "--source-dir",
88
+ extensionPath,
89
+ "--start-url",
90
+ startUrl,
91
+ ],
85
92
  cwd,
86
93
  env: {
87
- FORCE_COLOR: '1',
94
+ FORCE_COLOR: "1",
88
95
  },
89
96
  };
90
97
  serviceManager.start(config);
91
98
  }
92
- else if (browser === 'chrome') {
99
+ else if (browser === "chrome") {
93
100
  // For Chrome, we need to use the launch script
94
101
  const toolkitRoot = getToolkitRoot();
95
- let scriptPath = path.join(cwd, 'scripts', 'launch-chrome.js');
102
+ let scriptPath = path.join(cwd, "scripts", "launch-chrome.js");
96
103
  if (!fs.existsSync(scriptPath)) {
97
- scriptPath = path.join(toolkitRoot, 'scripts', 'launch-chrome.js');
104
+ scriptPath = path.join(toolkitRoot, "scripts", "launch-chrome.js");
98
105
  }
99
106
  if (!fs.existsSync(scriptPath)) {
100
107
  const errorState = serviceManager.start({
101
108
  id: serviceId,
102
- name: 'Chrome Extension',
103
- command: 'echo',
104
- args: ['Chrome launcher script not found'],
109
+ name: "Chrome Extension",
110
+ command: "echo",
111
+ args: ["Chrome launcher script not found"],
105
112
  cwd,
106
113
  });
107
114
  return;
108
115
  }
109
116
  const config = {
110
117
  id: serviceId,
111
- name: 'Chrome Extension',
112
- command: 'node',
118
+ name: "Chrome Extension",
119
+ command: "node",
113
120
  args: [scriptPath],
114
121
  cwd,
115
122
  env: {
116
- FORCE_COLOR: '1',
123
+ FORCE_COLOR: "1",
117
124
  CHROME_EXTENSION_PATH: extensionPath,
118
125
  USE_HTTPS: String(useHttps),
119
126
  NODE_PORT: String(port),
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AACpE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAWpC,iCAAiC;AACjC,SAAS,cAAc;IACrB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/D,gEAAgE;IAChE,uDAAuD;IACvD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,SAAS,yBAAyB,CAAC,aAAqB,EAAE,QAAiB,EAAE,IAAqB;IAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,OAAO,GAAG,GAAG,QAAQ,gBAAgB,IAAI,EAAE,CAAC;IAElD,MAAM,QAAQ,GAAG;QACf,gEAAgE;QAChE,OAAO,EAAE,IAAI;QACb,+BAA+B;QAC/B,aAAa,EAAE,GAAG,OAAO,iBAAiB;QAC1C,sDAAsD;QACtD,cAAc,EAAE,EAAE;QAClB,4CAA4C;QAC5C,cAAc,EAAE,IAAI;QACpB,8BAA8B;QAC9B,cAAc,EAAE,IAAI;QACpB,oCAAoC;QACpC,kBAAkB,EAAE,IAAI;QACxB,mBAAmB,EAAE,IAAI;QACzB,iBAAiB;QACjB,kBAAkB,EAAE,IAAI;QACxB,wBAAwB,EAAE,IAAI;KAC/B,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAC/D,EAAE,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,8DAA8D;AAC9D,SAAS,iBAAiB,CAAC,OAAoB,EAAE,GAAW;IAC1D,4BAA4B;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,4CAA4C;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC/E,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAyB;IACtD,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,CAAC;IAEnC,yCAAyC;IACzC,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,QAAQ,gBAAgB,IAAI,EAAE,CAAC;IAEnD,2BAA2B;IAC3B,IAAI,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,2CAA2C;QAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;YACtC,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY;YACvE,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,2BAA2B,OAAO,EAAE,CAAC;YAC5C,GAAG;SACJ,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,gEAAgE;IAChE,yBAAyB,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC;YAChF,GAAG;YACH,GAAG,EAAE;gBACH,WAAW,EAAE,GAAG;aACjB;SACF,CAAC;QACF,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,+CAA+C;QAC/C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAE/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;gBACtC,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,kCAAkC,CAAC;gBAC1C,GAAG;aACJ,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAkB;YAC5B,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,MAAM;YACf,IAAI,EAAE,CAAC,UAAU,CAAC;YAClB,GAAG;YACH,GAAG,EAAE;gBACH,WAAW,EAAE,GAAG;gBAChB,qBAAqB,EAAE,aAAa;gBACpC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;gBAC3B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC;aACxB;SACF,CAAC;QACF,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAoB;IAChD,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACrD,OAAO,cAAc,CAAC,SAAS,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"ExtensionService.js","sourceRoot":"","sources":["../../../bin/lib/tui/services/ExtensionService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EventEmitter } from 'events';
1
+ import { EventEmitter } from "events";
2
2
  export interface GeminiConfig {
3
3
  systemPrompt?: string;
4
4
  includeDocs?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"GeminiService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/GeminiService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAGD,UAAU,UAAU;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAgCD,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAWlD;AAUD,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAGD,wBAAgB,gBAAgB,IAAI,YAAY,CAgB/C;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAI3D;AAGD,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAGD,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,mBAAmB,CAAgD;IAC3E,OAAO,CAAC,cAAc,CAAc;;IAO9B,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;YA+ExD,qBAAqB;YA8BrB,kBAAkB;YAiClB,cAAc;IAiB5B,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAoBrC,cAAc,IAAI,MAAM;IAqBlB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DnD,iBAAiB,IAAI,IAAI;IAKzB,sBAAsB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGnE;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"GeminiService.d.ts","sourceRoot":"","sources":["../../../bin/lib/tui/services/GeminiService.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAGrC,MAAM,WAAW,YAAY;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACzB;AAGD,UAAU,UAAU;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CACjB;AAgCD,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAWlD;AAUD,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAGD,wBAAgB,gBAAgB,IAAI,YAAY,CAgB/C;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAI3D;AAGD,wBAAgB,eAAe,IAAI,OAAO,CAKzC;AAGD,qBAAa,aAAc,SAAQ,YAAY;IAC9C,OAAO,CAAC,mBAAmB,CAA+C;IAC1E,OAAO,CAAC,cAAc,CAAa;;IAO7B,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;YAwGxD,qBAAqB;YA+BrB,kBAAkB;YAkClB,cAAc;IAiB5B,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAoBrC,cAAc,IAAI,MAAM;IAsBlB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6DnD,iBAAiB,IAAI,IAAI;IAKzB,sBAAsB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAGlE;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAA"}
@@ -1,12 +1,12 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import http from 'http';
4
- import open from 'open';
5
- import { EventEmitter } from 'events';
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import http from "http";
4
+ import open from "open";
5
+ import { EventEmitter } from "events";
6
6
  // Get the gxdev config directory
7
7
  function getConfigDir() {
8
- const home = process.env.HOME || process.env.USERPROFILE || '';
9
- return path.join(home, '.gxdev');
8
+ const home = process.env.HOME || process.env.USERPROFILE || "";
9
+ return path.join(home, ".gxdev");
10
10
  }
11
11
  // Ensure config directory exists
12
12
  function ensureConfigDir() {
@@ -17,22 +17,22 @@ function ensureConfigDir() {
17
17
  }
18
18
  // Get auth file path
19
19
  function getAuthFilePath() {
20
- return path.join(getConfigDir(), 'gemini-auth.json');
20
+ return path.join(getConfigDir(), "gemini-auth.json");
21
21
  }
22
22
  // Get config file path
23
23
  function getConfigFilePath() {
24
- return path.join(getConfigDir(), 'gemini-config.json');
24
+ return path.join(getConfigDir(), "gemini-config.json");
25
25
  }
26
26
  // Get docs directory path
27
27
  function getDocsDir() {
28
- return path.join(getConfigDir(), 'gemini-docs');
28
+ return path.join(getConfigDir(), "gemini-docs");
29
29
  }
30
30
  // Load saved auth tokens
31
31
  export function loadAuthTokens() {
32
32
  try {
33
33
  const authPath = getAuthFilePath();
34
34
  if (fs.existsSync(authPath)) {
35
- const content = fs.readFileSync(authPath, 'utf-8');
35
+ const content = fs.readFileSync(authPath, "utf-8");
36
36
  return JSON.parse(content);
37
37
  }
38
38
  }
@@ -59,7 +59,7 @@ export function loadGeminiConfig() {
59
59
  try {
60
60
  const configPath = getConfigFilePath();
61
61
  if (fs.existsSync(configPath)) {
62
- const content = fs.readFileSync(configPath, 'utf-8');
62
+ const content = fs.readFileSync(configPath, "utf-8");
63
63
  return JSON.parse(content);
64
64
  }
65
65
  }
@@ -67,7 +67,7 @@ export function loadGeminiConfig() {
67
67
  // Invalid or missing config file
68
68
  }
69
69
  return {
70
- systemPrompt: 'You are a helpful assistant for GxP plugin development.',
70
+ systemPrompt: "You are a helpful assistant for GxP plugin development.",
71
71
  includeDocs: [],
72
72
  projectContext: true,
73
73
  maxContextTokens: 4000,
@@ -92,7 +92,7 @@ export class GeminiService extends EventEmitter {
92
92
  constructor() {
93
93
  super();
94
94
  this.conversationHistory = [];
95
- this.projectContext = '';
95
+ this.projectContext = "";
96
96
  }
97
97
  // Start OAuth flow
98
98
  async startOAuthFlow() {
@@ -101,13 +101,13 @@ export class GeminiService extends EventEmitter {
101
101
  const PORT = 8234;
102
102
  let server;
103
103
  const handleCallback = (req, res) => {
104
- const url = new URL(req.url || '', `http://localhost:${PORT}`);
105
- if (url.pathname === '/callback') {
106
- const code = url.searchParams.get('code');
107
- const error = url.searchParams.get('error');
104
+ const url = new URL(req.url || "", `http://localhost:${PORT}`);
105
+ if (url.pathname === "/callback") {
106
+ const code = url.searchParams.get("code");
107
+ const error = url.searchParams.get("error");
108
108
  if (error) {
109
- res.writeHead(200, { 'Content-Type': 'text/html' });
110
- res.end('<html><body><h1>Authentication Failed</h1><p>You can close this window.</p></body></html>');
109
+ res.writeHead(200, { "Content-Type": "text/html" });
110
+ res.end("<html><body><h1>Authentication Failed</h1><p>You can close this window.</p></body></html>");
111
111
  server.close();
112
112
  resolve({ success: false, message: `OAuth error: ${error}` });
113
113
  return;
@@ -117,30 +117,36 @@ export class GeminiService extends EventEmitter {
117
117
  this.exchangeCodeForTokens(code)
118
118
  .then((tokens) => {
119
119
  saveAuthTokens(tokens);
120
- res.writeHead(200, { 'Content-Type': 'text/html' });
121
- res.end('<html><body><h1>Authentication Successful!</h1><p>You can close this window and return to gxdev.</p></body></html>');
120
+ res.writeHead(200, { "Content-Type": "text/html" });
121
+ res.end("<html><body><h1>Authentication Successful!</h1><p>You can close this window and return to gxdev.</p></body></html>");
122
122
  server.close();
123
- resolve({ success: true, message: 'Successfully authenticated with Google.' });
123
+ resolve({
124
+ success: true,
125
+ message: "Successfully authenticated with Google.",
126
+ });
124
127
  })
125
128
  .catch((err) => {
126
- res.writeHead(200, { 'Content-Type': 'text/html' });
127
- res.end('<html><body><h1>Authentication Failed</h1><p>Error exchanging code for tokens.</p></body></html>');
129
+ res.writeHead(200, { "Content-Type": "text/html" });
130
+ res.end("<html><body><h1>Authentication Failed</h1><p>Error exchanging code for tokens.</p></body></html>");
128
131
  server.close();
129
- resolve({ success: false, message: `Token exchange error: ${err.message}` });
132
+ resolve({
133
+ success: false,
134
+ message: `Token exchange error: ${err.message}`,
135
+ });
130
136
  });
131
137
  return;
132
138
  }
133
139
  }
134
140
  res.writeHead(404);
135
- res.end('Not found');
141
+ res.end("Not found");
136
142
  };
137
143
  server = http.createServer(handleCallback);
138
144
  server.listen(PORT, () => {
139
145
  // Construct OAuth URL
140
146
  // Note: These are placeholder values - you'll need to set up actual Google Cloud credentials
141
- const clientId = process.env.GOOGLE_CLIENT_ID || 'YOUR_CLIENT_ID';
147
+ const clientId = process.env.GOOGLE_CLIENT_ID || "YOUR_CLIENT_ID";
142
148
  const redirectUri = `http://localhost:${PORT}/callback`;
143
- const scope = 'https://www.googleapis.com/auth/generative-language';
149
+ const scope = "https://www.googleapis.com/auth/generative-language";
144
150
  const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?` +
145
151
  `client_id=${encodeURIComponent(clientId)}` +
146
152
  `&redirect_uri=${encodeURIComponent(redirectUri)}` +
@@ -148,78 +154,81 @@ export class GeminiService extends EventEmitter {
148
154
  `&scope=${encodeURIComponent(scope)}` +
149
155
  `&access_type=offline` +
150
156
  `&prompt=consent`;
151
- this.emit('log', `Opening browser for Google authentication...`);
152
- this.emit('log', `If browser doesn't open, visit: ${authUrl}`);
157
+ this.emit("log", `Opening browser for Google authentication...`);
158
+ this.emit("log", `If browser doesn't open, visit: ${authUrl}`);
153
159
  open(authUrl).catch(() => {
154
- this.emit('log', `Could not open browser automatically. Please visit the URL above.`);
160
+ this.emit("log", `Could not open browser automatically. Please visit the URL above.`);
155
161
  });
156
162
  });
157
163
  // Timeout after 5 minutes
158
164
  setTimeout(() => {
159
165
  server.close();
160
- resolve({ success: false, message: 'Authentication timed out. Please try again.' });
166
+ resolve({
167
+ success: false,
168
+ message: "Authentication timed out. Please try again.",
169
+ });
161
170
  }, 5 * 60 * 1000);
162
171
  });
163
172
  }
164
173
  // Exchange authorization code for tokens
165
174
  async exchangeCodeForTokens(code) {
166
- const clientId = process.env.GOOGLE_CLIENT_ID || 'YOUR_CLIENT_ID';
167
- const clientSecret = process.env.GOOGLE_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
168
- const redirectUri = 'http://localhost:8234/callback';
169
- const response = await fetch('https://oauth2.googleapis.com/token', {
170
- method: 'POST',
171
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
175
+ const clientId = process.env.GOOGLE_CLIENT_ID || "YOUR_CLIENT_ID";
176
+ const clientSecret = process.env.GOOGLE_CLIENT_SECRET || "YOUR_CLIENT_SECRET";
177
+ const redirectUri = "http://localhost:8234/callback";
178
+ const response = await fetch("https://oauth2.googleapis.com/token", {
179
+ method: "POST",
180
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
172
181
  body: new URLSearchParams({
173
182
  code,
174
183
  client_id: clientId,
175
184
  client_secret: clientSecret,
176
185
  redirect_uri: redirectUri,
177
- grant_type: 'authorization_code',
186
+ grant_type: "authorization_code",
178
187
  }),
179
188
  });
180
189
  if (!response.ok) {
181
190
  throw new Error(`Token exchange failed: ${response.statusText}`);
182
191
  }
183
- const data = await response.json();
192
+ const data = (await response.json());
184
193
  return {
185
194
  accessToken: data.access_token,
186
195
  refreshToken: data.refresh_token,
187
- expiresAt: Date.now() + (data.expires_in * 1000),
196
+ expiresAt: Date.now() + data.expires_in * 1000,
188
197
  };
189
198
  }
190
199
  // Refresh access token
191
200
  async refreshAccessToken() {
192
201
  const tokens = loadAuthTokens();
193
202
  if (!tokens?.refreshToken) {
194
- throw new Error('No refresh token available');
203
+ throw new Error("No refresh token available");
195
204
  }
196
- const clientId = process.env.GOOGLE_CLIENT_ID || 'YOUR_CLIENT_ID';
197
- const clientSecret = process.env.GOOGLE_CLIENT_SECRET || 'YOUR_CLIENT_SECRET';
198
- const response = await fetch('https://oauth2.googleapis.com/token', {
199
- method: 'POST',
200
- headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
205
+ const clientId = process.env.GOOGLE_CLIENT_ID || "YOUR_CLIENT_ID";
206
+ const clientSecret = process.env.GOOGLE_CLIENT_SECRET || "YOUR_CLIENT_SECRET";
207
+ const response = await fetch("https://oauth2.googleapis.com/token", {
208
+ method: "POST",
209
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
201
210
  body: new URLSearchParams({
202
211
  refresh_token: tokens.refreshToken,
203
212
  client_id: clientId,
204
213
  client_secret: clientSecret,
205
- grant_type: 'refresh_token',
214
+ grant_type: "refresh_token",
206
215
  }),
207
216
  });
208
217
  if (!response.ok) {
209
- throw new Error('Failed to refresh token');
218
+ throw new Error("Failed to refresh token");
210
219
  }
211
- const data = await response.json();
220
+ const data = (await response.json());
212
221
  saveAuthTokens({
213
222
  accessToken: data.access_token,
214
223
  refreshToken: tokens.refreshToken,
215
- expiresAt: Date.now() + (data.expires_in * 1000),
224
+ expiresAt: Date.now() + data.expires_in * 1000,
216
225
  });
217
226
  }
218
227
  // Get valid access token (refresh if needed)
219
228
  async getAccessToken() {
220
229
  const tokens = loadAuthTokens();
221
230
  if (!tokens) {
222
- throw new Error('Not authenticated. Run /gemini enable first.');
231
+ throw new Error("Not authenticated. Run /gemini enable first.");
223
232
  }
224
233
  // Check if token needs refresh (with 5 min buffer)
225
234
  if (tokens.expiresAt < Date.now() + 5 * 60 * 1000) {
@@ -231,13 +240,13 @@ export class GeminiService extends EventEmitter {
231
240
  }
232
241
  // Load project context
233
242
  loadProjectContext(cwd) {
234
- const files = ['CLAUDE.md', 'README.md', 'package.json'];
243
+ const files = ["CLAUDE.md", "README.md", "package.json"];
235
244
  const contextParts = [];
236
245
  for (const file of files) {
237
246
  const filePath = path.join(cwd, file);
238
247
  if (fs.existsSync(filePath)) {
239
248
  try {
240
- const content = fs.readFileSync(filePath, 'utf-8');
249
+ const content = fs.readFileSync(filePath, "utf-8");
241
250
  contextParts.push(`=== ${file} ===\n${content.slice(0, 2000)}`);
242
251
  }
243
252
  catch {
@@ -245,61 +254,62 @@ export class GeminiService extends EventEmitter {
245
254
  }
246
255
  }
247
256
  }
248
- this.projectContext = contextParts.join('\n\n');
257
+ this.projectContext = contextParts.join("\n\n");
249
258
  }
250
259
  // Load custom docs
251
260
  loadCustomDocs() {
252
261
  const docsDir = getDocsDir();
253
262
  if (!fs.existsSync(docsDir)) {
254
- return '';
263
+ return "";
255
264
  }
256
265
  const docParts = [];
257
266
  try {
258
- const files = fs.readdirSync(docsDir).filter(f => f.endsWith('.md'));
259
- for (const file of files.slice(0, 5)) { // Limit to 5 docs
260
- const content = fs.readFileSync(path.join(docsDir, file), 'utf-8');
267
+ const files = fs.readdirSync(docsDir).filter((f) => f.endsWith(".md"));
268
+ for (const file of files.slice(0, 5)) {
269
+ // Limit to 5 docs
270
+ const content = fs.readFileSync(path.join(docsDir, file), "utf-8");
261
271
  docParts.push(`=== ${file} ===\n${content.slice(0, 2000)}`);
262
272
  }
263
273
  }
264
274
  catch {
265
275
  // Skip on error
266
276
  }
267
- return docParts.join('\n\n');
277
+ return docParts.join("\n\n");
268
278
  }
269
279
  // Send message to Gemini
270
280
  async sendMessage(message) {
271
281
  const config = loadGeminiConfig();
272
282
  const accessToken = await this.getAccessToken();
273
283
  // Build context
274
- let systemContext = config.systemPrompt || '';
284
+ let systemContext = config.systemPrompt || "";
275
285
  if (config.projectContext && this.projectContext) {
276
- systemContext += '\n\nProject Context:\n' + this.projectContext;
286
+ systemContext += "\n\nProject Context:\n" + this.projectContext;
277
287
  }
278
288
  const customDocs = this.loadCustomDocs();
279
289
  if (customDocs) {
280
- systemContext += '\n\nDocumentation:\n' + customDocs;
290
+ systemContext += "\n\nDocumentation:\n" + customDocs;
281
291
  }
282
292
  // Add to conversation history
283
- this.conversationHistory.push({ role: 'user', content: message });
293
+ this.conversationHistory.push({ role: "user", content: message });
284
294
  // Prepare request body for Gemini API
285
295
  const requestBody = {
286
296
  contents: [
287
297
  {
288
- role: 'user',
289
- parts: [{ text: systemContext + '\n\nUser: ' + message }]
290
- }
298
+ role: "user",
299
+ parts: [{ text: systemContext + "\n\nUser: " + message }],
300
+ },
291
301
  ],
292
302
  generationConfig: {
293
303
  maxOutputTokens: 2048,
294
304
  temperature: 0.7,
295
- }
305
+ },
296
306
  };
297
307
  // Call Gemini API
298
- const response = await fetch('https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent', {
299
- method: 'POST',
308
+ const response = await fetch("https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent", {
309
+ method: "POST",
300
310
  headers: {
301
- 'Authorization': `Bearer ${accessToken}`,
302
- 'Content-Type': 'application/json',
311
+ Authorization: `Bearer ${accessToken}`,
312
+ "Content-Type": "application/json",
303
313
  },
304
314
  body: JSON.stringify(requestBody),
305
315
  });
@@ -307,10 +317,11 @@ export class GeminiService extends EventEmitter {
307
317
  const errorText = await response.text();
308
318
  throw new Error(`Gemini API error: ${response.status} - ${errorText}`);
309
319
  }
310
- const data = await response.json();
311
- const responseText = data.candidates?.[0]?.content?.parts?.[0]?.text || 'No response generated.';
320
+ const data = (await response.json());
321
+ const responseText = data.candidates?.[0]?.content?.parts?.[0]?.text ||
322
+ "No response generated.";
312
323
  // Add to conversation history
313
- this.conversationHistory.push({ role: 'assistant', content: responseText });
324
+ this.conversationHistory.push({ role: "assistant", content: responseText });
314
325
  return responseText;
315
326
  }
316
327
  // Clear conversation history