super-dsh 0.3.1-a → 0.3.1-d
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/package.json +1 -1
- package/remote/helper-bin/MANIFEST.json +35 -0
- package/remote/helper-bin/aarch64-apple-darwin/BUILT-VER +1 -0
- package/remote/helper-bin/aarch64-apple-darwin/superd-run +0 -0
- package/remote/helper-bin/aarch64-unknown-linux-musl/BUILT-VER +1 -0
- package/remote/helper-bin/aarch64-unknown-linux-musl/superd-run +0 -0
- package/remote/helper-bin/x86_64-pc-windows-gnu/BUILT-VER +1 -0
- package/remote/helper-bin/x86_64-pc-windows-gnu/superd-run.exe +0 -0
- package/remote/helper-bin/x86_64-unknown-linux-musl/BUILT-VER +1 -0
- package/remote/helper-bin/x86_64-unknown-linux-musl/superd-run +0 -0
- package/remote/plugin.d.ts +51 -4
- package/remote/plugin.js +589 -104
- package/remote/provenance.json +21 -10
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "super-dsh",
|
|
3
|
-
"version": "0.3.1-
|
|
3
|
+
"version": "0.3.1-d",
|
|
4
4
|
"description": "Super D for the DeepSeek Harness (DSH) — one dsh plugin that mounts the superd hub (runtime selector, roster, per-runtime agents) and joins local foreign-agent runtimes (OMP, Codex, Claude, Pi, Hermes, Antigravity) into the DSH Web UI. Each runtime keeps its native home and session store; the hub only bridges.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": 1,
|
|
3
|
+
"name": "superd-run",
|
|
4
|
+
"ver": "0.3.1-d.b596",
|
|
5
|
+
"protocol": 1,
|
|
6
|
+
"targets": {
|
|
7
|
+
"aarch64-apple-darwin": {
|
|
8
|
+
"file": "superd-run",
|
|
9
|
+
"bytes": 337808,
|
|
10
|
+
"sha256": "a8fd11a5e6a2cb146deb599414434a299ebf78c53cfc1d3e5f42617ee11c1706"
|
|
11
|
+
},
|
|
12
|
+
"aarch64-unknown-linux-musl": {
|
|
13
|
+
"file": "superd-run",
|
|
14
|
+
"bytes": 397592,
|
|
15
|
+
"sha256": "3a8660fa099f1e71de6e08313ee2aaace00503f74365475ee46e2d2a89228397"
|
|
16
|
+
},
|
|
17
|
+
"x86_64-pc-windows-gnu": {
|
|
18
|
+
"file": "superd-run.exe",
|
|
19
|
+
"bytes": 337408,
|
|
20
|
+
"sha256": "1372450238c5bda702b4529f4148aa79e80a255c3c125d1a6229afd4693e9d90"
|
|
21
|
+
},
|
|
22
|
+
"x86_64-unknown-linux-musl": {
|
|
23
|
+
"file": "superd-run",
|
|
24
|
+
"bytes": 447152,
|
|
25
|
+
"sha256": "05b428657942abf22a0ad609433d5cab6b6182fe389851345459a0274b5a6533"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"sources": {
|
|
29
|
+
"Cargo.toml": "129ab8360e9da872f9dfd6e713d81fe1389735a74d781f3d9c15e110f92d2757",
|
|
30
|
+
"build.rs": "c4fb356956b1ec700e99bdeca07d657a7d3b2a4026582db136411676da3d125e",
|
|
31
|
+
"src/main.rs": "47f1648ea1abc30583839edab219a9062c83d57be981c0505ab6bf79c6fbff54",
|
|
32
|
+
"src/unix.rs": "56c5f523b7b1a9efd50ef24ccdabc024bc065dd2f904fdbecdf0ca49fe7f3393",
|
|
33
|
+
"src/windows.rs": "6c1537424b1adc05ed17c7cf8bf376fb5711602b9da1697d596155bf21d541da"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
package/remote/plugin.d.ts
CHANGED
|
@@ -99,7 +99,9 @@ declare class SshTargets {
|
|
|
99
99
|
clear(): void;
|
|
100
100
|
}
|
|
101
101
|
/** Shared by execution, probes and file/relay consumers. extraArgs is trusted
|
|
102
|
-
* internal SSH argv (e.g. forwarding), never a model-provided shell string.
|
|
102
|
+
* internal SSH argv (e.g. forwarding), never a model-provided shell string.
|
|
103
|
+
* Identity assembly lives in ssh-argv.ts (the ONE policy — 2026-10-17 ruling);
|
|
104
|
+
* this wrapper only picks the tty/batch dialect base. */
|
|
103
105
|
declare function sshArgv(connection: SshConnection, options?: {
|
|
104
106
|
tty?: boolean;
|
|
105
107
|
extraArgs?: readonly string[];
|
|
@@ -117,7 +119,12 @@ interface TransferReceipt {
|
|
|
117
119
|
action: 'copy';
|
|
118
120
|
src: string;
|
|
119
121
|
dst: string;
|
|
120
|
-
|
|
122
|
+
route: 'hub-staged';
|
|
123
|
+
/** S4: tier actually performed — sha256 digests ran and matched, or explicitly skipped. */
|
|
124
|
+
verification: 'sha256' | 'not-applicable';
|
|
125
|
+
/** S3 unified failure envelope. */
|
|
126
|
+
ok: boolean;
|
|
127
|
+
reason?: 'digest-mismatch' | 'staging-error' | 'aborted';
|
|
121
128
|
sourceDigest?: string;
|
|
122
129
|
destinationDigest?: string;
|
|
123
130
|
bytes: number;
|
|
@@ -154,8 +161,16 @@ interface NativeCopyReceipt {
|
|
|
154
161
|
stdout: string[];
|
|
155
162
|
stderr: string[];
|
|
156
163
|
outputTruncated: boolean;
|
|
157
|
-
/**
|
|
158
|
-
|
|
164
|
+
/** S3/S4 (spec §3.3): verification names the tier actually performed — native routes are exit-code-only (D1=A). */
|
|
165
|
+
verification: 'native-exit-only';
|
|
166
|
+
/** S3 unified failure envelope: all native exits zero. */
|
|
167
|
+
ok: boolean;
|
|
168
|
+
/** Failure class when ok is false. */
|
|
169
|
+
reason?: 'non-zero-exit' | 'aborted';
|
|
170
|
+
/** Human context, e.g. two-segment 'push not started: pull failed' (prose moved out of route, S8). */
|
|
171
|
+
note?: string;
|
|
172
|
+
/** D3 mkdir pre-hop outcome: true = created this call, false = already existed, 'n-a' = skipped or unavailable (detail in note). */
|
|
173
|
+
created?: true | false | 'n-a';
|
|
159
174
|
/** Tool-owned staging/config release: released on normal/observed exit, unknown when a channel was lost. */
|
|
160
175
|
cleanup: 'released' | 'unknown' | 'none-required';
|
|
161
176
|
}
|
|
@@ -203,6 +218,10 @@ interface RsyncReceipt extends RunResult {
|
|
|
203
218
|
transferredBytes?: number;
|
|
204
219
|
/** Two-SSH route actually used, when applicable. */
|
|
205
220
|
route?: 'local-ssh' | 'ssh-ssh-forward' | 'ssh-ssh-stdio';
|
|
221
|
+
/** S3/S4: exit-code-only tier (D1=A) + unified failure envelope. */
|
|
222
|
+
verification: 'native-exit-only';
|
|
223
|
+
ok: boolean;
|
|
224
|
+
reason?: 'non-zero-exit' | 'aborted';
|
|
206
225
|
}
|
|
207
226
|
/**
|
|
208
227
|
* Native rsync with ordered caller options. Local↔SSH runs rsync directly with
|
|
@@ -213,6 +232,23 @@ interface RsyncReceipt extends RunResult {
|
|
|
213
232
|
*/
|
|
214
233
|
declare function runRsync(request: RsyncRequest, source: RsyncEndpoint, destination: RsyncEndpoint, signal: AbortSignal, options?: RelayRsyncOptions): Promise<RsyncReceipt>;
|
|
215
234
|
//#endregion
|
|
235
|
+
//#region src/remote/helper.d.ts
|
|
236
|
+
interface HelperManifest {
|
|
237
|
+
format: 1;
|
|
238
|
+
name: string;
|
|
239
|
+
ver: string;
|
|
240
|
+
protocol: number;
|
|
241
|
+
targets: Record<string, {
|
|
242
|
+
file: string;
|
|
243
|
+
bytes: number;
|
|
244
|
+
sha256: string;
|
|
245
|
+
}>;
|
|
246
|
+
}
|
|
247
|
+
interface HelperAssets {
|
|
248
|
+
dir: string;
|
|
249
|
+
manifest: HelperManifest;
|
|
250
|
+
}
|
|
251
|
+
//#endregion
|
|
216
252
|
//#region src/remote/process.d.ts
|
|
217
253
|
declare const PROCESS_CLEANUP_BOUND_MS: number;
|
|
218
254
|
interface ProcessOptions {
|
|
@@ -287,6 +323,8 @@ interface RemoteCallResult {
|
|
|
287
323
|
session?: string;
|
|
288
324
|
/** 引导/教学行(同 label 重复给 spawn 时的「可省略 spawn」提示等);无则省略。 */
|
|
289
325
|
notice?: string;
|
|
326
|
+
/** oneshot 监督路径的如实标注:`superd-run <ver> (<triple>)` 或 `posix-shim`(spec remote-rescope §5)。 */
|
|
327
|
+
runner?: string;
|
|
290
328
|
}
|
|
291
329
|
interface RemoteAuditRecord {
|
|
292
330
|
target: string;
|
|
@@ -311,6 +349,8 @@ interface RemoteDriverOptions {
|
|
|
311
349
|
ptyArgvFor?: (plan: TargetPlan) => string[];
|
|
312
350
|
spawnArgvFor?: (spawnCommand: string) => string[];
|
|
313
351
|
probeRunner?: ProbeOptions['runner'];
|
|
352
|
+
/** 测试/验收缝:helper 资产来源(默认 lib 旁挂 helper-bin);显式 null 强制 shim 路径。 */
|
|
353
|
+
helperAssetsFor?: () => HelperAssets | null;
|
|
314
354
|
/** 测试缝:roster 扫描执行器(bare-name 解析复用)。 */
|
|
315
355
|
rosterRunner?: RosterOptions['runner'];
|
|
316
356
|
/** 测试缝:ssh config 读取(bare-name 解析复用)。 */
|
|
@@ -327,6 +367,9 @@ declare class RemoteDriver {
|
|
|
327
367
|
private readonly starting;
|
|
328
368
|
private readonly fileAbort;
|
|
329
369
|
private disposed;
|
|
370
|
+
/** undefined = 未尝试;null = 资产缺失(shim-only);registry = 每 target sticky 状态机。 */
|
|
371
|
+
private helpers;
|
|
372
|
+
private readonly runnerOf;
|
|
330
373
|
private disposal;
|
|
331
374
|
constructor(opts?: RemoteDriverOptions);
|
|
332
375
|
call(params: RemoteCallParams, callCtx?: {
|
|
@@ -350,6 +393,10 @@ declare class RemoteDriver {
|
|
|
350
393
|
start(input: RemoteInput, signal: AbortSignal): Promise<RemoteProcess>;
|
|
351
394
|
private startPrepared;
|
|
352
395
|
private nativeProcess;
|
|
396
|
+
/** Helper bootstrap is best-effort and sticky: any failure parks null for this driver
|
|
397
|
+
* lifetime and the shim stays the path. First call to a target pays probe (+ upload). */
|
|
398
|
+
private ensureHelper;
|
|
399
|
+
private helperExec;
|
|
353
400
|
private own;
|
|
354
401
|
/** Ruling 16/17:on-demand 探测 + 会话层,两行如实陈述。 */
|
|
355
402
|
/**
|