@diggerhq/anyware 0.7.37 → 0.7.40

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 (36) hide show
  1. package/dist/api/session.d.ts +1 -7
  2. package/dist/api/session.d.ts.map +1 -1
  3. package/dist/api/session.js +2 -11
  4. package/dist/api/session.js.map +1 -1
  5. package/dist/api/wsClient.d.ts +9 -0
  6. package/dist/api/wsClient.d.ts.map +1 -1
  7. package/dist/api/wsClient.js +34 -9
  8. package/dist/api/wsClient.js.map +1 -1
  9. package/dist/claude/terminalRenderer.d.ts +1 -1
  10. package/dist/claude/terminalRenderer.d.ts.map +1 -1
  11. package/dist/claude/terminalRenderer.js +50 -33
  12. package/dist/claude/terminalRenderer.js.map +1 -1
  13. package/dist/server/index.d.ts.map +1 -1
  14. package/dist/server/index.js +54 -1
  15. package/dist/server/index.js.map +1 -1
  16. package/dist/server/sessionManager.d.ts +3 -1
  17. package/dist/server/sessionManager.d.ts.map +1 -1
  18. package/dist/server/sessionManager.js +213 -25
  19. package/dist/server/sessionManager.js.map +1 -1
  20. package/package.json +3 -2
  21. package/dist/claude/sdk/query.d.ts +0 -71
  22. package/dist/claude/sdk/query.d.ts.map +0 -1
  23. package/dist/claude/sdk/query.js +0 -379
  24. package/dist/claude/sdk/query.js.map +0 -1
  25. package/dist/claude/sdk/stream.d.ts +0 -28
  26. package/dist/claude/sdk/stream.d.ts.map +0 -1
  27. package/dist/claude/sdk/stream.js +0 -91
  28. package/dist/claude/sdk/stream.js.map +0 -1
  29. package/dist/claude/sdk/types.d.ts +0 -179
  30. package/dist/claude/sdk/types.d.ts.map +0 -1
  31. package/dist/claude/sdk/types.js +0 -13
  32. package/dist/claude/sdk/types.js.map +0 -1
  33. package/dist/utils/claudeHistory.d.ts +0 -33
  34. package/dist/utils/claudeHistory.d.ts.map +0 -1
  35. package/dist/utils/claudeHistory.js +0 -170
  36. package/dist/utils/claudeHistory.js.map +0 -1
@@ -1,5 +1,49 @@
1
- import { query } from '../claude/sdk/query.js';
2
- import { Stream } from '../claude/sdk/stream.js';
1
+ import { query } from '@anthropic-ai/claude-agent-sdk';
2
+ /**
3
+ * Async stream class for queuing messages
4
+ */
5
+ class MessageStream {
6
+ queue = [];
7
+ resolvers = [];
8
+ closed = false;
9
+ enqueue(message) {
10
+ if (this.closed)
11
+ return;
12
+ if (this.resolvers.length > 0) {
13
+ const resolve = this.resolvers.shift();
14
+ resolve({ value: message, done: false });
15
+ }
16
+ else {
17
+ this.queue.push(message);
18
+ }
19
+ }
20
+ close() {
21
+ this.closed = true;
22
+ // Resolve any pending reads with done
23
+ for (const resolve of this.resolvers) {
24
+ resolve({ value: undefined, done: true });
25
+ }
26
+ this.resolvers = [];
27
+ }
28
+ async *[Symbol.asyncIterator]() {
29
+ while (true) {
30
+ if (this.queue.length > 0) {
31
+ yield this.queue.shift();
32
+ }
33
+ else if (this.closed) {
34
+ return;
35
+ }
36
+ else {
37
+ const message = await new Promise((resolve) => {
38
+ this.resolvers.push(resolve);
39
+ });
40
+ if (message.done)
41
+ return;
42
+ yield message.value;
43
+ }
44
+ }
45
+ }
46
+ }
3
47
  export class SessionManager {
4
48
  wsClient;
5
49
  sessions = new Map();
@@ -15,12 +59,14 @@ export class SessionManager {
15
59
  // Use session-specific directory or fall back to server default
16
60
  const sessionCwd = opts.cwd || this.defaultCwd;
17
61
  const abortController = new AbortController();
18
- const messageQueue = new Stream();
62
+ const messageStream = new MessageStream();
19
63
  const session = {
20
64
  sessionId: opts.sessionId,
21
65
  abortController,
22
- messageQueue,
66
+ messageStream,
23
67
  status: 'active',
68
+ alwaysAllowedTools: new Set(),
69
+ agentStack: [],
24
70
  };
25
71
  this.sessions.set(opts.sessionId, session);
26
72
  // Start SDK session in background with session-specific directory
@@ -31,32 +77,136 @@ export class SessionManager {
31
77
  }
32
78
  async runSDKSession(session, cwd) {
33
79
  const queryInstance = query({
34
- prompt: session.messageQueue,
80
+ prompt: session.messageStream,
35
81
  options: {
36
82
  cwd,
37
- abort: session.abortController.signal,
83
+ abortController: session.abortController,
38
84
  permissionMode: 'default',
39
- canCallTool: async (toolName, input) => {
40
- // Send permission request to cloud/web
85
+ // Use extraArgs to pass custom session ID for local persistence
86
+ extraArgs: {
87
+ 'session-id': session.sessionId,
88
+ },
89
+ hooks: {
90
+ SubagentStart: [{
91
+ hooks: [async (input, _toolUseID, { signal }) => {
92
+ if (input.hook_event_name !== 'SubagentStart')
93
+ return { continue: true };
94
+ session.currentAgentId = input.agent_id;
95
+ session.currentAgentType = input.agent_type;
96
+ session.agentStack.push({
97
+ agentId: input.agent_id,
98
+ agentType: input.agent_type,
99
+ });
100
+ console.log(`[SessionManager] Subagent started: ${input.agent_type} (${input.agent_id})`);
101
+ return { continue: true };
102
+ }]
103
+ }],
104
+ SubagentStop: [{
105
+ hooks: [async (input, _toolUseID, { signal }) => {
106
+ if (input.hook_event_name !== 'SubagentStop')
107
+ return { continue: true };
108
+ session.agentStack.pop();
109
+ const parent = session.agentStack[session.agentStack.length - 1];
110
+ session.currentAgentId = parent?.agentId;
111
+ session.currentAgentType = parent?.agentType;
112
+ console.log(`[SessionManager] Subagent stopped: ${input.agent_id}`);
113
+ return { continue: true };
114
+ }]
115
+ }],
116
+ PostToolUseFailure: [{
117
+ hooks: [async (input, _toolUseID, { signal }) => {
118
+ if (input.hook_event_name !== 'PostToolUseFailure')
119
+ return { continue: true };
120
+ // Clean up stack if Task tool fails
121
+ if (input.tool_name === 'Task' && session.agentStack.length > 0) {
122
+ session.agentStack.pop();
123
+ const parent = session.agentStack[session.agentStack.length - 1];
124
+ session.currentAgentId = parent?.agentId;
125
+ session.currentAgentType = parent?.agentType;
126
+ console.log(`[SessionManager] Agent stack cleaned up after Task tool failure`);
127
+ }
128
+ return { continue: true };
129
+ }]
130
+ }],
131
+ },
132
+ canUseTool: async (toolName, input, { signal }) => {
133
+ console.log(`[SessionManager] canUseTool called: tool=${toolName}, sessionId=${session.sessionId}`);
134
+ // Check if tool is already "always allowed" for this session
135
+ // AskUserQuestion must NEVER be auto-approved
136
+ if (toolName !== 'AskUserQuestion' && session.alwaysAllowedTools.has(toolName)) {
137
+ console.log(`[SessionManager] Tool ${toolName} is always allowed - auto-approving`);
138
+ return { behavior: 'allow', updatedInput: input };
139
+ }
140
+ // Tool not in cache - request permission from user
141
+ console.log(`[SessionManager] Sending permission request to cloud for ${toolName}`);
41
142
  await this.wsClient.sendPermissionRequest(session.sessionId, toolName, input);
42
- // Wait for web UI response
43
- session.status = 'waiting_permission';
44
- const response = await new Promise((resolve) => {
45
- session.pendingPermission = { toolName, input, resolve };
46
- });
47
- session.status = 'active';
48
- return response === 'yes'
49
- ? { behavior: 'allow', updatedInput: input }
50
- : { behavior: 'deny', message: 'User denied permission' };
143
+ console.log(`[SessionManager] Permission request sent, waiting for response...`);
144
+ // Start heartbeat to keep connection alive during wait
145
+ this.startPermissionHeartbeat(session);
146
+ try {
147
+ // Wait for web UI response
148
+ session.status = 'waiting_permission';
149
+ const response = await new Promise((resolve) => {
150
+ session.pendingPermission = { toolName, input, resolve };
151
+ console.log(`[SessionManager] Pending permission set for ${toolName}, waiting...`);
152
+ });
153
+ console.log(`[SessionManager] Permission response received: ${response} for ${toolName}`);
154
+ session.status = 'active';
155
+ session.pendingPermission = undefined;
156
+ // Handle 'always' response by updating cache
157
+ if (response === 'always') {
158
+ // Never persist "always allow" for AskUserQuestion (safety check)
159
+ if (toolName === 'AskUserQuestion') {
160
+ console.log(`[SessionManager] WARNING: Ignoring 'always' for AskUserQuestion`);
161
+ }
162
+ else {
163
+ session.alwaysAllowedTools.add(toolName);
164
+ console.log(`[SessionManager] Tool ${toolName} marked as always allowed for this session`);
165
+ }
166
+ // Treat 'always' as 'yes' for this specific request
167
+ return { behavior: 'allow', updatedInput: input };
168
+ }
169
+ // Return permission result for 'yes' or 'no'
170
+ return response === 'yes'
171
+ ? { behavior: 'allow', updatedInput: input }
172
+ : { behavior: 'deny', message: 'User denied permission' };
173
+ }
174
+ finally {
175
+ // Always stop heartbeat when permission resolved (success or error)
176
+ this.stopPermissionHeartbeat(session);
177
+ }
51
178
  },
52
179
  },
53
180
  });
54
- // Forward all SDK events to cloud
55
- for await (const message of queryInstance) {
56
- await this.wsClient.sendClaudeEvent(message, session.sessionId);
57
- if (message.type === 'system' && 'session_id' in message) {
58
- session.claudeSessionId = message.session_id;
181
+ // Add stack depth safety validator
182
+ const stackValidator = setInterval(() => {
183
+ if (session.agentStack.length > 10) {
184
+ console.warn('[SessionManager] Agent stack depth exceeded, resetting');
185
+ session.agentStack = [];
186
+ session.currentAgentId = undefined;
187
+ session.currentAgentType = undefined;
59
188
  }
189
+ }, 30000);
190
+ try {
191
+ // Forward all SDK events to cloud with subagent metadata
192
+ for await (const message of queryInstance) {
193
+ // Enrich message with current subagent context
194
+ const enrichedMessage = {
195
+ ...message,
196
+ agentId: session.currentAgentId,
197
+ agentType: session.currentAgentType,
198
+ isSubagent: !!session.currentAgentId,
199
+ };
200
+ await this.wsClient.sendClaudeEvent(enrichedMessage, session.sessionId);
201
+ // Capture claude session ID from init message
202
+ if (message.type === 'system' && 'subtype' in message && message.subtype === 'init') {
203
+ session.claudeSessionId = message.session_id;
204
+ }
205
+ }
206
+ }
207
+ finally {
208
+ // Clean up stack validator on session end
209
+ clearInterval(stackValidator);
60
210
  }
61
211
  }
62
212
  sendUserMessage(sessionId, message, images) {
@@ -85,15 +235,50 @@ export class SessionManager {
85
235
  role: 'user',
86
236
  content,
87
237
  },
238
+ parent_tool_use_id: null,
239
+ session_id: session.claudeSessionId || sessionId,
88
240
  };
89
- session.messageQueue.enqueue(userMessage);
241
+ session.messageStream.enqueue(userMessage);
90
242
  }
91
243
  sendPermissionResponse(sessionId, response) {
244
+ console.log(`[SessionManager] sendPermissionResponse called: sessionId=${sessionId}, response=${response}`);
92
245
  const session = this.sessions.get(sessionId);
93
- if (!session?.pendingPermission)
246
+ if (!session) {
247
+ console.error(`[SessionManager] Session not found: ${sessionId}`);
248
+ throw new Error('Session not found');
249
+ }
250
+ if (!session.pendingPermission) {
251
+ console.error(`[SessionManager] No pending permission for session: ${sessionId}`);
94
252
  throw new Error('No pending permission');
253
+ }
254
+ console.log(`[SessionManager] Resolving pending permission for ${session.pendingPermission.toolName} with ${response}`);
95
255
  session.pendingPermission.resolve(response);
96
- session.pendingPermission = undefined;
256
+ console.log(`[SessionManager] Permission resolved successfully`);
257
+ }
258
+ startPermissionHeartbeat(session) {
259
+ // Clear any existing heartbeat first
260
+ this.stopPermissionHeartbeat(session);
261
+ console.log(`[SessionManager] Starting permission heartbeat for session ${session.sessionId}`);
262
+ // Send ping every 30 seconds to keep connection alive
263
+ session.heartbeatInterval = setInterval(() => {
264
+ console.log(`[SessionManager] Sending heartbeat ping for session ${session.sessionId}`);
265
+ try {
266
+ this.wsClient.send({
267
+ type: 'ping',
268
+ payload: { sessionId: session.sessionId }
269
+ });
270
+ }
271
+ catch (error) {
272
+ console.error(`[SessionManager] Heartbeat ping failed for ${session.sessionId}:`, error);
273
+ }
274
+ }, 30000); // 30 seconds matches existing ping pattern
275
+ }
276
+ stopPermissionHeartbeat(session) {
277
+ if (session.heartbeatInterval) {
278
+ console.log(`[SessionManager] Stopping permission heartbeat for session ${session.sessionId}`);
279
+ clearInterval(session.heartbeatInterval);
280
+ session.heartbeatInterval = undefined;
281
+ }
97
282
  }
98
283
  async stopSession(sessionId) {
99
284
  const session = this.sessions.get(sessionId);
@@ -101,7 +286,10 @@ export class SessionManager {
101
286
  return;
102
287
  session.status = 'stopping';
103
288
  session.abortController.abort();
289
+ session.messageStream.close();
104
290
  this.sessions.delete(sessionId);
291
+ // Clean up heartbeat if still running
292
+ this.stopPermissionHeartbeat(session);
105
293
  }
106
294
  getStats() {
107
295
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/server/sessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sessionManager.js","sourceRoot":"","sources":["../../src/server/sessionManager.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.37",
3
+ "version": "0.7.40",
4
4
  "description": "Anyware CLI - Claude Code with remote control",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",
@@ -18,13 +18,14 @@
18
18
  "typecheck": "tsc --noEmit"
19
19
  },
20
20
  "dependencies": {
21
+ "@anthropic-ai/claude-agent-sdk": "^0.2.14",
21
22
  "chalk": "^5.6.2",
22
23
  "chokidar": "^4.0.0",
23
24
  "commander": "^12.1.0",
24
25
  "open": "^10.1.0",
25
26
  "qrcode-terminal": "^0.12.0",
26
27
  "ws": "^8.18.0",
27
- "zod": "^3.23.0"
28
+ "zod": "^4.3.5"
28
29
  },
29
30
  "devDependencies": {
30
31
  "@types/node": "^22.0.0",
@@ -1,71 +0,0 @@
1
- /**
2
- * Query implementation for Claude Code SDK
3
- * Handles spawning Claude process and managing message streams
4
- */
5
- import type { Writable } from 'node:stream';
6
- import { type QueryOptions, type QueryPrompt, type SDKMessage, type CanCallToolCallback } from './types.js';
7
- /**
8
- * Query class manages Claude Code process interaction
9
- */
10
- export declare class Query implements AsyncIterableIterator<SDKMessage> {
11
- private childStdin;
12
- private childStdout;
13
- private processExitPromise;
14
- private pendingControlResponses;
15
- private cancelControllers;
16
- private sdkMessages;
17
- private inputStream;
18
- private canCallTool?;
19
- constructor(childStdin: Writable | null, childStdout: NodeJS.ReadableStream, processExitPromise: Promise<void>, canCallTool?: CanCallToolCallback);
20
- /**
21
- * Set an error on the stream
22
- */
23
- setError(error: Error): void;
24
- /**
25
- * AsyncIterableIterator implementation
26
- */
27
- next(): Promise<IteratorResult<SDKMessage>>;
28
- return(value?: unknown): Promise<IteratorResult<SDKMessage>>;
29
- throw(e: Error): Promise<IteratorResult<SDKMessage>>;
30
- [Symbol.asyncIterator](): AsyncIterableIterator<SDKMessage>;
31
- /**
32
- * Read messages from Claude process stdout
33
- */
34
- private readMessages;
35
- /**
36
- * Async generator for SDK messages
37
- */
38
- private readSdkMessages;
39
- /**
40
- * Send interrupt request to Claude
41
- */
42
- interrupt(): Promise<void>;
43
- /**
44
- * Send control request to Claude process
45
- */
46
- private request;
47
- /**
48
- * Handle incoming control requests for tool permissions
49
- */
50
- private handleControlRequest;
51
- /**
52
- * Handle control cancel requests
53
- */
54
- private handleControlCancelRequest;
55
- /**
56
- * Process control requests based on subtype
57
- */
58
- private processControlRequest;
59
- /**
60
- * Cleanup method to abort all pending control requests
61
- */
62
- private cleanupControllers;
63
- }
64
- /**
65
- * Main query function to interact with Claude Code
66
- */
67
- export declare function query(config: {
68
- prompt: QueryPrompt;
69
- options?: QueryOptions;
70
- }): Query;
71
- //# sourceMappingURL=query.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/claude/sdk/query.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EAKf,KAAK,mBAAmB,EAMzB,MAAM,YAAY,CAAC;AA2CpB;;GAEG;AACH,qBAAa,KAAM,YAAW,qBAAqB,CAAC,UAAU,CAAC;IAQ3D,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,kBAAkB;IAT5B,OAAO,CAAC,uBAAuB,CAA6C;IAC5E,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAsB;gBAGhC,UAAU,EAAE,QAAQ,GAAG,IAAI,EAC3B,WAAW,EAAE,MAAM,CAAC,cAAc,EAClC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EACzC,WAAW,CAAC,EAAE,mBAAmB;IAOnC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B;;OAEG;IACH,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAI3C,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAO5D,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAOpD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC;IAI3D;;OAEG;YACW,YAAY;IA+C1B;;OAEG;YACY,eAAe;IAM9B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQhC;;OAEG;IACH,OAAO,CAAC,OAAO;IAqBf;;OAEG;YACW,oBAAoB;IA+ClC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAQlC;;OAEG;YACW,qBAAqB;IAcnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAM3B;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,GAAG,KAAK,CAkIpF"}