@stackmemoryai/stackmemory 0.2.3 → 0.2.6
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.
- package/README.md +108 -0
- package/dist/index.js +382 -0
- package/dist/src/analytics/api/analytics-api.d.ts +24 -0
- package/dist/src/analytics/api/analytics-api.d.ts.map +1 -0
- package/dist/src/analytics/api/analytics-api.js +279 -0
- package/dist/src/analytics/api/analytics-api.js.map +1 -0
- package/dist/src/analytics/core/analytics-service.d.ts +23 -0
- package/dist/src/analytics/core/analytics-service.d.ts.map +1 -0
- package/dist/src/analytics/core/analytics-service.js +160 -0
- package/dist/src/analytics/core/analytics-service.js.map +1 -0
- package/dist/src/analytics/index.d.ts +12 -0
- package/dist/src/analytics/index.d.ts.map +1 -0
- package/dist/src/analytics/index.js +11 -0
- package/dist/src/analytics/index.js.map +1 -0
- package/dist/src/analytics/queries/metrics-queries.d.ts +11 -0
- package/dist/src/analytics/queries/metrics-queries.d.ts.map +1 -0
- package/dist/src/analytics/queries/metrics-queries.js +179 -0
- package/dist/src/analytics/queries/metrics-queries.js.map +1 -0
- package/dist/src/analytics/types/metrics.d.ts +60 -0
- package/dist/src/analytics/types/metrics.d.ts.map +1 -0
- package/dist/src/analytics/types/metrics.js +2 -0
- package/dist/src/analytics/types/metrics.js.map +1 -0
- package/dist/src/cli/analytics-viewer.d.ts +3 -0
- package/dist/src/cli/analytics-viewer.d.ts.map +1 -0
- package/dist/src/cli/analytics-viewer.js +89 -0
- package/dist/src/cli/analytics-viewer.js.map +1 -0
- package/dist/src/cli/browser-test.d.ts +6 -0
- package/dist/src/cli/browser-test.d.ts.map +1 -0
- package/dist/src/cli/browser-test.js +32 -0
- package/dist/src/cli/browser-test.js.map +1 -0
- package/dist/src/cli/cli.js +233 -1
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/commands/projects.d.ts +8 -0
- package/dist/src/cli/commands/projects.d.ts.map +1 -0
- package/dist/src/cli/commands/projects.js +220 -0
- package/dist/src/cli/commands/projects.js.map +1 -0
- package/dist/src/cli/index.d.ts +7 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +704 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/project-commands.d.ts +8 -0
- package/dist/src/cli/project-commands.d.ts.map +1 -0
- package/dist/src/cli/project-commands.js +212 -0
- package/dist/src/cli/project-commands.js.map +1 -0
- package/dist/src/cli/utils/viewer.d.ts +3 -0
- package/dist/src/cli/utils/viewer.d.ts.map +1 -0
- package/dist/src/cli/utils/viewer.js +89 -0
- package/dist/src/cli/utils/viewer.js.map +1 -0
- package/dist/src/core/context/frame-manager.d.ts +106 -0
- package/dist/src/core/context/frame-manager.d.ts.map +1 -0
- package/dist/src/core/context/frame-manager.js +387 -0
- package/dist/src/core/context/frame-manager.js.map +1 -0
- package/dist/src/core/logger.test.js +1 -1
- package/dist/src/core/logger.test.js.map +1 -1
- package/dist/src/core/monitoring/error-handler.d.ts +46 -0
- package/dist/src/core/monitoring/error-handler.d.ts.map +1 -0
- package/dist/src/core/monitoring/error-handler.js +212 -0
- package/dist/src/core/monitoring/error-handler.js.map +1 -0
- package/dist/src/core/monitoring/logger.d.ts +24 -0
- package/dist/src/core/monitoring/logger.d.ts.map +1 -0
- package/dist/src/core/monitoring/logger.js +121 -0
- package/dist/src/core/monitoring/logger.js.map +1 -0
- package/dist/src/core/monitoring/metrics.d.ts +7 -0
- package/dist/src/core/monitoring/metrics.d.ts.map +1 -0
- package/dist/src/core/monitoring/metrics.js +13 -0
- package/dist/src/core/monitoring/metrics.js.map +1 -0
- package/dist/src/core/monitoring/progress-tracker.d.ts +95 -0
- package/dist/src/core/monitoring/progress-tracker.d.ts.map +1 -0
- package/dist/src/core/monitoring/progress-tracker.js +178 -0
- package/dist/src/core/monitoring/progress-tracker.js.map +1 -0
- package/dist/src/core/progress-tracker.d.ts +95 -0
- package/dist/src/core/progress-tracker.d.ts.map +1 -0
- package/dist/src/core/progress-tracker.js +178 -0
- package/dist/src/core/progress-tracker.js.map +1 -0
- package/dist/src/core/project-manager.d.ts +130 -0
- package/dist/src/core/project-manager.d.ts.map +1 -0
- package/dist/src/core/project-manager.js +582 -0
- package/dist/src/core/project-manager.js.map +1 -0
- package/dist/src/core/projects/project-manager.d.ts +130 -0
- package/dist/src/core/projects/project-manager.d.ts.map +1 -0
- package/dist/src/core/projects/project-manager.js +591 -0
- package/dist/src/core/projects/project-manager.js.map +1 -0
- package/dist/src/core/update-checker.d.ts +38 -0
- package/dist/src/core/update-checker.d.ts.map +1 -0
- package/dist/src/core/update-checker.js +156 -0
- package/dist/src/core/update-checker.js.map +1 -0
- package/dist/src/core/utils/update-checker.d.ts +38 -0
- package/dist/src/core/utils/update-checker.d.ts.map +1 -0
- package/dist/src/core/utils/update-checker.js +156 -0
- package/dist/src/core/utils/update-checker.js.map +1 -0
- package/dist/src/features/analytics/api/analytics-api.d.ts +24 -0
- package/dist/src/features/analytics/api/analytics-api.d.ts.map +1 -0
- package/dist/src/features/analytics/api/analytics-api.js +289 -0
- package/dist/src/features/analytics/api/analytics-api.js.map +1 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts +23 -0
- package/dist/src/features/analytics/core/analytics-service.d.ts.map +1 -0
- package/dist/src/features/analytics/core/analytics-service.js +160 -0
- package/dist/src/features/analytics/core/analytics-service.js.map +1 -0
- package/dist/src/features/analytics/index.d.ts +12 -0
- package/dist/src/features/analytics/index.d.ts.map +1 -0
- package/dist/src/features/analytics/index.js +11 -0
- package/dist/src/features/analytics/index.js.map +1 -0
- package/dist/src/features/analytics/queries/metrics-queries.d.ts +11 -0
- package/dist/src/features/analytics/queries/metrics-queries.d.ts.map +1 -0
- package/dist/src/features/analytics/queries/metrics-queries.js +183 -0
- package/dist/src/features/analytics/queries/metrics-queries.js.map +1 -0
- package/dist/src/features/analytics/types/metrics.d.ts +60 -0
- package/dist/src/features/analytics/types/metrics.d.ts.map +1 -0
- package/dist/src/features/analytics/types/metrics.js +2 -0
- package/dist/src/features/analytics/types/metrics.js.map +1 -0
- package/dist/src/features/browser/browser-mcp.d.ts +94 -0
- package/dist/src/features/browser/browser-mcp.d.ts.map +1 -0
- package/dist/src/features/browser/browser-mcp.js +456 -0
- package/dist/src/features/browser/browser-mcp.js.map +1 -0
- package/dist/src/features/tasks/pebbles-task-store.d.ts +117 -0
- package/dist/src/features/tasks/pebbles-task-store.d.ts.map +1 -0
- package/dist/src/features/tasks/pebbles-task-store.js +335 -0
- package/dist/src/features/tasks/pebbles-task-store.js.map +1 -0
- package/dist/src/features/tasks/task-aware-context.d.ts +103 -0
- package/dist/src/features/tasks/task-aware-context.d.ts.map +1 -0
- package/dist/src/features/tasks/task-aware-context.js +412 -0
- package/dist/src/features/tasks/task-aware-context.js.map +1 -0
- package/dist/src/index.d.ts +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/integrations/browser-mcp.d.ts +94 -0
- package/dist/src/integrations/browser-mcp.d.ts.map +1 -0
- package/dist/src/integrations/browser-mcp.js +431 -0
- package/dist/src/integrations/browser-mcp.js.map +1 -0
- package/dist/src/integrations/linear/auth.d.ts +99 -0
- package/dist/src/integrations/linear/auth.d.ts.map +1 -0
- package/dist/src/integrations/linear/auth.js +319 -0
- package/dist/src/integrations/linear/auth.js.map +1 -0
- package/dist/src/integrations/linear/auto-sync.d.ts +77 -0
- package/dist/src/integrations/linear/auto-sync.d.ts.map +1 -0
- package/dist/src/integrations/linear/auto-sync.js +268 -0
- package/dist/src/integrations/linear/auto-sync.js.map +1 -0
- package/dist/src/integrations/linear/client.d.ts +86 -0
- package/dist/src/integrations/linear/client.d.ts.map +1 -0
- package/dist/src/integrations/linear/client.js +277 -0
- package/dist/src/integrations/linear/client.js.map +1 -0
- package/dist/src/integrations/linear/config.d.ts +51 -0
- package/dist/src/integrations/linear/config.d.ts.map +1 -0
- package/dist/src/integrations/linear/config.js +103 -0
- package/dist/src/integrations/linear/config.js.map +1 -0
- package/dist/src/integrations/linear/sync.d.ts +97 -0
- package/dist/src/integrations/linear/sync.d.ts.map +1 -0
- package/dist/src/integrations/linear/sync.js +391 -0
- package/dist/src/integrations/linear/sync.js.map +1 -0
- package/dist/src/integrations/mcp/server.d.ts +40 -0
- package/dist/src/integrations/mcp/server.d.ts.map +1 -0
- package/dist/src/integrations/mcp/server.js +828 -0
- package/dist/src/integrations/mcp/server.js.map +1 -0
- package/dist/src/mcp/mcp-server.d.ts +2 -0
- package/dist/src/mcp/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp/mcp-server.js +16 -0
- package/dist/src/mcp/mcp-server.js.map +1 -1
- package/dist/src/railway/index.d.ts +7 -0
- package/dist/src/railway/index.d.ts.map +1 -0
- package/dist/src/railway/index.js +401 -0
- package/dist/src/railway/index.js.map +1 -0
- package/dist/src/runway/auth/auth-middleware.d.ts +66 -0
- package/dist/src/runway/auth/auth-middleware.d.ts.map +1 -0
- package/dist/src/runway/auth/auth-middleware.js +337 -0
- package/dist/src/runway/auth/auth-middleware.js.map +1 -0
- package/dist/src/runway/server/runway-mcp-server.d.ts +46 -0
- package/dist/src/runway/server/runway-mcp-server.d.ts.map +1 -0
- package/dist/src/runway/server/runway-mcp-server.js +601 -0
- package/dist/src/runway/server/runway-mcp-server.js.map +1 -0
- package/dist/src/runway.bak/auth/auth-middleware.d.ts +66 -0
- package/dist/src/runway.bak/auth/auth-middleware.d.ts.map +1 -0
- package/dist/src/runway.bak/auth/auth-middleware.js +337 -0
- package/dist/src/runway.bak/auth/auth-middleware.js.map +1 -0
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts +46 -0
- package/dist/src/runway.bak/server/runway-mcp-server.d.ts.map +1 -0
- package/dist/src/runway.bak/server/runway-mcp-server.js +601 -0
- package/dist/src/runway.bak/server/runway-mcp-server.js.map +1 -0
- package/dist/src/servers/production/auth-middleware.d.ts +66 -0
- package/dist/src/servers/production/auth-middleware.d.ts.map +1 -0
- package/dist/src/servers/production/auth-middleware.js +346 -0
- package/dist/src/servers/production/auth-middleware.js.map +1 -0
- package/dist/src/servers/railway/index.d.ts +7 -0
- package/dist/src/servers/railway/index.d.ts.map +1 -0
- package/dist/src/servers/railway/index.js +401 -0
- package/dist/src/servers/railway/index.js.map +1 -0
- package/package.json +27 -5
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update checker for StackMemory
|
|
3
|
+
* Checks npm registry for newer versions
|
|
4
|
+
*/
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { homedir } from 'os';
|
|
9
|
+
import { logger } from './logger.js';
|
|
10
|
+
export class UpdateChecker {
|
|
11
|
+
static CACHE_FILE = join(homedir(), '.stackmemory', 'update-check.json');
|
|
12
|
+
static CHECK_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
|
|
13
|
+
static PACKAGE_NAME = '@stackmemoryai/stackmemory';
|
|
14
|
+
/**
|
|
15
|
+
* Check for updates and display notification if needed
|
|
16
|
+
*/
|
|
17
|
+
static async checkForUpdates(currentVersion, silent = false) {
|
|
18
|
+
try {
|
|
19
|
+
// Check cache first
|
|
20
|
+
const cache = this.loadCache();
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
// Skip check if we checked recently
|
|
23
|
+
if (cache && now - cache.lastChecked < this.CHECK_INTERVAL) {
|
|
24
|
+
if (!silent &&
|
|
25
|
+
cache.latestVersion &&
|
|
26
|
+
cache.latestVersion !== currentVersion) {
|
|
27
|
+
this.displayUpdateNotification(currentVersion, cache.latestVersion);
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Fetch latest version from npm
|
|
32
|
+
const latestVersion = await this.fetchLatestVersion();
|
|
33
|
+
// Update cache
|
|
34
|
+
this.saveCache({
|
|
35
|
+
lastChecked: now,
|
|
36
|
+
latestVersion,
|
|
37
|
+
currentVersion,
|
|
38
|
+
});
|
|
39
|
+
// Display notification if update available
|
|
40
|
+
if (!silent &&
|
|
41
|
+
latestVersion &&
|
|
42
|
+
this.isNewerVersion(currentVersion, latestVersion)) {
|
|
43
|
+
this.displayUpdateNotification(currentVersion, latestVersion);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Silently fail - don't interrupt user workflow
|
|
48
|
+
logger.debug('Update check failed:', { error: error.message });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fetch latest version from npm registry
|
|
53
|
+
*/
|
|
54
|
+
static async fetchLatestVersion() {
|
|
55
|
+
try {
|
|
56
|
+
const output = execSync(`npm view ${this.PACKAGE_NAME} version`, {
|
|
57
|
+
encoding: 'utf-8',
|
|
58
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
59
|
+
}).trim();
|
|
60
|
+
return output;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger.debug('Failed to fetch latest version:', {
|
|
64
|
+
error: error.message,
|
|
65
|
+
});
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Compare version strings
|
|
71
|
+
*/
|
|
72
|
+
static isNewerVersion(current, latest) {
|
|
73
|
+
const currentParts = current.split('.').map(Number);
|
|
74
|
+
const latestParts = latest.split('.').map(Number);
|
|
75
|
+
for (let i = 0; i < 3; i++) {
|
|
76
|
+
if (latestParts[i] > currentParts[i])
|
|
77
|
+
return true;
|
|
78
|
+
if (latestParts[i] < currentParts[i])
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Display update notification
|
|
85
|
+
*/
|
|
86
|
+
static displayUpdateNotification(current, latest) {
|
|
87
|
+
console.log('\n' + '─'.repeat(60));
|
|
88
|
+
console.log('📦 StackMemory Update Available!');
|
|
89
|
+
console.log(` Current: v${current}`);
|
|
90
|
+
console.log(` Latest: v${latest}`);
|
|
91
|
+
console.log('\n Update with:');
|
|
92
|
+
console.log(' npm install -g @stackmemoryai/stackmemory@latest');
|
|
93
|
+
console.log('─'.repeat(60) + '\n');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Load update cache
|
|
97
|
+
*/
|
|
98
|
+
static loadCache() {
|
|
99
|
+
try {
|
|
100
|
+
if (existsSync(this.CACHE_FILE)) {
|
|
101
|
+
const data = readFileSync(this.CACHE_FILE, 'utf-8');
|
|
102
|
+
return JSON.parse(data);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger.debug('Failed to load update cache:', {
|
|
107
|
+
error: error.message,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Save update cache
|
|
114
|
+
*/
|
|
115
|
+
static saveCache(cache) {
|
|
116
|
+
try {
|
|
117
|
+
const dir = join(homedir(), '.stackmemory');
|
|
118
|
+
if (!existsSync(dir)) {
|
|
119
|
+
// Create directory if it doesn't exist
|
|
120
|
+
execSync(`mkdir -p "${dir}"`, { stdio: 'ignore' });
|
|
121
|
+
}
|
|
122
|
+
writeFileSync(this.CACHE_FILE, JSON.stringify(cache, null, 2));
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger.debug('Failed to save update cache:', {
|
|
126
|
+
error: error.message,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Force check for updates (ignores cache)
|
|
132
|
+
*/
|
|
133
|
+
static async forceCheck(currentVersion) {
|
|
134
|
+
try {
|
|
135
|
+
const latestVersion = await this.fetchLatestVersion();
|
|
136
|
+
// Update cache
|
|
137
|
+
this.saveCache({
|
|
138
|
+
lastChecked: Date.now(),
|
|
139
|
+
latestVersion,
|
|
140
|
+
currentVersion,
|
|
141
|
+
});
|
|
142
|
+
if (latestVersion) {
|
|
143
|
+
if (this.isNewerVersion(currentVersion, latestVersion)) {
|
|
144
|
+
this.displayUpdateNotification(currentVersion, latestVersion);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
console.log(`✅ StackMemory is up to date (v${currentVersion})`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error('❌ Update check failed:', error.message);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=update-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../../src/core/update-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update checker for StackMemory
|
|
3
|
+
* Checks npm registry for newer versions
|
|
4
|
+
*/
|
|
5
|
+
export declare class UpdateChecker {
|
|
6
|
+
private static CACHE_FILE;
|
|
7
|
+
private static CHECK_INTERVAL;
|
|
8
|
+
private static PACKAGE_NAME;
|
|
9
|
+
/**
|
|
10
|
+
* Check for updates and display notification if needed
|
|
11
|
+
*/
|
|
12
|
+
static checkForUpdates(currentVersion: string, silent?: boolean): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Fetch latest version from npm registry
|
|
15
|
+
*/
|
|
16
|
+
private static fetchLatestVersion;
|
|
17
|
+
/**
|
|
18
|
+
* Compare version strings
|
|
19
|
+
*/
|
|
20
|
+
private static isNewerVersion;
|
|
21
|
+
/**
|
|
22
|
+
* Display update notification
|
|
23
|
+
*/
|
|
24
|
+
private static displayUpdateNotification;
|
|
25
|
+
/**
|
|
26
|
+
* Load update cache
|
|
27
|
+
*/
|
|
28
|
+
private static loadCache;
|
|
29
|
+
/**
|
|
30
|
+
* Save update cache
|
|
31
|
+
*/
|
|
32
|
+
private static saveCache;
|
|
33
|
+
/**
|
|
34
|
+
* Force check for updates (ignores cache)
|
|
35
|
+
*/
|
|
36
|
+
static forceCheck(currentVersion: string): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=update-checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/update-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,UAAU,CAIvB;IACF,OAAO,CAAC,MAAM,CAAC,cAAc,CAAuB;IACpD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAgC;IAE3D;;OAEG;WACU,eAAe,CAC1B,cAAc,EAAE,MAAM,EACtB,MAAM,UAAQ,GACb,OAAO,CAAC,IAAI,CAAC;IA0ChB;;OAEG;mBACkB,kBAAkB;IAevC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAW7B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,yBAAyB;IAaxC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAcxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAexB;;OAEG;WACU,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB/D"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update checker for StackMemory
|
|
3
|
+
* Checks npm registry for newer versions
|
|
4
|
+
*/
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync } from 'fs';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { homedir } from 'os';
|
|
9
|
+
import { logger } from '../monitoring/logger.js';
|
|
10
|
+
export class UpdateChecker {
|
|
11
|
+
static CACHE_FILE = join(homedir(), '.stackmemory', 'update-check.json');
|
|
12
|
+
static CHECK_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
|
|
13
|
+
static PACKAGE_NAME = '@stackmemoryai/stackmemory';
|
|
14
|
+
/**
|
|
15
|
+
* Check for updates and display notification if needed
|
|
16
|
+
*/
|
|
17
|
+
static async checkForUpdates(currentVersion, silent = false) {
|
|
18
|
+
try {
|
|
19
|
+
// Check cache first
|
|
20
|
+
const cache = this.loadCache();
|
|
21
|
+
const now = Date.now();
|
|
22
|
+
// Skip check if we checked recently
|
|
23
|
+
if (cache && now - cache.lastChecked < this.CHECK_INTERVAL) {
|
|
24
|
+
if (!silent &&
|
|
25
|
+
cache.latestVersion &&
|
|
26
|
+
cache.latestVersion !== currentVersion) {
|
|
27
|
+
this.displayUpdateNotification(currentVersion, cache.latestVersion);
|
|
28
|
+
}
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Fetch latest version from npm
|
|
32
|
+
const latestVersion = await this.fetchLatestVersion();
|
|
33
|
+
// Update cache
|
|
34
|
+
this.saveCache({
|
|
35
|
+
lastChecked: now,
|
|
36
|
+
latestVersion,
|
|
37
|
+
currentVersion,
|
|
38
|
+
});
|
|
39
|
+
// Display notification if update available
|
|
40
|
+
if (!silent &&
|
|
41
|
+
latestVersion &&
|
|
42
|
+
this.isNewerVersion(currentVersion, latestVersion)) {
|
|
43
|
+
this.displayUpdateNotification(currentVersion, latestVersion);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Silently fail - don't interrupt user workflow
|
|
48
|
+
logger.debug('Update check failed:', { error: error.message });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fetch latest version from npm registry
|
|
53
|
+
*/
|
|
54
|
+
static async fetchLatestVersion() {
|
|
55
|
+
try {
|
|
56
|
+
const output = execSync(`npm view ${this.PACKAGE_NAME} version`, {
|
|
57
|
+
encoding: 'utf-8',
|
|
58
|
+
stdio: ['pipe', 'pipe', 'ignore'],
|
|
59
|
+
}).trim();
|
|
60
|
+
return output;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
logger.debug('Failed to fetch latest version:', {
|
|
64
|
+
error: error.message,
|
|
65
|
+
});
|
|
66
|
+
return '';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Compare version strings
|
|
71
|
+
*/
|
|
72
|
+
static isNewerVersion(current, latest) {
|
|
73
|
+
const currentParts = current.split('.').map(Number);
|
|
74
|
+
const latestParts = latest.split('.').map(Number);
|
|
75
|
+
for (let i = 0; i < 3; i++) {
|
|
76
|
+
if (latestParts[i] > currentParts[i])
|
|
77
|
+
return true;
|
|
78
|
+
if (latestParts[i] < currentParts[i])
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Display update notification
|
|
85
|
+
*/
|
|
86
|
+
static displayUpdateNotification(current, latest) {
|
|
87
|
+
console.log('\n' + '─'.repeat(60));
|
|
88
|
+
console.log('📦 StackMemory Update Available!');
|
|
89
|
+
console.log(` Current: v${current}`);
|
|
90
|
+
console.log(` Latest: v${latest}`);
|
|
91
|
+
console.log('\n Update with:');
|
|
92
|
+
console.log(' npm install -g @stackmemoryai/stackmemory@latest');
|
|
93
|
+
console.log('─'.repeat(60) + '\n');
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Load update cache
|
|
97
|
+
*/
|
|
98
|
+
static loadCache() {
|
|
99
|
+
try {
|
|
100
|
+
if (existsSync(this.CACHE_FILE)) {
|
|
101
|
+
const data = readFileSync(this.CACHE_FILE, 'utf-8');
|
|
102
|
+
return JSON.parse(data);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
logger.debug('Failed to load update cache:', {
|
|
107
|
+
error: error.message,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Save update cache
|
|
114
|
+
*/
|
|
115
|
+
static saveCache(cache) {
|
|
116
|
+
try {
|
|
117
|
+
const dir = join(homedir(), '.stackmemory');
|
|
118
|
+
if (!existsSync(dir)) {
|
|
119
|
+
// Create directory if it doesn't exist
|
|
120
|
+
execSync(`mkdir -p "${dir}"`, { stdio: 'ignore' });
|
|
121
|
+
}
|
|
122
|
+
writeFileSync(this.CACHE_FILE, JSON.stringify(cache, null, 2));
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
logger.debug('Failed to save update cache:', {
|
|
126
|
+
error: error.message,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Force check for updates (ignores cache)
|
|
132
|
+
*/
|
|
133
|
+
static async forceCheck(currentVersion) {
|
|
134
|
+
try {
|
|
135
|
+
const latestVersion = await this.fetchLatestVersion();
|
|
136
|
+
// Update cache
|
|
137
|
+
this.saveCache({
|
|
138
|
+
lastChecked: Date.now(),
|
|
139
|
+
latestVersion,
|
|
140
|
+
currentVersion,
|
|
141
|
+
});
|
|
142
|
+
if (latestVersion) {
|
|
143
|
+
if (this.isNewerVersion(currentVersion, latestVersion)) {
|
|
144
|
+
this.displayUpdateNotification(currentVersion, latestVersion);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
console.log(`✅ StackMemory is up to date (v${currentVersion})`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
console.error('❌ Update check failed:', error.message);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=update-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../../../src/core/utils/update-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { Server } from 'http';
|
|
3
|
+
export declare class AnalyticsAPI {
|
|
4
|
+
private router;
|
|
5
|
+
private analyticsService;
|
|
6
|
+
private wss?;
|
|
7
|
+
constructor(projectPath?: string);
|
|
8
|
+
private setupRoutes;
|
|
9
|
+
private getMetrics;
|
|
10
|
+
private getTasks;
|
|
11
|
+
private getTeamMetrics;
|
|
12
|
+
private addTask;
|
|
13
|
+
private updateTask;
|
|
14
|
+
private syncLinear;
|
|
15
|
+
private exportMetrics;
|
|
16
|
+
private parseQuery;
|
|
17
|
+
private getPresetTimeRange;
|
|
18
|
+
private convertToCSV;
|
|
19
|
+
private handleError;
|
|
20
|
+
setupWebSocket(server: Server): void;
|
|
21
|
+
getRouter(): Router;
|
|
22
|
+
close(): void;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=analytics-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics-api.d.ts","sourceRoot":"","sources":["../../../../../src/features/analytics/api/analytics-api.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAI7D,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,GAAG,CAAC,CAAkB;gBAElB,WAAW,CAAC,EAAE,MAAM;IAMhC,OAAO,CAAC,WAAW;YAYL,UAAU;YAkBV,QAAQ;YAkBR,cAAc;YAwCd,OAAO;YAqBP,UAAU;YAoBV,UAAU;YAaV,aAAa;IA0B3B,OAAO,CAAC,UAAU;IA8ClB,OAAO,CAAC,kBAAkB;IAwB1B,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,WAAW;IAQnB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAyDpC,SAAS,IAAI,MAAM;IAInB,KAAK,IAAI,IAAI;CAMd"}
|