@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,113 +1,161 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html>
3
- <head>
4
- <title>Debug HTTPS Traffic Interception</title>
5
- <style>
6
- body { font-family: Arial, sans-serif; padding: 20px; }
7
- .test-section { margin: 20px 0; padding: 15px; border: 1px solid #ccc; }
8
- .log { background: #f5f5f5; padding: 10px; margin: 10px 0; }
9
- button { padding: 10px 15px; margin: 5px; }
10
- </style>
11
- </head>
12
- <body>
13
- <h1>Debug HTTPS Traffic Interception</h1>
14
-
15
- <div class="test-section">
16
- <h3>Step 1: Extension Status Check</h3>
17
- <button onclick="checkExtension()">Check Extension</button>
18
- <div id="extensionStatus" class="log"></div>
19
- </div>
20
-
21
- <div class="test-section">
22
- <h3>Step 2: Test Different Request Types</h3>
23
- <button onclick="testFetch()">Test Fetch</button>
24
- <button onclick="testXHR()">Test XHR</button>
25
- <button onclick="testDynamicImport()">Test Dynamic Import</button>
26
- <button onclick="testImageLoad()">Test Image Load</button>
27
- <div id="requestResults" class="log"></div>
28
- </div>
29
-
30
- <div class="test-section">
31
- <h3>Step 3: Console Logs</h3>
32
- <p>Open DevTools Console to see detailed logs from:</p>
33
- <ul>
34
- <li><strong>Background Script:</strong> Look for "[Traffic Proxy]" messages</li>
35
- <li><strong>Content Script:</strong> Look for "[Traffic Proxy Content]" messages</li>
36
- </ul>
37
- <p><strong>Expected test domains:</strong> httpbin.org, api.github.com, cdn.jsdelivr.net</p>
38
- </div>
3
+ <head>
4
+ <title>Debug HTTPS Traffic Interception</title>
5
+ <style>
6
+ body {
7
+ font-family: Arial, sans-serif;
8
+ padding: 20px;
9
+ }
10
+ .test-section {
11
+ margin: 20px 0;
12
+ padding: 15px;
13
+ border: 1px solid #ccc;
14
+ }
15
+ .log {
16
+ background: #f5f5f5;
17
+ padding: 10px;
18
+ margin: 10px 0;
19
+ }
20
+ button {
21
+ padding: 10px 15px;
22
+ margin: 5px;
23
+ }
24
+ </style>
25
+ </head>
26
+ <body>
27
+ <h1>Debug HTTPS Traffic Interception</h1>
39
28
 
40
- <script>
41
- function log(elementId, message) {
42
- const element = document.getElementById(elementId);
43
- const timestamp = new Date().toLocaleTimeString();
44
- element.innerHTML += `<div>${timestamp}: ${message}</div>`;
45
- }
29
+ <div class="test-section">
30
+ <h3>Step 1: Extension Status Check</h3>
31
+ <button onclick="checkExtension()">Check Extension</button>
32
+ <div id="extensionStatus" class="log"></div>
33
+ </div>
46
34
 
47
- async function checkExtension() {
48
- const status = document.getElementById('extensionStatus');
49
- status.innerHTML = '';
50
-
51
- log('extensionStatus', '🔍 Checking extension status...');
52
-
53
- // Check if browser API is available
54
- if (typeof browser === 'undefined') {
55
- log('extensionStatus', '❌ Browser API not available - extension not loaded properly');
56
- return;
57
- }
58
-
59
- try {
60
- // Try to communicate with background script
61
- const response = await browser.runtime.sendMessage({ action: 'getState' });
62
- log('extensionStatus', `✅ Extension responding: Enabled=${response.enabled}, Rules=${response.rules.length}`);
63
-
64
- if (response.rules.length === 0) {
65
- log('extensionStatus', '⚠️ No proxy rules configured. Add some rules to test interception.');
66
- }
67
- } catch (error) {
68
- log('extensionStatus', `❌ Failed to communicate with extension: ${error.message}`);
69
- }
70
- }
35
+ <div class="test-section">
36
+ <h3>Step 2: Test Different Request Types</h3>
37
+ <button onclick="testFetch()">Test Fetch</button>
38
+ <button onclick="testXHR()">Test XHR</button>
39
+ <button onclick="testDynamicImport()">Test Dynamic Import</button>
40
+ <button onclick="testImageLoad()">Test Image Load</button>
41
+ <div id="requestResults" class="log"></div>
42
+ </div>
71
43
 
72
- async function testFetch() {
73
- log('requestResults', '🧪 Testing fetch to httpbin.org...');
74
- try {
75
- const response = await fetch('https://httpbin.org/get?test=fetch');
76
- log('requestResults', `✅ Fetch successful: ${response.status} ${response.statusText}`);
77
- } catch (error) {
78
- log('requestResults', `❌ Fetch failed: ${error.message}`);
79
- }
80
- }
44
+ <div class="test-section">
45
+ <h3>Step 3: Console Logs</h3>
46
+ <p>Open DevTools Console to see detailed logs from:</p>
47
+ <ul>
48
+ <li>
49
+ <strong>Background Script:</strong> Look for "[Traffic Proxy]"
50
+ messages
51
+ </li>
52
+ <li>
53
+ <strong>Content Script:</strong> Look for "[Traffic Proxy Content]"
54
+ messages
55
+ </li>
56
+ </ul>
57
+ <p>
58
+ <strong>Expected test domains:</strong> httpbin.org, api.github.com,
59
+ cdn.jsdelivr.net
60
+ </p>
61
+ </div>
81
62
 
82
- async function testXHR() {
83
- log('requestResults', '🧪 Testing XHR to api.github.com...');
84
- const xhr = new XMLHttpRequest();
85
- xhr.onload = () => log('requestResults', `✅ XHR successful: ${xhr.status} ${xhr.statusText}`);
86
- xhr.onerror = () => log('requestResults', `❌ XHR failed`);
87
- xhr.open('GET', 'https://api.github.com/zen');
88
- xhr.send();
89
- }
63
+ <script>
64
+ function log(elementId, message) {
65
+ const element = document.getElementById(elementId)
66
+ const timestamp = new Date().toLocaleTimeString()
67
+ element.innerHTML += `<div>${timestamp}: ${message}</div>`
68
+ }
90
69
 
91
- async function testDynamicImport() {
92
- log('requestResults', '🧪 Testing dynamic import from cdn.jsdelivr.net...');
93
- try {
94
- const module = await import('https://cdn.jsdelivr.net/npm/lodash@4.17.21/isNull.js');
95
- log('requestResults', `✅ Dynamic import successful`);
96
- } catch (error) {
97
- log('requestResults', `❌ Dynamic import failed: ${error.message}`);
98
- }
99
- }
70
+ async function checkExtension() {
71
+ const status = document.getElementById("extensionStatus")
72
+ status.innerHTML = ""
100
73
 
101
- function testImageLoad() {
102
- log('requestResults', '🧪 Testing image load from httpbin.org...');
103
- const img = new Image();
104
- img.onload = () => log('requestResults', `✅ Image load successful`);
105
- img.onerror = () => log('requestResults', `❌ Image load failed`);
106
- img.src = 'https://httpbin.org/image/png';
107
- }
74
+ log("extensionStatus", "🔍 Checking extension status...")
108
75
 
109
- // Auto-run extension check on page load
110
- window.addEventListener('load', checkExtension);
111
- </script>
112
- </body>
113
- </html>
76
+ // Check if browser API is available
77
+ if (typeof browser === "undefined") {
78
+ log(
79
+ "extensionStatus",
80
+ "❌ Browser API not available - extension not loaded properly",
81
+ )
82
+ return
83
+ }
84
+
85
+ try {
86
+ // Try to communicate with background script
87
+ const response = await browser.runtime.sendMessage({
88
+ action: "getState",
89
+ })
90
+ log(
91
+ "extensionStatus",
92
+ `✅ Extension responding: Enabled=${response.enabled}, Rules=${response.rules.length}`,
93
+ )
94
+
95
+ if (response.rules.length === 0) {
96
+ log(
97
+ "extensionStatus",
98
+ "⚠️ No proxy rules configured. Add some rules to test interception.",
99
+ )
100
+ }
101
+ } catch (error) {
102
+ log(
103
+ "extensionStatus",
104
+ `❌ Failed to communicate with extension: ${error.message}`,
105
+ )
106
+ }
107
+ }
108
+
109
+ async function testFetch() {
110
+ log("requestResults", "🧪 Testing fetch to httpbin.org...")
111
+ try {
112
+ const response = await fetch("https://httpbin.org/get?test=fetch")
113
+ log(
114
+ "requestResults",
115
+ `✅ Fetch successful: ${response.status} ${response.statusText}`,
116
+ )
117
+ } catch (error) {
118
+ log("requestResults", `❌ Fetch failed: ${error.message}`)
119
+ }
120
+ }
121
+
122
+ async function testXHR() {
123
+ log("requestResults", "🧪 Testing XHR to api.github.com...")
124
+ const xhr = new XMLHttpRequest()
125
+ xhr.onload = () =>
126
+ log(
127
+ "requestResults",
128
+ `✅ XHR successful: ${xhr.status} ${xhr.statusText}`,
129
+ )
130
+ xhr.onerror = () => log("requestResults", `❌ XHR failed`)
131
+ xhr.open("GET", "https://api.github.com/zen")
132
+ xhr.send()
133
+ }
134
+
135
+ async function testDynamicImport() {
136
+ log(
137
+ "requestResults",
138
+ "🧪 Testing dynamic import from cdn.jsdelivr.net...",
139
+ )
140
+ try {
141
+ const module =
142
+ await import("https://cdn.jsdelivr.net/npm/lodash@4.17.21/isNull.js")
143
+ log("requestResults", `✅ Dynamic import successful`)
144
+ } catch (error) {
145
+ log("requestResults", `❌ Dynamic import failed: ${error.message}`)
146
+ }
147
+ }
148
+
149
+ function testImageLoad() {
150
+ log("requestResults", "🧪 Testing image load from httpbin.org...")
151
+ const img = new Image()
152
+ img.onload = () => log("requestResults", `✅ Image load successful`)
153
+ img.onerror = () => log("requestResults", `❌ Image load failed`)
154
+ img.src = "https://httpbin.org/image/png"
155
+ }
156
+
157
+ // Auto-run extension check on page load
158
+ window.addEventListener("load", checkExtension)
159
+ </script>
160
+ </body>
161
+ </html>
@@ -1,9 +1,9 @@
1
- <!DOCTYPE html>
1
+ <!doctype html>
2
2
  <html>
3
- <head>
4
- <meta charset="utf-8">
5
- </head>
6
- <body>
7
- <script src="devtools.js"></script>
8
- </body>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ </head>
6
+ <body>
7
+ <script src="devtools.js"></script>
8
+ </body>
9
9
  </html>
@@ -1,24 +1,27 @@
1
1
  // Create the GxP DevTools panel
2
2
  // Firefox uses the same API as Chrome for creating panels
3
- browser.devtools.panels.create(
4
- "GxP Inspector", // Panel title
5
- "icons/gx_on_32.png", // Icon path (32x32)
6
- "panel.html" // Panel HTML page
7
- ).then(function(panel) {
8
- // Panel created callback
9
- console.log("GxP Inspector panel created");
3
+ browser.devtools.panels
4
+ .create(
5
+ "GxP Inspector", // Panel title
6
+ "icons/gx_on_32.png", // Icon path (32x32)
7
+ "panel.html", // Panel HTML page
8
+ )
9
+ .then(function (panel) {
10
+ // Panel created callback
11
+ console.log("GxP Inspector panel created")
10
12
 
11
- // Optional: Handle panel show/hide events
12
- panel.onShown.addListener(function(panelWindow) {
13
- // Panel is now visible
14
- if (panelWindow.panelShown) {
15
- panelWindow.panelShown();
16
- }
17
- });
13
+ // Optional: Handle panel show/hide events
14
+ panel.onShown.addListener(function (panelWindow) {
15
+ // Panel is now visible
16
+ if (panelWindow.panelShown) {
17
+ panelWindow.panelShown()
18
+ }
19
+ })
18
20
 
19
- panel.onHidden.addListener(function() {
20
- // Panel is now hidden
21
- });
22
- }).catch(function(error) {
23
- console.error("Failed to create GxP Inspector panel:", error);
24
- });
21
+ panel.onHidden.addListener(function () {
22
+ // Panel is now hidden
23
+ })
24
+ })
25
+ .catch(function (error) {
26
+ console.error("Failed to create GxP Inspector panel:", error)
27
+ })