@axhub/genie 0.2.2 → 0.2.4
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/dist/assets/App-BxazfNJn.js +484 -0
- package/dist/assets/{ReviewApp-Bp_y3xff.js → ReviewApp-CsqTAlGU.js} +1 -1
- package/dist/assets/{_basePickBy-C5f221Kr.js → _basePickBy-CFRQvihx.js} +1 -1
- package/dist/assets/{_baseUniq-CeEXFlBh.js → _baseUniq-Dhh8nCvs.js} +1 -1
- package/dist/assets/{arc-CZVQXROF.js → arc-DQ0v3dU4.js} +1 -1
- package/dist/assets/{architectureDiagram-2XIMDMQ5-D91MBXeh.js → architectureDiagram-2XIMDMQ5-DmUHdvQH.js} +1 -1
- package/dist/assets/{blockDiagram-WCTKOSBZ-CsHP3zT2.js → blockDiagram-WCTKOSBZ-Bbxhj5KC.js} +1 -1
- package/dist/assets/{c4Diagram-IC4MRINW-DakKlk21.js → c4Diagram-IC4MRINW-BOivDlQU.js} +1 -1
- package/dist/assets/channel-Cj8xVD0X.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-BXZoxrtv.js → chunk-4BX2VUAB-DlvtrM0q.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-V9_WXk3w.js → chunk-55IACEB6-DJUSHyTa.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-IgdHo6Dd.js → chunk-FMBD7UC4-C6Ch-htf.js} +1 -1
- package/dist/assets/{chunk-JSJVCQXG-CnaAsDTd.js → chunk-JSJVCQXG-DzQIht58.js} +1 -1
- package/dist/assets/{chunk-KX2RTZJC-D0qksU2H.js → chunk-KX2RTZJC-C05jARMH.js} +1 -1
- package/dist/assets/{chunk-NQ4KR5QH-rd6KG4-c.js → chunk-NQ4KR5QH-Ci-n7jfu.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-Cyltgv4l.js → chunk-QZHKN3VN-jxti9HTX.js} +1 -1
- package/dist/assets/{chunk-WL4C6EOR-DkNtSo86.js → chunk-WL4C6EOR-C559Mk71.js} +1 -1
- package/dist/assets/classDiagram-VBA2DB6C-CI2zklxw.js +1 -0
- package/dist/assets/classDiagram-v2-RAHNMMFH-CI2zklxw.js +1 -0
- package/dist/assets/clone-BEVqubrI.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-D_Wsd3iv.js → cose-bilkent-S5V4N54A-DNO9ncXL.js} +1 -1
- package/dist/assets/{dagre-KLK3FWXG-CrrmZeGu.js → dagre-KLK3FWXG-DJ3dNSYk.js} +1 -1
- package/dist/assets/{diagram-E7M64L7V-WzO26pGn.js → diagram-E7M64L7V-Ba_LGLun.js} +1 -1
- package/dist/assets/{diagram-IFDJBPK2-COynsdO3.js → diagram-IFDJBPK2-Da6K4aP-.js} +1 -1
- package/dist/assets/{diagram-P4PSJMXO-CSqD5HJx.js → diagram-P4PSJMXO-vZZKB92A.js} +1 -1
- package/dist/assets/{erDiagram-INFDFZHY-BiFhS6xi.js → erDiagram-INFDFZHY-Csb8dFdP.js} +1 -1
- package/dist/assets/{flowDiagram-PKNHOUZH-9jdAJSs0.js → flowDiagram-PKNHOUZH-DUV13pHi.js} +1 -1
- package/dist/assets/{ganttDiagram-A5KZAMGK-pGyMKWCo.js → ganttDiagram-A5KZAMGK-B5Kv9Wfz.js} +1 -1
- package/dist/assets/{gitGraphDiagram-K3NZZRJ6-D4jvwoW1.js → gitGraphDiagram-K3NZZRJ6-BZ5gW69I.js} +1 -1
- package/dist/assets/{graph-DMknFkkX.js → graph-BbvHswRd.js} +1 -1
- package/dist/assets/{highlighted-body-TPN3WLV5-DhMGh1O7.js → highlighted-body-TPN3WLV5-DZJajMGm.js} +1 -1
- package/dist/assets/index-BFX9lxRB.css +1 -0
- package/dist/assets/index-BiErUGrv.js +2 -0
- package/dist/assets/{infoDiagram-LFFYTUFH-CP5zYiVP.js → infoDiagram-LFFYTUFH-8auUIPKW.js} +1 -1
- package/dist/assets/{ishikawaDiagram-PHBUUO56-BplLZAQ5.js → ishikawaDiagram-PHBUUO56-JmsNlo2I.js} +1 -1
- package/dist/assets/{journeyDiagram-4ABVD52K-CYVgkl-y.js → journeyDiagram-4ABVD52K-Cuudv7Vv.js} +1 -1
- package/dist/assets/{kanban-definition-K7BYSVSG-D3on0q66.js → kanban-definition-K7BYSVSG-Bappd2YO.js} +1 -1
- package/dist/assets/{layout-DoKWZNVk.js → layout-BmbfFZKy.js} +1 -1
- package/dist/assets/{linear-D4YTLdon.js → linear-WZnF-PT6.js} +1 -1
- package/dist/assets/{mermaid-O7DHMXV3-KLW3VWsF.js → mermaid-O7DHMXV3-D-2fQRvw.js} +5 -5
- package/dist/assets/{mindmap-definition-YRQLILUH-EEAggxM3.js → mindmap-definition-YRQLILUH-BQHnzzud.js} +1 -1
- package/dist/assets/{pieDiagram-SKSYHLDU-Da-_fmYg.js → pieDiagram-SKSYHLDU-uxjlAy1t.js} +1 -1
- package/dist/assets/{quadrantDiagram-337W2JSQ-Dq4gr7Sw.js → quadrantDiagram-337W2JSQ-DpwZU-f_.js} +1 -1
- package/dist/assets/{requirementDiagram-Z7DCOOCP-DNSXyCNU.js → requirementDiagram-Z7DCOOCP-C_9ClOWm.js} +1 -1
- package/dist/assets/{sankeyDiagram-WA2Y5GQK-CT4ST2HW.js → sankeyDiagram-WA2Y5GQK-2-FHHM-R.js} +1 -1
- package/dist/assets/{sequenceDiagram-2WXFIKYE-CshVYjrF.js → sequenceDiagram-2WXFIKYE-egns-0XI.js} +1 -1
- package/dist/assets/{stateDiagram-RAJIS63D-hsG5Yi2A.js → stateDiagram-RAJIS63D-DoW8U53H.js} +1 -1
- package/dist/assets/stateDiagram-v2-FVOUBMTO-BoFZZ4Ds.js +1 -0
- package/dist/assets/{timeline-definition-YZTLITO2-EztFFK5F.js → timeline-definition-YZTLITO2-chPa8ppH.js} +1 -1
- package/dist/assets/{treemap-KZPCXAKY-D5UZCcq_.js → treemap-KZPCXAKY-ajdAP-72.js} +1 -1
- package/dist/assets/{vennDiagram-LZ73GAT5-9Qwv8UTR.js → vennDiagram-LZ73GAT5-C9If0AT0.js} +1 -1
- package/dist/assets/{xychartDiagram-JWTSCODW-BBjpC1Qv.js → xychartDiagram-JWTSCODW-DD42U6Or.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +2 -2
- package/server/database/db.js +0 -45
- package/server/external-agent/service.js +39 -490
- package/server/external-agent/service.test.js +12 -0
- package/server/index.js +21 -43
- package/server/middleware/auth.js +15 -1
- package/server/routes/agent.js +15 -1136
- package/server/routes/cli-auth.js +60 -52
- package/server/routes/projects.js +10 -304
- package/server/routes/settings.js +4 -0
- package/server/routes/user.js +0 -102
- package/dist/assets/App-Cay5kE3A.js +0 -504
- package/dist/assets/channel-CnzaP2H9.js +0 -1
- package/dist/assets/classDiagram-VBA2DB6C-CUcYxMZ8.js +0 -1
- package/dist/assets/classDiagram-v2-RAHNMMFH-CUcYxMZ8.js +0 -1
- package/dist/assets/clone-DJXJGSg2.js +0 -1
- package/dist/assets/index-2198VgsK.css +0 -1
- package/dist/assets/index-EMGPq9Uy.js +0 -2
- package/dist/assets/stateDiagram-v2-FVOUBMTO-BQa1Ppoo.js +0 -1
package/server/index.js
CHANGED
|
@@ -155,52 +155,29 @@ function compareSemver(v1, v2) {
|
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
function readLatestVersionFromNpmRegistry() {
|
|
158
|
-
return
|
|
159
|
-
const
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
let output = '';
|
|
166
|
-
let errorOutput = '';
|
|
167
|
-
|
|
168
|
-
child.stdout.on('data', (data) => {
|
|
169
|
-
output += data.toString();
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
child.stderr.on('data', (data) => {
|
|
173
|
-
errorOutput += data.toString();
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
child.on('close', (code) => {
|
|
177
|
-
if (code !== 0) {
|
|
178
|
-
reject(new Error(errorOutput || `npm view exited with code ${code}`));
|
|
179
|
-
return;
|
|
158
|
+
return (async () => {
|
|
159
|
+
const registryUrl = `https://registry.npmjs.org/${encodeURIComponent(UPDATE_PACKAGE_NAME)}`;
|
|
160
|
+
const response = await fetch(registryUrl, {
|
|
161
|
+
headers: {
|
|
162
|
+
Accept: 'application/json'
|
|
180
163
|
}
|
|
164
|
+
});
|
|
181
165
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
if (!latestVersion) {
|
|
186
|
-
reject(new Error('npm view returned no version'));
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
166
|
+
if (!response.ok) {
|
|
167
|
+
throw new Error(`npm registry request failed: ${response.status}`);
|
|
168
|
+
}
|
|
189
169
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
} catch (error) {
|
|
196
|
-
reject(new Error(`failed to parse npm view output: ${error.message}`));
|
|
197
|
-
}
|
|
198
|
-
});
|
|
170
|
+
const parsed = await response.json();
|
|
171
|
+
const latestVersion = parsed?.['dist-tags']?.latest;
|
|
172
|
+
if (!latestVersion) {
|
|
173
|
+
throw new Error('npm registry returned no latest version');
|
|
174
|
+
}
|
|
199
175
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
176
|
+
return {
|
|
177
|
+
latestVersion,
|
|
178
|
+
publishedAt: parsed?.time?.[latestVersion] || parsed?.time?.modified || null
|
|
179
|
+
};
|
|
180
|
+
})();
|
|
204
181
|
}
|
|
205
182
|
|
|
206
183
|
async function getSystemVersionInfo(forceRefresh = false) {
|
|
@@ -579,7 +556,8 @@ app.post('/api/system/update', authenticateToken, async (req, res) => {
|
|
|
579
556
|
// Run npm global update command
|
|
580
557
|
const child = spawn(npmCommand, updateArgs, {
|
|
581
558
|
cwd: projectRoot,
|
|
582
|
-
env: process.env
|
|
559
|
+
env: process.env,
|
|
560
|
+
stdio: ['ignore', 'pipe', 'pipe']
|
|
583
561
|
});
|
|
584
562
|
|
|
585
563
|
let output = '';
|
|
@@ -5,6 +5,11 @@ import { IS_PLATFORM } from '../constants/config.js';
|
|
|
5
5
|
// Get JWT secret from environment or use default (for development)
|
|
6
6
|
const JWT_SECRET = process.env.JWT_SECRET || 'claude-ui-dev-secret-change-in-production';
|
|
7
7
|
|
|
8
|
+
const PUBLIC_GET_ROUTE_PATTERNS = [
|
|
9
|
+
/^\/api\/system\/version\/?$/i,
|
|
10
|
+
/^\/api\/session-core\/providers(?:\/[^/]+)?\/?$/i,
|
|
11
|
+
];
|
|
12
|
+
|
|
8
13
|
// Optional API key middleware
|
|
9
14
|
const validateApiKey = (req, res, next) => {
|
|
10
15
|
// Skip API key validation if not configured
|
|
@@ -21,6 +26,15 @@ const validateApiKey = (req, res, next) => {
|
|
|
21
26
|
|
|
22
27
|
// JWT authentication middleware
|
|
23
28
|
const authenticateToken = async (req, res, next) => {
|
|
29
|
+
const requestPath = String(req.originalUrl || req.url || req.path || '').split('?')[0];
|
|
30
|
+
|
|
31
|
+
if (
|
|
32
|
+
req.method === 'GET'
|
|
33
|
+
&& PUBLIC_GET_ROUTE_PATTERNS.some((pattern) => pattern.test(requestPath))
|
|
34
|
+
) {
|
|
35
|
+
return next();
|
|
36
|
+
}
|
|
37
|
+
|
|
24
38
|
// Platform mode: use single database user
|
|
25
39
|
if (IS_PLATFORM) {
|
|
26
40
|
try {
|
|
@@ -114,4 +128,4 @@ export {
|
|
|
114
128
|
generateToken,
|
|
115
129
|
authenticateWebSocket,
|
|
116
130
|
JWT_SECRET
|
|
117
|
-
};
|
|
131
|
+
};
|