vibecodingmachine-core 2026.3.9-907 → 2026.3.10-1548

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 (42) hide show
  1. package/package.json +1 -1
  2. package/src/auth/access-denied.html +119 -119
  3. package/src/auth/shared-auth-storage.js +267 -267
  4. package/src/autonomous-mode/feature-implementer.cjs +70 -70
  5. package/src/autonomous-mode/feature-implementer.js +425 -425
  6. package/src/beta-request.js +160 -160
  7. package/src/chat-management/chat-manager.cjs +71 -71
  8. package/src/chat-management/chat-manager.js +342 -342
  9. package/src/compliance/compliance-prompt.js +183 -183
  10. package/src/ide-integration/aider-cli-manager.cjs +850 -850
  11. package/src/ide-integration/applescript-manager.cjs +3215 -3215
  12. package/src/ide-integration/applescript-utils.js +314 -314
  13. package/src/ide-integration/cdp-manager.cjs +221 -221
  14. package/src/ide-integration/claude-code-cli-manager.cjs +456 -456
  15. package/src/ide-integration/cline-cli-manager.cjs +2252 -2252
  16. package/src/ide-integration/continue-cli-manager.js +431 -431
  17. package/src/ide-integration/provider-manager.cjs +595 -595
  18. package/src/ide-integration/quota-detector.cjs +399 -399
  19. package/src/ide-integration/windows-automation-manager.js +532 -4
  20. package/src/ide-integration/windows-ide-manager.js +12 -3
  21. package/src/index.cjs +142 -142
  22. package/src/llm/direct-llm-manager.cjs +1299 -1299
  23. package/src/localization/index.js +147 -147
  24. package/src/quota-management/index.js +108 -108
  25. package/src/requirement-numbering.js +164 -164
  26. package/src/sync/aws-setup.js +445 -445
  27. package/src/ui/ButtonComponents.js +247 -247
  28. package/src/ui/ChatInterface.js +499 -499
  29. package/src/ui/StateManager.js +259 -259
  30. package/src/utils/audit-logger.cjs +116 -116
  31. package/src/utils/config-helpers.cjs +94 -94
  32. package/src/utils/config-helpers.js +94 -94
  33. package/src/utils/env-helpers.js +54 -54
  34. package/src/utils/error-reporter.js +117 -117
  35. package/src/utils/gcloud-auth.cjs +394 -394
  36. package/src/utils/git-branch-manager.js +278 -278
  37. package/src/utils/logger.cjs +193 -193
  38. package/src/utils/logger.js +191 -191
  39. package/src/utils/repo-helpers.cjs +120 -120
  40. package/src/utils/repo-helpers.js +120 -120
  41. package/src/utils/update-checker.js +246 -246
  42. package/src/utils/version-checker.js +170 -170
@@ -1,170 +1,170 @@
1
- /**
2
- * Version Checker - Check for updates and manage version display
3
- */
4
-
5
- const fetch = require('node-fetch');
6
- const fs = require('fs');
7
- const path = require('path');
8
- const os = require('os');
9
-
10
- const CACHE_FILE = path.join(os.tmpdir(), 'vibecodingmachine-version-cache.json');
11
- const CACHE_DURATION = 1000 * 60 * 60; // 1 hour
12
- const VERSION_URL = 'https://vibecodingmachine-website.s3.amazonaws.com/downloads/version.json';
13
-
14
- /**
15
- * Format version timestamp to YYYY.MM.DD-HHMM UTC
16
- */
17
- function formatVersionTimestamp(versionString) {
18
- // Version format: YYYY.MM.DD-HHMM (or old format YYYY.MM.DD.HHMM for backward compat)
19
- const match = versionString.match(/^(\d{4})\.(\d{2})\.(\d{2})[-.](\d{2})(\d{2})$/);
20
- if (!match) return versionString;
21
-
22
- const [, year, month, day, hour, minute] = match;
23
- // Normalize to new format for display
24
- return `${year}.${month}.${day}-${hour}${minute} UTC`;
25
- }
26
-
27
- /**
28
- * Get formatted local time from UTC timestamp
29
- */
30
- function formatLocalTime(isoTimestamp) {
31
- try {
32
- const date = new Date(isoTimestamp);
33
- const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
34
- const timeZoneAbbr = new Intl.DateTimeFormat('en-US', {
35
- timeZone,
36
- timeZoneName: 'short'
37
- }).format(date).split(' ').pop();
38
-
39
- const formatted = new Intl.DateTimeFormat('en-US', {
40
- year: 'numeric',
41
- month: '2-digit',
42
- day: '2-digit',
43
- hour: '2-digit',
44
- minute: '2-digit',
45
- hour12: false
46
- }).format(date);
47
-
48
- // Convert to YYYY.MM.DD-HHMM format
49
- const parts = formatted.match(/(\d{2})\/(\d{2})\/(\d{4}), (\d{2}):(\d{2})/);
50
- if (parts) {
51
- const [, month, day, year, hour, minute] = parts;
52
- return `${year}.${month}.${day}.${hour}${minute} ${timeZoneAbbr}`;
53
- }
54
-
55
- return formatted + ' ' + timeZoneAbbr;
56
- } catch (error) {
57
- return isoTimestamp;
58
- }
59
- }
60
-
61
- /**
62
- * Check for updates with caching
63
- */
64
- async function checkForUpdatesWithCache(packageName, currentVersion) {
65
- try {
66
- // Check cache first
67
- if (fs.existsSync(CACHE_FILE)) {
68
- const cache = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf8'));
69
- if (cache.timestamp && Date.now() - cache.timestamp < CACHE_DURATION) {
70
- return {
71
- ...cache.data,
72
- fromCache: true
73
- };
74
- }
75
- }
76
-
77
- // Fetch latest version info
78
- const response = await fetch(VERSION_URL);
79
- if (!response.ok) {
80
- return { hasUpdate: false, currentVersion };
81
- }
82
-
83
- const versionInfo = await response.json();
84
- const latestVersion = versionInfo.version;
85
-
86
- const result = {
87
- hasUpdate: latestVersion !== currentVersion,
88
- currentVersion,
89
- latestVersion,
90
- publishedDate: versionInfo.date ? formatLocalTime(versionInfo.date) : 'Unknown',
91
- commit: versionInfo.commit || 'Unknown',
92
- downloadUrl: getDownloadUrl()
93
- };
94
-
95
- // Cache result
96
- fs.writeFileSync(CACHE_FILE, JSON.stringify({
97
- timestamp: Date.now(),
98
- data: result
99
- }));
100
-
101
- return result;
102
- } catch (error) {
103
- return {
104
- hasUpdate: false,
105
- currentVersion,
106
- error: error.message
107
- };
108
- }
109
- }
110
-
111
- /**
112
- * Get download URL for current platform
113
- */
114
- function getDownloadUrl() {
115
- const platform = os.platform();
116
- const baseUrl = 'https://vibecodingmachine-website.s3.amazonaws.com/downloads';
117
-
118
- if (platform === 'darwin') {
119
- return `${baseUrl}/VibeCodingMachine.dmg`;
120
- } else if (platform === 'win32') {
121
- return `${baseUrl}/VibeCodingMachine-win32-x64.zip`;
122
- }
123
-
124
- return baseUrl;
125
- }
126
-
127
- /**
128
- * Get current Electron app version
129
- */
130
- async function getCurrentElectronVersion() {
131
- try {
132
- const response = await fetch(VERSION_URL);
133
- if (!response.ok) {
134
- return null;
135
- }
136
-
137
- const versionInfo = await response.json();
138
- return {
139
- version: versionInfo.version,
140
- date: versionInfo.date,
141
- commit: versionInfo.commit,
142
- formatted: formatVersionTimestamp(versionInfo.version)
143
- };
144
- } catch (error) {
145
- return null;
146
- }
147
- }
148
-
149
- /**
150
- * Clear version cache
151
- */
152
- function clearVersionCache() {
153
- try {
154
- if (fs.existsSync(CACHE_FILE)) {
155
- fs.unlinkSync(CACHE_FILE);
156
- }
157
- return true;
158
- } catch (error) {
159
- return false;
160
- }
161
- }
162
-
163
- module.exports = {
164
- checkForUpdatesWithCache,
165
- getCurrentElectronVersion,
166
- formatVersionTimestamp,
167
- formatLocalTime,
168
- getDownloadUrl,
169
- clearVersionCache
170
- };
1
+ /**
2
+ * Version Checker - Check for updates and manage version display
3
+ */
4
+
5
+ const fetch = require('node-fetch');
6
+ const fs = require('fs');
7
+ const path = require('path');
8
+ const os = require('os');
9
+
10
+ const CACHE_FILE = path.join(os.tmpdir(), 'vibecodingmachine-version-cache.json');
11
+ const CACHE_DURATION = 1000 * 60 * 60; // 1 hour
12
+ const VERSION_URL = 'https://vibecodingmachine-website.s3.amazonaws.com/downloads/version.json';
13
+
14
+ /**
15
+ * Format version timestamp to YYYY.MM.DD-HHMM UTC
16
+ */
17
+ function formatVersionTimestamp(versionString) {
18
+ // Version format: YYYY.MM.DD-HHMM (or old format YYYY.MM.DD.HHMM for backward compat)
19
+ const match = versionString.match(/^(\d{4})\.(\d{2})\.(\d{2})[-.](\d{2})(\d{2})$/);
20
+ if (!match) return versionString;
21
+
22
+ const [, year, month, day, hour, minute] = match;
23
+ // Normalize to new format for display
24
+ return `${year}.${month}.${day}-${hour}${minute} UTC`;
25
+ }
26
+
27
+ /**
28
+ * Get formatted local time from UTC timestamp
29
+ */
30
+ function formatLocalTime(isoTimestamp) {
31
+ try {
32
+ const date = new Date(isoTimestamp);
33
+ const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
34
+ const timeZoneAbbr = new Intl.DateTimeFormat('en-US', {
35
+ timeZone,
36
+ timeZoneName: 'short'
37
+ }).format(date).split(' ').pop();
38
+
39
+ const formatted = new Intl.DateTimeFormat('en-US', {
40
+ year: 'numeric',
41
+ month: '2-digit',
42
+ day: '2-digit',
43
+ hour: '2-digit',
44
+ minute: '2-digit',
45
+ hour12: false
46
+ }).format(date);
47
+
48
+ // Convert to YYYY.MM.DD-HHMM format
49
+ const parts = formatted.match(/(\d{2})\/(\d{2})\/(\d{4}), (\d{2}):(\d{2})/);
50
+ if (parts) {
51
+ const [, month, day, year, hour, minute] = parts;
52
+ return `${year}.${month}.${day}.${hour}${minute} ${timeZoneAbbr}`;
53
+ }
54
+
55
+ return formatted + ' ' + timeZoneAbbr;
56
+ } catch (error) {
57
+ return isoTimestamp;
58
+ }
59
+ }
60
+
61
+ /**
62
+ * Check for updates with caching
63
+ */
64
+ async function checkForUpdatesWithCache(packageName, currentVersion) {
65
+ try {
66
+ // Check cache first
67
+ if (fs.existsSync(CACHE_FILE)) {
68
+ const cache = JSON.parse(fs.readFileSync(CACHE_FILE, 'utf8'));
69
+ if (cache.timestamp && Date.now() - cache.timestamp < CACHE_DURATION) {
70
+ return {
71
+ ...cache.data,
72
+ fromCache: true
73
+ };
74
+ }
75
+ }
76
+
77
+ // Fetch latest version info
78
+ const response = await fetch(VERSION_URL);
79
+ if (!response.ok) {
80
+ return { hasUpdate: false, currentVersion };
81
+ }
82
+
83
+ const versionInfo = await response.json();
84
+ const latestVersion = versionInfo.version;
85
+
86
+ const result = {
87
+ hasUpdate: latestVersion !== currentVersion,
88
+ currentVersion,
89
+ latestVersion,
90
+ publishedDate: versionInfo.date ? formatLocalTime(versionInfo.date) : 'Unknown',
91
+ commit: versionInfo.commit || 'Unknown',
92
+ downloadUrl: getDownloadUrl()
93
+ };
94
+
95
+ // Cache result
96
+ fs.writeFileSync(CACHE_FILE, JSON.stringify({
97
+ timestamp: Date.now(),
98
+ data: result
99
+ }));
100
+
101
+ return result;
102
+ } catch (error) {
103
+ return {
104
+ hasUpdate: false,
105
+ currentVersion,
106
+ error: error.message
107
+ };
108
+ }
109
+ }
110
+
111
+ /**
112
+ * Get download URL for current platform
113
+ */
114
+ function getDownloadUrl() {
115
+ const platform = os.platform();
116
+ const baseUrl = 'https://vibecodingmachine-website.s3.amazonaws.com/downloads';
117
+
118
+ if (platform === 'darwin') {
119
+ return `${baseUrl}/VibeCodingMachine.dmg`;
120
+ } else if (platform === 'win32') {
121
+ return `${baseUrl}/VibeCodingMachine-win32-x64.zip`;
122
+ }
123
+
124
+ return baseUrl;
125
+ }
126
+
127
+ /**
128
+ * Get current Electron app version
129
+ */
130
+ async function getCurrentElectronVersion() {
131
+ try {
132
+ const response = await fetch(VERSION_URL);
133
+ if (!response.ok) {
134
+ return null;
135
+ }
136
+
137
+ const versionInfo = await response.json();
138
+ return {
139
+ version: versionInfo.version,
140
+ date: versionInfo.date,
141
+ commit: versionInfo.commit,
142
+ formatted: formatVersionTimestamp(versionInfo.version)
143
+ };
144
+ } catch (error) {
145
+ return null;
146
+ }
147
+ }
148
+
149
+ /**
150
+ * Clear version cache
151
+ */
152
+ function clearVersionCache() {
153
+ try {
154
+ if (fs.existsSync(CACHE_FILE)) {
155
+ fs.unlinkSync(CACHE_FILE);
156
+ }
157
+ return true;
158
+ } catch (error) {
159
+ return false;
160
+ }
161
+ }
162
+
163
+ module.exports = {
164
+ checkForUpdatesWithCache,
165
+ getCurrentElectronVersion,
166
+ formatVersionTimestamp,
167
+ formatLocalTime,
168
+ getDownloadUrl,
169
+ clearVersionCache
170
+ };