agentstudio 0.1.29 → 0.1.31
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/index.d.ts.map +1 -1
- package/index.js +20 -0
- package/index.js.map +1 -1
- package/middleware/httpsOnly.d.ts +40 -3
- package/middleware/httpsOnly.d.ts.map +1 -1
- package/middleware/httpsOnly.js +89 -5
- package/middleware/httpsOnly.js.map +1 -1
- package/package.json +2 -1
- package/public/assets/{AgentsPage-VVVyzMq0.js → AgentsPage-DKZWFW8X.js} +2 -2
- package/public/assets/{Button-B9AQtJ7x.js → Button-cN1WPLWN.js} +1 -1
- package/public/assets/{ChatPage-p1JCfA2A.js → ChatPage-D0FGsyAT.js} +4 -4
- package/public/assets/{CommandForm-B_beYCv3.js → CommandForm-CZRscRtm.js} +2 -2
- package/public/assets/{CommandsPage-Blc1Kt4Z.js → CommandsPage-BejQhsY5.js} +1 -1
- package/public/assets/{DashboardPage-Dokn4y-N.js → DashboardPage-09thi3Rh.js} +1 -1
- package/public/assets/{FileBrowser-Dg9PfXOo.js → FileBrowser-Z9hLFPpv.js} +4 -4
- package/public/assets/FileExplorer-BB3suHzW.js +1 -0
- package/public/assets/GeneralSettingsPage-Brmz_AtE.js +1 -0
- package/public/assets/LandingPage-BpoDlnDx.js +1 -0
- package/public/assets/{LoginPage-D2Ykhr7D.js → LoginPage-CX-yRlVd.js} +5 -5
- package/public/assets/McpAdminSettingsPage-CmOXQouL.js +7 -0
- package/public/assets/{McpPage-DkD9BOrP.js → McpPage-DoAEv0XV.js} +1 -1
- package/public/assets/MemorySettingsPage-CFS6ZcJr.js +1 -0
- package/public/assets/PluginsPage-BCdGy7Rw.js +1 -0
- package/public/assets/{ProjectSelector-B1_umywl.js → ProjectSelector-CION-PmR.js} +1 -1
- package/public/assets/{ProjectsPage-CQ8zwJ5D.js → ProjectsPage-Wb6pN9Hv.js} +5 -5
- package/public/assets/ScheduledTasksPage-DLgaIyjh.js +1 -0
- package/public/assets/{SettingsLayout-CccK5RVj.js → SettingsLayout-BIsie6AV.js} +1 -1
- package/public/assets/{SkillsPage-D_LECy2S.js → SkillsPage-B0UobEC_.js} +1 -1
- package/public/assets/{SubagentForm-D9EFQxlZ.js → SubagentForm-Cq06CQqr.js} +3 -3
- package/public/assets/SubagentsPage-BSaDf99n.js +1 -0
- package/public/assets/SystemInfoPage-BMlzVgxc.js +1 -0
- package/public/assets/{TelemetrySettingsPage-DMngnKDW.js → TelemetrySettingsPage-DvOSMEwR.js} +1 -1
- package/public/assets/{ToastTestPage-CafmBcnU.js → ToastTestPage-Du-SgUz6.js} +1 -1
- package/public/assets/{ToolsList-CnepUgI-.js → ToolsList-C9LELdNX.js} +1 -1
- package/public/assets/UnifiedToolSelector-Bw-E7HW4.js +1 -0
- package/public/assets/{VersionSettingsPage-D9hYO4VL.js → VersionSettingsPage-CU4oEyqT.js} +2 -2
- package/public/assets/WebSocketTunnelPage-CSTkG4E2.js +1 -0
- package/public/assets/{_basePickBy-lvDxpUoY.js → _basePickBy-DxKqIWB6.js} +1 -1
- package/public/assets/{_baseUniq-DyqfOLmW.js → _baseUniq-CKJzhTgF.js} +1 -1
- package/public/assets/{agents-DmLFhp96.js → agents-D9dWnZr0.js} +1 -1
- package/public/assets/{arc-DuR7lLva.js → arc-C2iholw8.js} +1 -1
- package/public/assets/{architectureDiagram-VXUJARFQ-CkKlTxxx.js → architectureDiagram-VXUJARFQ-xG63KrIQ.js} +1 -1
- package/public/assets/{blockDiagram-VD42YOAC-DdR02awp.js → blockDiagram-VD42YOAC-C4NFx0nk.js} +1 -1
- package/public/assets/{c4Diagram-YG6GDRKO-MlkMVL2r.js → c4Diagram-YG6GDRKO-BadvTLDv.js} +1 -1
- package/public/assets/channel-Cgo35bJG.js +1 -0
- package/public/assets/{chunk-4BX2VUAB-BI02zXQl.js → chunk-4BX2VUAB-Id5_IQHH.js} +1 -1
- package/public/assets/{chunk-55IACEB6-DtWZPbH-.js → chunk-55IACEB6-Cr7Dy_eo.js} +1 -1
- package/public/assets/{chunk-B4BG7PRW-yLeRKRZl.js → chunk-B4BG7PRW-BpvaZEv8.js} +1 -1
- package/public/assets/{chunk-DI55MBZ5-DF-5ELa5.js → chunk-DI55MBZ5-Bt4gChdE.js} +1 -1
- package/public/assets/{chunk-FMBD7UC4-BjJNxbrL.js → chunk-FMBD7UC4-C4oK_fXh.js} +1 -1
- package/public/assets/{chunk-QN33PNHL-rs7Z3IPT.js → chunk-QN33PNHL-DoNppdc6.js} +1 -1
- package/public/assets/{chunk-QZHKN3VN-DoIXOkrg.js → chunk-QZHKN3VN-B3mVCo-F.js} +1 -1
- package/public/assets/{chunk-TZMSLE5B-xkKgCGO2.js → chunk-TZMSLE5B-BzQraEZC.js} +1 -1
- package/public/assets/classDiagram-2ON5EDUG-hE-J96yq.js +1 -0
- package/public/assets/classDiagram-v2-WZHVMYZB-hE-J96yq.js +1 -0
- package/public/assets/clone-BR2LkGvn.js +1 -0
- package/public/assets/{cose-bilkent-S5V4N54A-BIz6tY7t.js → cose-bilkent-S5V4N54A-OR_HeMV9.js} +1 -1
- package/public/assets/{dagre-6UL2VRFP-CponDeYZ.js → dagre-6UL2VRFP-qr8I_vKq.js} +1 -1
- package/public/assets/{diagram-PSM6KHXK-D31S6iiK.js → diagram-PSM6KHXK-vB_CZuML.js} +1 -1
- package/public/assets/{diagram-QEK2KX5R-C6RWP-cs.js → diagram-QEK2KX5R-C0MTx_Nc.js} +1 -1
- package/public/assets/{diagram-S2PKOQOG-BKs_7af1.js → diagram-S2PKOQOG-Ci-hYM5v.js} +1 -1
- package/public/assets/{erDiagram-Q2GNP2WA-Ro9hB6-s.js → erDiagram-Q2GNP2WA-Cw6hHxHG.js} +1 -1
- package/public/assets/{flowDiagram-NV44I4VS-IKSFEVlB.js → flowDiagram-NV44I4VS-D8O-Xk2x.js} +1 -1
- package/public/assets/{ganttDiagram-LVOFAZNH-CPDNSzAq.js → ganttDiagram-LVOFAZNH-UxNErvuA.js} +1 -1
- package/public/assets/{gitGraphDiagram-NY62KEGX-c_yb5ztL.js → gitGraphDiagram-NY62KEGX-BeX3IBYd.js} +1 -1
- package/public/assets/{graph-BoMdSZEp.js → graph-Cf8oiq5L.js} +1 -1
- package/public/assets/{index-BUj-AMWq.js → index-1qMWEcRb.js} +27 -27
- package/public/assets/index-isG0t1ZM.css +1 -0
- package/public/assets/infoDiagram-F6ZHWCRC-Cj8LA9DD.js +2 -0
- package/public/assets/{journeyDiagram-XKPGCS4Q-D4izttrO.js → journeyDiagram-XKPGCS4Q-COucIUOw.js} +1 -1
- package/public/assets/{kanban-definition-3W4ZIXB7-DE7WCrea.js → kanban-definition-3W4ZIXB7-Dg9YHEya.js} +1 -1
- package/public/assets/{layout-BezNHWMi.js → layout-CJdedPgP.js} +1 -1
- package/public/assets/{linear-KRX5ckNK.js → linear-B7eUYSHc.js} +1 -1
- package/public/assets/{mindmap-definition-VGOIOE7T-Dlr09KqO.js → mindmap-definition-VGOIOE7T-DfYDh2Gl.js} +1 -1
- package/public/assets/{pieDiagram-ADFJNKIX-Bbzzfu-z.js → pieDiagram-ADFJNKIX-s6DjRKNr.js} +1 -1
- package/public/assets/{quadrantDiagram-AYHSOK5B-DubsKDPG.js → quadrantDiagram-AYHSOK5B-N1Ychsgt.js} +1 -1
- package/public/assets/{requirementDiagram-UZGBJVZJ-B-rG6Gty.js → requirementDiagram-UZGBJVZJ-Dy_oYJbC.js} +1 -1
- package/public/assets/{sankeyDiagram-TZEHDZUN-DU7Rgr_5.js → sankeyDiagram-TZEHDZUN-BrnrcBF3.js} +1 -1
- package/public/assets/{sequenceDiagram-WL72ISMW-BRlH6dPX.js → sequenceDiagram-WL72ISMW-zi7w-y8F.js} +1 -1
- package/public/assets/{stateDiagram-FKZM4ZOC-BeAzs0_-.js → stateDiagram-FKZM4ZOC-B33B5gSZ.js} +1 -1
- package/public/assets/stateDiagram-v2-4FDKWEC3-Bx-g7opY.js +1 -0
- package/public/assets/{table-aqcpYX4Z.js → table-aiCRrLk5.js} +1 -1
- package/public/assets/{timeline-definition-IT6M3QCI-BU_B1RmT.js → timeline-definition-IT6M3QCI-Bby9ruvD.js} +1 -1
- package/public/assets/{tools-XV29tg8x.js → tools-zTM46-tZ.js} +1 -1
- package/public/assets/{treemap-KMMF4GRG-CP2M7QfX.js → treemap-KMMF4GRG-CxPzxrDC.js} +1 -1
- package/public/assets/{ui-components-ND8WdSiV.js → ui-components-BsYwJvCF.js} +138 -123
- package/public/assets/{useAgents-COcSvqDE.js → useAgents-BlQGwXjx.js} +1 -1
- package/public/assets/{useClaudeVersions-C8b4adpW.js → useClaudeVersions-DJ6VKG1y.js} +1 -1
- package/public/assets/{useCommands-D79pjz3C.js → useCommands-DOxDeFSx.js} +1 -1
- package/public/assets/{useProjects-CP0Q5-jg.js → useProjects-cgsJNlsy.js} +1 -1
- package/public/assets/{useSessions-C2gXprHI.js → useSessions-BAxZ6l2n.js} +1 -1
- package/public/assets/{xychartDiagram-PRI3JC2R-OdQKUqyr.js → xychartDiagram-PRI3JC2R-C-X05eqT.js} +1 -1
- package/public/index.html +5 -5
- package/routes/projects.d.ts.map +1 -1
- package/routes/projects.js +80 -1
- package/routes/projects.js.map +1 -1
- package/routes/tunnel.d.ts +10 -0
- package/routes/tunnel.d.ts.map +1 -0
- package/routes/tunnel.js +296 -0
- package/routes/tunnel.js.map +1 -0
- package/services/a2a/a2aQueryService.d.ts.map +1 -1
- package/services/a2a/a2aQueryService.js +95 -52
- package/services/a2a/a2aQueryService.js.map +1 -1
- package/services/tunnelService.d.ts +148 -0
- package/services/tunnelService.d.ts.map +1 -0
- package/services/tunnelService.js +406 -0
- package/services/tunnelService.js.map +1 -0
- package/public/assets/FileExplorer-B7BFy0Tu.js +0 -1
- package/public/assets/GeneralSettingsPage-DLSSSadp.js +0 -1
- package/public/assets/LandingPage-Ck2WpTto.js +0 -1
- package/public/assets/McpAdminSettingsPage-BAKOckWx.js +0 -7
- package/public/assets/MemorySettingsPage-CiUs5u2g.js +0 -1
- package/public/assets/PluginsPage-CkXNjZMq.js +0 -1
- package/public/assets/ScheduledTasksPage-BjSzD4T2.js +0 -1
- package/public/assets/SubagentsPage-D_sdehiT.js +0 -1
- package/public/assets/SystemInfoPage-vz5Ey9DK.js +0 -1
- package/public/assets/UnifiedToolSelector-CnFTY88B.js +0 -1
- package/public/assets/channel-DHM1jRJ0.js +0 -1
- package/public/assets/classDiagram-2ON5EDUG-BJtIba9N.js +0 -1
- package/public/assets/classDiagram-v2-WZHVMYZB-BJtIba9N.js +0 -1
- package/public/assets/clone-Bbn_OKGL.js +0 -1
- package/public/assets/index-CEBbr0XW.css +0 -1
- package/public/assets/infoDiagram-F6ZHWCRC-904Ek2Zh.js +0 -2
- package/public/assets/stateDiagram-v2-4FDKWEC3-C0c8d9Xs.js +0 -1
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAoE9B,QAAA,MAAM,GAAG,EAAE,OAAO,CAAC,OAAmB,CAAC;AAsWvC,eAAe,GAAG,CAAC"}
|
package/index.js
CHANGED
|
@@ -65,6 +65,7 @@ const mcpAdminManagement_1 = __importDefault(require("./routes/mcpAdminManagemen
|
|
|
65
65
|
const cloudflareTunnel_1 = __importDefault(require("./routes/cloudflareTunnel"));
|
|
66
66
|
const taskExecutor_1 = __importDefault(require("./routes/taskExecutor"));
|
|
67
67
|
const version_1 = __importDefault(require("./routes/version"));
|
|
68
|
+
const tunnel_1 = __importDefault(require("./routes/tunnel"));
|
|
68
69
|
const auth_2 = require("./middleware/auth");
|
|
69
70
|
const httpsOnly_1 = require("./middleware/httpsOnly");
|
|
70
71
|
const index_1 = require("./config/index");
|
|
@@ -72,6 +73,7 @@ const taskCleanup_1 = require("./services/a2a/taskCleanup");
|
|
|
72
73
|
const schedulerService_1 = require("./services/schedulerService");
|
|
73
74
|
const telemetry_1 = require("./services/telemetry");
|
|
74
75
|
const index_js_1 = require("./services/taskExecutor/index.js");
|
|
76
|
+
const tunnelService_js_1 = require("./services/tunnelService.js");
|
|
75
77
|
dotenv_1.default.config();
|
|
76
78
|
// Get version from package.json (works in both dev and npm package mode)
|
|
77
79
|
const getVersion = () => {
|
|
@@ -261,6 +263,15 @@ const app = (0, express_1.default)();
|
|
|
261
263
|
catch (error) {
|
|
262
264
|
console.error('[Scheduler] Error initializing scheduler:', error);
|
|
263
265
|
}
|
|
266
|
+
// 4. Tunnel Service: Initialize WebSocket tunnel for external access
|
|
267
|
+
console.info('[Tunnel] Initializing tunnel service...');
|
|
268
|
+
try {
|
|
269
|
+
await tunnelService_js_1.tunnelService.initialize(PORT);
|
|
270
|
+
console.info('[Tunnel] Tunnel service initialized');
|
|
271
|
+
}
|
|
272
|
+
catch (error) {
|
|
273
|
+
console.error('[Tunnel] Error initializing tunnel service:', error);
|
|
274
|
+
}
|
|
264
275
|
// Static files - serve embedded frontend (for npm package) or development frontend
|
|
265
276
|
// Check both npm package location (./public) and development location (../../frontend/dist)
|
|
266
277
|
const fs = await Promise.resolve().then(() => __importStar(require('fs')));
|
|
@@ -347,6 +358,7 @@ const app = (0, express_1.default)();
|
|
|
347
358
|
app.use('/api/cloudflare-tunnel', auth_2.authMiddleware, cloudflareTunnel_1.default); // Cloudflare Tunnel management
|
|
348
359
|
app.use('/api/task-executor', auth_2.authMiddleware, taskExecutor_1.default);
|
|
349
360
|
app.use('/api/version', auth_2.authMiddleware, version_1.default);
|
|
361
|
+
app.use('/api/tunnel', auth_2.authMiddleware, tunnel_1.default); // Tunnel management
|
|
350
362
|
app.use('/api/media', mediaAuth_1.default); // Media auth endpoints
|
|
351
363
|
app.use('/media', media_1.default); // Remove authMiddleware - media files are now public
|
|
352
364
|
// Error handling
|
|
@@ -380,6 +392,14 @@ const app = (0, express_1.default)();
|
|
|
380
392
|
catch (error) {
|
|
381
393
|
console.error('[TaskExecutor] Error shutting down task executor:', error);
|
|
382
394
|
}
|
|
395
|
+
// 3. Stop tunnel service
|
|
396
|
+
try {
|
|
397
|
+
tunnelService_js_1.tunnelService.disconnect();
|
|
398
|
+
console.info('[Tunnel] Tunnel service stopped');
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
console.error('[Tunnel] Error shutting down tunnel service:', error);
|
|
402
|
+
}
|
|
383
403
|
// Shutdown telemetry (async but we don't wait)
|
|
384
404
|
(0, telemetry_1.shutdownTelemetry)().catch((error) => {
|
|
385
405
|
console.error('[Telemetry] Error shutting down telemetry:', error);
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,21 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Phase 10 (Polish): T089 - HTTPS enforcement middleware for production
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
* internal/development
|
|
9
|
+
* Exemptions from HTTPS requirement:
|
|
10
|
+
* - IP address access (internal/development patterns or behind reverse proxies)
|
|
11
|
+
* - Trusted domain suffixes (e.g., .tunnel, .local, .internal)
|
|
12
|
+
* - Custom domain whitelist via HTTPS_EXEMPT_DOMAINS environment variable
|
|
11
13
|
*/
|
|
12
14
|
import type { Request, Response, NextFunction } from 'express';
|
|
15
|
+
/**
|
|
16
|
+
* Get the list of domains exempt from HTTPS requirement.
|
|
17
|
+
* Configured via HTTPS_EXEMPT_DOMAINS environment variable (comma-separated).
|
|
18
|
+
*
|
|
19
|
+
* Example: HTTPS_EXEMPT_DOMAINS=example.com,myapp.internal,*.mycompany.com
|
|
20
|
+
*
|
|
21
|
+
* @returns Array of exempt domain patterns
|
|
22
|
+
*/
|
|
23
|
+
export declare function getExemptDomains(): string[];
|
|
13
24
|
/**
|
|
14
25
|
* Check if a hostname is an IP address (IPv4 or IPv6)
|
|
15
26
|
*
|
|
@@ -17,9 +28,35 @@ import type { Request, Response, NextFunction } from 'express';
|
|
|
17
28
|
* @returns true if the hostname is an IP address
|
|
18
29
|
*/
|
|
19
30
|
export declare function isIPAddress(hostname: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Check if a hostname has a trusted domain suffix
|
|
33
|
+
*
|
|
34
|
+
* @param hostname - The hostname to check
|
|
35
|
+
* @returns true if the hostname ends with a trusted suffix
|
|
36
|
+
*/
|
|
37
|
+
export declare function hasTrustedSuffix(hostname: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a hostname is in the exempt domains whitelist
|
|
40
|
+
* Supports exact match and wildcard patterns (*.example.com)
|
|
41
|
+
*
|
|
42
|
+
* @param hostname - The hostname to check
|
|
43
|
+
* @returns true if the hostname matches an exempt domain pattern
|
|
44
|
+
*/
|
|
45
|
+
export declare function isExemptDomain(hostname: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if HTTPS requirement should be bypassed for this host
|
|
48
|
+
*
|
|
49
|
+
* @param hostname - The hostname to check
|
|
50
|
+
* @returns true if HTTPS should not be enforced
|
|
51
|
+
*/
|
|
52
|
+
export declare function shouldBypassHttps(hostname: string): boolean;
|
|
20
53
|
/**
|
|
21
54
|
* Middleware to enforce HTTPS for specific routes in production
|
|
22
|
-
*
|
|
55
|
+
*
|
|
56
|
+
* Exempt from HTTPS requirement:
|
|
57
|
+
* - IP address access (internal/development patterns)
|
|
58
|
+
* - Trusted domain suffixes (.tunnel, .local, .internal, .localhost)
|
|
59
|
+
* - Custom domains via HTTPS_EXEMPT_DOMAINS environment variable
|
|
23
60
|
*
|
|
24
61
|
* @param req - Express request object
|
|
25
62
|
* @param res - Express response object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpsOnly.d.ts","sourceRoot":"","sources":["../../src/middleware/httpsOnly.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"httpsOnly.d.ts","sourceRoot":"","sources":["../../src/middleware/httpsOnly.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAa/D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAQ3C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA6BrD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAO1D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAkBxD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,GAAG,CA6B9E;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,GAAG,GAAG,CAmBlF"}
|
package/middleware/httpsOnly.js
CHANGED
|
@@ -7,13 +7,46 @@
|
|
|
7
7
|
*
|
|
8
8
|
* Phase 10 (Polish): T089 - HTTPS enforcement middleware for production
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
* internal/development
|
|
10
|
+
* Exemptions from HTTPS requirement:
|
|
11
|
+
* - IP address access (internal/development patterns or behind reverse proxies)
|
|
12
|
+
* - Trusted domain suffixes (e.g., .tunnel, .local, .internal)
|
|
13
|
+
* - Custom domain whitelist via HTTPS_EXEMPT_DOMAINS environment variable
|
|
12
14
|
*/
|
|
13
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.getExemptDomains = getExemptDomains;
|
|
14
17
|
exports.isIPAddress = isIPAddress;
|
|
18
|
+
exports.hasTrustedSuffix = hasTrustedSuffix;
|
|
19
|
+
exports.isExemptDomain = isExemptDomain;
|
|
20
|
+
exports.shouldBypassHttps = shouldBypassHttps;
|
|
15
21
|
exports.httpsOnly = httpsOnly;
|
|
16
22
|
exports.httpsRedirect = httpsRedirect;
|
|
23
|
+
/**
|
|
24
|
+
* Default trusted domain suffixes that are exempt from HTTPS requirement.
|
|
25
|
+
* These are typically internal/tunnel domains that don't need HTTPS enforcement.
|
|
26
|
+
*/
|
|
27
|
+
const DEFAULT_TRUSTED_SUFFIXES = [
|
|
28
|
+
'.tunnel', // Cloudflare Tunnel, custom tunnels
|
|
29
|
+
'.local', // Local development domains
|
|
30
|
+
'.internal', // Internal network domains
|
|
31
|
+
'.localhost', // Localhost subdomains
|
|
32
|
+
];
|
|
33
|
+
/**
|
|
34
|
+
* Get the list of domains exempt from HTTPS requirement.
|
|
35
|
+
* Configured via HTTPS_EXEMPT_DOMAINS environment variable (comma-separated).
|
|
36
|
+
*
|
|
37
|
+
* Example: HTTPS_EXEMPT_DOMAINS=example.com,myapp.internal,*.mycompany.com
|
|
38
|
+
*
|
|
39
|
+
* @returns Array of exempt domain patterns
|
|
40
|
+
*/
|
|
41
|
+
function getExemptDomains() {
|
|
42
|
+
const envDomains = process.env.HTTPS_EXEMPT_DOMAINS;
|
|
43
|
+
if (!envDomains)
|
|
44
|
+
return [];
|
|
45
|
+
return envDomains
|
|
46
|
+
.split(',')
|
|
47
|
+
.map(domain => domain.trim().toLowerCase())
|
|
48
|
+
.filter(domain => domain.length > 0);
|
|
49
|
+
}
|
|
17
50
|
/**
|
|
18
51
|
* Check if a hostname is an IP address (IPv4 or IPv6)
|
|
19
52
|
*
|
|
@@ -45,9 +78,60 @@ function isIPAddress(hostname) {
|
|
|
45
78
|
ipv6LoopbackPattern.test(hostWithoutPort) ||
|
|
46
79
|
ipv6MappedPattern.test(hostWithoutPort));
|
|
47
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if a hostname has a trusted domain suffix
|
|
83
|
+
*
|
|
84
|
+
* @param hostname - The hostname to check
|
|
85
|
+
* @returns true if the hostname ends with a trusted suffix
|
|
86
|
+
*/
|
|
87
|
+
function hasTrustedSuffix(hostname) {
|
|
88
|
+
if (!hostname)
|
|
89
|
+
return false;
|
|
90
|
+
// Remove port if present and convert to lowercase
|
|
91
|
+
const hostWithoutPort = hostname.split(':')[0].toLowerCase();
|
|
92
|
+
return DEFAULT_TRUSTED_SUFFIXES.some(suffix => hostWithoutPort.endsWith(suffix));
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Check if a hostname is in the exempt domains whitelist
|
|
96
|
+
* Supports exact match and wildcard patterns (*.example.com)
|
|
97
|
+
*
|
|
98
|
+
* @param hostname - The hostname to check
|
|
99
|
+
* @returns true if the hostname matches an exempt domain pattern
|
|
100
|
+
*/
|
|
101
|
+
function isExemptDomain(hostname) {
|
|
102
|
+
if (!hostname)
|
|
103
|
+
return false;
|
|
104
|
+
const exemptDomains = getExemptDomains();
|
|
105
|
+
if (exemptDomains.length === 0)
|
|
106
|
+
return false;
|
|
107
|
+
// Remove port if present and convert to lowercase
|
|
108
|
+
const hostWithoutPort = hostname.split(':')[0].toLowerCase();
|
|
109
|
+
return exemptDomains.some(pattern => {
|
|
110
|
+
// Wildcard pattern: *.example.com
|
|
111
|
+
if (pattern.startsWith('*.')) {
|
|
112
|
+
const suffix = pattern.slice(1); // Remove '*', keep '.example.com'
|
|
113
|
+
return hostWithoutPort.endsWith(suffix) || hostWithoutPort === pattern.slice(2);
|
|
114
|
+
}
|
|
115
|
+
// Exact match
|
|
116
|
+
return hostWithoutPort === pattern;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Check if HTTPS requirement should be bypassed for this host
|
|
121
|
+
*
|
|
122
|
+
* @param hostname - The hostname to check
|
|
123
|
+
* @returns true if HTTPS should not be enforced
|
|
124
|
+
*/
|
|
125
|
+
function shouldBypassHttps(hostname) {
|
|
126
|
+
return isIPAddress(hostname) || hasTrustedSuffix(hostname) || isExemptDomain(hostname);
|
|
127
|
+
}
|
|
48
128
|
/**
|
|
49
129
|
* Middleware to enforce HTTPS for specific routes in production
|
|
50
|
-
*
|
|
130
|
+
*
|
|
131
|
+
* Exempt from HTTPS requirement:
|
|
132
|
+
* - IP address access (internal/development patterns)
|
|
133
|
+
* - Trusted domain suffixes (.tunnel, .local, .internal, .localhost)
|
|
134
|
+
* - Custom domains via HTTPS_EXEMPT_DOMAINS environment variable
|
|
51
135
|
*
|
|
52
136
|
* @param req - Express request object
|
|
53
137
|
* @param res - Express response object
|
|
@@ -58,9 +142,9 @@ function httpsOnly(req, res, next) {
|
|
|
58
142
|
if (process.env.NODE_ENV !== 'production') {
|
|
59
143
|
return next();
|
|
60
144
|
}
|
|
61
|
-
//
|
|
145
|
+
// Check if this host should bypass HTTPS requirement
|
|
62
146
|
const host = req.get('host') || '';
|
|
63
|
-
if (
|
|
147
|
+
if (shouldBypassHttps(host)) {
|
|
64
148
|
return next();
|
|
65
149
|
}
|
|
66
150
|
// Check if request is secure (HTTPS)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpsOnly.js","sourceRoot":"","sources":["../../src/middleware/httpsOnly.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"httpsOnly.js","sourceRoot":"","sources":["../../src/middleware/httpsOnly.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;AAuBH,4CAQC;AAQD,kCA6BC;AAQD,4CAOC;AASD,wCAkBC;AAQD,8CAEC;AAcD,8BA6BC;AAUD,sCAmBC;AA5LD;;;GAGG;AACH,MAAM,wBAAwB,GAAG;IAC/B,SAAS,EAAO,oCAAoC;IACpD,QAAQ,EAAQ,4BAA4B;IAC5C,WAAW,EAAK,2BAA2B;IAC3C,YAAY,EAAI,uBAAuB;CACxC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,gBAAgB;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACpD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO,UAAU;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,yBAAyB;IACzB,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,gCAAgC;IAChC,MAAM,WAAW,GAAG,yBAAyB,CAAC;IAC9C,IAAI,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QACtC,+BAA+B;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sDAAsD;IACtD,qDAAqD;IACrD,+CAA+C;IAC/C,MAAM,WAAW,GAAG,4CAA4C,CAAC;IACjE,MAAM,mBAAmB,GAAG,OAAO,CAAC;IACpC,MAAM,iBAAiB,GAAG,8CAA8C,CAAC;IAEzE,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC;QACjC,mBAAmB,CAAC,IAAI,CAAC,eAAe,CAAC;QACzC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CACxC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,kDAAkD;IAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7D,OAAO,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACnF,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7C,kDAAkD;IAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAE7D,OAAO,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAClC,kCAAkC;QAClC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kCAAkC;YACnE,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,cAAc;QACd,OAAO,eAAe,KAAK,OAAO,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,QAAgB;IAChD,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,SAAS,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IACvE,mCAAmC;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qDAAqD;IACrD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACnC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,iDAAiD;IACjD,wEAAwE;IACxE,MAAM,QAAQ,GACZ,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,OAAO;QAC5C,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,KAAK,EAAE,gBAAgB;YACvB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,mEAAmE;SAC7E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;IAC3E,mCAAmC;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,6BAA6B;IAC7B,MAAM,QAAQ,GACZ,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,OAAO;QAC5C,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,oBAAoB;QACpB,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAChE,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentstudio",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.31",
|
|
4
4
|
"description": "AgentStudio - AI-powered agent workspace with Claude integration. One command to start your AI agent studio.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"engines": {
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"node-cron": "^4.2.1",
|
|
36
36
|
"posthog-node": "^5.21.1",
|
|
37
37
|
"proper-lockfile": "^4.1.2",
|
|
38
|
+
"tunely": "^0.1.0",
|
|
38
39
|
"undici": "^7.16.0",
|
|
39
40
|
"zod": "^3.22.2"
|
|
40
41
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-editor-DHKm5-VF.js";import{T as ae,a as re,b as W,c as E,d as te,e as A}from"./table-
|
|
1
|
+
import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-editor-DHKm5-VF.js";import{T as ae,a as re,b as W,c as E,d as te,e as A}from"./table-aiCRrLk5.js";import{u as le,d as ne,e as oe,f as de}from"./useAgents-BlQGwXjx.js";import{u as ie}from"./agents-D9dWnZr0.js";import{P as ce}from"./ProjectSelector-CION-PmR.js";import{U as xe}from"./UnifiedToolSelector-Bw-E7HW4.js";import{b as me,a as $}from"./index-1qMWEcRb.js";import{T as K}from"./ToolsList-C9LELdNX.js";import{u as ue}from"./tools-zTM46-tZ.js";import{g as ge,v as he,ag as z,J as Y,y as H,r as pe,ab as be,E as ye,a8 as fe,a3 as je,X as ve}from"./ui-components-BsYwJvCF.js";import"./syntax-highlighting-CnREyncB.js";import"./FileBrowser-Z9hLFPpv.js";const Ne=({value:t,onChange:u,disabled:i=!1})=>{const[h,b]=o.useState(typeof t=="string"?"custom":"preset"),v=n=>{b(n),u(n==="custom"?"":{type:"preset",preset:"claude_code"})},N=n=>{u({type:"preset",preset:t?.preset||"claude_code",append:n})},y=n=>{u(n)};return e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"提示词类型:"}),e.jsxs("div",{className:"flex space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>v("custom"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="custom"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"自定义"}),e.jsx("button",{type:"button",onClick:()=>v("preset"),disabled:i,className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${h==="preset"?"bg-blue-600 text-white":"bg-gray-200 text-gray-700 hover:bg-gray-300"} ${i?"opacity-50 cursor-not-allowed":""}`,children:"预设"})]})]}),h==="custom"&&e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"系统提示词"}),e.jsx("textarea",{value:typeof t=="string"?t:"",onChange:n=>y(n.target.value),disabled:i,rows:8,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"输入助手的系统提示词..."})]}),h==="preset"&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"预设类型"}),e.jsx("div",{className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-gray-50 dark:bg-gray-700 text-sm dark:text-white",children:"Claude Code 预设 (使用 Claude Code SDK 的默认提示词)"}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"所有预设都基于 Claude Code SDK 的默认提示词,通过追加内容来定制不同用途"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"追加提示词 (可选)"}),e.jsx("textarea",{value:t?.append||"",onChange:n=>N(n.target.value),disabled:i,rows:4,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 font-mono text-sm dark:bg-gray-700 dark:text-white",placeholder:"在预设提示词后追加自定义内容..."}),e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"这段内容将追加到 Claude Code 默认提示词的后面"})]})]})]})},Ue=()=>{const{t}=ue("pages"),{isMobile:u}=me(),{data:i,isLoading:h}=le(),b=ne(),v=oe(),N=de(),y=ie(),[n,f]=o.useState(null),[a,d]=o.useState({}),[c,k]=o.useState(!1),[J,w]=o.useState(!1),[R,x]=o.useState(null),[T,S]=o.useState(null),[p,X]=o.useState(""),[I,U]=o.useState(!1),[C,D]=o.useState([]),[j,P]=o.useState([]),[B,M]=o.useState(!1),[L,O]=o.useState({}),q=i?.agents||[],F=q.filter(s=>s.name.toLowerCase().includes(p.toLowerCase())||s.description.toLowerCase().includes(p.toLowerCase())),Z=s=>{if(T){const r=new URLSearchParams;r.set("project",s);const l=`/chat/${T.id}?${r.toString()}`;window.open(l,"_blank")}w(!1),S(null)},V=async s=>{try{await b.mutateAsync({agentId:s.id,data:{enabled:!s.enabled}}),y.invalidateQueries({queryKey:["agents"]})}catch(r){console.error("Failed to toggle agent:",r),$(t("agents.errors.toggleFailed"))}},G=s=>{f(s),d(s),k(!1);const r=s.allowedTools?.filter(g=>g.enabled).map(g=>g.name)||[],l=r.filter(g=>!g.startsWith("mcp__")),m=r.filter(g=>g.startsWith("mcp__"));D(l),P(m),M(m.length>0)},_=()=>{const s=q.find(m=>m.id==="general-chat"),r={id:`agent-${Date.now()}`,name:"",description:"",version:"1.0.0",systemPrompt:s?.systemPrompt||`You are a general-purpose AI assistant. You can help with:
|
|
2
2
|
- General questions and conversations
|
|
3
3
|
- Problem-solving and brainstorming
|
|
4
4
|
- Information and explanations
|
|
@@ -7,4 +7,4 @@ import{j as e}from"./data-structures-C0h9Oap1.js";import{r as o}from"./monaco-ed
|
|
|
7
7
|
- File operations when needed
|
|
8
8
|
|
|
9
9
|
You are helpful, harmless, and honest. Always strive to provide accurate and useful information.
|
|
10
|
-
Please respond in Chinese unless the user specifically requests another language.`,maxTurns:s?.maxTurns||void 0,permissionMode:s?.permissionMode||"bypassPermissions",allowedTools:s?.allowedTools||[{name:"Write",enabled:!0},{name:"Read",enabled:!0},{name:"Edit",enabled:!0},{name:"Glob",enabled:!0},{name:"MultiEdit",enabled:!0},{name:"Bash",enabled:!0},{name:"Task",enabled:!0},{name:"WebFetch",enabled:!0},{name:"WebSearch",enabled:!0}],ui:{icon:"🤖",headerTitle:"",headerDescription:""},author:"User",tags:["custom"],enabled:!0};f(null),d(r),k(!0);const l=r.allowedTools?.filter(m=>m.enabled).map(m=>m.name)||[];D(l),P([]),M(!1)},ee=()=>{const s=[...C];return B&&s.push(...j),s.map(l=>({name:l,enabled:!0}))},se=async()=>{if(!a||!a.name?.trim()){x(t("agents.form.nameRequired"));return}if(a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)){x(t("agents.form.maxTurnsError"));return}x(null);try{const s=ee();if(c){if(!a.id||a.id.trim()===""){x("请输入 Agent ID");return}if(!/^[a-zA-Z0-9_-]+$/.test(a.id)){x("ID 只能包含字母、数字、连字符和下划线");return}const l={...a,allowedTools:s,maxTurns:a.maxTurns,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),ui:{...a.ui,headerTitle:a.ui?.headerTitle||a.name,headerDescription:a.ui?.headerDescription||a.description}};await N.mutateAsync(l)}else{if(!n)return;const r={...a,allowedTools:s,maxTurns:a.maxTurns!==void 0?a.maxTurns:null,enabled:n.enabled};await b.mutateAsync({agentId:n.id,data:r})}f(null),d({}),k(!1),x(null),y.invalidateQueries({queryKey:["agents"]})}catch(s){console.error("Failed to save agent:",s);let r=t(c?"agents.errors.createFailed":"agents.errors.saveFailed");if(s?.response?.data?.details?.issues?.length>0){const l=s.response.data.details.issues[0];l.path.includes("maxTurns")&&l.code==="too_big"?r=t("agents.form.maxTurnsExceeded",{maximum:l.maximum}):r=l.message||r}else s?.response?.data?.error?r=s.response.data.error:s?.message&&(r=s.message);x(r)}},Q=async s=>{if(console.log("🗑️ [FRONTEND DEBUG] Attempting to delete agent:",{id:s.id,name:s.name,author:s.author}),s.author==="System"){console.log(`🛑 [FRONTEND DEBUG] Blocked deletion of system agent: ${s.id}`),$("System agents cannot be deleted");return}if(!window.confirm(t("agents.confirmDelete",{name:s.name}))){console.log("❌ [FRONTEND DEBUG] User cancelled deletion");return}console.log("✅ [FRONTEND DEBUG] User confirmed deletion, calling API...");try{await v.mutateAsync(s.id),console.log("✅ [FRONTEND DEBUG] Delete API call successful"),y.invalidateQueries({queryKey:["agents"]}),console.log("🔄 [FRONTEND DEBUG] Invalidated agents query")}catch(l){console.error("❌ [FRONTEND DEBUG] Failed to delete agent:",l),$(t("agents.errors.deleteFailed"))}};return h?e.jsx("div",{className:"p-8 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:t("agents.loading")})]})}):e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:t("agents.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:t("agents.subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ge,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx("input",{type:"text",placeholder:t("agents.searchPlaceholder"),value:p,onChange:s=>X(s.target.value),className:"pl-10 pr-4 py-3 w-full border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white"})]}),e.jsxs("button",{onClick:_,className:"flex items-center space-x-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap",children:[e.jsx(he,{className:"w-5 h-5"}),e.jsx("span",{children:t("agents.createButton")})]})]})]}),F.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"🤖"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:t(p?"agents.noAgentsSearch":"agents.noAgents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(p?"agents.adjustSearch":"agents.createFirst")}),!p&&e.jsx("button",{onClick:_,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:t("agents.createButton")})]}):e.jsxs(e.Fragment,{children:[u&&e.jsx("div",{className:"space-y-4",children:F.map(s=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("div",{className:"flex items-start space-x-3 mb-4",children:[e.jsx("div",{className:`text-2xl ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:`text-base font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("p",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate mt-1`,children:s.description})]})]}),e.jsx("div",{className:"space-y-2 text-sm mb-4",children:e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:"工具:"}),e.jsx("div",{className:"flex-1",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:O,setExpandedTools:L,isMobile:!0,emptyMessage:"未启用工具"})})]})})}),e.jsxs("div",{className:"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 pt-3",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})]},s.id))}),!u&&e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:e.jsxs(ae,{children:[e.jsx(re,{children:e.jsxs(W,{children:[e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.agent")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.config")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-96",children:"工具"}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.actions")})]})}),e.jsx(te,{children:F.map(s=>e.jsxs(W,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(A,{className:"px-6 py-4 whitespace-nowrap w-48",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`text-2xl mr-4 ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:`text-sm font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("div",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate`,children:s.description})]})]})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-white w-48",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(pe,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["最大轮次: ",s.maxTurns!==void 0?s.maxTurns:"不限制"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(be,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["权限: ",s.permissionMode==="default"?"默认":s.permissionMode==="acceptEdits"?"自动接受编辑":s.permissionMode==="bypassPermissions"?"绕过权限":s.permissionMode==="plan"?"规划模式":"默认"]})]})]})}),e.jsx(A,{className:"px-6 py-4 w-96",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:O,setExpandedTools:L,isMobile:!1,emptyMessage:"未启用工具"})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium w-48",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md transition-colors hover:opacity-90",title:"开始使用助手",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>V(s),className:`p-1 rounded transition-colors ${s.enabled?"text-green-600 hover:bg-green-50 dark:hover:bg-green-900/50":"text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:s.enabled?"禁用助手":"启用助手",children:s.enabled?e.jsx(ye,{className:"w-4 h-4"}):e.jsx(fe,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded transition-colors",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})})]},s.id))})]})})]}),(n||c)&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg max-w-4xl w-full max-h-[90vh] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h1",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:c?"创建助手":`编辑助手:${n?.name}`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("button",{onClick:se,disabled:b.isPending||N.isPending,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:[e.jsx(je,{className:"w-4 h-4"}),e.jsx("span",{children:"保存"})]}),e.jsxs("button",{onClick:()=>{f(null),d({}),k(!1),x(null)},className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(ve,{className:"w-4 h-4"}),e.jsx("span",{children:"取消"})]})]})]}),R&&e.jsx("div",{className:"p-4 bg-red-50 dark:bg-red-900/50 border-b border-red-200 dark:border-red-800",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:e.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-red-800 dark:text-red-200",children:R})})]})}),e.jsx("div",{className:"p-6 overflow-y-auto max-h-[calc(90vh-80px)]",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"ID"}),e.jsx("input",{type:"text",value:a.id||"",onChange:s=>d({...a,id:s.target.value}),disabled:!c,placeholder:c?"例如: my-custom-agent":"ID 在编辑模式下不可修改",className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white ${c?"border-gray-300 dark:border-gray-600":"bg-gray-100 border-gray-300 text-gray-500 cursor-not-allowed"}`}),c&&e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"ID 用于唯一标识这个助手,只能包含字母、数字和连字符"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"名称"}),e.jsx("input",{type:"text",value:a.name||"",onChange:s=>d({...a,name:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"描述"}),e.jsx("textarea",{value:a.description||"",onChange:s=>d({...a,description:s.target.value}),rows:6,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"最大轮次"}),e.jsx("input",{type:"number",min:"1",max:"100",value:a.maxTurns!==void 0?a.maxTurns:"",placeholder:"不限制",onChange:s=>{const r=s.target.value;if(r==="")d({...a,maxTurns:void 0});else{const l=parseInt(r);isNaN(l)||d({...a,maxTurns:l})}},className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 dark:bg-gray-700 dark:text-white ${a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)?"border-red-500 focus:ring-red-500":"border-gray-300 dark:border-gray-600 focus:ring-blue-500"}`}),a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)&&e.jsx("p",{className:"text-red-500 dark:text-red-400 text-sm mt-1",children:"最大轮次必须在1-100之间"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"权限模式"}),e.jsxs("select",{value:a.permissionMode||"default",onChange:s=>d({...a,permissionMode:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",children:[e.jsx("option",{value:"default",children:"默认"}),e.jsx("option",{value:"acceptEdits",children:"自动接受编辑"}),e.jsx("option",{value:"bypassPermissions",children:"绕过权限检查"}),e.jsx("option",{value:"plan",children:"规划模式"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"图标"}),e.jsx("input",{type:"text",value:a.ui?.icon||"",onChange:s=>d({...a,ui:{...a.ui,icon:s.target.value}}),placeholder:"🤖",className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"启用的工具"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>U(!I),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:"选择工具"}),(C.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:["常规工具 ",C.length," 个",j.length>0&&`, MCP工具 ${j.length} 个`]}),e.jsx(xe,{isOpen:I,onClose:()=>U(!1),selectedRegularTools:C,onRegularToolsChange:D,selectedMcpTools:j,onMcpToolsChange:P,mcpToolsEnabled:B,onMcpEnabledChange:M})]})]}),e.jsx("div",{children:e.jsx(Ne,{value:a.systemPrompt||"",onChange:s=>d({...a,systemPrompt:s}),disabled:n?.id==="claude-code"})})]})})]})}),J&&T&&e.jsx(ce,{agent:T,onProjectSelect:Z,onClose:()=>{w(!1),S(null)}})]})};export{Ue as AgentsPage};
|
|
10
|
+
Please respond in Chinese unless the user specifically requests another language.`,maxTurns:s?.maxTurns||void 0,permissionMode:s?.permissionMode||"bypassPermissions",allowedTools:s?.allowedTools||[{name:"Write",enabled:!0},{name:"Read",enabled:!0},{name:"Edit",enabled:!0},{name:"Glob",enabled:!0},{name:"MultiEdit",enabled:!0},{name:"Bash",enabled:!0},{name:"Task",enabled:!0},{name:"WebFetch",enabled:!0},{name:"WebSearch",enabled:!0}],ui:{icon:"🤖",headerTitle:"",headerDescription:""},author:"User",tags:["custom"],enabled:!0};f(null),d(r),k(!0);const l=r.allowedTools?.filter(m=>m.enabled).map(m=>m.name)||[];D(l),P([]),M(!1)},ee=()=>{const s=[...C];return B&&s.push(...j),s.map(l=>({name:l,enabled:!0}))},se=async()=>{if(!a||!a.name?.trim()){x(t("agents.form.nameRequired"));return}if(a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)){x(t("agents.form.maxTurnsError"));return}x(null);try{const s=ee();if(c){if(!a.id||a.id.trim()===""){x("请输入 Agent ID");return}if(!/^[a-zA-Z0-9_-]+$/.test(a.id)){x("ID 只能包含字母、数字、连字符和下划线");return}const l={...a,allowedTools:s,maxTurns:a.maxTurns,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),ui:{...a.ui,headerTitle:a.ui?.headerTitle||a.name,headerDescription:a.ui?.headerDescription||a.description}};await N.mutateAsync(l)}else{if(!n)return;const r={...a,allowedTools:s,maxTurns:a.maxTurns!==void 0?a.maxTurns:null,enabled:n.enabled};await b.mutateAsync({agentId:n.id,data:r})}f(null),d({}),k(!1),x(null),y.invalidateQueries({queryKey:["agents"]})}catch(s){console.error("Failed to save agent:",s);let r=t(c?"agents.errors.createFailed":"agents.errors.saveFailed");if(s?.response?.data?.details?.issues?.length>0){const l=s.response.data.details.issues[0];l.path.includes("maxTurns")&&l.code==="too_big"?r=t("agents.form.maxTurnsExceeded",{maximum:l.maximum}):r=l.message||r}else s?.response?.data?.error?r=s.response.data.error:s?.message&&(r=s.message);x(r)}},Q=async s=>{if(console.log("🗑️ [FRONTEND DEBUG] Attempting to delete agent:",{id:s.id,name:s.name,author:s.author}),s.author==="System"){console.log(`🛑 [FRONTEND DEBUG] Blocked deletion of system agent: ${s.id}`),$("System agents cannot be deleted");return}if(!window.confirm(t("agents.confirmDelete",{name:s.name}))){console.log("❌ [FRONTEND DEBUG] User cancelled deletion");return}console.log("✅ [FRONTEND DEBUG] User confirmed deletion, calling API...");try{await v.mutateAsync(s.id),console.log("✅ [FRONTEND DEBUG] Delete API call successful"),y.invalidateQueries({queryKey:["agents"]}),console.log("🔄 [FRONTEND DEBUG] Invalidated agents query")}catch(l){console.error("❌ [FRONTEND DEBUG] Failed to delete agent:",l),$(t("agents.errors.deleteFailed"))}};return h?e.jsx("div",{className:"p-8 flex items-center justify-center",children:e.jsxs("div",{className:"text-center",children:[e.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto mb-4"}),e.jsx("div",{className:"text-gray-600 dark:text-gray-400",children:t("agents.loading")})]})}):e.jsxs("div",{className:"p-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("div",{className:"flex items-center justify-between mb-6",children:e.jsxs("div",{children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white",children:t("agents.title")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mt-2",children:t("agents.subtitle")})]})}),e.jsxs("div",{className:"flex items-center space-x-4",children:[e.jsxs("div",{className:"flex-1 relative",children:[e.jsx(ge,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-5 h-5"}),e.jsx("input",{type:"text",placeholder:t("agents.searchPlaceholder"),value:p,onChange:s=>X(s.target.value),className:"pl-10 pr-4 py-3 w-full border border-gray-300 dark:border-gray-600 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent dark:bg-gray-700 dark:text-white"})]}),e.jsxs("button",{onClick:_,className:"flex items-center space-x-2 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors whitespace-nowrap",children:[e.jsx(he,{className:"w-5 h-5"}),e.jsx("span",{children:t("agents.createButton")})]})]})]}),F.length===0?e.jsxs("div",{className:"text-center py-16 bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700",children:[e.jsx("div",{className:"text-6xl mb-4",children:"🤖"}),e.jsx("h3",{className:"text-xl font-medium text-gray-900 dark:text-white mb-2",children:t(p?"agents.noAgentsSearch":"agents.noAgents")}),e.jsx("p",{className:"text-gray-600 dark:text-gray-400 mb-6",children:t(p?"agents.adjustSearch":"agents.createFirst")}),!p&&e.jsx("button",{onClick:_,className:"px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-colors",children:t("agents.createButton")})]}):e.jsxs(e.Fragment,{children:[u&&e.jsx("div",{className:"space-y-4",children:F.map(s=>e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 p-4",children:[e.jsxs("div",{className:"flex items-start space-x-3 mb-4",children:[e.jsx("div",{className:`text-2xl ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h3",{className:`text-base font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("p",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate mt-1`,children:s.description})]})]}),e.jsx("div",{className:"space-y-2 text-sm mb-4",children:e.jsx("div",{className:"mb-3",children:e.jsxs("div",{className:"flex items-start text-sm",children:[e.jsx("span",{className:"text-gray-500 dark:text-gray-400 mr-2 mt-1",children:"工具:"}),e.jsx("div",{className:"flex-1",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:L,setExpandedTools:O,isMobile:!0,emptyMessage:"未启用工具"})})]})})}),e.jsxs("div",{className:"flex items-center justify-between border-t border-gray-200 dark:border-gray-700 pt-3",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})]},s.id))}),!u&&e.jsx("div",{className:"bg-white dark:bg-gray-800 rounded-lg border border-gray-200 dark:border-gray-700 overflow-hidden",children:e.jsxs(ae,{children:[e.jsx(re,{children:e.jsxs(W,{children:[e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.agent")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.config")}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-96",children:"工具"}),e.jsx(E,{className:"px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider w-48",children:t("agents.table.actions")})]})}),e.jsx(te,{children:F.map(s=>e.jsxs(W,{className:"hover:bg-gray-50 dark:hover:bg-gray-700/50 transition-colors",children:[e.jsx(A,{className:"px-6 py-4 whitespace-nowrap w-48",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:`text-2xl mr-4 ${s.enabled?"":"opacity-50"}`,children:s.ui.icon}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("div",{className:`text-sm font-medium ${s.enabled?"text-gray-900 dark:text-white":"text-gray-600 dark:text-gray-400"} truncate`,children:s.name}),e.jsx("div",{className:`text-sm ${s.enabled?"text-gray-500 dark:text-gray-400":"text-gray-400 dark:text-gray-500"} truncate`,children:s.description})]})]})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-white w-48",children:e.jsxs("div",{className:"space-y-1",children:[e.jsxs("div",{className:"flex items-center",children:[e.jsx(pe,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["最大轮次: ",s.maxTurns!==void 0?s.maxTurns:"不限制"]})]}),e.jsxs("div",{className:"flex items-center",children:[e.jsx(be,{className:"w-3 h-3 mr-1 text-gray-400"}),e.jsxs("span",{children:["权限: ",s.permissionMode==="default"?"默认":s.permissionMode==="acceptEdits"?"自动接受编辑":s.permissionMode==="bypassPermissions"?"绕过权限":s.permissionMode==="plan"?"规划模式":"默认"]})]})]})}),e.jsx(A,{className:"px-6 py-4 w-96",children:e.jsx(K,{tools:s.allowedTools?.filter(r=>r.enabled).map(r=>r.name)||[],id:s.id,expandedTools:L,setExpandedTools:O,isMobile:!1,emptyMessage:"未启用工具"})}),e.jsx(A,{className:"px-6 py-4 whitespace-nowrap text-right text-sm font-medium w-48",children:e.jsxs("div",{className:"flex items-center space-x-2",children:[s.enabled&&e.jsxs("button",{onClick:()=>{S(s),w(!0)},className:"flex items-center space-x-1 px-3 py-1 text-xs text-primary-foreground bg-primary rounded-md transition-colors hover:opacity-90",title:"开始使用助手",children:[e.jsx(z,{className:"w-3 h-3"}),e.jsx("span",{children:"使用"})]}),e.jsx("button",{onClick:()=>V(s),className:`p-1 rounded transition-colors ${s.enabled?"text-green-600 hover:bg-green-50 dark:hover:bg-green-900/50":"text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-700"}`,title:s.enabled?"禁用助手":"启用助手",children:s.enabled?e.jsx(ye,{className:"w-4 h-4"}):e.jsx(fe,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>G(s),className:"p-1 text-blue-600 hover:bg-blue-50 dark:hover:bg-blue-900/50 rounded transition-colors",title:"编辑助手",children:e.jsx(Y,{className:"w-4 h-4"})}),e.jsx("button",{onClick:()=>Q(s),className:"p-1 text-red-600 hover:bg-red-50 dark:hover:bg-red-900/50 rounded transition-colors",title:"删除助手",disabled:s.author==="System",children:e.jsx(H,{className:"w-4 h-4"})})]})})]},s.id))})]})})]}),(n||c)&&e.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 p-4",children:e.jsxs("div",{className:"bg-white dark:bg-gray-800 rounded-lg max-w-4xl w-full max-h-[90vh] overflow-hidden",children:[e.jsxs("div",{className:"flex items-center justify-between p-6 border-b border-gray-200 dark:border-gray-700",children:[e.jsx("h1",{className:"text-xl font-semibold text-gray-900 dark:text-white",children:c?"创建助手":`编辑助手:${n?.name}`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsxs("button",{onClick:se,disabled:b.isPending||N.isPending,className:"flex items-center space-x-2 px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50",children:[e.jsx(je,{className:"w-4 h-4"}),e.jsx("span",{children:"保存"})]}),e.jsxs("button",{onClick:()=>{f(null),d({}),k(!1),x(null)},className:"flex items-center space-x-2 px-4 py-2 border border-gray-300 dark:border-gray-600 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-700",children:[e.jsx(ve,{className:"w-4 h-4"}),e.jsx("span",{children:"取消"})]})]})]}),R&&e.jsx("div",{className:"p-4 bg-red-50 dark:bg-red-900/50 border-b border-red-200 dark:border-red-800",children:e.jsxs("div",{className:"flex items-center",children:[e.jsx("div",{className:"flex-shrink-0",children:e.jsx("svg",{className:"h-5 w-5 text-red-400",viewBox:"0 0 20 20",fill:"currentColor",children:e.jsx("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z",clipRule:"evenodd"})})}),e.jsx("div",{className:"ml-3",children:e.jsx("p",{className:"text-sm text-red-800 dark:text-red-200",children:R})})]})}),e.jsx("div",{className:"p-6 overflow-y-auto max-h-[calc(90vh-80px)]",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"ID"}),e.jsx("input",{type:"text",value:a.id||"",onChange:s=>d({...a,id:s.target.value}),disabled:!c,placeholder:c?"例如: my-custom-agent":"ID 在编辑模式下不可修改",className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white ${c?"border-gray-300 dark:border-gray-600":"bg-gray-100 border-gray-300 text-gray-500 cursor-not-allowed"}`}),c&&e.jsx("p",{className:"mt-1 text-xs text-gray-500 dark:text-gray-400",children:"ID 用于唯一标识这个助手,只能包含字母、数字和连字符"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"名称"}),e.jsx("input",{type:"text",value:a.name||"",onChange:s=>d({...a,name:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"描述"}),e.jsx("textarea",{value:a.description||"",onChange:s=>d({...a,description:s.target.value}),rows:6,className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})]}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"最大轮次"}),e.jsx("input",{type:"number",min:"1",max:"100",value:a.maxTurns!==void 0?a.maxTurns:"",placeholder:"不限制",onChange:s=>{const r=s.target.value;if(r==="")d({...a,maxTurns:void 0});else{const l=parseInt(r);isNaN(l)||d({...a,maxTurns:l})}},className:`w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 dark:bg-gray-700 dark:text-white ${a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)?"border-red-500 focus:ring-red-500":"border-gray-300 dark:border-gray-600 focus:ring-blue-500"}`}),a.maxTurns!==void 0&&(a.maxTurns<1||a.maxTurns>100)&&e.jsx("p",{className:"text-red-500 dark:text-red-400 text-sm mt-1",children:"最大轮次必须在1-100之间"})]}),e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"权限模式"}),e.jsxs("select",{value:a.permissionMode||"default",onChange:s=>d({...a,permissionMode:s.target.value}),className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white",children:[e.jsx("option",{value:"default",children:"默认"}),e.jsx("option",{value:"acceptEdits",children:"自动接受编辑"}),e.jsx("option",{value:"bypassPermissions",children:"绕过权限检查"}),e.jsx("option",{value:"plan",children:"规划模式"})]})]}),e.jsx("div",{className:"grid grid-cols-2 gap-4",children:e.jsxs("div",{children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1",children:"图标"}),e.jsx("input",{type:"text",value:a.ui?.icon||"",onChange:s=>d({...a,ui:{...a.ui,icon:s.target.value}}),placeholder:"🤖",className:"w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 dark:bg-gray-700 dark:text-white"})]})})]})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"block text-sm font-medium text-gray-700 dark:text-gray-300",children:"启用的工具"}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("button",{type:"button",onClick:()=>U(!I),className:"px-3 py-2 bg-gray-100 dark:bg-gray-700 hover:bg-gray-200 dark:hover:bg-gray-600 text-gray-700 dark:text-gray-300 rounded-lg transition-colors text-sm",children:"选择工具"}),(C.length>0||j.length>0)&&e.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:["常规工具 ",C.length," 个",j.length>0&&`, MCP工具 ${j.length} 个`]}),e.jsx(xe,{isOpen:I,onClose:()=>U(!1),selectedRegularTools:C,onRegularToolsChange:D,selectedMcpTools:j,onMcpToolsChange:P,mcpToolsEnabled:B,onMcpEnabledChange:M})]})]}),e.jsx("div",{children:e.jsx(Ne,{value:a.systemPrompt||"",onChange:s=>d({...a,systemPrompt:s}),disabled:n?.id==="claude-code"})})]})})]})}),J&&T&&e.jsx(ce,{agent:T,onProjectSelect:Z,onClose:()=>{w(!1),S(null)}})]})};export{Ue as AgentsPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as s}from"./data-structures-C0h9Oap1.js";import{W as d}from"./monaco-editor-DHKm5-VF.js";import{t as i,h as u}from"./index-
|
|
1
|
+
import{j as s}from"./data-structures-C0h9Oap1.js";import{W as d}from"./monaco-editor-DHKm5-VF.js";import{t as i,h as u}from"./index-1qMWEcRb.js";function c(...o){return i(u(o))}const f=d.forwardRef(({className:o,variant:e="default",size:r="default",...t},n)=>s.jsx("button",{className:c("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",{"bg-primary text-primary-foreground hover:bg-primary/90":e==="default","bg-destructive text-destructive-foreground hover:bg-destructive/90":e==="destructive","border border-input bg-background hover:bg-accent hover:text-accent-foreground":e==="outline","bg-secondary text-secondary-foreground hover:bg-secondary/80":e==="secondary","hover:bg-accent hover:text-accent-foreground":e==="ghost"},{"h-10 px-4 py-2":r==="default","h-9 rounded-md px-3":r==="sm","h-11 rounded-md px-8":r==="lg","h-10 w-10":r==="icon"},o),ref:n,...t}));f.displayName="Button";export{f as B,c};
|