@diggerhq/anyware 0.7.22 → 0.7.24

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.
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,aAAa,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAoI7G"}
1
+ {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,aAAa,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8K7G"}
@@ -12,106 +12,148 @@ export function createWSClient(sessionId, userId, deviceId) {
12
12
  // Include deviceId in URL for device-level presence tracking
13
13
  const deviceParam = deviceId ? `&deviceId=${deviceId}` : '';
14
14
  const url = `${wsUrl}/ws/session/${sessionId}?type=cli&userId=${userId}${deviceParam}&token=${config.accessToken}`;
15
- const ws = new WebSocket(url);
15
+ let ws;
16
16
  let messageHandler = null;
17
17
  let closeHandler = null;
18
18
  let pingInterval = null;
19
- ws.on('open', () => {
20
- console.log('[ws] Connected to session');
21
- // Start ping interval to keep connection alive
22
- pingInterval = setInterval(() => {
23
- if (ws.readyState === WebSocket.OPEN) {
24
- ws.send(JSON.stringify({ type: 'ping' }));
19
+ let reconnectAttempts = 0;
20
+ const maxReconnects = 50; // Allow many reconnects for long sessions
21
+ let isIntentionallyClosed = false;
22
+ let clientResolved = false;
23
+ function connect() {
24
+ ws = new WebSocket(url);
25
+ ws.on('open', () => {
26
+ if (reconnectAttempts > 0) {
27
+ console.log('[ws] Reconnected to session');
25
28
  }
26
- }, 30000);
27
- const client = {
28
- send: (message) => {
29
- if (ws.readyState === WebSocket.OPEN) {
30
- ws.send(JSON.stringify(message));
31
- }
32
- },
33
- sendClaudeEvent: (event, sid) => {
29
+ else {
30
+ console.log('[ws] Connected to session');
31
+ }
32
+ reconnectAttempts = 0;
33
+ // Start ping interval to keep connection alive
34
+ if (pingInterval)
35
+ clearInterval(pingInterval);
36
+ pingInterval = setInterval(() => {
34
37
  if (ws.readyState === WebSocket.OPEN) {
35
- ws.send(JSON.stringify({
36
- type: 'claude_event',
37
- payload: {
38
- sessionId: sid,
39
- event,
40
- timestamp: Date.now(),
41
- },
42
- }));
38
+ ws.send(JSON.stringify({ type: 'ping' }));
43
39
  }
44
- },
45
- sendThinking: (thinking) => {
46
- if (ws.readyState === WebSocket.OPEN) {
47
- ws.send(JSON.stringify({
48
- type: 'thinking',
49
- payload: {
50
- thinking,
51
- timestamp: Date.now(),
52
- },
53
- }));
40
+ }, 30000);
41
+ // Only resolve on first connection
42
+ if (!clientResolved) {
43
+ clientResolved = true;
44
+ resolve(client);
45
+ }
46
+ });
47
+ ws.on('message', (data) => {
48
+ try {
49
+ const message = JSON.parse(data.toString());
50
+ // Handle pong silently
51
+ if (message.type === 'pong') {
52
+ return;
54
53
  }
55
- },
56
- sendModeChange: (mode) => {
57
- if (ws.readyState === WebSocket.OPEN) {
58
- ws.send(JSON.stringify({
59
- type: 'mode_change',
60
- payload: {
61
- mode,
62
- timestamp: Date.now(),
63
- },
64
- }));
54
+ // Forward to handler
55
+ if (messageHandler && (message.type === 'user_input' || message.type === 'permission_response' || message.type === 'switch')) {
56
+ messageHandler(message);
65
57
  }
66
- },
67
- // No-op: Device presence is now tracked via WebSocket connect/disconnect
68
- // and activity updates happen automatically on claude_event
69
- sendPresence: () => { },
70
- markActivity: () => { },
71
- onMessage: (handler) => {
72
- messageHandler = handler;
73
- },
74
- onClose: (handler) => {
75
- closeHandler = handler;
76
- },
77
- close: () => {
78
- if (pingInterval) {
79
- clearInterval(pingInterval);
58
+ }
59
+ catch (e) {
60
+ console.error('[ws] Failed to parse message:', e);
61
+ }
62
+ });
63
+ ws.on('close', () => {
64
+ if (pingInterval) {
65
+ clearInterval(pingInterval);
66
+ pingInterval = null;
67
+ }
68
+ if (isIntentionallyClosed) {
69
+ console.log('[ws] Disconnected from session');
70
+ if (closeHandler) {
71
+ closeHandler();
80
72
  }
81
- ws.close();
82
- },
83
- };
84
- resolve(client);
85
- });
86
- ws.on('message', (data) => {
87
- try {
88
- const message = JSON.parse(data.toString());
89
- // Handle pong silently
90
- if (message.type === 'pong') {
91
73
  return;
92
74
  }
93
- // Forward to handler
94
- if (messageHandler && (message.type === 'user_input' || message.type === 'permission_response' || message.type === 'switch')) {
95
- messageHandler(message);
75
+ // Auto-reconnect
76
+ if (reconnectAttempts < maxReconnects) {
77
+ reconnectAttempts++;
78
+ const delay = Math.min(1000 * reconnectAttempts, 10000); // Cap at 10 seconds
79
+ console.log(`[ws] Connection lost, reconnecting in ${delay / 1000}s (attempt ${reconnectAttempts}/${maxReconnects})`);
80
+ setTimeout(connect, delay);
81
+ }
82
+ else {
83
+ console.log('[ws] Max reconnect attempts reached, giving up');
84
+ if (closeHandler) {
85
+ closeHandler();
86
+ }
87
+ }
88
+ });
89
+ ws.on('error', (error) => {
90
+ console.error('[ws] WebSocket error:', error.message);
91
+ if (!clientResolved) {
92
+ reject(error);
93
+ }
94
+ // Don't reject on reconnect errors - let the close handler trigger reconnect
95
+ });
96
+ }
97
+ const client = {
98
+ send: (message) => {
99
+ if (ws.readyState === WebSocket.OPEN) {
100
+ ws.send(JSON.stringify(message));
101
+ }
102
+ },
103
+ sendClaudeEvent: (event, sid) => {
104
+ if (ws.readyState === WebSocket.OPEN) {
105
+ ws.send(JSON.stringify({
106
+ type: 'claude_event',
107
+ payload: {
108
+ sessionId: sid,
109
+ event,
110
+ timestamp: Date.now(),
111
+ },
112
+ }));
113
+ }
114
+ },
115
+ sendThinking: (thinking) => {
116
+ if (ws.readyState === WebSocket.OPEN) {
117
+ ws.send(JSON.stringify({
118
+ type: 'thinking',
119
+ payload: {
120
+ thinking,
121
+ timestamp: Date.now(),
122
+ },
123
+ }));
124
+ }
125
+ },
126
+ sendModeChange: (mode) => {
127
+ if (ws.readyState === WebSocket.OPEN) {
128
+ ws.send(JSON.stringify({
129
+ type: 'mode_change',
130
+ payload: {
131
+ mode,
132
+ timestamp: Date.now(),
133
+ },
134
+ }));
135
+ }
136
+ },
137
+ // No-op: Device presence is now tracked via WebSocket connect/disconnect
138
+ // and activity updates happen automatically on claude_event
139
+ sendPresence: () => { },
140
+ markActivity: () => { },
141
+ onMessage: (handler) => {
142
+ messageHandler = handler;
143
+ },
144
+ onClose: (handler) => {
145
+ closeHandler = handler;
146
+ },
147
+ close: () => {
148
+ isIntentionallyClosed = true;
149
+ if (pingInterval) {
150
+ clearInterval(pingInterval);
96
151
  }
97
- }
98
- catch (e) {
99
- console.error('[ws] Failed to parse message:', e);
100
- }
101
- });
102
- ws.on('close', () => {
103
- console.log('[ws] Disconnected from session');
104
- if (pingInterval) {
105
- clearInterval(pingInterval);
106
- }
107
- if (closeHandler) {
108
- closeHandler();
109
- }
110
- });
111
- ws.on('error', (error) => {
112
- console.error('[ws] WebSocket error:', error.message);
113
- reject(error);
114
- });
152
+ ws.close();
153
+ },
154
+ };
155
+ // Start initial connection
156
+ connect();
115
157
  });
116
158
  }
117
159
  //# sourceMappingURL=wsClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyDjD,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAE,QAAiB;IACjF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtF,6DAA6D;QAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,KAAK,eAAe,SAAS,oBAAoB,MAAM,GAAG,WAAW,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC;QAEnH,IAAI,EAAa,CAAC;QAClB,IAAI,cAAc,GAAgD,IAAI,CAAC;QACvE,IAAI,YAAY,GAAwB,IAAI,CAAC;QAC7C,IAAI,YAAY,GAA0B,IAAI,CAAC;QAC/C,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,0CAA0C;QACpE,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,SAAS,OAAO;YACd,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAE1B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACf,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACvC,CAAC;gBACD,iBAAiB,GAAG,CAAC,CAAC;gBAExB,+CAA+C;gBAC7C,IAAI,YAAY;oBAAE,aAAa,CAAC,YAAY,CAAC,CAAC;gBAChD,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBAER,mCAAmC;gBACnC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,cAAc,GAAG,IAAI,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAc,CAAC;oBAEzD,uBAAuB;oBACvB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBAED,qBAAqB;oBACrB,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;wBAC7H,cAAc,CAAC,OAA0B,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClB,IAAI,YAAY,EAAE,CAAC;oBACjB,aAAa,CAAC,YAAY,CAAC,CAAC;oBAC5B,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;oBAC9C,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,EAAE,CAAC;oBACjB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,iBAAiB;gBACjB,IAAI,iBAAiB,GAAG,aAAa,EAAE,CAAC;oBACtC,iBAAiB,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;oBAC7E,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,GAAG,IAAI,cAAc,iBAAiB,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtH,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBAC9D,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBACD,6EAA6E;YAC/E,CAAC,CAAC,CAAC;QACL,CAAC;QAEC,MAAM,MAAM,GAAoB;YAC9B,IAAI,EAAE,CAAC,OAAkB,EAAE,EAAE;gBAC3B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,eAAe,EAAE,CAAC,KAAkB,EAAE,GAAW,EAAE,EAAE;gBACnD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE;4BACP,SAAS,EAAE,GAAG;4BACd,KAAK;4BACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,YAAY,EAAE,CAAC,QAAiB,EAAE,EAAE;gBAClC,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE;4BACP,QAAQ;4BACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,cAAc,EAAE,CAAC,IAAwB,EAAE,EAAE;gBAC3C,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE;4BACP,IAAI;4BACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,4DAA4D;YAC5D,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YACtB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YAEtB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;YAED,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,YAAY,GAAG,OAAO,CAAC;YACzB,CAAC;YAED,KAAK,EAAE,GAAG,EAAE;gBACZ,qBAAqB,GAAG,IAAI,CAAC;gBAC3B,IAAI,YAAY,EAAE,CAAC;oBACjB,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC;gBACD,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;SACF,CAAC;QAEJ,2BAA2B;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claudeRemoteLauncher.d.ts","sourceRoot":"","sources":["../../src/claude/claudeRemoteLauncher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsLjG"}
1
+ {"version":3,"file":"claudeRemoteLauncher.d.ts","sourceRoot":"","sources":["../../src/claude/claudeRemoteLauncher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAI5C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2LjG"}
@@ -52,12 +52,10 @@ export async function claudeRemoteLauncher(opts) {
52
52
  session.queue.reset(); // Unblock waitForMessage
53
53
  processAbortController.abort();
54
54
  });
55
- // If we have a pending permission response, queue a "proceed" message
56
- // so Claude continues its work after the permission is approved
57
- const hasPendingPermission = session.hasPendingPermissionResponse();
58
- if (hasPendingPermission) {
59
- session.queue.push('proceed');
60
- }
55
+ // NOTE: We don't auto-queue "proceed" anymore.
56
+ // The pending permission response is consumed in waitForPermission() when needed.
57
+ // Auto-queuing "proceed" was causing issues with AskUserQuestion where the selection
58
+ // is sent as user input and "proceed" would race/override it.
61
59
  // Run remote mode
62
60
  console.log('');
63
61
  console.log('\x1b[36m\x1b[1mRemote Mode Active\x1b[0m');
@@ -129,7 +127,13 @@ export async function claudeRemoteLauncher(opts) {
129
127
  }
130
128
  // Clear any stale pending permission response before requesting new permission
131
129
  // This prevents old responses from auto-approving new requests
132
- session.clearPendingPermissionResponse();
130
+ // IMPORTANT: Don't clear fresh responses (race with local->remote switch).
131
+ session.clearPendingPermissionResponse(30_000);
132
+ // Extra safety: AskUserQuestion should never be auto-answered by a stale queued message
133
+ // (e.g. an old "proceed" sitting in the queue from a previous UI bug).
134
+ if (toolName === 'AskUserQuestion') {
135
+ session.queue.reset();
136
+ }
133
137
  // Send permission request event to web UI
134
138
  const permissionEvent = {
135
139
  type: 'PermissionRequest',
@@ -1 +1 @@
1
- {"version":3,"file":"claudeRemoteLauncher.js","sourceRoot":"","sources":["../../src/claude/claudeRemoteLauncher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeRemoteLauncher.js","sourceRoot":"","sources":["../../src/claude/claudeRemoteLauncher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAS1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAA2B;IACpE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAC3C,IAAI,UAAU,GAA4B,IAAI,CAAC;IAC/C,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC;IAErD,2DAA2D;IAC3D,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,kDAAkD;IAClD,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,GAAiB,EAAE,EAAE;QACzD,2CAA2C;QAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAClE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,yBAAyB;YAChD,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;QACD,4BAA4B;QAC5B,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,MAAM,CAAC;YACtB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,yBAAyB;YAChD,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAE9C,mDAAmD;IACnD,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAC;IAE1C,IAAI,CAAC;QACH,uEAAuE;QACvE,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,QAAQ,CAAC;YACxB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,yBAAyB;YAChD,sBAAsB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,+CAA+C;QAC/C,kFAAkF;QAClF,qFAAqF;QACrF,8DAA8D;QAE9D,kBAAkB;QAClB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,sGAAsG,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,YAAY,CAAC;YACjB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,eAAe;YAClC,KAAK,EAAE,sBAAsB,CAAC,MAAM;YACpC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,6BAA6B;gBAC7B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAEzB,iCAAiC;gBACjC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YACD,cAAc,EAAE,CAAC,SAAS,EAAE,EAAE;gBAC5B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YACD,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE;gBAC7B,2CAA2C;gBAC3C,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,aAAa,EAAE,CAAC;gBAC3B,CAAC;gBACD,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC/B,IAAI,gBAAgB,EAAE,CAAC;oBACrB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YACD,WAAW,EAAE,KAAK,IAAI,EAAE;gBACtB,8DAA8D;gBAC9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAEtD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,4BAA4B;oBAC5B,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChE,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,QAAgB,EAAE,EAAE;gBAC5C,4CAA4C;gBAC5C,IAAI,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1C,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,0BAA0B,CAAC,CAAC;oBAC5E,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,wEAAwE;gBACxE,MAAM,OAAO,GAAG,OAAO,CAAC,gCAAgC,EAAE,CAAC;gBAC3D,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,gDAAgD,OAAO,SAAS,CAAC,CAAC;oBAC9E,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACzB,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;oBAC1C,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;gBAED,2CAA2C;gBAC3C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,yBAAyB,EAAE,CAAC;gBAE3D,0DAA0D;gBAC1D,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBAED,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,mBAAmB,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE;gBAC3C,qEAAqE;gBACrE,IAAI,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC1C,OAAO;gBACT,CAAC;gBAED,+EAA+E;gBAC/E,+DAA+D;gBAC/D,2EAA2E;gBAC3E,OAAO,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAC;gBAE/C,wFAAwF;gBACxF,uEAAuE;gBACvE,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;oBACnC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC;gBAED,0CAA0C;gBAC1C,MAAM,eAAe,GAAG;oBACtB,IAAI,EAAE,mBAAmB;oBACzB,SAAS,EAAE;wBACT,SAAS,EAAE,QAAQ;wBACnB,UAAU,EAAE,SAAS;qBACtB;iBACF,CAAC;gBACF,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;gBAEzC,0BAA0B;gBAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;gBACtD,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,SAAS,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;SACF,CAAC,CAAC;QAEH,qCAAqC;QACrC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAE9B,oCAAoC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,4BAA4B;QAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,mBAAmB;QACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -79,12 +79,12 @@ export declare class Session {
79
79
  /**
80
80
  * Consume the pending permission response (used when switching to remote mode)
81
81
  */
82
- consumePendingPermissionResponse(): PermissionResponse | null;
82
+ consumePendingPermissionResponse(maxAgeMs?: number): PermissionResponse | null;
83
83
  /**
84
84
  * Clear any pending permission response (called when new permission request comes in)
85
85
  * This prevents stale responses from auto-approving new requests
86
86
  */
87
- clearPendingPermissionResponse(): void;
87
+ clearPendingPermissionResponse(maxAgeMs?: number): void;
88
88
  /**
89
89
  * Check if a tool has been "always allowed" for this session
90
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/claude/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/claude/session.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,9 @@ export class Session {
46
46
  handleMessage(message) {
47
47
  switch (message.type) {
48
48
  case 'user_input':
49
+ if (typeof message.payload?.prompt === 'string' && message.payload.prompt.trim().toLowerCase() === 'proceed') {
50
+ console.warn('[ws] Received user_input "proceed" from web; pushing to queue');
51
+ }
49
52
  this.queue.push(message.payload.prompt, message.payload.images);
50
53
  // Mark activity since user is interacting
51
54
  this.markActivity();
@@ -63,7 +66,10 @@ export class Session {
63
66
  }
64
67
  else {
65
68
  // In local mode: store the response and trigger switch to remote
66
- this.pendingPermissionResponse = message.payload.response;
69
+ this.pendingPermissionResponse = {
70
+ response: message.payload.response,
71
+ receivedAt: Date.now(),
72
+ };
67
73
  if (this.permissionResponseTriggerSwitch) {
68
74
  this.permissionResponseTriggerSwitch();
69
75
  }
@@ -164,18 +170,29 @@ export class Session {
164
170
  /**
165
171
  * Consume the pending permission response (used when switching to remote mode)
166
172
  */
167
- consumePendingPermissionResponse() {
168
- const response = this.pendingPermissionResponse;
173
+ consumePendingPermissionResponse(maxAgeMs = 30_000) {
174
+ const pending = this.pendingPermissionResponse;
175
+ if (!pending)
176
+ return null;
177
+ const ageMs = Date.now() - pending.receivedAt;
178
+ if (ageMs > maxAgeMs) {
179
+ console.log(`\x1b[33m⚠️ Clearing stale pending permission response: ${pending.response} (age ${Math.round(ageMs / 1000)}s)\x1b[0m`);
180
+ this.pendingPermissionResponse = null;
181
+ return null;
182
+ }
169
183
  this.pendingPermissionResponse = null;
170
- return response;
184
+ return pending.response;
171
185
  }
172
186
  /**
173
187
  * Clear any pending permission response (called when new permission request comes in)
174
188
  * This prevents stale responses from auto-approving new requests
175
189
  */
176
- clearPendingPermissionResponse() {
177
- if (this.pendingPermissionResponse) {
178
- console.log(`\x1b[33m⚠️ Clearing stale pending permission response: ${this.pendingPermissionResponse}\x1b[0m`);
190
+ clearPendingPermissionResponse(maxAgeMs = 30_000) {
191
+ if (!this.pendingPermissionResponse)
192
+ return;
193
+ const ageMs = Date.now() - this.pendingPermissionResponse.receivedAt;
194
+ if (ageMs > maxAgeMs) {
195
+ console.log(`\x1b[33m⚠️ Clearing stale pending permission response: ${this.pendingPermissionResponse.response} (age ${Math.round(ageMs / 1000)}s)\x1b[0m`);
179
196
  this.pendingPermissionResponse = null;
180
197
  }
181
198
  }
@@ -183,12 +200,20 @@ export class Session {
183
200
  * Check if a tool has been "always allowed" for this session
184
201
  */
185
202
  isToolAlwaysAllowed(toolName) {
203
+ // AskUserQuestion must never be auto-approved; it requires explicit user interaction.
204
+ if (toolName === 'AskUserQuestion')
205
+ return false;
186
206
  return this.alwaysAllowedTools.has(toolName);
187
207
  }
188
208
  /**
189
209
  * Mark a tool as "always allowed" for this session
190
210
  */
191
211
  markToolAlwaysAllowed(toolName) {
212
+ // Never persist "always allow" for AskUserQuestion.
213
+ if (toolName === 'AskUserQuestion') {
214
+ console.log(`\x1b[33m⚠️ Ignoring "always allow" for AskUserQuestion\x1b[0m`);
215
+ return;
216
+ }
192
217
  this.alwaysAllowedTools.add(toolName);
193
218
  console.log(`\x1b[32m✓ Tool "${toolName}" marked as always allowed for this session\x1b[0m`);
194
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/claude/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/claude/session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AA2BD,wBAAgB,UAAU,IAAI,MAAM,CAiBnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAQxD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAW/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAM1D"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AA2BD,wBAAgB,UAAU,IAAI,MAAM,CAiBnC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAQxD;AAED,wBAAgB,WAAW,IAAI,IAAI,CAYlC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,wBAAgB,gBAAgB,IAAI,YAAY,CAW/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAM1D"}
@@ -47,7 +47,15 @@ export function saveConfig(config) {
47
47
  }
48
48
  export function clearConfig() {
49
49
  if (existsSync(CONFIG_FILE)) {
50
- writeFileSync(CONFIG_FILE, JSON.stringify(DEFAULT_CONFIG, null, 2));
50
+ // Preserve device-specific settings when logging out
51
+ const existing = loadConfig();
52
+ const preservedConfig = {
53
+ ...DEFAULT_CONFIG,
54
+ aliasPromptShown: existing.aliasPromptShown,
55
+ enjoymentPromptShown: existing.enjoymentPromptShown,
56
+ sessionCount: existing.sessionCount,
57
+ };
58
+ writeFileSync(CONFIG_FILE, JSON.stringify(preservedConfig, null, 2));
51
59
  }
52
60
  }
53
61
  export function isLoggedIn() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config/config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diggerhq/anyware",
3
- "version": "0.7.22",
3
+ "version": "0.7.24",
4
4
  "description": "Anyware CLI - Claude Code with remote control",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",