@yu_robotics/remote-cli 1.6.49 → 1.6.66
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/README.md +18 -8
- package/dist/client/MessageHandler.d.ts +8 -0
- package/dist/client/MessageHandler.d.ts.map +1 -1
- package/dist/client/MessageHandler.js +108 -3
- package/dist/client/MessageHandler.js.map +1 -1
- package/dist/client/TaskRecovery.d.ts +35 -0
- package/dist/client/TaskRecovery.d.ts.map +1 -0
- package/dist/client/TaskRecovery.js +237 -0
- package/dist/client/TaskRecovery.js.map +1 -0
- package/dist/client/WebSocketClient.d.ts +6 -0
- package/dist/client/WebSocketClient.d.ts.map +1 -1
- package/dist/client/WebSocketClient.js +39 -11
- package/dist/client/WebSocketClient.js.map +1 -1
- package/dist/commands/start.d.ts +3 -11
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +22 -99
- package/dist/commands/start.js.map +1 -1
- package/dist/executor/ClaudePersistentExecutor.d.ts +38 -2
- package/dist/executor/ClaudePersistentExecutor.d.ts.map +1 -1
- package/dist/executor/ClaudePersistentExecutor.js +369 -21
- package/dist/executor/ClaudePersistentExecutor.js.map +1 -1
- package/dist/executor/CodexAppServerExecutor.d.ts +13 -0
- package/dist/executor/CodexAppServerExecutor.d.ts.map +1 -1
- package/dist/executor/CodexAppServerExecutor.js +208 -5
- package/dist/executor/CodexAppServerExecutor.js.map +1 -1
- package/dist/executor/CodexSandbox.d.ts +23 -0
- package/dist/executor/CodexSandbox.d.ts.map +1 -0
- package/dist/executor/CodexSandbox.js +211 -0
- package/dist/executor/CodexSandbox.js.map +1 -0
- package/dist/executor/IExecutor.d.ts +5 -1
- package/dist/executor/IExecutor.d.ts.map +1 -1
- package/dist/executor/claude/ClaudeFilePolicy.d.ts +7 -0
- package/dist/executor/claude/ClaudeFilePolicy.d.ts.map +1 -0
- package/dist/executor/claude/ClaudeFilePolicy.js +88 -0
- package/dist/executor/claude/ClaudeFilePolicy.js.map +1 -0
- package/dist/executor/claude/ClaudeSandbox.d.ts +32 -0
- package/dist/executor/claude/ClaudeSandbox.d.ts.map +1 -0
- package/dist/executor/claude/ClaudeSandbox.js +245 -0
- package/dist/executor/claude/ClaudeSandbox.js.map +1 -0
- package/dist/executor/claude/approvalMcpServer.d.ts +2 -0
- package/dist/executor/claude/approvalMcpServer.d.ts.map +1 -0
- package/dist/executor/claude/approvalMcpServer.js +159 -0
- package/dist/executor/claude/approvalMcpServer.js.map +1 -0
- package/dist/executor/claude/filePolicyHook.d.ts +2 -0
- package/dist/executor/claude/filePolicyHook.d.ts.map +1 -0
- package/dist/executor/claude/filePolicyHook.js +63 -0
- package/dist/executor/claude/filePolicyHook.js.map +1 -0
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +4 -3
- package/dist/executor/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/thread/ThreadManager.d.ts.map +1 -1
- package/dist/thread/ThreadManager.js +2 -0
- package/dist/thread/ThreadManager.js.map +1 -1
- package/dist/types/config.d.ts +32 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/index.d.ts +53 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/update/AutomaticUpdater.d.ts +7 -1
- package/dist/update/AutomaticUpdater.d.ts.map +1 -1
- package/dist/update/AutomaticUpdater.js +25 -2
- package/dist/update/AutomaticUpdater.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/start.js
CHANGED
|
@@ -1,45 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
6
|
exports.isNewerVersion = void 0;
|
|
40
7
|
exports.checkBackendAvailability = checkBackendAvailability;
|
|
41
|
-
exports.
|
|
42
|
-
exports.checkServerVersion = checkServerVersion;
|
|
8
|
+
exports.getServerVersion = getServerVersion;
|
|
43
9
|
exports.startCommand = startCommand;
|
|
44
10
|
const ConfigManager_1 = require("../config/ConfigManager");
|
|
45
11
|
const WebSocketClient_1 = require("../client/WebSocketClient");
|
|
@@ -50,7 +16,6 @@ const ThreadManager_1 = require("../thread/ThreadManager");
|
|
|
50
16
|
const ThreadExecutorPool_1 = require("../thread/ThreadExecutorPool");
|
|
51
17
|
const types_1 = require("../types");
|
|
52
18
|
const axios_1 = __importDefault(require("axios"));
|
|
53
|
-
const readline = __importStar(require("readline"));
|
|
54
19
|
const child_process_1 = require("child_process");
|
|
55
20
|
const ora_1 = __importDefault(require("ora"));
|
|
56
21
|
const AutomaticUpdater_1 = require("../update/AutomaticUpdater");
|
|
@@ -109,60 +74,19 @@ async function checkBackendAvailability(type, spinner, executorConfig) {
|
|
|
109
74
|
spinner.start('Continuing...');
|
|
110
75
|
}
|
|
111
76
|
}
|
|
112
|
-
/**
|
|
113
|
-
|
|
114
|
-
*/
|
|
115
|
-
function promptYesNo(question) {
|
|
116
|
-
return new Promise((resolve) => {
|
|
117
|
-
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
118
|
-
rl.question(question, (answer) => {
|
|
119
|
-
rl.close();
|
|
120
|
-
resolve(answer.trim().toLowerCase() === 'y');
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Query the router's /api/version endpoint and, if the router is newer than
|
|
126
|
-
* the local CLI, prompt the user whether to continue or abort.
|
|
127
|
-
* Returns false if the user chooses to abort.
|
|
128
|
-
*/
|
|
129
|
-
async function checkServerVersion(serverUrl, spinner, nonInteractive = false) {
|
|
77
|
+
/** Read the Router package version without requiring interactive input. */
|
|
78
|
+
async function getServerVersion(serverUrl) {
|
|
130
79
|
try {
|
|
131
80
|
const response = await axios_1.default.get(`${serverUrl}/api/version`, { timeout: 5000 });
|
|
132
81
|
const data = response.data;
|
|
133
|
-
if (
|
|
134
|
-
return
|
|
135
|
-
if ((0, version_1.isNewerVersion)(data.version, types_1.CLI_VERSION)) {
|
|
136
|
-
// Stop spinner before prompting to avoid stdin interference
|
|
137
|
-
if (spinner) {
|
|
138
|
-
spinner.stop();
|
|
139
|
-
}
|
|
140
|
-
console.log('');
|
|
141
|
-
console.log(`⚠️ Version mismatch detected:`);
|
|
142
|
-
console.log(` Router version : ${data.version}`);
|
|
143
|
-
console.log(` CLI version : ${types_1.CLI_VERSION}`);
|
|
144
|
-
console.log(` The router has been upgraded. It is recommended to upgrade your CLI:`);
|
|
145
|
-
console.log(` npm install -g @yu_robotics/remote-cli`);
|
|
146
|
-
console.log('');
|
|
147
|
-
if (nonInteractive) {
|
|
148
|
-
console.log(' Continuing without prompting because startup is non-interactive.');
|
|
149
|
-
return true;
|
|
150
|
-
}
|
|
151
|
-
const proceed = await promptYesNo('Continue with the current version? (y/n): ');
|
|
152
|
-
if (!proceed) {
|
|
153
|
-
console.log('Aborted. Please upgrade and try again.');
|
|
154
|
-
return false;
|
|
155
|
-
}
|
|
156
|
-
// Resume spinner after user input
|
|
157
|
-
if (spinner) {
|
|
158
|
-
spinner.start();
|
|
159
|
-
}
|
|
82
|
+
if (data?.success && typeof data.version === 'string' && (0, version_1.isValidVersion)(data.version)) {
|
|
83
|
+
return data.version;
|
|
160
84
|
}
|
|
161
85
|
}
|
|
162
86
|
catch {
|
|
163
|
-
//
|
|
87
|
+
// Older routers and temporary network failures must not prevent startup.
|
|
164
88
|
}
|
|
165
|
-
return
|
|
89
|
+
return undefined;
|
|
166
90
|
}
|
|
167
91
|
/**
|
|
168
92
|
* Start the remote CLI service
|
|
@@ -204,13 +128,8 @@ async function startCommand(options) {
|
|
|
204
128
|
error: 'Configuration error: allowedDirectories is missing',
|
|
205
129
|
};
|
|
206
130
|
}
|
|
207
|
-
// Check for newer router version — blocking prompt if outdated
|
|
208
131
|
spinner.text = 'Checking server version...';
|
|
209
|
-
const
|
|
210
|
-
if (!shouldContinue) {
|
|
211
|
-
spinner.fail('Startup aborted by user');
|
|
212
|
-
return { success: false, error: 'Startup aborted: please upgrade remote-cli to the latest version.' };
|
|
213
|
-
}
|
|
132
|
+
const serverVersion = await getServerVersion(serverUrl);
|
|
214
133
|
// Initialize components
|
|
215
134
|
spinner.text = 'Initializing components...';
|
|
216
135
|
const directoryGuard = new DirectoryGuard_1.DirectoryGuard(security.allowedDirectories);
|
|
@@ -262,14 +181,13 @@ async function startCommand(options) {
|
|
|
262
181
|
const wsUrl = serverUrl.replace(/^http/, 'ws') + '/ws';
|
|
263
182
|
const wsClient = new WebSocketClient_1.WebSocketClient(wsUrl, deviceId);
|
|
264
183
|
const messageHandler = new MessageHandler_1.MessageHandler(wsClient, threadPool, threadManager, directoryGuard, config);
|
|
265
|
-
const automaticUpdater =
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
: undefined;
|
|
184
|
+
const automaticUpdater = new AutomaticUpdater_1.AutomaticUpdater(types_1.CLI_VERSION, messageHandler, {
|
|
185
|
+
restartAfterUpdate: options.nonInteractive === true,
|
|
186
|
+
beforeRestart: async () => {
|
|
187
|
+
wsClient.disconnect();
|
|
188
|
+
await messageHandler.destroy();
|
|
189
|
+
},
|
|
190
|
+
});
|
|
273
191
|
// Setup event handlers
|
|
274
192
|
wsClient.on('connected', () => {
|
|
275
193
|
console.log('✅ Connected to server');
|
|
@@ -281,10 +199,10 @@ async function startCommand(options) {
|
|
|
281
199
|
console.error('❌ WebSocket error:', error);
|
|
282
200
|
});
|
|
283
201
|
wsClient.on('message', async (message) => {
|
|
284
|
-
if (
|
|
202
|
+
if (message.type === 'binding_confirm' && message.data?.routerVersion) {
|
|
285
203
|
void automaticUpdater.handleRouterVersion(message.data.routerVersion);
|
|
286
204
|
}
|
|
287
|
-
if (
|
|
205
|
+
if (message.type === 'error' && message.data?.code === 'PROTOCOL_VERSION_INCOMPATIBLE') {
|
|
288
206
|
void automaticUpdater.handleProtocolMismatch(serverUrl);
|
|
289
207
|
}
|
|
290
208
|
await messageHandler.handleMessage(message);
|
|
@@ -310,6 +228,11 @@ async function startCommand(options) {
|
|
|
310
228
|
spinner.succeed(options.daemon
|
|
311
229
|
? 'Remote CLI service started in daemon mode'
|
|
312
230
|
: 'Remote CLI service started');
|
|
231
|
+
console.log(options.nonInteractive
|
|
232
|
+
? '[AutoUpdate] Enabled: updates wait for idle work, then restart through the process supervisor.'
|
|
233
|
+
: '[AutoUpdate] Enabled: updates wait for idle work and take effect on your next start. This process will keep running.');
|
|
234
|
+
if (serverVersion)
|
|
235
|
+
void automaticUpdater.handleRouterVersion(serverVersion);
|
|
313
236
|
return {
|
|
314
237
|
success: true,
|
|
315
238
|
daemonMode: options.daemon,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DirectoryGuard } from '../security/DirectoryGuard';
|
|
2
|
-
import { StructuredContent, ToolUseInfo, ToolResultInfo, Attachment } from '../types';
|
|
2
|
+
import { StructuredContent, ToolUseInfo, ToolResultInfo, Attachment, ApprovalRequestInfo, ApprovalAction, ApprovalStatus } from '../types';
|
|
3
|
+
import type { ClaudeSandboxConfig } from '../types/config';
|
|
3
4
|
import { EventEmitter } from 'events';
|
|
4
5
|
/**
|
|
5
6
|
* Persistent Claude Executor options
|
|
@@ -17,6 +18,10 @@ export interface PersistentClaudeOptions {
|
|
|
17
18
|
onRedactedThinking?: () => void;
|
|
18
19
|
/** Plan mode callback (fires when Claude completes plan between EnterPlanMode and ExitPlanMode) */
|
|
19
20
|
onPlanMode?: (planContent: string) => void;
|
|
21
|
+
/** Approval request callback — return true when an interactive card replaces the text prompt. */
|
|
22
|
+
onApprovalRequest?: (request: ApprovalRequestInfo) => boolean;
|
|
23
|
+
/** Approval resolved callback (card cleanup). */
|
|
24
|
+
onApprovalResolved?: (requestId: string, status: ApprovalStatus) => void;
|
|
20
25
|
/** Image and other attachments to include with the prompt */
|
|
21
26
|
attachments?: Attachment[];
|
|
22
27
|
/** Execution timeout (milliseconds), default 300000 (5 minutes) */
|
|
@@ -60,6 +65,7 @@ export declare class ClaudePersistentExecutor extends EventEmitter {
|
|
|
60
65
|
private commandQueue;
|
|
61
66
|
private isProcessing;
|
|
62
67
|
private currentOutputBuffer;
|
|
68
|
+
private textStreams;
|
|
63
69
|
private currentStreamCallback?;
|
|
64
70
|
private currentToolUseCallback?;
|
|
65
71
|
private currentToolResultCallback?;
|
|
@@ -78,8 +84,25 @@ export declare class ClaudePersistentExecutor extends EventEmitter {
|
|
|
78
84
|
private inputRequestCallbacks;
|
|
79
85
|
private inputDetectionTimer?;
|
|
80
86
|
private lastOutputTime;
|
|
87
|
+
private readonly sandbox;
|
|
88
|
+
private readonly claudeCommand;
|
|
89
|
+
private approvalServer;
|
|
90
|
+
private approvalSocketPath?;
|
|
91
|
+
private approvalGeneration;
|
|
92
|
+
private approvalTurnActive;
|
|
93
|
+
private pendingApprovals;
|
|
94
|
+
private currentApprovalRequestCallback?;
|
|
95
|
+
private currentApprovalResolvedCallback?;
|
|
96
|
+
private filePolicyToken?;
|
|
97
|
+
private filePolicyRoots;
|
|
98
|
+
private filePolicyStarted;
|
|
99
|
+
private onFilePolicyStarted?;
|
|
100
|
+
private static readonly APPROVAL_TIMEOUT_MS;
|
|
101
|
+
private static readonly APPROVAL_SERVER_SCRIPT;
|
|
102
|
+
private static readonly APPROVAL_TOOL_NAME;
|
|
103
|
+
private static readonly FILE_POLICY_SCRIPT;
|
|
81
104
|
private activityTrackingEnabled;
|
|
82
|
-
constructor(directoryGuard: DirectoryGuard, initialWorkingDirectory?: string, threadId?: string, model?: string);
|
|
105
|
+
constructor(directoryGuard: DirectoryGuard, initialWorkingDirectory?: string, threadId?: string, model?: string, sandbox?: ClaudeSandboxConfig, claudeCommand?: string);
|
|
83
106
|
/**
|
|
84
107
|
* Load session ID from file if exists
|
|
85
108
|
*/
|
|
@@ -115,6 +138,16 @@ export declare class ClaudePersistentExecutor extends EventEmitter {
|
|
|
115
138
|
* Stop the persistent Claude process
|
|
116
139
|
*/
|
|
117
140
|
private stopProcess;
|
|
141
|
+
private waitForFilePolicy;
|
|
142
|
+
private ensureApprovalServer;
|
|
143
|
+
private handleApprovalSocketRequest;
|
|
144
|
+
private answerApproval;
|
|
145
|
+
/** MessageHandler entry point for approval card actions. */
|
|
146
|
+
respondToApproval(requestId: string, action: ApprovalAction): boolean;
|
|
147
|
+
private denyAllPendingApprovals;
|
|
148
|
+
private clearApprovals;
|
|
149
|
+
getSandboxStatus(): string;
|
|
150
|
+
configureSandbox(command: string): Promise<PersistentClaudeResult>;
|
|
118
151
|
/**
|
|
119
152
|
* Reset the command timeout timer when activity is detected
|
|
120
153
|
* This prevents timeout during long-running tasks with continuous output
|
|
@@ -125,6 +158,9 @@ export declare class ClaudePersistentExecutor extends EventEmitter {
|
|
|
125
158
|
* Claude is still working. Users can use /abort to cancel long-running tasks.
|
|
126
159
|
*/
|
|
127
160
|
private resetActivityTimeout;
|
|
161
|
+
private emitText;
|
|
162
|
+
private handleStreamEvent;
|
|
163
|
+
private unstreamedText;
|
|
128
164
|
/**
|
|
129
165
|
* Handle a line of JSON output from Claude
|
|
130
166
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudePersistentExecutor.d.ts","sourceRoot":"","sources":["../../src/executor/ClaudePersistentExecutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAqB,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ClaudePersistentExecutor.d.ts","sourceRoot":"","sources":["../../src/executor/ClaudePersistentExecutor.ts"],"names":[],"mappings":"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"}
|