@yu_robotics/remote-cli 1.6.114 → 1.6.117
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 +2 -0
- package/dist/client/MessageHandler.d.ts.map +1 -1
- package/dist/client/MessageHandler.js +20 -9
- package/dist/client/MessageHandler.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +5 -2
- package/dist/commands/start.js.map +1 -1
- package/dist/delegation/DelegatedWorkerLaneCleanup.d.ts.map +1 -1
- package/dist/delegation/DelegatedWorkerLaneCleanup.js +4 -0
- package/dist/delegation/DelegatedWorkerLaneCleanup.js.map +1 -1
- package/dist/delegation/DelegationNotice.js +1 -1
- package/dist/delegation/DelegationNotice.js.map +1 -1
- package/dist/delegation/DelegationStatusFormatter.d.ts.map +1 -1
- package/dist/delegation/DelegationStatusFormatter.js +1 -0
- package/dist/delegation/DelegationStatusFormatter.js.map +1 -1
- package/dist/delegation/contract.d.ts +1 -1
- package/dist/delegation/contract.d.ts.map +1 -1
- package/dist/delegation/contract.js +1 -1
- package/dist/delegation/contract.js.map +1 -1
- package/dist/executor/AcpExecutor.d.ts +5 -0
- package/dist/executor/AcpExecutor.d.ts.map +1 -1
- package/dist/executor/AcpExecutor.js +10 -3
- package/dist/executor/AcpExecutor.js.map +1 -1
- package/dist/executor/DshExecutor.d.ts +33 -0
- package/dist/executor/DshExecutor.d.ts.map +1 -0
- package/dist/executor/DshExecutor.js +211 -0
- package/dist/executor/DshExecutor.js.map +1 -0
- package/dist/executor/acp/AcpClient.d.ts +14 -4
- package/dist/executor/acp/AcpClient.d.ts.map +1 -1
- package/dist/executor/acp/AcpClient.js +6 -3
- package/dist/executor/acp/AcpClient.js.map +1 -1
- package/dist/executor/dsh/DshAcpClient.d.ts +29 -0
- package/dist/executor/dsh/DshAcpClient.d.ts.map +1 -0
- package/dist/executor/dsh/DshAcpClient.js +107 -0
- package/dist/executor/dsh/DshAcpClient.js.map +1 -0
- package/dist/executor/dsh/DshPrivacy.d.ts +9 -0
- package/dist/executor/dsh/DshPrivacy.d.ts.map +1 -0
- package/dist/executor/dsh/DshPrivacy.js +39 -0
- package/dist/executor/dsh/DshPrivacy.js.map +1 -0
- package/dist/executor/index.d.ts +1 -0
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +15 -1
- package/dist/executor/index.js.map +1 -1
- package/dist/thread/ThreadExecutorPool.js +1 -1
- package/dist/thread/ThreadExecutorPool.js.map +1 -1
- package/dist/thread/ThreadManager.d.ts.map +1 -1
- package/dist/thread/ThreadManager.js +17 -1
- package/dist/thread/ThreadManager.js.map +1 -1
- package/dist/types/config.d.ts +11 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DshExecutor = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const os_1 = __importDefault(require("os"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const crypto_1 = require("crypto");
|
|
11
|
+
const AcpExecutor_1 = require("./AcpExecutor");
|
|
12
|
+
const compactHandoff_1 = require("./compactHandoff");
|
|
13
|
+
const DshAcpClient_1 = require("./dsh/DshAcpClient");
|
|
14
|
+
const COMPACT_CONTEXT_UNAVAILABLE = 'The saved DSH context cannot be resumed over ACP. No compact summary was created. Send a normal task to start fresh, or use /clear.';
|
|
15
|
+
/** DSH-specific compatibility policy; other ACP executors keep their existing defaults. */
|
|
16
|
+
class DshExecutor extends AcpExecutor_1.AcpExecutor {
|
|
17
|
+
state;
|
|
18
|
+
handoffFile;
|
|
19
|
+
constructor(guard, options = {}) {
|
|
20
|
+
// Do not silently launch a DSH task in a different workspace when admission fails.
|
|
21
|
+
if (options.initialWorkingDirectory)
|
|
22
|
+
guard.resolveWorkingDirectory(options.initialWorkingDirectory, process.cwd());
|
|
23
|
+
const state = { images: false, usage: null, recoveryNotice: false, compacting: false, generation: 0 };
|
|
24
|
+
const directory = options.sessionBaseDir ?? path_1.default.join(os_1.default.homedir(), '.remote-cli', 'dsh-sessions');
|
|
25
|
+
const handoffFile = path_1.default.join(directory, `${options.threadId ?? 'default'}.handoff.json`);
|
|
26
|
+
const clearHandoff = () => {
|
|
27
|
+
fs_1.default.rmSync(handoffFile, { force: true });
|
|
28
|
+
state.handoff = undefined;
|
|
29
|
+
};
|
|
30
|
+
super(guard, {
|
|
31
|
+
...options,
|
|
32
|
+
acpCommand: options.dshCommand ?? 'dsh', acpArgs: ['acp'],
|
|
33
|
+
backendLabel: 'DeepSeek Harness', sessionNamespace: 'dsh-sessions',
|
|
34
|
+
effortConfigId: 'reasoning_effort', effortAutoValue: '',
|
|
35
|
+
installCommand: 'npm install --global @deepseek-ai/dsh',
|
|
36
|
+
authCommand: 'dsh web', preserveSessionOnResumeError: true, managedLifecycle: true,
|
|
37
|
+
clientFactory: (callbacks, cwd) => {
|
|
38
|
+
const wrapped = { ...callbacks, onUsage: update => {
|
|
39
|
+
if (Number.isSafeInteger(update.used) && Number.isSafeInteger(update.size)
|
|
40
|
+
&& Number(update.used) >= 0 && Number(update.size) > 0) {
|
|
41
|
+
state.usage = { contextTokens: Number(update.used), contextWindow: Number(update.size),
|
|
42
|
+
contextPercent: Number(update.used) / Number(update.size) * 100 };
|
|
43
|
+
}
|
|
44
|
+
} };
|
|
45
|
+
const transport = options.clientFactory?.(wrapped, cwd)
|
|
46
|
+
?? new DshAcpClient_1.DshAcpClient(options.dshCommand ?? 'dsh', cwd, wrapped);
|
|
47
|
+
return {
|
|
48
|
+
initialize: async () => {
|
|
49
|
+
const result = await transport.initialize();
|
|
50
|
+
state.images = result?.agentCapabilities?.promptCapabilities?.image === true;
|
|
51
|
+
state.usage = null;
|
|
52
|
+
return result;
|
|
53
|
+
},
|
|
54
|
+
newSession: (...args) => transport.newSession(...args),
|
|
55
|
+
loadSession: async (...args) => {
|
|
56
|
+
try {
|
|
57
|
+
return await transport.loadSession(...args);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
61
|
+
// Match only DSH's known permanent error, not provider text or arbitrary RPC failures.
|
|
62
|
+
if (/^(?:ACP error -32602:\s*)?session is not resumable(?:\s*:|$)/i.test(message)) {
|
|
63
|
+
if (state.compacting)
|
|
64
|
+
throw new Error(COMPACT_CONTEXT_UNAVAILABLE);
|
|
65
|
+
state.recoveryNotice = true;
|
|
66
|
+
throw new Error('Session not found: the saved DSH context cannot be resumed over ACP.');
|
|
67
|
+
}
|
|
68
|
+
if (/^(?:ACP error -32602:\s*)?session cwd does not match(?:\s*:|$)/i.test(message)) {
|
|
69
|
+
throw new Error('The saved DSH session belongs to a different working directory. No context was reset. Use /clear to start fresh in the current directory, or /cd <directory> to change directories and start fresh. Changing directories does not automatically resume the original conversation.');
|
|
70
|
+
}
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
setConfigOption: (id, key, value) => transport.setConfigOption(id, key, key === 'reasoning_effort' && value === 'auto' ? '' : value),
|
|
75
|
+
deleteSession: id => transport.deleteSession(id),
|
|
76
|
+
sendCancel: id => transport.sendCancel(id),
|
|
77
|
+
destroy: () => transport.destroy(),
|
|
78
|
+
...(transport.waitForExit ? { waitForExit: () => transport.waitForExit() } : {}),
|
|
79
|
+
prompt: async (id, blocks) => {
|
|
80
|
+
if (!state.images && blocks.some(block => block.type === 'image')) {
|
|
81
|
+
throw new Error('This DSH ACP profile/model does not support image input. No part of this prompt was submitted.');
|
|
82
|
+
}
|
|
83
|
+
if (state.recoveryNotice) {
|
|
84
|
+
callbacks.onTextChunk?.({ type: 'text', text: '⚠️ The saved DSH context cannot be resumed over ACP. Continuing in a new session; remote-cli did not delete native DSH history.\n\n' });
|
|
85
|
+
state.recoveryNotice = false;
|
|
86
|
+
}
|
|
87
|
+
const handoff = state.handoff;
|
|
88
|
+
const result = await transport.prompt(id, handoff
|
|
89
|
+
? [{ type: 'text', text: (0, compactHandoff_1.seedPromptWithHandoff)(handoff.text, '') }, ...blocks] : blocks);
|
|
90
|
+
if (handoff && state.handoff === handoff && result.stopReason === 'end_turn')
|
|
91
|
+
clearHandoff();
|
|
92
|
+
return result;
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
this.state = state;
|
|
98
|
+
this.handoffFile = handoffFile;
|
|
99
|
+
try {
|
|
100
|
+
const stat = fs_1.default.lstatSync(handoffFile);
|
|
101
|
+
if (!stat.isFile() || stat.isSymbolicLink() || stat.size > 300_000)
|
|
102
|
+
throw new Error('Invalid DSH handoff file');
|
|
103
|
+
const saved = JSON.parse(fs_1.default.readFileSync(handoffFile, 'utf8'));
|
|
104
|
+
if (typeof saved.text === 'string' && saved.text.trim() && saved.text.length <= 65_536
|
|
105
|
+
&& saved.cwd === this.getCurrentWorkingDirectory()
|
|
106
|
+
&& (typeof saved.sourceSessionId === 'string' || saved.sourceSessionId === null)) {
|
|
107
|
+
state.handoff = saved;
|
|
108
|
+
// Finish a reset interrupted after the summary was durably written.
|
|
109
|
+
if (saved.sourceSessionId === this.getSessionId())
|
|
110
|
+
super.resetContext();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error.code !== 'ENOENT')
|
|
115
|
+
console.warn('[DSH] Pending compact summary could not be loaded.');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
execute(prompt, options = {}) {
|
|
119
|
+
if (this.state.compacting)
|
|
120
|
+
return Promise.resolve({ success: false, error: 'DSH is compacting. Try again after it finishes.' });
|
|
121
|
+
if (/^\s*\/[a-z][\w-]*(?:\s|$)/i.test(prompt))
|
|
122
|
+
return Promise.resolve({ success: false,
|
|
123
|
+
error: 'DSH ACP does not expose interactive slash commands. Use remote-cli built-ins or describe the task in plain text.' });
|
|
124
|
+
return super.execute(prompt, options);
|
|
125
|
+
}
|
|
126
|
+
isBusy() { return this.state?.compacting === true || super.isBusy(); }
|
|
127
|
+
getContextUsage() { return this.state.usage; }
|
|
128
|
+
async listModels() {
|
|
129
|
+
return (await super.listModels()).map(model => ({ ...model,
|
|
130
|
+
supportedReasoningEfforts: model.supportedReasoningEfforts?.map(value => value === '' ? 'auto' : value),
|
|
131
|
+
defaultReasoningEffort: model.isDefault ? 'auto' : undefined,
|
|
132
|
+
// initialize advertises a connection capability, not a per-catalog-model promise.
|
|
133
|
+
inputModalities: model.isDefault && this.state.images ? ['text', 'image'] : ['text'],
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
resetContext() {
|
|
137
|
+
this.state.generation++;
|
|
138
|
+
fs_1.default.rmSync(this.handoffFile, { force: true });
|
|
139
|
+
this.state.handoff = undefined;
|
|
140
|
+
this.state.usage = null;
|
|
141
|
+
this.state.recoveryNotice = false;
|
|
142
|
+
super.resetContext();
|
|
143
|
+
}
|
|
144
|
+
async setWorkingDirectory(target) {
|
|
145
|
+
const previous = this.getCurrentWorkingDirectory();
|
|
146
|
+
await super.setWorkingDirectory(target);
|
|
147
|
+
if (this.getCurrentWorkingDirectory() !== previous) {
|
|
148
|
+
this.state.generation++;
|
|
149
|
+
fs_1.default.rmSync(this.handoffFile, { force: true });
|
|
150
|
+
this.state.handoff = undefined;
|
|
151
|
+
this.state.usage = null;
|
|
152
|
+
this.state.recoveryNotice = false;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async compactWhenFull(onStream) {
|
|
156
|
+
if (this.isBusy())
|
|
157
|
+
return { success: false, error: 'DSH is busy. Wait before compacting.' };
|
|
158
|
+
if (this.state.recoveryNotice)
|
|
159
|
+
return { success: false, error: COMPACT_CONTEXT_UNAVAILABLE };
|
|
160
|
+
if (this.state.handoff)
|
|
161
|
+
return { success: true, output: 'A compact summary is already saved for the next DSH turn.' };
|
|
162
|
+
this.state.compacting = true;
|
|
163
|
+
const generation = this.state.generation;
|
|
164
|
+
try {
|
|
165
|
+
onStream?.('Summarizing the DSH conversation before starting a fresh context...\n');
|
|
166
|
+
const result = await super.execute(compactHandoff_1.COMPACT_HANDOFF_PROMPT);
|
|
167
|
+
if (generation !== this.state.generation)
|
|
168
|
+
return { success: false, error: 'DSH compaction was cancelled or its context changed.' };
|
|
169
|
+
if (!result.success || !result.output?.trim())
|
|
170
|
+
return { success: false,
|
|
171
|
+
error: result.error ?? 'DSH returned no compact summary. The original context was preserved.' };
|
|
172
|
+
const handoff = { text: result.output.trim().slice(0, 65_536),
|
|
173
|
+
cwd: this.getCurrentWorkingDirectory(), sourceSessionId: this.getSessionId() };
|
|
174
|
+
const temporary = `${this.handoffFile}.${(0, crypto_1.randomUUID)()}.tmp`;
|
|
175
|
+
try {
|
|
176
|
+
fs_1.default.writeFileSync(temporary, JSON.stringify(handoff), { mode: 0o600, flag: 'wx' });
|
|
177
|
+
fs_1.default.renameSync(temporary, this.handoffFile);
|
|
178
|
+
}
|
|
179
|
+
finally {
|
|
180
|
+
fs_1.default.rmSync(temporary, { force: true });
|
|
181
|
+
}
|
|
182
|
+
this.state.handoff = handoff;
|
|
183
|
+
super.resetContext();
|
|
184
|
+
this.state.usage = null;
|
|
185
|
+
await super.waitForExit();
|
|
186
|
+
return { success: true, output: 'Context compacted by summary and reset. The saved summary will seed the next turn; native DSH history is retained.' };
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
return { success: false, error: 'DSH compaction could not finish. A saved summary, if present, is retained; no task was replayed.' };
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
this.state.compacting = false;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** Remove remote-cli pointers only; DSH ACP has no native history deletion API. */
|
|
196
|
+
async deleteThreadData(_threadId) {
|
|
197
|
+
this.resetContext();
|
|
198
|
+
await this.waitForExit();
|
|
199
|
+
}
|
|
200
|
+
async abort() {
|
|
201
|
+
if (this.state.compacting)
|
|
202
|
+
this.state.generation++;
|
|
203
|
+
return super.abort();
|
|
204
|
+
}
|
|
205
|
+
async destroy() {
|
|
206
|
+
this.state.generation++;
|
|
207
|
+
await super.destroy();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.DshExecutor = DshExecutor;
|
|
211
|
+
//# sourceMappingURL=DshExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DshExecutor.js","sourceRoot":"","sources":["../../src/executor/DshExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,11 @@ export interface AcpTransport {
|
|
|
38
38
|
destroy(): void;
|
|
39
39
|
waitForExit?(): Promise<void>;
|
|
40
40
|
}
|
|
41
|
+
/** Optional launch policy for specialized transports; existing ACP launches are unchanged. */
|
|
42
|
+
export interface AcpLaunchOptions {
|
|
43
|
+
env?: NodeJS.ProcessEnv;
|
|
44
|
+
onStderr?: (message: string) => void;
|
|
45
|
+
}
|
|
41
46
|
export declare class AcpClient implements AcpTransport {
|
|
42
47
|
private readonly managedProcess;
|
|
43
48
|
private readonly child;
|
|
@@ -49,7 +54,7 @@ export declare class AcpClient implements AcpTransport {
|
|
|
49
54
|
private closed;
|
|
50
55
|
private killTimer;
|
|
51
56
|
private readonly exited;
|
|
52
|
-
constructor(command: string, args: string[], cwd: string, callbacks: AcpEventCallbacks, managedProcess?: boolean);
|
|
57
|
+
constructor(command: string, args: string[], cwd: string, callbacks: AcpEventCallbacks, managedProcess?: boolean, launch?: AcpLaunchOptions);
|
|
53
58
|
initialize(): Promise<unknown>;
|
|
54
59
|
newSession(cwd: string, mcpServers?: AcpMcpServer[]): Promise<AcpSessionResult>;
|
|
55
60
|
loadSession(sessionId: string, cwd: string, mcpServers?: AcpMcpServer[]): Promise<AcpSessionResult>;
|
|
@@ -62,16 +67,21 @@ export declare class AcpClient implements AcpTransport {
|
|
|
62
67
|
destroy(): void;
|
|
63
68
|
waitForExit(): Promise<void>;
|
|
64
69
|
private signalProcess;
|
|
65
|
-
|
|
70
|
+
protected sendRequest(method: string, params: unknown): Promise<unknown>;
|
|
66
71
|
private sendNotification;
|
|
67
|
-
|
|
72
|
+
protected sendResponse(id: number, result: unknown): void;
|
|
68
73
|
private sendErrorResponse;
|
|
69
74
|
private writeLine;
|
|
70
75
|
private handleLine;
|
|
71
76
|
private handleResponse;
|
|
72
77
|
private handleNotification;
|
|
73
78
|
private handleServerRequest;
|
|
74
|
-
|
|
79
|
+
protected handlePermissionRequest(id: number, params: {
|
|
80
|
+
toolCall?: {
|
|
81
|
+
title?: string;
|
|
82
|
+
};
|
|
83
|
+
options?: AcpPermissionOption[];
|
|
84
|
+
}): Promise<void>;
|
|
75
85
|
private rejectAllPending;
|
|
76
86
|
private clearKillTimer;
|
|
77
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcpClient.d.ts","sourceRoot":"","sources":["../../../src/executor/acp/AcpClient.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AcpClient.d.ts","sourceRoot":"","sources":["../../../src/executor/acp/AcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -49,14 +49,14 @@ class AcpClient {
|
|
|
49
49
|
closed = false;
|
|
50
50
|
killTimer = null;
|
|
51
51
|
exited;
|
|
52
|
-
constructor(command, args, cwd, callbacks, managedProcess = false) {
|
|
52
|
+
constructor(command, args, cwd, callbacks, managedProcess = false, launch = {}) {
|
|
53
53
|
this.managedProcess = managedProcess;
|
|
54
54
|
this.callbacks = callbacks;
|
|
55
55
|
(0, WorkingDirectory_1.assertWorkingDirectoryExists)(cwd);
|
|
56
56
|
this.child = (0, child_process_1.spawn)(command, args, {
|
|
57
57
|
cwd,
|
|
58
58
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
59
|
-
env: process.env,
|
|
59
|
+
env: launch.env ?? process.env,
|
|
60
60
|
...(managedProcess && process.platform !== 'win32' ? { detached: true } : {}),
|
|
61
61
|
});
|
|
62
62
|
this.exited = new Promise(resolve => this.child.once('close', () => resolve()));
|
|
@@ -65,7 +65,10 @@ class AcpClient {
|
|
|
65
65
|
this.child.stderr?.on('data', (chunk) => {
|
|
66
66
|
const message = chunk.toString().trimEnd();
|
|
67
67
|
if (message && !message.includes('EPIPE') && !message.includes('write EPIPE')) {
|
|
68
|
-
|
|
68
|
+
if (launch.onStderr)
|
|
69
|
+
launch.onStderr(message);
|
|
70
|
+
else
|
|
71
|
+
console.error(`[AcpClient stderr] ${message}`);
|
|
69
72
|
}
|
|
70
73
|
});
|
|
71
74
|
this.rl = readline.createInterface({ input: this.child.stdout });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AcpClient.js","sourceRoot":"","sources":["../../../src/executor/acp/AcpClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,mDAAqC;AACrC,mEAA4E;AAc5E,MAAM,gBAAgB,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"AcpClient.js","sourceRoot":"","sources":["../../../src/executor/acp/AcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AcpClient, type AcpEventCallbacks } from '../acp/AcpClient';
|
|
2
|
+
import type { AcpContentBlock, AcpMcpServer, AcpPermissionOption, AcpSessionResult } from '../acp/AcpTypes';
|
|
3
|
+
/** Provider errors can contain request headers; never relay them verbatim. */
|
|
4
|
+
export declare function dshErrorMessage(value: unknown): string;
|
|
5
|
+
/** DSH's ACP dialect, without changing OpenCode/Kimi/ZCode transport behavior. */
|
|
6
|
+
export declare class DshAcpClient extends AcpClient {
|
|
7
|
+
private readonly controlTimeout;
|
|
8
|
+
supportsImages: boolean;
|
|
9
|
+
private stopped;
|
|
10
|
+
private readonly permission;
|
|
11
|
+
constructor(command: string, cwd: string, callbacks: AcpEventCallbacks, controlTimeout?: number);
|
|
12
|
+
initialize(): Promise<unknown>;
|
|
13
|
+
loadSession(sessionId: string, cwd: string, mcpServers?: AcpMcpServer[]): Promise<AcpSessionResult>;
|
|
14
|
+
prompt(sessionId: string, blocks: AcpContentBlock[]): Promise<{
|
|
15
|
+
stopReason: string;
|
|
16
|
+
}>;
|
|
17
|
+
/** DSH closes live sessions but intentionally retains its native history on disk. */
|
|
18
|
+
deleteSession(sessionId: string): Promise<void>;
|
|
19
|
+
destroy(): void;
|
|
20
|
+
protected sendRequest(method: string, params: unknown): Promise<unknown>;
|
|
21
|
+
/** ACP v1 requires a nested outcome. Permission errors must deny, never grant. */
|
|
22
|
+
protected handlePermissionRequest(id: number, params: {
|
|
23
|
+
toolCall?: {
|
|
24
|
+
title?: string;
|
|
25
|
+
};
|
|
26
|
+
options?: AcpPermissionOption[];
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=DshAcpClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DshAcpClient.d.ts","sourceRoot":"","sources":["../../../src/executor/dsh/DshAcpClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG5G,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMtD;AAED,kFAAkF;AAClF,qBAAa,YAAa,SAAQ,SAAS;IAK+B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAJvG,cAAc,UAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;gBAE1D,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAmB,cAAc,SAAS;IAmB1G,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAa9B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,GAAE,YAAY,EAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIvG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAO3F,qFAAqF;IAC/E,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,OAAO,IAAI,IAAI;cAEC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB9E,kFAAkF;cAClE,uBAAuB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC1D,QAAQ,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;KAChE,GAAG,OAAO,CAAC,IAAI,CAAC;CASlB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DshAcpClient = void 0;
|
|
4
|
+
exports.dshErrorMessage = dshErrorMessage;
|
|
5
|
+
const AcpClient_1 = require("../acp/AcpClient");
|
|
6
|
+
const DshPrivacy_1 = require("./DshPrivacy");
|
|
7
|
+
/** Provider errors can contain request headers; never relay them verbatim. */
|
|
8
|
+
function dshErrorMessage(value) {
|
|
9
|
+
return (value instanceof Error ? value.message : String(value))
|
|
10
|
+
.replace(/\bsk-[a-zA-Z0-9_-]+/g, '[redacted]')
|
|
11
|
+
.replace(/((?:authorization|api[_-]?key|access[_-]?token|secret|password)["']?\s*[:=]\s*["']?)(?:Bearer\s+)?[^\s,"'}]+/gi, '$1[redacted]')
|
|
12
|
+
.replace(/https?:\/\/[^\s"<>]+/g, '[endpoint]')
|
|
13
|
+
.slice(0, 500);
|
|
14
|
+
}
|
|
15
|
+
/** DSH's ACP dialect, without changing OpenCode/Kimi/ZCode transport behavior. */
|
|
16
|
+
class DshAcpClient extends AcpClient_1.AcpClient {
|
|
17
|
+
controlTimeout;
|
|
18
|
+
supportsImages = false;
|
|
19
|
+
stopped = false;
|
|
20
|
+
permission;
|
|
21
|
+
constructor(command, cwd, callbacks, controlTimeout = 30_000) {
|
|
22
|
+
const launch = (0, DshPrivacy_1.createDshPrivacyLaunch)();
|
|
23
|
+
try {
|
|
24
|
+
super(command, launch.args, cwd, {
|
|
25
|
+
...callbacks,
|
|
26
|
+
// DSH reports generic "other" kinds; preserve its actual tool name in cards.
|
|
27
|
+
onToolCall: tool => callbacks.onToolCall?.({ ...tool, kind: tool.kind === 'other' ? undefined : tool.kind }),
|
|
28
|
+
}, true, { env: launch.env, onStderr: () => { } });
|
|
29
|
+
this.controlTimeout = controlTimeout;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
launch.dispose();
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
this.permission = callbacks.onPermissionRequest;
|
|
36
|
+
void super.waitForExit().then(() => {
|
|
37
|
+
this.stopped = true;
|
|
38
|
+
try {
|
|
39
|
+
launch.dispose();
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
console.warn('[DSH] Temporary privacy overlay cleanup failed.');
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
async initialize() {
|
|
47
|
+
const result = await super.initialize();
|
|
48
|
+
if (result.protocolVersion !== 1 || !result.agentCapabilities?.sessionCapabilities?.resume) {
|
|
49
|
+
this.destroy();
|
|
50
|
+
throw new Error('DSH must support ACP v1 and session/resume. Install a compatible DeepSeek Harness release.');
|
|
51
|
+
}
|
|
52
|
+
this.supportsImages = result.agentCapabilities.promptCapabilities?.image === true;
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
async loadSession(sessionId, cwd, mcpServers = []) {
|
|
56
|
+
return this.sendRequest('session/resume', { sessionId, cwd, mcpServers });
|
|
57
|
+
}
|
|
58
|
+
async prompt(sessionId, blocks) {
|
|
59
|
+
if (!this.supportsImages && blocks.some(block => block.type === 'image')) {
|
|
60
|
+
throw new Error('This DSH ACP profile/model does not support image input. No part of this prompt was submitted. Send text or a supported document instead.');
|
|
61
|
+
}
|
|
62
|
+
return super.prompt(sessionId, blocks);
|
|
63
|
+
}
|
|
64
|
+
/** DSH closes live sessions but intentionally retains its native history on disk. */
|
|
65
|
+
async deleteSession(sessionId) {
|
|
66
|
+
await this.sendRequest('session/close', { sessionId });
|
|
67
|
+
}
|
|
68
|
+
destroy() { this.stopped = true; super.destroy(); }
|
|
69
|
+
async sendRequest(method, params) {
|
|
70
|
+
if (this.stopped)
|
|
71
|
+
throw new Error('DSH ACP process has exited. Retry to reconnect.');
|
|
72
|
+
let timer;
|
|
73
|
+
try {
|
|
74
|
+
const request = super.sendRequest(method, params);
|
|
75
|
+
if (method === 'session/prompt')
|
|
76
|
+
return await request;
|
|
77
|
+
return await Promise.race([request, new Promise((_, reject) => {
|
|
78
|
+
timer = setTimeout(() => {
|
|
79
|
+
reject(new Error(`DSH ${method} timed out. The process was stopped; retry to reconnect.`));
|
|
80
|
+
this.destroy();
|
|
81
|
+
}, this.controlTimeout);
|
|
82
|
+
})]);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new Error(dshErrorMessage(error));
|
|
86
|
+
}
|
|
87
|
+
finally {
|
|
88
|
+
if (timer)
|
|
89
|
+
clearTimeout(timer);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/** ACP v1 requires a nested outcome. Permission errors must deny, never grant. */
|
|
93
|
+
async handlePermissionRequest(id, params) {
|
|
94
|
+
const options = params.options ?? [];
|
|
95
|
+
let index = -1;
|
|
96
|
+
try {
|
|
97
|
+
index = await this.permission?.(params.toolCall?.title ?? 'DSH tool request', options) ?? -1;
|
|
98
|
+
}
|
|
99
|
+
catch { /* Deny. */ }
|
|
100
|
+
const selected = Number.isInteger(index) ? options[index] : undefined;
|
|
101
|
+
this.sendResponse(id, { outcome: selected?.kind.startsWith('allow')
|
|
102
|
+
? { outcome: 'selected', optionId: selected.optionId }
|
|
103
|
+
: { outcome: 'cancelled' } });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.DshAcpClient = DshAcpClient;
|
|
107
|
+
//# sourceMappingURL=DshAcpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DshAcpClient.js","sourceRoot":"","sources":["../../../src/executor/dsh/DshAcpClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** These are independent upload paths. The telemetry environment flag only covers OTel. */
|
|
2
|
+
export declare const DSH_PRIVACY_PATCH: string;
|
|
3
|
+
/** A process-owned overlay, never an edit to the user's DSH profiles or credentials. */
|
|
4
|
+
export declare function createDshPrivacyLaunch(): {
|
|
5
|
+
args: string[];
|
|
6
|
+
env: NodeJS.ProcessEnv;
|
|
7
|
+
dispose: () => void;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=DshPrivacy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DshPrivacy.d.ts","sourceRoot":"","sources":["../../../src/executor/dsh/DshPrivacy.ts"],"names":[],"mappings":"AAIA,2FAA2F;AAC3F,eAAO,MAAM,iBAAiB,QAQlB,CAAC;AAEb,wFAAwF;AACxF,wBAAgB,sBAAsB,IAAI;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAexG"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DSH_PRIVACY_PATCH = void 0;
|
|
7
|
+
exports.createDshPrivacyLaunch = createDshPrivacyLaunch;
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
/** These are independent upload paths. The telemetry environment flag only covers OTel. */
|
|
12
|
+
exports.DSH_PRIVACY_PATCH = [
|
|
13
|
+
'- id: session-log-deepseek',
|
|
14
|
+
' config:',
|
|
15
|
+
' enabled: false',
|
|
16
|
+
'- id: session-telemetry-otel',
|
|
17
|
+
' config:',
|
|
18
|
+
' mode: DISABLED',
|
|
19
|
+
'',
|
|
20
|
+
].join('\n');
|
|
21
|
+
/** A process-owned overlay, never an edit to the user's DSH profiles or credentials. */
|
|
22
|
+
function createDshPrivacyLaunch() {
|
|
23
|
+
const directory = fs_1.default.mkdtempSync(path_1.default.join(os_1.default.tmpdir(), 'remote-cli-dsh-privacy-'));
|
|
24
|
+
const filename = path_1.default.join(directory, 'privacy.patch.yml');
|
|
25
|
+
const dispose = () => fs_1.default.rmSync(directory, { recursive: true, force: true });
|
|
26
|
+
try {
|
|
27
|
+
fs_1.default.writeFileSync(filename, exports.DSH_PRIVACY_PATCH, { mode: 0o600, flag: 'wx' });
|
|
28
|
+
return {
|
|
29
|
+
args: ['--profile', 'acp', '--patch', filename],
|
|
30
|
+
env: { ...process.env, DSH_TELEMETRY_DISABLED: '1' },
|
|
31
|
+
dispose,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
dispose();
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=DshPrivacy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DshPrivacy.js","sourceRoot":"","sources":["../../../src/executor/dsh/DshPrivacy.ts"],"names":[],"mappings":";;;;;;AAgBA,wDAeC;AA/BD,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AAExB,2FAA2F;AAC9E,QAAA,iBAAiB,GAAG;IAC/B,4BAA4B;IAC5B,WAAW;IACX,oBAAoB;IACpB,8BAA8B;IAC9B,WAAW;IACX,oBAAoB;IACpB,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,wFAAwF;AACxF,SAAgB,sBAAsB;IACpC,MAAM,SAAS,GAAG,YAAE,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACpF,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,YAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,yBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,OAAO;YACL,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC;YAC/C,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE;YACpD,OAAO;SACR,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;QACV,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/executor/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export { OpenCodeExecutor } from './OpenCodeExecutor';
|
|
|
11
11
|
export { KimiExecutor } from './KimiExecutor';
|
|
12
12
|
export { ZCodeExecutor } from './ZCodeExecutor';
|
|
13
13
|
export { PiExecutor } from './PiExecutor';
|
|
14
|
+
export { DshExecutor } from './DshExecutor';
|
|
14
15
|
export type { ExecutorModelInfo, IExecutor } from './IExecutor';
|
|
15
16
|
/**
|
|
16
17
|
* Executor type
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAQtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAClG,YAAY,EACV,uBAAuB,IAAI,oBAAoB,EAC/C,sBAAsB,IAAI,mBAAmB,GAC9C,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,cAAc,EAC9B,IAAI,GAAE,YAAqB,EAC3B,uBAAuB,CAAC,EAAE,MAAM,GAC/B,wBAAwB,CAM1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,cAAc,EAAE,cAAc,EAC9B,cAAc,GAAE,cAAiC,EACjD,uBAAuB,CAAC,EAAE,MAAM,EAChC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACrE,SAAS,CA8GX"}
|