@caoruhua/open-claude-remote 0.1.7 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +514 -11
  2. package/dist/backend/src/api/config-routes.d.ts +2 -2
  3. package/dist/backend/src/api/config-routes.d.ts.map +1 -1
  4. package/dist/backend/src/api/config-routes.js +21 -6
  5. package/dist/backend/src/api/config-routes.js.map +1 -1
  6. package/dist/backend/src/api/health-routes.d.ts +4 -1
  7. package/dist/backend/src/api/health-routes.d.ts.map +1 -1
  8. package/dist/backend/src/api/health-routes.js +20 -2
  9. package/dist/backend/src/api/health-routes.js.map +1 -1
  10. package/dist/backend/src/api/hook-routes.d.ts +2 -2
  11. package/dist/backend/src/api/hook-routes.d.ts.map +1 -1
  12. package/dist/backend/src/api/hook-routes.js +10 -3
  13. package/dist/backend/src/api/hook-routes.js.map +1 -1
  14. package/dist/backend/src/api/instance-routes.d.ts +5 -3
  15. package/dist/backend/src/api/instance-routes.d.ts.map +1 -1
  16. package/dist/backend/src/api/instance-routes.js +48 -45
  17. package/dist/backend/src/api/instance-routes.js.map +1 -1
  18. package/dist/backend/src/api/router.d.ts +4 -12
  19. package/dist/backend/src/api/router.d.ts.map +1 -1
  20. package/dist/backend/src/api/router.js +28 -20
  21. package/dist/backend/src/api/router.js.map +1 -1
  22. package/dist/backend/src/api/status-routes.d.ts +2 -2
  23. package/dist/backend/src/api/status-routes.d.ts.map +1 -1
  24. package/dist/backend/src/api/status-routes.js +11 -6
  25. package/dist/backend/src/api/status-routes.js.map +1 -1
  26. package/dist/backend/src/attach.d.ts +1 -1
  27. package/dist/backend/src/attach.d.ts.map +1 -1
  28. package/dist/backend/src/attach.js +25 -71
  29. package/dist/backend/src/attach.js.map +1 -1
  30. package/dist/backend/src/cli-utils.d.ts +24 -1
  31. package/dist/backend/src/cli-utils.d.ts.map +1 -1
  32. package/dist/backend/src/cli-utils.js +73 -37
  33. package/dist/backend/src/cli-utils.js.map +1 -1
  34. package/dist/backend/src/cli.d.ts +22 -2
  35. package/dist/backend/src/cli.d.ts.map +1 -1
  36. package/dist/backend/src/cli.js +328 -23
  37. package/dist/backend/src/cli.js.map +1 -1
  38. package/dist/backend/src/config.d.ts +48 -15
  39. package/dist/backend/src/config.d.ts.map +1 -1
  40. package/dist/backend/src/config.js +124 -24
  41. package/dist/backend/src/config.js.map +1 -1
  42. package/dist/backend/src/daemon/daemon-client.d.ts +69 -0
  43. package/dist/backend/src/daemon/daemon-client.d.ts.map +1 -0
  44. package/dist/backend/src/daemon/daemon-client.js +209 -0
  45. package/dist/backend/src/daemon/daemon-client.js.map +1 -0
  46. package/dist/backend/src/daemon/daemon-entry.d.ts +8 -0
  47. package/dist/backend/src/daemon/daemon-entry.d.ts.map +1 -0
  48. package/dist/backend/src/daemon/daemon-entry.js +37 -0
  49. package/dist/backend/src/daemon/daemon-entry.js.map +1 -0
  50. package/dist/backend/src/daemon/daemon-launcher.d.ts +13 -0
  51. package/dist/backend/src/daemon/daemon-launcher.d.ts.map +1 -0
  52. package/dist/backend/src/daemon/daemon-launcher.js +62 -0
  53. package/dist/backend/src/daemon/daemon-launcher.js.map +1 -0
  54. package/dist/backend/src/index.d.ts.map +1 -1
  55. package/dist/backend/src/index.js +115 -251
  56. package/dist/backend/src/index.js.map +1 -1
  57. package/dist/backend/src/instance/index.d.ts +4 -0
  58. package/dist/backend/src/instance/index.d.ts.map +1 -0
  59. package/dist/backend/src/instance/index.js +3 -0
  60. package/dist/backend/src/instance/index.js.map +1 -0
  61. package/dist/backend/src/instance/instance-manager.d.ts +62 -0
  62. package/dist/backend/src/instance/instance-manager.d.ts.map +1 -0
  63. package/dist/backend/src/instance/instance-manager.js +194 -0
  64. package/dist/backend/src/instance/instance-manager.js.map +1 -0
  65. package/dist/backend/src/instance/instance-session.d.ts +87 -0
  66. package/dist/backend/src/instance/instance-session.d.ts.map +1 -0
  67. package/dist/backend/src/instance/instance-session.js +359 -0
  68. package/dist/backend/src/instance/instance-session.js.map +1 -0
  69. package/dist/backend/src/instance/types.d.ts +39 -0
  70. package/dist/backend/src/instance/types.d.ts.map +1 -0
  71. package/dist/backend/src/instance/types.js +2 -0
  72. package/dist/backend/src/instance/types.js.map +1 -0
  73. package/dist/backend/src/notification/notification-manager.js +1 -1
  74. package/dist/backend/src/notification/notification-manager.js.map +1 -1
  75. package/dist/backend/src/notification/notification-service-factory.js +1 -1
  76. package/dist/backend/src/notification/notification-service-factory.js.map +1 -1
  77. package/dist/backend/src/pty/virtual-pty.d.ts.map +1 -1
  78. package/dist/backend/src/pty/virtual-pty.js +6 -0
  79. package/dist/backend/src/pty/virtual-pty.js.map +1 -1
  80. package/dist/backend/src/registry/shared-token.d.ts +2 -2
  81. package/dist/backend/src/registry/shared-token.js +11 -11
  82. package/dist/backend/src/registry/shared-token.js.map +1 -1
  83. package/dist/backend/src/registry/stop-instances.d.ts +0 -25
  84. package/dist/backend/src/registry/stop-instances.d.ts.map +1 -1
  85. package/dist/backend/src/registry/stop-instances.js +6 -206
  86. package/dist/backend/src/registry/stop-instances.js.map +1 -1
  87. package/dist/backend/src/skills/index.d.ts +4 -0
  88. package/dist/backend/src/skills/index.d.ts.map +1 -0
  89. package/dist/backend/src/skills/index.js +4 -0
  90. package/dist/backend/src/skills/index.js.map +1 -0
  91. package/dist/backend/src/skills/skill-command-merger.d.ts +32 -0
  92. package/dist/backend/src/skills/skill-command-merger.d.ts.map +1 -0
  93. package/dist/backend/src/skills/skill-command-merger.js +78 -0
  94. package/dist/backend/src/skills/skill-command-merger.js.map +1 -0
  95. package/dist/backend/src/skills/skill-commands.d.ts +25 -0
  96. package/dist/backend/src/skills/skill-commands.d.ts.map +1 -0
  97. package/dist/backend/src/skills/skill-commands.js +56 -0
  98. package/dist/backend/src/skills/skill-commands.js.map +1 -0
  99. package/dist/backend/src/skills/skill-scanner.d.ts +36 -0
  100. package/dist/backend/src/skills/skill-scanner.d.ts.map +1 -0
  101. package/dist/backend/src/skills/skill-scanner.js +143 -0
  102. package/dist/backend/src/skills/skill-scanner.js.map +1 -0
  103. package/dist/backend/src/terminal/terminal-relay.d.ts +1 -0
  104. package/dist/backend/src/terminal/terminal-relay.d.ts.map +1 -1
  105. package/dist/backend/src/terminal/terminal-relay.js +6 -0
  106. package/dist/backend/src/terminal/terminal-relay.js.map +1 -1
  107. package/dist/backend/src/update.d.ts.map +1 -1
  108. package/dist/backend/src/update.js +46 -1
  109. package/dist/backend/src/update.js.map +1 -1
  110. package/dist/backend/src/utils/banner.d.ts +15 -0
  111. package/dist/backend/src/utils/banner.d.ts.map +1 -0
  112. package/dist/backend/src/utils/banner.js +95 -0
  113. package/dist/backend/src/utils/banner.js.map +1 -0
  114. package/dist/backend/src/ws/ws-server.d.ts +13 -54
  115. package/dist/backend/src/ws/ws-server.d.ts.map +1 -1
  116. package/dist/backend/src/ws/ws-server.js +57 -155
  117. package/dist/backend/src/ws/ws-server.js.map +1 -1
  118. package/dist/shared/constants.d.ts +2 -1
  119. package/dist/shared/constants.d.ts.map +1 -1
  120. package/dist/shared/constants.js +2 -1
  121. package/dist/shared/constants.js.map +1 -1
  122. package/dist/shared/defaults.d.ts.map +1 -1
  123. package/dist/shared/defaults.js +1 -5
  124. package/dist/shared/defaults.js.map +1 -1
  125. package/dist/shared/instance.d.ts +4 -9
  126. package/dist/shared/instance.d.ts.map +1 -1
  127. package/dist/shared/instance.js +0 -2
  128. package/dist/shared/instance.js.map +1 -1
  129. package/frontend-dist/assets/index-CM2xfmS8.js +152 -0
  130. package/frontend-dist/index.html +1 -1
  131. package/package.json +2 -2
  132. package/frontend-dist/assets/index-Cfhr3h3e.js +0 -152
@@ -1,210 +1,116 @@
1
- import { WebSocketServer, WebSocket } from 'ws';
1
+ import { WebSocketServer } from 'ws';
2
2
  import { WS_HEARTBEAT_INTERVAL_MS, MAX_WS_MESSAGE_SIZE } from '../../../shared/index.js';
3
3
  import { logger } from '../logger/logger.js';
4
4
  /**
5
- * WebSocket server with session-based auth and heartbeat.
6
- * 支持双重认证:
7
- * 1. Cookie Session 认证(现有)
8
- * 2. URL 参数 ?token=xxx 认证(用于 attach 命令)
5
+ * WebSocket server with instance-based routing.
6
+ * URL pattern: /ws/:instanceId
7
+ * Authentication: Cookie Session or ?token=xxx
8
+ *
9
+ * Each WS connection is routed to the corresponding InstanceSession,
10
+ * which manages its own client set and message handling.
9
11
  */
10
12
  export class WsServer {
11
13
  httpServer;
12
14
  authModule;
13
15
  wss;
14
- clients = new Set();
15
16
  heartbeatInterval = null;
16
- messageHandler = null;
17
- connectHandler = null;
18
- disconnectHandler = null;
19
- upgradeClientTypes = new WeakMap();
17
+ instanceManager = null;
20
18
  constructor(httpServer, authModule) {
21
19
  this.httpServer = httpServer;
22
20
  this.authModule = authModule;
23
21
  this.wss = new WebSocketServer({ noServer: true, maxPayload: MAX_WS_MESSAGE_SIZE });
24
22
  this.setupUpgrade();
25
- this.setupConnection();
26
23
  this.startHeartbeat();
27
24
  }
28
25
  /**
29
- * Set a handler for incoming messages from clients.
26
+ * Inject InstanceManager for routing WS connections.
30
27
  */
31
- onMessage(handler) {
32
- this.messageHandler = handler;
28
+ setInstanceManager(manager) {
29
+ this.instanceManager = manager;
33
30
  }
34
31
  /**
35
- * Set a handler for new client connections.
36
- */
37
- onConnect(handler) {
38
- this.connectHandler = handler;
39
- }
40
- /**
41
- * Set a handler for client disconnections (after client is removed from set).
42
- */
43
- onDisconnect(handler) {
44
- this.disconnectHandler = handler;
45
- }
46
- /**
47
- * HTTP upgrade → authenticate via cookie or token, then establish WS.
48
- * 支持两种认证方式:
49
- * 1. Cookie Session 认证(现有流程)
50
- * 2. URL 参数 ?token=xxx 认证(用于 attach 命令)
32
+ * HTTP upgrade authenticate route to InstanceSession.
33
+ * URL: /ws/:instanceId
51
34
  */
52
35
  setupUpgrade() {
53
36
  this.httpServer.on('upgrade', (req, socket, head) => {
54
- // Only handle /ws path for WebSocket upgrades
55
37
  const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
56
38
  const pathname = url.pathname;
57
- if (pathname !== '/ws') {
39
+ // Parse /ws/:instanceId - instanceId is required
40
+ const match = pathname.match(/^\/ws\/([^/]+)$/);
41
+ if (!match) {
42
+ logger.warn({ url: req.url }, 'WS upgrade rejected: invalid path (expected /ws/:instanceId)');
43
+ socket.write('HTTP/1.1 400 Bad Request\r\n\r\n');
58
44
  socket.destroy();
59
45
  return;
60
46
  }
61
- // 方式 1: 检查 URL 参数中的 token(attach 客户端)
47
+ const instanceId = match[1];
48
+ let clientType = 'webapp';
49
+ // Auth method 1: URL token param (for attach clients)
62
50
  const tokenParam = url.searchParams.get('token');
63
51
  if (tokenParam) {
64
52
  if (!this.authModule.verifyToken(tokenParam)) {
53
+ logger.warn({ url: req.url, reason: 'invalid_token_param' }, 'WS upgrade rejected');
54
+ socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
55
+ socket.destroy();
56
+ return;
57
+ }
58
+ clientType = 'attach';
59
+ }
60
+ else {
61
+ // Auth method 2: Cookie Session (for webapp clients)
62
+ const cookieHeader = req.headers.cookie ?? '';
63
+ const sessionId = this.authModule.getSessionFromCookieHeader(cookieHeader);
64
+ const isValid = sessionId ? this.authModule.validateSession(sessionId) : false;
65
+ if (!isValid) {
65
66
  logger.warn({
66
67
  url: req.url,
67
- reason: 'invalid_token_param',
68
- }, 'WS upgrade rejected: invalid token param');
68
+ sessionCookieName: this.authModule.getCookieName(),
69
+ hasSessionCookie: Boolean(sessionId),
70
+ }, 'WS upgrade rejected: invalid session');
69
71
  socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
70
72
  socket.destroy();
71
73
  return;
72
74
  }
73
- // 标记为 attach 客户端(从控端)
74
- this.upgradeClientTypes.set(req, 'attach');
75
- logger.info({
76
- remoteAddress: req.socket.remoteAddress,
77
- clientType: 'attach',
78
- }, 'WS upgrade accepted via token param');
79
- this.wss.handleUpgrade(req, socket, head, (ws) => {
80
- this.wss.emit('connection', ws, req);
81
- });
75
+ clientType = 'webapp';
76
+ }
77
+ // Validate instanceId and route to InstanceSession
78
+ if (!this.instanceManager) {
79
+ logger.warn('WS upgrade rejected: InstanceManager not set');
80
+ socket.write('HTTP/1.1 503 Service Unavailable\r\n\r\n');
81
+ socket.destroy();
82
82
  return;
83
83
  }
84
- // 方式 2: 检查 Cookie Session(WebApp 客户端)
85
- const cookieHeader = req.headers.cookie ?? '';
86
- const sessionId = this.authModule.getSessionFromCookieHeader(cookieHeader);
87
- const isValid = sessionId ? this.authModule.validateSession(sessionId) : false;
88
- if (!isValid) {
89
- logger.warn({
90
- url: req.url,
91
- cookieNames: cookieHeader.split(';').map(c => c.trim().split('=')[0]).filter(Boolean),
92
- sessionCookieName: this.authModule.getCookieName(),
93
- hasSessionCookie: Boolean(sessionId),
94
- }, 'WS upgrade rejected: invalid session');
95
- socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
84
+ const session = this.instanceManager.getInstance(instanceId);
85
+ if (!session) {
86
+ logger.warn({ instanceId }, 'WS upgrade rejected: instance not found');
87
+ socket.write('HTTP/1.1 404 Not Found\r\n\r\n');
96
88
  socket.destroy();
97
89
  return;
98
90
  }
99
- // 标记为 WebApp 客户端(主控端)
100
- this.upgradeClientTypes.set(req, 'webapp');
101
91
  this.wss.handleUpgrade(req, socket, head, (ws) => {
102
- this.wss.emit('connection', ws, req);
103
- });
104
- });
105
- }
106
- /**
107
- * Handle new WebSocket connections.
108
- */
109
- setupConnection() {
110
- this.wss.on('connection', (ws, req) => {
111
- // 从 WeakMap 读取客户端类型(由 setupUpgrade 设置)
112
- const clientType = this.upgradeClientTypes.get(req) ?? 'webapp';
113
- const clientInfo = { ws, alive: true, clientType };
114
- this.clients.add(clientInfo);
115
- logger.info({ clientCount: this.clients.size, clientType }, 'WebSocket client connected');
116
- ws.on('pong', () => {
117
- clientInfo.alive = true;
118
- });
119
- ws.on('message', (rawData) => {
120
- const data = rawData.toString();
121
- if (this.messageHandler) {
122
- this.messageHandler(ws, data, clientInfo.clientType);
123
- }
124
- });
125
- ws.on('close', () => {
126
- this.clients.delete(clientInfo);
127
- const counts = this.getClientCounts();
128
- logger.info({ clientCount: this.clients.size, ...counts }, 'WebSocket client disconnected');
129
- if (this.disconnectHandler) {
130
- this.disconnectHandler(counts);
131
- }
132
- });
133
- ws.on('error', (err) => {
134
- logger.error({ err, clientType }, 'WebSocket client error');
135
- this.clients.delete(clientInfo);
136
- const counts = this.getClientCounts();
137
- if (this.disconnectHandler) {
138
- this.disconnectHandler(counts);
139
- }
92
+ session.addClient(ws, clientType);
93
+ logger.info({
94
+ instanceId,
95
+ clientType,
96
+ remoteAddress: req.socket.remoteAddress,
97
+ }, 'WS client connected to instance');
140
98
  });
141
- // Notify connect handler with client type
142
- if (this.connectHandler) {
143
- this.connectHandler(ws, clientType);
144
- }
145
99
  });
146
100
  }
147
101
  /**
148
- * Broadcast a message to all connected clients.
149
- */
150
- broadcast(message) {
151
- const data = JSON.stringify(message);
152
- for (const client of this.clients) {
153
- if (client.ws.readyState === WebSocket.OPEN) {
154
- client.ws.send(data);
155
- }
156
- }
157
- }
158
- /**
159
- * Send a message to a specific client.
160
- */
161
- sendTo(ws, message) {
162
- if (ws.readyState === WebSocket.OPEN) {
163
- ws.send(JSON.stringify(message));
164
- }
165
- }
166
- /**
167
- * Start heartbeat pings.
102
+ * Start heartbeat pings for all instances.
168
103
  */
169
104
  startHeartbeat() {
170
105
  this.heartbeatInterval = setInterval(() => {
171
- for (const client of this.clients) {
172
- if (!client.alive) {
173
- logger.info('Terminating unresponsive WebSocket client');
174
- client.ws.terminate();
175
- // 不手动删除,让 close 事件处理器统一处理删除和 disconnectHandler 调用
176
- continue;
177
- }
178
- client.alive = false;
179
- client.ws.ping();
106
+ if (this.instanceManager) {
107
+ this.instanceManager.pingAllClients();
180
108
  }
181
109
  }, WS_HEARTBEAT_INTERVAL_MS);
182
110
  if (this.heartbeatInterval.unref) {
183
111
  this.heartbeatInterval.unref();
184
112
  }
185
113
  }
186
- /**
187
- * Get connected client count.
188
- */
189
- get clientCount() {
190
- return this.clients.size;
191
- }
192
- /**
193
- * Get client counts by type.
194
- */
195
- getClientCounts() {
196
- let attach = 0;
197
- let webapp = 0;
198
- for (const client of this.clients) {
199
- if (client.clientType === 'attach') {
200
- attach++;
201
- }
202
- else {
203
- webapp++;
204
- }
205
- }
206
- return { attach, webapp };
207
- }
208
114
  /**
209
115
  * Shutdown the WebSocket server.
210
116
  */
@@ -213,10 +119,6 @@ export class WsServer {
213
119
  clearInterval(this.heartbeatInterval);
214
120
  this.heartbeatInterval = null;
215
121
  }
216
- for (const client of this.clients) {
217
- client.ws.terminate();
218
- }
219
- this.clients.clear();
220
122
  this.wss.close();
221
123
  }
222
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../../../../backend/src/ws/ws-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../../../../backend/src/ws/ws-server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export declare const DEFAULT_PORT = 3000;
1
+ export declare const DEFAULT_PORT = 8866;
2
+ export declare const SESSION_COOKIE_NAME = "session_id";
2
3
  export declare const DEFAULT_SESSION_TTL_MS = 86400000;
3
4
  export declare const DEFAULT_AUTH_RATE_LIMIT = 20;
4
5
  export declare const DEFAULT_MAX_BUFFER_LINES = 10000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAC/C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,mBAAmB,QAAc,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAChD,eAAO,MAAM,sBAAsB,WAAW,CAAC;AAC/C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAC7C,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,mBAAmB,QAAc,CAAC"}
@@ -1,4 +1,5 @@
1
- export const DEFAULT_PORT = 3000;
1
+ export const DEFAULT_PORT = 8866;
2
+ export const SESSION_COOKIE_NAME = 'session_id';
2
3
  export const DEFAULT_SESSION_TTL_MS = 86400000; // 24 hours
3
4
  export const DEFAULT_AUTH_RATE_LIMIT = 20; // per minute per IP
4
5
  export const DEFAULT_MAX_BUFFER_LINES = 10000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,WAAW;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,oBAAoB;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,CAAC,WAAW;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC,CAAC,oBAAoB;AAC/D,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../shared/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAAoB,EAWnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAWjD,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../shared/defaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,oBAAoB,EAWnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,mBAAmB,EAOjD,CAAC"}
@@ -24,10 +24,6 @@ export const DEFAULT_COMMANDS = [
24
24
  { label: '/resume', command: '/resume', enabled: true },
25
25
  { label: '/stats', command: '/stats', enabled: true },
26
26
  { label: '/exit', command: '/exit', enabled: true },
27
- { label: '/commit-commands:commit', command: '/commit-commands:commit', enabled: true },
28
- { label: '/feature-dev:feature-dev', command: '/feature-dev:feature-dev', enabled: true },
29
- { label: '/auto-doc', command: '/auto-doc', enabled: true },
30
- { label: '/code-review-expert', command: '/code-review-expert', enabled: true },
31
- { label: '/systematic-debugging', command: '/systematic-debugging', enabled: true },
27
+ { label: '/rename', command: '/rename', enabled: true, autoSend: false },
32
28
  ];
33
29
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../shared/defaults.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC1E,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;CACjD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;IACzD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IACvD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IACnD,EAAE,KAAK,EAAE,yBAAyB,EAAE,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,IAAI,EAAE;IACvF,EAAE,KAAK,EAAE,0BAA0B,EAAE,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,IAAI,EAAE;IACzF,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3D,EAAE,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAE;IAC/E,EAAE,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,IAAI,EAAE;CACpF,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../shared/defaults.ts"],"names":[],"mappings":"AAqBA;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IAC7C,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC1E,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;CACjD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA0B;IACrD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;IACzD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;IACvD,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;IACnD,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;CACzE,CAAC"}
@@ -1,27 +1,22 @@
1
1
  export interface InstanceInfo {
2
2
  instanceId: string;
3
3
  name: string;
4
- host: string;
5
- port: number;
6
- pid: number;
7
4
  cwd: string;
8
5
  startedAt: string;
6
+ /** 会话状态 */
7
+ status?: string;
9
8
  /** 是否为无终端模式(web 创建的实例) */
10
9
  headless?: boolean;
10
+ /** 当前连接的客户端数量 */
11
+ clientCount?: number;
11
12
  /** 创建时的 Claude 参数(可选,包含 --settings 等) */
12
13
  claudeArgs?: string[];
13
14
  }
14
- export interface InstanceRegistry {
15
- version: 1;
16
- instances: InstanceInfo[];
17
- }
18
15
  export interface InstanceListItem extends InstanceInfo {
19
16
  isCurrent: boolean;
20
17
  }
21
18
  /** ~/.claude-remote 目录名 */
22
19
  export declare const CLAUDE_REMOTE_DIR = ".claude-remote";
23
- /** 注册表文件名 */
24
- export declare const REGISTRY_FILENAME = "instances.json";
25
20
  /** Claude Code settings 目录名 */
26
21
  export declare const SETTINGS_DIR = "settings";
27
22
  /** Settings 文件信息 */
@@ -1 +1 @@
1
- {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,aAAa;AACb,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,+BAA+B;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iBAAiB;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,2BAA2B;AAC3B,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,+BAA+B;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB"}
@@ -1,7 +1,5 @@
1
1
  /** ~/.claude-remote 目录名 */
2
2
  export const CLAUDE_REMOTE_DIR = '.claude-remote';
3
- /** 注册表文件名 */
4
- export const REGISTRY_FILENAME = 'instances.json';
5
3
  /** Claude Code settings 目录名 */
6
4
  export const SETTINGS_DIR = 'settings';
7
5
  //# sourceMappingURL=instance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAuBA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,aAAa;AACb,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../shared/instance.ts"],"names":[],"mappings":"AAmBA,2BAA2B;AAC3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,+BAA+B;AAC/B,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAC"}