@openclaw/signal 2026.10.2 → 2026.10.5-beta.2
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/dist/.setup/{api-BzvUhsz9.mjs → api-CfFaBHKY.mjs} +8 -8
- package/dist/.setup/{api-BYvpXSbI.mjs → api-oTYg1sqh.mjs} +8 -8
- package/dist/.setup/{approval-handler.runtime-DftlFeEB.mjs → approval-handler.runtime-DzZCg6An.mjs} +2 -3
- package/dist/.setup/{approval-reactions-BHIX1jwY.mjs → approval-reactions-POBtr9RL.mjs} +31 -57
- package/dist/.setup/{channel-E_23H6I6.mjs → channel-v_OVXflu.mjs} +22 -25
- package/dist/.setup/{client-AXcDteBZ.mjs → client-DrPmUInx.mjs} +53 -58
- package/dist/.setup/{client-adapter-c_O1ouxZ.mjs → client-adapter-C25_QRp1.mjs} +1 -1
- package/dist/.setup/{install-signal-cli-ChvjzM6X.mjs → install-signal-cli-hYVLYGXe.mjs} +4 -26
- package/dist/.setup/{monitor-CG20ucVU.mjs → monitor-B2dIc7fW.mjs} +35 -51
- package/dist/.setup/{probe-2LTiStRi.mjs → probe-D6n3Nkud.mjs} +2 -2
- package/dist/.setup/{reaction-runtime-api-xqwxFZ2S.mjs → reaction-runtime-api-BoF_xKQe.mjs} +1 -1
- package/dist/.setup/{reaction-targets-TGHqhdoa.mjs → reaction-targets-Bw8pIemQ.mjs} +1 -1
- package/dist/.setup/{send-CAlJlhsT.mjs → send-Da8lyyyC.mjs} +10 -11
- package/dist/.setup/{setup-surface-BpW9dJZY.mjs → setup-surface-D1IPnECU.mjs} +2 -2
- package/dist/.setup/{transport-detection-CQSEftdN.mjs → transport-detection-C7tIMlYW.mjs} +2 -2
- package/dist/.setup/{transport-probes.runtime-DwXEHnXr.mjs → transport-probes.runtime-CE-YN8v-.mjs} +1 -1
- package/dist/api.js +8 -8
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +2 -2
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/setup-entry.js +1 -1
- package/node_modules/@openclaw/fs-safe/CHANGELOG.md +35 -0
- package/node_modules/@openclaw/fs-safe/README.md +1 -1
- package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/advanced.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-durability.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-merge.js +4 -4
- package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-read.js +5 -4
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +22 -38
- package/node_modules/@openclaw/fs-safe/dist/copy-path-admission.d.ts +17 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-path-admission.js +117 -0
- package/node_modules/@openclaw/fs-safe/dist/copy-root-file-sync.d.ts +8 -5
- package/node_modules/@openclaw/fs-safe/dist/copy-root-file-sync.js +27 -50
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-acquire.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-acquire.js +57 -11
- package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.js +5 -5
- package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +52 -5
- package/node_modules/@openclaw/fs-safe/dist/guest.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/native-operations.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/native-operations.js +22 -26
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.js +5 -1
- package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +4 -1
- package/node_modules/@openclaw/fs-safe/dist/permission-exec.js +2 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.d.ts +6 -1
- package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.js +2 -2
- package/node_modules/@openclaw/fs-safe/dist/publish-file.js +34 -7
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +1 -4
- package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +6 -0
- package/node_modules/@openclaw/fs-safe/dist/root-create-input.d.ts +15 -1
- package/node_modules/@openclaw/fs-safe/dist/root-create-input.js +4 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-entry.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +6 -12
- package/node_modules/@openclaw/fs-safe/dist/root-impl.js +15 -15
- package/node_modules/@openclaw/fs-safe/dist/root-paths.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-walk.js +4 -4
- package/node_modules/@openclaw/fs-safe/dist/root-write-verification.d.ts +10 -1
- package/node_modules/@openclaw/fs-safe/dist/root-write-verification.js +20 -0
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.js +19 -7
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +25 -3
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-retained.d.ts +14 -0
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-retained.js +187 -0
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.js +15 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-directory-diagnostics.d.ts +10 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-directory-diagnostics.js +29 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-target.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.js +6 -6
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +4 -4
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +17 -16
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.js +20 -28
- package/node_modules/@openclaw/fs-safe/dist/walk.js +2 -13
- package/node_modules/@openclaw/fs-safe/dist/watch-native.d.ts +2 -2
- package/node_modules/@openclaw/fs-safe/dist/watch-native.js +3 -1
- package/node_modules/@openclaw/fs-safe/dist/watch-rescan.js +3 -9
- package/node_modules/@openclaw/fs-safe/dist/watch.js +2 -3
- package/node_modules/@openclaw/fs-safe/docs/advanced.md +1 -1
- package/node_modules/@openclaw/fs-safe/docs/archive.md +3 -0
- package/node_modules/@openclaw/fs-safe/docs/atomic.md +11 -3
- package/node_modules/@openclaw/fs-safe/docs/contributing.md +1 -1
- package/node_modules/@openclaw/fs-safe/docs/copy.md +48 -0
- package/node_modules/@openclaw/fs-safe/docs/guest.md +21 -4
- package/node_modules/@openclaw/fs-safe/docs/path-scope.md +4 -0
- package/node_modules/@openclaw/fs-safe/docs/sidecar-lock.md +46 -8
- package/node_modules/@openclaw/fs-safe/docs/temp.md +12 -0
- package/node_modules/@openclaw/fs-safe/docs/watch.md +3 -2
- package/node_modules/@openclaw/fs-safe/package.json +15 -15
- package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +1 -1
- package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
- package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +1 -1
- package/node_modules/ws/lib/websocket.js +17 -3
- package/node_modules/ws/package.json +1 -1
- package/package.json +6 -6
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-arbitration.d.ts +0 -17
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-arbitration.js +0 -66
- package/node_modules/@openclaw/fs-safe/dist/publish-file-native.d.ts +0 -4
- package/node_modules/@openclaw/fs-safe/dist/publish-file-native.js +0 -35
- package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.d.ts +0 -7
- package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.js +0 -16
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import { foreignSyncHeldLock } from "./file-lock-sync-admission.js";
|
|
3
|
-
import path from "node:path";
|
|
4
|
-
import { FsSafeError } from "./errors.js";
|
|
5
|
-
import {} from "./file-lock-sync-root.js";
|
|
6
|
-
import { removeFileLockSyncRootFile } from "./file-lock-sync-root-mutation.js";
|
|
7
|
-
import { createSuppressedError } from "./suppressed-error.js";
|
|
8
|
-
import { createRootSyncHeldLockHandle, verifyRootSyncHeldLock, } from "./file-lock-sync-root-held.js";
|
|
9
|
-
export class FileLockSyncRootArbitrationCollision extends FsSafeError {
|
|
10
|
-
constructor() {
|
|
11
|
-
super("path-mismatch", "file lock arbitration changed during local creation");
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
function sameRootLockPath(left, right) {
|
|
15
|
-
return left.relativePath === right.relativePath && path.relative(left.path, right.path) === "";
|
|
16
|
-
}
|
|
17
|
-
export function tryReuseCurrentRootSyncHeldLock(arbitration) {
|
|
18
|
-
const held = arbitration.heldLocks.get(arbitration.normalizedTargetPath);
|
|
19
|
-
const reusable = held && !foreignSyncHeldLock("root", arbitration.normalizedTargetPath) &&
|
|
20
|
-
arbitration.reentrantOwner !== undefined &&
|
|
21
|
-
held.reentrantOwner !== undefined &&
|
|
22
|
-
arbitration.reentrantOwner === held.reentrantOwner &&
|
|
23
|
-
arbitration.authority.adapter === held.rootAuthority.adapter &&
|
|
24
|
-
sameRootLockPath(arbitration.lockRootPath, held.rootPath) &&
|
|
25
|
-
held.releaseState !== "released";
|
|
26
|
-
if (!reusable)
|
|
27
|
-
return undefined;
|
|
28
|
-
if (!verifyRootSyncHeldLock(held)) {
|
|
29
|
-
throw new FsSafeError("path-mismatch", "held sidecar lock changed before reentrant reuse");
|
|
30
|
-
}
|
|
31
|
-
// Verification can invoke a custom parser. Re-fetch the exact entry before
|
|
32
|
-
// granting a reference, while retaining supported releasing/exit states.
|
|
33
|
-
if (arbitration.heldLocks.get(arbitration.normalizedTargetPath) !== held ||
|
|
34
|
-
held.releaseState === "released" || foreignSyncHeldLock("root", arbitration.normalizedTargetPath)) {
|
|
35
|
-
throw new FsSafeError("path-mismatch", "held sidecar lock changed during reentrant reuse");
|
|
36
|
-
}
|
|
37
|
-
held.refCount += 1;
|
|
38
|
-
held.revision += 1;
|
|
39
|
-
return createRootSyncHeldLockHandle(held);
|
|
40
|
-
}
|
|
41
|
-
export function cleanupCreatedRootSyncLock(lockRootPath, fd, receipt, timer) {
|
|
42
|
-
let timerCleanupFailed = false;
|
|
43
|
-
let timerCleanupError;
|
|
44
|
-
try {
|
|
45
|
-
if (timer)
|
|
46
|
-
clearInterval(timer);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
timerCleanupFailed = true;
|
|
50
|
-
timerCleanupError = error;
|
|
51
|
-
}
|
|
52
|
-
try {
|
|
53
|
-
fs.closeSync(fd);
|
|
54
|
-
if (!removeFileLockSyncRootFile(lockRootPath, receipt)) {
|
|
55
|
-
throw new FsSafeError("path-mismatch", "created sidecar lock changed before cleanup");
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch (fileCleanupError) {
|
|
59
|
-
if (timerCleanupFailed) {
|
|
60
|
-
throw createSuppressedError(timerCleanupError, fileCleanupError, "unpublished lock timer and file cleanup both failed");
|
|
61
|
-
}
|
|
62
|
-
throw fileCleanupError;
|
|
63
|
-
}
|
|
64
|
-
if (timerCleanupFailed)
|
|
65
|
-
throw timerCleanupError;
|
|
66
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { BigIntStats } from "node:fs";
|
|
2
|
-
import type { NativeBinding } from "./native-binding.js";
|
|
3
|
-
import { type PublishFailureState } from "./publish-file-failure.js";
|
|
4
|
-
export declare function publishFileNoReplaceNative(binding: NativeBinding, paths: Parameters<NativeBinding["renameNoReplace"]>, expected: BigIntStats, failure: PublishFailureState): "link-unlink" | undefined;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { FsSafeError } from "./errors.js";
|
|
2
|
-
import { getFsSafeNativeConfig } from "./native-config.js";
|
|
3
|
-
import { nativeMoveNoReplace } from "./native-move-fallback.js";
|
|
4
|
-
import { rememberCreatedTarget } from "./publish-file-failure.js";
|
|
5
|
-
export function publishFileNoReplaceNative(binding, paths, expected, failure) {
|
|
6
|
-
try {
|
|
7
|
-
const fallback = nativeMoveNoReplace(binding, paths, expected, getFsSafeNativeConfig().mode === "auto", "file publication");
|
|
8
|
-
if (fallback) {
|
|
9
|
-
failure.fallback = fallback;
|
|
10
|
-
failure.sourceRemoval = "removed";
|
|
11
|
-
}
|
|
12
|
-
return fallback;
|
|
13
|
-
}
|
|
14
|
-
catch (error) {
|
|
15
|
-
if (error instanceof FsSafeError && error.details?.publication === "published") {
|
|
16
|
-
failure.targetCreated = true;
|
|
17
|
-
failure.preserveTarget = true;
|
|
18
|
-
failure.phase = "rename-verify";
|
|
19
|
-
failure.fallback = "link-unlink";
|
|
20
|
-
failure.sourceRemoval = error.details.sourceRemoval;
|
|
21
|
-
// Changed/unverified pairs cannot establish which inode was published.
|
|
22
|
-
if (failure.sourceRemoval === "still-linked")
|
|
23
|
-
rememberCreatedTarget(failure, expected, "rename-verify");
|
|
24
|
-
}
|
|
25
|
-
if (error instanceof FsSafeError)
|
|
26
|
-
throw error;
|
|
27
|
-
const code = error?.code;
|
|
28
|
-
if (code === "path-mismatch" || code === "hardlink") {
|
|
29
|
-
throw new FsSafeError(code, "publication source changed before fallback", { cause: error });
|
|
30
|
-
}
|
|
31
|
-
if (code === "ELOOP")
|
|
32
|
-
throw new FsSafeError("symlink", "publication source became a symlink", { cause: error });
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { type DenyMutationPolicy } from "./deny-mutations.js";
|
|
2
|
-
import { type RootContext } from "./root-context.js";
|
|
3
|
-
export declare function assertMoveMutationAllowed(root: RootContext, params: {
|
|
4
|
-
fromRelative: string;
|
|
5
|
-
toRelative: string;
|
|
6
|
-
denyMutations?: DenyMutationPolicy;
|
|
7
|
-
}): Promise<void>;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { assertMutationNotDenied, } from "./deny-mutations.js";
|
|
2
|
-
import { resolvePathInRoot } from "./root-context.js";
|
|
3
|
-
export async function assertMoveMutationAllowed(root, params) {
|
|
4
|
-
// Keep this preflight separate from the pinned resolutions in movePathFallback:
|
|
5
|
-
// mutation denials must take precedence over source alias or identity failures.
|
|
6
|
-
const source = await resolvePathInRoot(root, params.fromRelative, {
|
|
7
|
-
aliasErrorCode: "path-alias",
|
|
8
|
-
allowFinalSymlink: true,
|
|
9
|
-
});
|
|
10
|
-
await assertMutationNotDenied(source.resolved, params.denyMutations, { protectAncestors: true });
|
|
11
|
-
const target = await resolvePathInRoot(root, params.toRelative, {
|
|
12
|
-
aliasErrorCode: "path-alias",
|
|
13
|
-
allowFinalSymlink: true,
|
|
14
|
-
});
|
|
15
|
-
await assertMutationNotDenied(target.resolved, params.denyMutations, { protectAncestors: true });
|
|
16
|
-
}
|