better-dsh 0.3.1-b → 0.3.1-e
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/cordis.patch.yml +13 -8
- package/lib/BrowserWebSocketTransport.js +4 -0
- package/lib/{BrowserWebSocketTransport-wm99h94r.js → BrowserWebSocketTransport2.js} +1 -1
- package/lib/LaunchOptions.js +4 -0
- package/lib/{LaunchOptions-iE9M-STS.js → LaunchOptions2.js} +1 -1
- package/lib/{NodeWebSocketTransport-D9ysYGLM.js → NodeWebSocketTransport.js} +2 -2
- package/lib/NodeWebSocketTransport2.js +4 -0
- package/lib/{bidi-CaQeBZHY.js → bidi.js} +4 -4
- package/lib/compaction/index.d.ts +1 -1
- package/lib/compaction/index.js +1 -1
- package/lib/failover/index.d.ts +1 -1
- package/lib/failover/index.js +1 -1
- package/lib/fs-aware/sandbox-plugin.js +1 -1
- package/lib/{index-browser-CJzxT9Vi.js → index-browser.js} +6 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +49 -20
- package/lib/kernel-env.js +1 -1
- package/lib/{lsp-server-registry-BcdkHROD.js → lsp-server-registry2.js} +1 -1
- package/lib/{main-uqGqYYnA.js → main.js} +1 -1
- package/lib/{main-taSMz1KX.js → main2.js} +1 -1
- package/lib/mobile/plugin.d.ts +2 -2
- package/lib/mobile/plugin.js +2 -2
- package/lib/{puppeteer-core-C-4NyOpY.js → puppeteer-core.js} +8 -8
- package/lib/py-sdk.js +1 -1
- package/lib/remote/helper-bin/MANIFEST.json +7 -7
- package/lib/remote/helper-bin/aarch64-apple-darwin/BUILT-VER +1 -1
- package/lib/remote/helper-bin/aarch64-apple-darwin/superd-run +0 -0
- package/lib/remote/helper-bin/aarch64-unknown-linux-musl/BUILT-VER +1 -1
- package/lib/remote/helper-bin/aarch64-unknown-linux-musl/superd-run +0 -0
- package/lib/remote/helper-bin/x86_64-pc-windows-gnu/BUILT-VER +1 -1
- package/lib/remote/helper-bin/x86_64-pc-windows-gnu/superd-run.exe +0 -0
- package/lib/remote/helper-bin/x86_64-unknown-linux-musl/BUILT-VER +1 -1
- package/lib/remote/helper-bin/x86_64-unknown-linux-musl/superd-run +0 -0
- package/lib/remote/plugin.d.ts +23 -4
- package/lib/remote/plugin.js +226 -88
- package/lib/url-schemes/index.d.ts +1 -1
- package/lib/url-schemes/index.js +11 -11
- package/lib/{wasm_bg-CNXhHjVg.js → wasm_bg.js} +1 -1
- package/lib/web-password.d.ts +1 -1
- package/lib/web-password.js +1 -1
- package/lib/web-trust.d.ts +2 -2
- package/lib/web-trust.js +2 -2
- package/lib/{web-trust-Dej_RI2B.d.ts → web-trust2.d.ts} +1 -1
- package/lib/{web-trust-D6gJpUMf.js → web-trust2.js} +20 -8
- package/lib/welcome-notice.d.ts +1 -1
- package/lib/welcome-notice.js +1 -1
- package/package.json +1 -1
- package/lib/BrowserWebSocketTransport-D1aFReu_.js +0 -4
- package/lib/LaunchOptions-0Mr6meJc.js +0 -4
- package/lib/NodeWebSocketTransport-BRLjmu2R.js +0 -4
- /package/lib/{chunk-DQxbwPpZ.js → chunk.js} +0 -0
- /package/lib/{index-DTDXUe6m.d.ts → index2.d.ts} +0 -0
- /package/lib/{kernel-env-x_WkG6Fr.js → kernel-env2.js} +0 -0
- /package/lib/{lib-C8_jXvwA.js → lib.js} +0 -0
- /package/lib/{lsp-server-registry-D4VLs1Sm.js → lsp-server-registry.js} +0 -0
- /package/lib/{native-capture-BEByDXYM.js → native-capture.js} +0 -0
- /package/lib/{py-sdk-D7klhpWb.js → py-sdk2.js} +0 -0
- /package/lib/{util-BHL_dfV_.js → util.js} +0 -0
- /package/lib/{web-tree-sitter-CPrPD4J2.js → web-tree-sitter.js} +0 -0
- /package/lib/{wrap-0VA0uFx8.js → wrap.js} +0 -0
package/cordis.patch.yml
CHANGED
|
@@ -90,17 +90,22 @@
|
|
|
90
90
|
# dsh-web-app bundle declares (same id), restating its full shape per the
|
|
91
91
|
# patch-layer contract, with `trustedHosts` merging the DSH_TRUSTED_HOSTS
|
|
92
92
|
# environment (whitespace-separated, operator-declared serving authorities)
|
|
93
|
-
# ahead of the upstream
|
|
94
|
-
#
|
|
95
|
-
#
|
|
96
|
-
# (
|
|
97
|
-
#
|
|
98
|
-
#
|
|
93
|
+
# ahead of the upstream invocation authorities. Since DSH 0.1.7 the parsed
|
|
94
|
+
# Web flags live on the `webStartup` service and every host in the declared
|
|
95
|
+
# peer range provides it, so the row injects webStartup and reads
|
|
96
|
+
# `ctx.webStartup.trustedHosts` (the --trusted-host values) — the 0.2.1+
|
|
97
|
+
# upstream row's own source; on pre-0.2.1 hosts this drops only the LAN
|
|
98
|
+
# literals an all-interface bind used to derive (wildcard binds are rejected
|
|
99
|
+
# there too, and this repo's lines always declare authorities explicitly).
|
|
100
|
+
# Unset/empty env ⇒ identical behavior to the unpatched row. Malformed entries
|
|
101
|
+
# fail plugin load loudly (upstream assertTrustedAuthority). The browser-side
|
|
102
|
+
# twin (page-authority loopback verdict) is the plugin's
|
|
103
|
+
# webserver/index-inject boot script — see src/web-trust.ts.
|
|
99
104
|
- id: connection
|
|
100
105
|
name: '@deepseek-ai/dsh-client-connection'
|
|
101
|
-
inject: [
|
|
106
|
+
inject: [webStartup]
|
|
102
107
|
config:
|
|
103
|
-
trustedHosts: !!js (process.env.DSH_TRUSTED_HOSTS ?? '').split(/\s+/).filter(Boolean).concat(ctx.
|
|
108
|
+
trustedHosts: !!js (process.env.DSH_TRUSTED_HOSTS ?? '').split(/\s+/).filter(Boolean).concat(ctx.webStartup.trustedHosts)
|
|
104
109
|
|
|
105
110
|
- id: ui-settings-models
|
|
106
111
|
name: '@deepseek-ai/dsh-client-ui-settings-models'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as __require, r as __toESM, t as __commonJS } from "./chunk
|
|
2
|
-
import { D as packageVersion, o as debugCatchError } from "./util
|
|
1
|
+
import { n as __require, r as __toESM, t as __commonJS } from "./chunk.js";
|
|
2
|
+
import { D as packageVersion, o as debugCatchError } from "./util.js";
|
|
3
3
|
|
|
4
4
|
//#region node_modules/ws/lib/constants.js
|
|
5
5
|
var require_constants = /* @__PURE__ */ __commonJS({ "node_modules/ws/lib/constants.js": ((exports, module) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as __require } from "./chunk
|
|
2
|
-
import { A as stringToTypedArray, G as first, H as delayWhen, K as firstValueFrom, L as combineLatest, M as assert, Q as map, S as timeout, St as debug, Tt as environment, V as defer, W as filter, at as race, b as isString, bt as TouchError, c as evaluationString, d as fromEmitterEvent, g as isDate, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, k as stringToBase64, lt as switchMap, m as getSourcePuppeteerURLIfAvailable, o as debugCatchError, ot as raceWith, q as from, r as PuppeteerURL, rt as of, s as debugError, u as fromAbortSignal, v as isPlainObject, vt as TargetCloseError, x as parsePDFOptions, xt as UnsupportedOperation, y as isRegExp, yt as TimeoutError } from "./util
|
|
3
|
-
import { $n as Deferred, $t as scriptInjector, Bt as throwIfDetached, Ct as WebWorkerEvent, Dn as DeviceRequestPrompt, Dt as normalizeHeaderValue, Fn as Browser, Hn as DisposableStack, Ht as bindIsolatedHandle, In as WEB_PERMISSION_TO_PROTOCOL_PERMISSION, It as Dialog, Jn as CallbackRegistry, Kn as disposeSymbol, Ln as CDPSession, Lt as Accessibility, Mn as invokeAtMostOnceForArguments, Mt as InterceptResolutionAction, Nn as throwIfDisposed, Nt as STATUS_TEXTS, On as BrowserContext, Ot as SecurityDetails, Pt as handleError, Rt as Frame, St as WebWorker, Ut as JSHandle, Vt as ElementHandle, Zn as isErrorLike, _t as Mouse, an as stringifyFunction, cn as Tracing, dt as ConsoleMessage, en as ARIAQueryHandler, fn as Coverage, gt as Keyboard, ht as TargetType, in as interpolateFunction, jn as inertIfDisposed, jt as HTTPRequest, kn as bubble, kt as HTTPResponse, mn as Page, mt as Target, nn as LazyArg, on as AsyncIterableUtil, sn as FileChooser, un as EmulationManager, vt as MouseButton, wt as Realm, yt as Touchscreen, zn as EventEmitter } from "./index-browser
|
|
4
|
-
import "./
|
|
1
|
+
import { n as __require } from "./chunk.js";
|
|
2
|
+
import { A as stringToTypedArray, G as first, H as delayWhen, K as firstValueFrom, L as combineLatest, M as assert, Q as map, S as timeout, St as debug, Tt as environment, V as defer, W as filter, at as race, b as isString, bt as TouchError, c as evaluationString, d as fromEmitterEvent, g as isDate, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, k as stringToBase64, lt as switchMap, m as getSourcePuppeteerURLIfAvailable, o as debugCatchError, ot as raceWith, q as from, r as PuppeteerURL, rt as of, s as debugError, u as fromAbortSignal, v as isPlainObject, vt as TargetCloseError, x as parsePDFOptions, xt as UnsupportedOperation, y as isRegExp, yt as TimeoutError } from "./util.js";
|
|
3
|
+
import { $n as Deferred, $t as scriptInjector, Bt as throwIfDetached, Ct as WebWorkerEvent, Dn as DeviceRequestPrompt, Dt as normalizeHeaderValue, Fn as Browser, Hn as DisposableStack, Ht as bindIsolatedHandle, In as WEB_PERMISSION_TO_PROTOCOL_PERMISSION, It as Dialog, Jn as CallbackRegistry, Kn as disposeSymbol, Ln as CDPSession, Lt as Accessibility, Mn as invokeAtMostOnceForArguments, Mt as InterceptResolutionAction, Nn as throwIfDisposed, Nt as STATUS_TEXTS, On as BrowserContext, Ot as SecurityDetails, Pt as handleError, Rt as Frame, St as WebWorker, Ut as JSHandle, Vt as ElementHandle, Zn as isErrorLike, _t as Mouse, an as stringifyFunction, cn as Tracing, dt as ConsoleMessage, en as ARIAQueryHandler, fn as Coverage, gt as Keyboard, ht as TargetType, in as interpolateFunction, jn as inertIfDisposed, jt as HTTPRequest, kn as bubble, kt as HTTPResponse, mn as Page, mt as Target, nn as LazyArg, on as AsyncIterableUtil, sn as FileChooser, un as EmulationManager, vt as MouseButton, wt as Realm, yt as Touchscreen, zn as EventEmitter } from "./index-browser.js";
|
|
4
|
+
import "./BrowserWebSocketTransport2.js";
|
|
5
5
|
|
|
6
6
|
//#region node_modules/mitt/dist/mitt.mjs
|
|
7
7
|
function mitt_default(n) {
|
package/lib/compaction/index.js
CHANGED
package/lib/failover/index.d.ts
CHANGED
package/lib/failover/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as UrlSchemesError, t as buildFsLayerResolver } from "../wrap
|
|
1
|
+
import { f as UrlSchemesError, t as buildFsLayerResolver } from "../wrap.js";
|
|
2
2
|
import { Context } from "@deepseek-ai/cordis";
|
|
3
3
|
import { dirname, sep } from "node:path";
|
|
4
4
|
import { stat } from "node:fs/promises";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as merge, A as stringToTypedArray, B as defaultIfEmpty, Et as isNode, G as first, I as catchError, K as firstValueFrom, M as assert, N as EMPTY, O as mergeUint8Arrays, P as ReplaySubject, Q as map, R as concat, S as timeout, St as debug, T as withSourcePuppeteerURLIfNone, Tt as environment, U as distinctUntilChanged, V as defer, W as filter, X as ignoreElements, Y as identity, a as UTILITY_WORLD_NAME, at as race, b as isString, bt as TouchError, c as evaluationString, ct as startWith, d as fromEmitterEvent, dt as takeUntil, et as mergeMap, f as getReadableAsTypedArray, ft as tap, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, it as pipe, j as typedArrayToBase64, k as stringToBase64, l as filterAsync, lt as switchMap, m as getSourcePuppeteerURLIfAvailable, mt as timer, n as NETWORK_IDLE_TIME, nt as noop, o as debugCatchError, ot as raceWith, p as getReadableFromProtocolStream, pt as throwIfEmpty, q as from, r as PuppeteerURL, rt as of, s as debugError, st as retry, t as DEFAULT_VIEWPORT, tt as mergeScan, u as fromAbortSignal, ut as take, vt as TargetCloseError, w as validateDialogType, x as parsePDFOptions, xt as UnsupportedOperation, yt as TimeoutError } from "./util
|
|
1
|
+
import { $ as merge, A as stringToTypedArray, B as defaultIfEmpty, Et as isNode, G as first, I as catchError, K as firstValueFrom, M as assert, N as EMPTY, O as mergeUint8Arrays, P as ReplaySubject, Q as map, R as concat, S as timeout, St as debug, T as withSourcePuppeteerURLIfNone, Tt as environment, U as distinctUntilChanged, V as defer, W as filter, X as ignoreElements, Y as identity, a as UTILITY_WORLD_NAME, at as race, b as isString, bt as TouchError, c as evaluationString, ct as startWith, d as fromEmitterEvent, dt as takeUntil, et as mergeMap, f as getReadableAsTypedArray, ft as tap, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, it as pipe, j as typedArrayToBase64, k as stringToBase64, l as filterAsync, lt as switchMap, m as getSourcePuppeteerURLIfAvailable, mt as timer, n as NETWORK_IDLE_TIME, nt as noop, o as debugCatchError, ot as raceWith, p as getReadableFromProtocolStream, pt as throwIfEmpty, q as from, r as PuppeteerURL, rt as of, s as debugError, st as retry, t as DEFAULT_VIEWPORT, tt as mergeScan, u as fromAbortSignal, ut as take, vt as TargetCloseError, w as validateDialogType, x as parsePDFOptions, xt as UnsupportedOperation, yt as TimeoutError } from "./util.js";
|
|
2
2
|
|
|
3
3
|
//#region node_modules/puppeteer-core/lib/puppeteer/util/Deferred.js
|
|
4
4
|
/**
|
|
@@ -20792,7 +20792,7 @@ async function _connectToBiDiBrowser(connectionTransport, url, options) {
|
|
|
20792
20792
|
const { bidiConnection, cdpConnection, closeCallback } = await getBiDiConnection(connectionTransport, url, options);
|
|
20793
20793
|
return await (await import(
|
|
20794
20794
|
/* webpackIgnore: true */
|
|
20795
|
-
"./bidi
|
|
20795
|
+
"./bidi.js"
|
|
20796
20796
|
)).BidiBrowser.create({
|
|
20797
20797
|
connection: bidiConnection,
|
|
20798
20798
|
cdpConnection,
|
|
@@ -20815,7 +20815,7 @@ async function _connectToBiDiBrowser(connectionTransport, url, options) {
|
|
|
20815
20815
|
async function getBiDiConnection(connectionTransport, url, options) {
|
|
20816
20816
|
const BiDi = await import(
|
|
20817
20817
|
/* webpackIgnore: true */
|
|
20818
|
-
"./bidi
|
|
20818
|
+
"./bidi.js"
|
|
20819
20819
|
);
|
|
20820
20820
|
const { slowMo = 0, protocolTimeout, idGenerator = createIncrementalIdGenerator() } = options;
|
|
20821
20821
|
const pureBidiConnection = new BiDi.BidiConnection(url, connectionTransport, idGenerator, slowMo, protocolTimeout);
|
|
@@ -20845,7 +20845,7 @@ async function getBiDiConnection(connectionTransport, url, options) {
|
|
|
20845
20845
|
//#endregion
|
|
20846
20846
|
//#region node_modules/puppeteer-core/lib/puppeteer/common/BrowserConnector.js
|
|
20847
20847
|
const getWebSocketTransportClass = async () => {
|
|
20848
|
-
return isNode ? (await import("./
|
|
20848
|
+
return isNode ? (await import("./NodeWebSocketTransport2.js")).NodeWebSocketTransport : (await import("./BrowserWebSocketTransport.js")).BrowserWebSocketTransport;
|
|
20849
20849
|
};
|
|
20850
20850
|
/**
|
|
20851
20851
|
* Users should never call this directly; it's called when calling
|
|
@@ -20887,10 +20887,10 @@ async function getConnectionTransport(options) {
|
|
|
20887
20887
|
endpointUrl: connectionURL
|
|
20888
20888
|
};
|
|
20889
20889
|
} else if (options.channel && isNode) {
|
|
20890
|
-
const { detectBrowserPlatform, resolveDefaultUserDataDir, Browser: Browser$1 } = await import("./
|
|
20890
|
+
const { detectBrowserPlatform, resolveDefaultUserDataDir, Browser: Browser$1 } = await import("./main2.js");
|
|
20891
20891
|
const platform = detectBrowserPlatform();
|
|
20892
20892
|
if (!platform) throw new Error("Could not detect required browser platform");
|
|
20893
|
-
const { convertPuppeteerChannelToBrowsersChannel } = await import("./LaunchOptions
|
|
20893
|
+
const { convertPuppeteerChannelToBrowsersChannel } = await import("./LaunchOptions.js");
|
|
20894
20894
|
const { join } = await import("node:path");
|
|
20895
20895
|
const portPath = join(resolveDefaultUserDataDir(Browser$1.CHROME, platform, convertPuppeteerChannelToBrowsersChannel(options.channel)), "DevToolsActivePort");
|
|
20896
20896
|
try {
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Schema } from "./
|
|
1
|
+
import { t as Schema } from "./index2.js";
|
|
2
2
|
import { Context, Service } from "@deepseek-ai/cordis";
|
|
3
3
|
import { ToolDefinition, ToolExecutionInput, ToolRunContext, ToolRuntime } from "@deepseek-ai/dsh-tools";
|
|
4
4
|
import { ContentBlock, HarnessError } from "@deepseek-ai/dsh-llm";
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as Schema } from "./lib
|
|
2
|
-
import { a as RESERVED_ERROR_MEMBERS, i as RESERVED_BINDING_GLOBALS, n as DUNDER_MEMBER, o as ReplRuntime, r as PORTABLE_RESERVED_WORDS, t as isFlatBindableName } from "./py-
|
|
3
|
-
import { n as resolveKernelEnv } from "./kernel-
|
|
4
|
-
import { t as captureAllTools } from "./native-capture
|
|
1
|
+
import { t as Schema } from "./lib.js";
|
|
2
|
+
import { a as RESERVED_ERROR_MEMBERS, i as RESERVED_BINDING_GLOBALS, n as DUNDER_MEMBER, o as ReplRuntime, r as PORTABLE_RESERVED_WORDS, t as isFlatBindableName } from "./py-sdk2.js";
|
|
3
|
+
import { n as resolveKernelEnv } from "./kernel-env2.js";
|
|
4
|
+
import { t as captureAllTools } from "./native-capture.js";
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
import { Context } from "@deepseek-ai/cordis";
|
|
7
7
|
import { createHash, randomBytes, randomUUID } from "node:crypto";
|
|
@@ -1409,8 +1409,7 @@ const agentExecutor = async (rawArgs, exec, deps) => {
|
|
|
1409
1409
|
if (!exec.agent) return { error: "agent() requires a calling agent (this run has no agent to delegate from)" };
|
|
1410
1410
|
const subagents = deps.requireSubagents?.();
|
|
1411
1411
|
if (!subagents) return { error: "agent() is unavailable: no ctx.subagents service is mounted in this composition" };
|
|
1412
|
-
const
|
|
1413
|
-
label: description,
|
|
1412
|
+
const request = {
|
|
1414
1413
|
prompt: [{
|
|
1415
1414
|
type: "text",
|
|
1416
1415
|
text: prompt
|
|
@@ -1419,30 +1418,60 @@ const agentExecutor = async (rawArgs, exec, deps) => {
|
|
|
1419
1418
|
maxDepth: NATIVE_MAX_DEPTH
|
|
1420
1419
|
};
|
|
1421
1420
|
const runInBackground = a["run_in_background"] ?? true;
|
|
1421
|
+
const legacyRequest = {
|
|
1422
|
+
label: description,
|
|
1423
|
+
...request,
|
|
1424
|
+
signal: exec.signal
|
|
1425
|
+
};
|
|
1426
|
+
if (subagents.startActivation === void 0) try {
|
|
1427
|
+
if (runInBackground) {
|
|
1428
|
+
if (subagents.startContinuable === void 0) return { error: "agent() is unavailable: this DSH host exposes neither managed activations nor the legacy continuable seam" };
|
|
1429
|
+
return {
|
|
1430
|
+
kind: "continuable",
|
|
1431
|
+
subagentId: (await subagents.startContinuable({
|
|
1432
|
+
provider,
|
|
1433
|
+
request: legacyRequest
|
|
1434
|
+
})).childId
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
if (subagents.start === void 0) return { error: "agent() is unavailable: this DSH host exposes neither managed activations nor the legacy one-shot seam" };
|
|
1438
|
+
const run = await subagents.start(provider, legacyRequest);
|
|
1439
|
+
try {
|
|
1440
|
+
const result = await run.result;
|
|
1441
|
+
if (result.stopReason !== "completed") return { error: `agent() ${stopReasonError(result.stopReason)}` };
|
|
1442
|
+
return {
|
|
1443
|
+
kind: "foreground",
|
|
1444
|
+
subagentId: run.id,
|
|
1445
|
+
output: result.output
|
|
1446
|
+
};
|
|
1447
|
+
} finally {
|
|
1448
|
+
await run.dispose();
|
|
1449
|
+
}
|
|
1450
|
+
} catch (error) {
|
|
1451
|
+
return { error: `agent() failed: ${error instanceof Error ? error.message : String(error)}` };
|
|
1452
|
+
}
|
|
1422
1453
|
try {
|
|
1454
|
+
const activation = await subagents.startActivation({
|
|
1455
|
+
provider,
|
|
1456
|
+
label: description,
|
|
1457
|
+
request,
|
|
1458
|
+
signal: exec.signal,
|
|
1459
|
+
delivery: runInBackground ? "parent" : "caller"
|
|
1460
|
+
});
|
|
1423
1461
|
if (runInBackground) return {
|
|
1424
1462
|
kind: "continuable",
|
|
1425
|
-
subagentId:
|
|
1426
|
-
provider,
|
|
1427
|
-
label: description,
|
|
1428
|
-
request: delegation,
|
|
1429
|
-
signal: exec.signal
|
|
1430
|
-
})).childId
|
|
1463
|
+
subagentId: activation.childId
|
|
1431
1464
|
};
|
|
1432
|
-
const run = await subagents.start(provider, {
|
|
1433
|
-
...delegation,
|
|
1434
|
-
signal: exec.signal
|
|
1435
|
-
});
|
|
1436
1465
|
try {
|
|
1437
|
-
const result = await
|
|
1466
|
+
const result = await activation.result;
|
|
1438
1467
|
if (result.stopReason !== "completed") return { error: `agent() ${stopReasonError(result.stopReason)}` };
|
|
1439
1468
|
return {
|
|
1440
1469
|
kind: "foreground",
|
|
1441
|
-
|
|
1470
|
+
subagentId: activation.childId,
|
|
1442
1471
|
output: result.output
|
|
1443
1472
|
};
|
|
1444
1473
|
} finally {
|
|
1445
|
-
await
|
|
1474
|
+
await activation.dispose();
|
|
1446
1475
|
}
|
|
1447
1476
|
} catch (error) {
|
|
1448
1477
|
return { error: `agent() failed: ${error instanceof Error ? error.message : String(error)}` };
|
|
@@ -1650,7 +1679,7 @@ function createAgentBridgeTools(deps) {
|
|
|
1650
1679
|
type: "string",
|
|
1651
1680
|
enum: ["foreground"]
|
|
1652
1681
|
},
|
|
1653
|
-
|
|
1682
|
+
subagentId: { type: "string" },
|
|
1654
1683
|
output: { type: "json" }
|
|
1655
1684
|
},
|
|
1656
1685
|
additionalProperties: false
|
package/lib/kernel-env.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as primaryServerForFile, c as serversForFile, i as installServer, n as findWorkspaceRoot, o as resolveCommandPath, r as installHintFor, s as serverByName, t as clearCommandProbeCache } from "./lsp-server-registry
|
|
1
|
+
import { a as primaryServerForFile, c as serversForFile, i as installServer, n as findWorkspaceRoot, o as resolveCommandPath, r as installHintFor, s as serverByName, t as clearCommandProbeCache } from "./lsp-server-registry.js";
|
|
2
2
|
|
|
3
3
|
export { clearCommandProbeCache, findWorkspaceRoot, installHintFor, installServer, primaryServerForFile, resolveCommandPath, serverByName, serversForFile };
|
|
@@ -8,8 +8,8 @@ import { URL as URL$1, urlToHttpOptions } from "node:url";
|
|
|
8
8
|
import os from "node:os";
|
|
9
9
|
import { debuglog, promisify } from "node:util";
|
|
10
10
|
import { mkdir, readdir, symlink, unlink } from "node:fs/promises";
|
|
11
|
-
import { pipeline } from "node:stream/promises";
|
|
12
11
|
import { Writable } from "node:stream";
|
|
12
|
+
import { pipeline } from "node:stream/promises";
|
|
13
13
|
import { EventEmitter } from "node:events";
|
|
14
14
|
import * as https from "node:https";
|
|
15
15
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { _ as Browser, a as TimeoutError, b as ChromeReleaseChannel, c as computeSystemExecutablePath, d as InstalledBrowser, f as detectBrowserPlatform, g as resolveDefaultUserDataDir, h as resolveBuildId, i as Process, l as launch, m as getVersionComparator, n as uninstall, o as WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, p as createProfile, r as CDP_WEBSOCKET_ENDPOINT_REGEX, s as computeExecutablePath, t as getInstalledBrowsers, u as Cache, v as BrowserPlatform, y as BrowserTag } from "./main
|
|
1
|
+
import { _ as Browser, a as TimeoutError, b as ChromeReleaseChannel, c as computeSystemExecutablePath, d as InstalledBrowser, f as detectBrowserPlatform, g as resolveDefaultUserDataDir, h as resolveBuildId, i as Process, l as launch, m as getVersionComparator, n as uninstall, o as WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, p as createProfile, r as CDP_WEBSOCKET_ENDPOINT_REGEX, s as computeExecutablePath, t as getInstalledBrowsers, u as Cache, v as BrowserPlatform, y as BrowserTag } from "./main.js";
|
|
2
2
|
|
|
3
3
|
export { Browser, BrowserPlatform, BrowserTag, CDP_WEBSOCKET_ENDPOINT_REGEX, Cache, ChromeReleaseChannel, InstalledBrowser, Process, TimeoutError, WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, computeExecutablePath, computeSystemExecutablePath, createProfile, detectBrowserPlatform, getInstalledBrowsers, getVersionComparator, launch, resolveBuildId, resolveDefaultUserDataDir, uninstall };
|
package/lib/mobile/plugin.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as Schema } from "../
|
|
2
|
-
import { r as MobileConfig } from "../web-
|
|
1
|
+
import { t as Schema } from "../index2.js";
|
|
2
|
+
import { r as MobileConfig } from "../web-trust2.js";
|
|
3
3
|
import { Context } from "@deepseek-ai/cordis";
|
|
4
4
|
|
|
5
5
|
//#region src/mobile/plugin.d.ts
|
package/lib/mobile/plugin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as Schema } from "../lib
|
|
2
|
-
import { r as buildMobileScript } from "../web-
|
|
1
|
+
import { t as Schema } from "../lib.js";
|
|
2
|
+
import { r as buildMobileScript } from "../web-trust2.js";
|
|
3
3
|
import { Context } from "@deepseek-ai/cordis";
|
|
4
4
|
|
|
5
5
|
//#region src/mobile/plugin.ts
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { _ as Browser$1, a as TimeoutError$1, c as computeSystemExecutablePath, f as detectBrowserPlatform, h as resolveBuildId, l as launch$1, n as uninstall, o as WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, p as createProfile, r as CDP_WEBSOCKET_ENDPOINT_REGEX, s as computeExecutablePath, t as getInstalledBrowsers } from "./main
|
|
2
|
-
import { C as unitToPixels, Ct as getCapturedLogs, E as paperFormats, F as bufferCount, J as fromEvent, K as firstValueFrom, M as assert, Q as map, S as timeout, St as debug, T as withSourcePuppeteerURLIfNone, Tt as environment, W as filter, Z as lastValueFrom, _ as isNumber, _t as PuppeteerError, a as UTILITY_WORLD_NAME, at as race, b as isString, bt as TouchError, c as evaluationString, d as fromEmitterEvent, dt as takeUntil, f as getReadableAsTypedArray, ft as tap, g as isDate, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, l as filterAsync, m as getSourcePuppeteerURLIfAvailable, mt as timer, n as NETWORK_IDLE_TIME, o as debugCatchError, p as getReadableFromProtocolStream, q as from, r as PuppeteerURL, s as debugError, t as DEFAULT_VIEWPORT, u as fromAbortSignal, v as isPlainObject, vt as TargetCloseError, w as validateDialogType, wt as setLogCapture, x as parsePDFOptions, xt as UnsupportedOperation, y as isRegExp, yt as TimeoutError, z as concatMap } from "./util
|
|
3
|
-
import { $ as pageBindingInitString, $n as Deferred, $t as scriptInjector, A as NetworkManager, An as guarded, At as DEFAULT_INTERCEPT_RESOLUTION_PRIORITY, B as MAIN_WORLD, Bn as AsyncDisposableStack, Bt as throwIfDetached, C as WebMCPToolCall, Cn as NodeLocator, Ct as WebWorkerEvent, D as CdpTouchscreen, Dn as DeviceRequestPrompt, Dt as normalizeHeaderValue, E as CdpTouchHandle, En as TimeoutSettings, Et as WaitTask, F as CdpFrame, Fn as Browser, Ft as headersArray, G as CdpJSHandle, Gn as asyncDisposeSymbol, Gt as XPathQueryHandler, H as FrameManagerEvent, Hn as DisposableStack, Ht as bindIsolatedHandle, I as referrerPolicyToProtocol, In as WEB_PERMISSION_TO_PROTOCOL_PERMISSION, It as Dialog, J as addPageBinding, Jn as CallbackRegistry, Jt as PQueryHandler, K as releaseObject, Kn as disposeSymbol, Kt as TextQueryHandler, L as LifecycleWatcher, Ln as CDPSession, Lt as Accessibility, M as CdpHTTPResponse, Mt as InterceptResolutionAction, N as CdpHTTPRequest, Nt as STATUS_TEXTS, O as _keyDefinitions, On as BrowserContext, Ot as SecurityDetails, P as FrameTree, Pn as Mutex, Pt as handleError, Q as createEvaluationError, Qn as rewriteError, Qt as ScriptInjector, R as IsolatedWorld, Rn as CDPSessionEvent, Rt as Frame, S as WebMCPTool, Sn as MappedLocator, St as WebWorker, T as CdpMouse, Tn as RaceLocator, Tt as TaskManager, U as ExecutionContext, Un as DisposableStackPolyfill, Ut as JSHandle, V as PUPPETEER_WORLD, Vn as AsyncDisposableStackPolyfill, Vt as ElementHandle, W as CdpElementHandle, Wn as SuppressedError, Wt as getQueryHandlerAndSelector, X as createClientError, Xn as isErrnoException, Xt as CustomQueryHandlerRegistry, Y as convertConsoleMessageLevel, Yn as createProtocolErrorMessage, Yt as PierceQueryHandler, Z as createConsoleMessage, Zn as isErrorLike, Zt as customQueryHandlers, _ as CdpBrowserContext, _n as DelegatedLocator, _t as Mouse, a as KnownDevices, at as CdpPreloadScript, b as convertSameSiteFromPuppeteerToCdp, bn as Locator, bt as createIncrementalIdGenerator, c as _connectToCdpBrowser, cn as Tracing, ct as isTargetClosedError, d as CdpTarget, dn as CSSCoverage, dt as ConsoleMessage, en as ARIAQueryHandler, et as valueFromJSHandle, f as DevToolsTarget, fn as Coverage, ft as CdpBluetoothEmulation, g as WorkerTarget, gn as supportedMetrics, gt as Keyboard, h as PageTarget, hn as setDefaultScreenshotOptions, ht as TargetType, i as assertSupportedUrlRestrictions, it as CdpDeviceRequestPromptManager, j as NetworkEventManager, jt as HTTPRequest, k as FrameManager, kt as HTTPResponse, l as CdpBrowser, ln as EmulatedState, lt as CdpCDPSession, m as OtherTarget, mn as Page, mt as Target, n as TaskQueue, nn as LazyArg, nt as valueFromRemoteObjectReference, o as PredefinedNetworkConditions, on as AsyncIterableUtil, ot as CdpDialog, p as InitializationStatus, pn as JSCoverage, pt as Binding, q as CDP_BINDING_PREFIX, qn as Callback, qt as parsePSelectors, r as Puppeteer, rn as transposeIterableHandle, rt as CdpDeviceRequestPrompt, s as ExtensionTransport, sn as FileChooser, st as Connection, t as PUPPETEER_REVISIONS, tn as QueryHandler, tt as valueFromPrimitiveRemoteObject, u as TargetManager, un as EmulationManager, ut as NetworkManagerEvent, v as CdpPage, vn as FilteredLocator, vt as MouseButton, w as CdpKeyboard, wn as RETRY_DELAY, wt as Realm, x as WebMCP, xn as LocatorEvent, xt as Extension, y as convertCookiesPartitionKeyFromPuppeteerToCdp, yn as FunctionLocator, yt as Touchscreen, z as CdpWebWorker, zn as EventEmitter, zt as FrameEvent } from "./index-browser
|
|
4
|
-
import { t as BrowserWebSocketTransport } from "./
|
|
5
|
-
import { t as convertPuppeteerChannelToBrowsersChannel } from "./
|
|
6
|
-
import { t as NodeWebSocketTransport } from "./NodeWebSocketTransport
|
|
1
|
+
import { _ as Browser$1, a as TimeoutError$1, c as computeSystemExecutablePath, f as detectBrowserPlatform, h as resolveBuildId, l as launch$1, n as uninstall, o as WEBDRIVER_BIDI_WEBSOCKET_ENDPOINT_REGEX, p as createProfile, r as CDP_WEBSOCKET_ENDPOINT_REGEX, s as computeExecutablePath, t as getInstalledBrowsers } from "./main.js";
|
|
2
|
+
import { C as unitToPixels, Ct as getCapturedLogs, E as paperFormats, F as bufferCount, J as fromEvent, K as firstValueFrom, M as assert, Q as map, S as timeout, St as debug, T as withSourcePuppeteerURLIfNone, Tt as environment, W as filter, Z as lastValueFrom, _ as isNumber, _t as PuppeteerError, a as UTILITY_WORLD_NAME, at as race, b as isString, bt as TouchError, c as evaluationString, d as fromEmitterEvent, dt as takeUntil, f as getReadableAsTypedArray, ft as tap, g as isDate, gt as ProtocolError, h as getSourceUrlComment, ht as ConnectionClosedError, i as SOURCE_URL_REGEX, l as filterAsync, m as getSourcePuppeteerURLIfAvailable, mt as timer, n as NETWORK_IDLE_TIME, o as debugCatchError, p as getReadableFromProtocolStream, q as from, r as PuppeteerURL, s as debugError, t as DEFAULT_VIEWPORT, u as fromAbortSignal, v as isPlainObject, vt as TargetCloseError, w as validateDialogType, wt as setLogCapture, x as parsePDFOptions, xt as UnsupportedOperation, y as isRegExp, yt as TimeoutError, z as concatMap } from "./util.js";
|
|
3
|
+
import { $ as pageBindingInitString, $n as Deferred, $t as scriptInjector, A as NetworkManager, An as guarded, At as DEFAULT_INTERCEPT_RESOLUTION_PRIORITY, B as MAIN_WORLD, Bn as AsyncDisposableStack, Bt as throwIfDetached, C as WebMCPToolCall, Cn as NodeLocator, Ct as WebWorkerEvent, D as CdpTouchscreen, Dn as DeviceRequestPrompt, Dt as normalizeHeaderValue, E as CdpTouchHandle, En as TimeoutSettings, Et as WaitTask, F as CdpFrame, Fn as Browser, Ft as headersArray, G as CdpJSHandle, Gn as asyncDisposeSymbol, Gt as XPathQueryHandler, H as FrameManagerEvent, Hn as DisposableStack, Ht as bindIsolatedHandle, I as referrerPolicyToProtocol, In as WEB_PERMISSION_TO_PROTOCOL_PERMISSION, It as Dialog, J as addPageBinding, Jn as CallbackRegistry, Jt as PQueryHandler, K as releaseObject, Kn as disposeSymbol, Kt as TextQueryHandler, L as LifecycleWatcher, Ln as CDPSession, Lt as Accessibility, M as CdpHTTPResponse, Mt as InterceptResolutionAction, N as CdpHTTPRequest, Nt as STATUS_TEXTS, O as _keyDefinitions, On as BrowserContext, Ot as SecurityDetails, P as FrameTree, Pn as Mutex, Pt as handleError, Q as createEvaluationError, Qn as rewriteError, Qt as ScriptInjector, R as IsolatedWorld, Rn as CDPSessionEvent, Rt as Frame, S as WebMCPTool, Sn as MappedLocator, St as WebWorker, T as CdpMouse, Tn as RaceLocator, Tt as TaskManager, U as ExecutionContext, Un as DisposableStackPolyfill, Ut as JSHandle, V as PUPPETEER_WORLD, Vn as AsyncDisposableStackPolyfill, Vt as ElementHandle, W as CdpElementHandle, Wn as SuppressedError, Wt as getQueryHandlerAndSelector, X as createClientError, Xn as isErrnoException, Xt as CustomQueryHandlerRegistry, Y as convertConsoleMessageLevel, Yn as createProtocolErrorMessage, Yt as PierceQueryHandler, Z as createConsoleMessage, Zn as isErrorLike, Zt as customQueryHandlers, _ as CdpBrowserContext, _n as DelegatedLocator, _t as Mouse, a as KnownDevices, at as CdpPreloadScript, b as convertSameSiteFromPuppeteerToCdp, bn as Locator, bt as createIncrementalIdGenerator, c as _connectToCdpBrowser, cn as Tracing, ct as isTargetClosedError, d as CdpTarget, dn as CSSCoverage, dt as ConsoleMessage, en as ARIAQueryHandler, et as valueFromJSHandle, f as DevToolsTarget, fn as Coverage, ft as CdpBluetoothEmulation, g as WorkerTarget, gn as supportedMetrics, gt as Keyboard, h as PageTarget, hn as setDefaultScreenshotOptions, ht as TargetType, i as assertSupportedUrlRestrictions, it as CdpDeviceRequestPromptManager, j as NetworkEventManager, jt as HTTPRequest, k as FrameManager, kt as HTTPResponse, l as CdpBrowser, ln as EmulatedState, lt as CdpCDPSession, m as OtherTarget, mn as Page, mt as Target, n as TaskQueue, nn as LazyArg, nt as valueFromRemoteObjectReference, o as PredefinedNetworkConditions, on as AsyncIterableUtil, ot as CdpDialog, p as InitializationStatus, pn as JSCoverage, pt as Binding, q as CDP_BINDING_PREFIX, qn as Callback, qt as parsePSelectors, r as Puppeteer, rn as transposeIterableHandle, rt as CdpDeviceRequestPrompt, s as ExtensionTransport, sn as FileChooser, st as Connection, t as PUPPETEER_REVISIONS, tn as QueryHandler, tt as valueFromPrimitiveRemoteObject, u as TargetManager, un as EmulationManager, ut as NetworkManagerEvent, v as CdpPage, vn as FilteredLocator, vt as MouseButton, w as CdpKeyboard, wn as RETRY_DELAY, wt as Realm, x as WebMCP, xn as LocatorEvent, xt as Extension, y as convertCookiesPartitionKeyFromPuppeteerToCdp, yn as FunctionLocator, yt as Touchscreen, z as CdpWebWorker, zn as EventEmitter, zt as FrameEvent } from "./index-browser.js";
|
|
4
|
+
import { t as BrowserWebSocketTransport } from "./BrowserWebSocketTransport2.js";
|
|
5
|
+
import { t as convertPuppeteerChannelToBrowsersChannel } from "./LaunchOptions2.js";
|
|
6
|
+
import { t as NodeWebSocketTransport } from "./NodeWebSocketTransport.js";
|
|
7
7
|
import fs, { existsSync } from "node:fs";
|
|
8
8
|
import path, { dirname, join } from "node:path";
|
|
9
9
|
import { spawn, spawnSync } from "node:child_process";
|
|
@@ -240,7 +240,7 @@ var BrowserLauncher = class {
|
|
|
240
240
|
const bidiOnly = process.env["PUPPETEER_WEBDRIVER_BIDI_ONLY"] === "true";
|
|
241
241
|
const BiDi = await import(
|
|
242
242
|
/* webpackIgnore: true */
|
|
243
|
-
"./bidi
|
|
243
|
+
"./bidi.js"
|
|
244
244
|
);
|
|
245
245
|
const bidiConnection = await BiDi.connectBidiOverCdp(cdpConnection);
|
|
246
246
|
return await BiDi.BidiBrowser.create({
|
|
@@ -262,7 +262,7 @@ var BrowserLauncher = class {
|
|
|
262
262
|
const transport = await NodeWebSocketTransport.create(browserWSEndpoint);
|
|
263
263
|
const BiDi = await import(
|
|
264
264
|
/* webpackIgnore: true */
|
|
265
|
-
"./bidi
|
|
265
|
+
"./bidi.js"
|
|
266
266
|
);
|
|
267
267
|
const bidiConnection = new BiDi.BidiConnection(browserWSEndpoint, transport, opts.idGenerator, opts.slowMo, opts.protocolTimeout);
|
|
268
268
|
return await BiDi.BidiBrowser.create({
|
package/lib/py-sdk.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": 1,
|
|
3
3
|
"name": "superd-run",
|
|
4
|
-
"ver": "0.3.1-
|
|
4
|
+
"ver": "0.3.1-d.b596",
|
|
5
5
|
"protocol": 1,
|
|
6
6
|
"targets": {
|
|
7
7
|
"aarch64-apple-darwin": {
|
|
8
8
|
"file": "superd-run",
|
|
9
9
|
"bytes": 337808,
|
|
10
|
-
"sha256": "
|
|
10
|
+
"sha256": "a8fd11a5e6a2cb146deb599414434a299ebf78c53cfc1d3e5f42617ee11c1706"
|
|
11
11
|
},
|
|
12
12
|
"aarch64-unknown-linux-musl": {
|
|
13
13
|
"file": "superd-run",
|
|
14
|
-
"bytes":
|
|
15
|
-
"sha256": "
|
|
14
|
+
"bytes": 397592,
|
|
15
|
+
"sha256": "3a8660fa099f1e71de6e08313ee2aaace00503f74365475ee46e2d2a89228397"
|
|
16
16
|
},
|
|
17
17
|
"x86_64-pc-windows-gnu": {
|
|
18
18
|
"file": "superd-run.exe",
|
|
19
|
-
"bytes":
|
|
20
|
-
"sha256": "
|
|
19
|
+
"bytes": 337408,
|
|
20
|
+
"sha256": "1372450238c5bda702b4529f4148aa79e80a255c3c125d1a6229afd4693e9d90"
|
|
21
21
|
},
|
|
22
22
|
"x86_64-unknown-linux-musl": {
|
|
23
23
|
"file": "superd-run",
|
|
24
24
|
"bytes": 447152,
|
|
25
|
-
"sha256": "
|
|
25
|
+
"sha256": "05b428657942abf22a0ad609433d5cab6b6182fe389851345459a0274b5a6533"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"sources": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.1-
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.1-
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.1-
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.3.1-
|
|
1
|
+
0.3.1-d.b596
|
|
Binary file
|
package/lib/remote/plugin.d.ts
CHANGED
|
@@ -22,7 +22,9 @@ declare class SshTargets {
|
|
|
22
22
|
clear(): void;
|
|
23
23
|
}
|
|
24
24
|
/** Shared by execution, probes and file/relay consumers. extraArgs is trusted
|
|
25
|
-
* internal SSH argv (e.g. forwarding), never a model-provided shell string.
|
|
25
|
+
* internal SSH argv (e.g. forwarding), never a model-provided shell string.
|
|
26
|
+
* Identity assembly lives in ssh-argv.ts (the ONE policy — 2026-10-17 ruling);
|
|
27
|
+
* this wrapper only picks the tty/batch dialect base. */
|
|
26
28
|
declare function sshArgv(connection: SshConnection, options?: {
|
|
27
29
|
tty?: boolean;
|
|
28
30
|
extraArgs?: readonly string[];
|
|
@@ -40,7 +42,12 @@ interface TransferReceipt {
|
|
|
40
42
|
action: 'copy';
|
|
41
43
|
src: string;
|
|
42
44
|
dst: string;
|
|
43
|
-
|
|
45
|
+
route: 'hub-staged';
|
|
46
|
+
/** S4: tier actually performed — sha256 digests ran and matched, or explicitly skipped. */
|
|
47
|
+
verification: 'sha256' | 'not-applicable';
|
|
48
|
+
/** S3 unified failure envelope. */
|
|
49
|
+
ok: boolean;
|
|
50
|
+
reason?: 'digest-mismatch' | 'staging-error' | 'aborted';
|
|
44
51
|
sourceDigest?: string;
|
|
45
52
|
destinationDigest?: string;
|
|
46
53
|
bytes: number;
|
|
@@ -77,8 +84,16 @@ interface NativeCopyReceipt {
|
|
|
77
84
|
stdout: string[];
|
|
78
85
|
stderr: string[];
|
|
79
86
|
outputTruncated: boolean;
|
|
80
|
-
/**
|
|
81
|
-
|
|
87
|
+
/** S3/S4 (spec §3.3): verification names the tier actually performed — native routes are exit-code-only (D1=A). */
|
|
88
|
+
verification: 'native-exit-only';
|
|
89
|
+
/** S3 unified failure envelope: all native exits zero. */
|
|
90
|
+
ok: boolean;
|
|
91
|
+
/** Failure class when ok is false. */
|
|
92
|
+
reason?: 'non-zero-exit' | 'aborted';
|
|
93
|
+
/** Human context, e.g. two-segment 'push not started: pull failed' (prose moved out of route, S8). */
|
|
94
|
+
note?: string;
|
|
95
|
+
/** D3 mkdir pre-hop outcome: true = created this call, false = already existed, 'n-a' = skipped or unavailable (detail in note). */
|
|
96
|
+
created?: true | false | 'n-a';
|
|
82
97
|
/** Tool-owned staging/config release: released on normal/observed exit, unknown when a channel was lost. */
|
|
83
98
|
cleanup: 'released' | 'unknown' | 'none-required';
|
|
84
99
|
}
|
|
@@ -126,6 +141,10 @@ interface RsyncReceipt extends RunResult {
|
|
|
126
141
|
transferredBytes?: number;
|
|
127
142
|
/** Two-SSH route actually used, when applicable. */
|
|
128
143
|
route?: 'local-ssh' | 'ssh-ssh-forward' | 'ssh-ssh-stdio';
|
|
144
|
+
/** S3/S4: exit-code-only tier (D1=A) + unified failure envelope. */
|
|
145
|
+
verification: 'native-exit-only';
|
|
146
|
+
ok: boolean;
|
|
147
|
+
reason?: 'non-zero-exit' | 'aborted';
|
|
129
148
|
}
|
|
130
149
|
/**
|
|
131
150
|
* Native rsync with ordered caller options. Local↔SSH runs rsync directly with
|