@openclaw/signal 2026.9.6 → 2026.9.8
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/assets/icon.png +0 -0
- package/dist/.setup/{accounts-BV6tDOTc.mjs → accounts-DMtj2E-4.mjs} +6 -35
- package/dist/.setup/api-DEB0Obj8.mjs +16 -0
- package/dist/.setup/{api-CGh4eWR8.mjs → api-DmCb6e7E.mjs} +10 -10
- package/dist/.setup/{approval-auth-BBI9BTRm.mjs → approval-auth-CszS7gwf.mjs} +7 -13
- package/dist/.setup/{approval-handler.runtime-C3vN5OWd.mjs → approval-handler.runtime-D9ofZcZW.mjs} +10 -29
- package/dist/.setup/{approval-reactions-DDQvPP_z.mjs → approval-reactions-BKkjIAoi.mjs} +25 -36
- package/dist/.setup/{channel-DhzTcFsK.mjs → channel-DrUxv5cf.mjs} +567 -136
- package/dist/.setup/{client-BseAt7F7.mjs → client-AXcDteBZ.mjs} +63 -152
- package/dist/.setup/client-adapter-c_O1ouxZ.mjs +30 -0
- package/dist/.setup/{config-schema-aQwwMGUj.mjs → config-schema-DvxZ18SD.mjs} +3 -13
- package/dist/.setup/{doctor-contract-api-Rbq_sRTI.mjs → doctor-contract-api-Db9V9gsY.mjs} +212 -91
- package/dist/.setup/{identity-YXPmgFMu.mjs → identity-B3JyPqGO.mjs} +2 -6
- package/dist/.setup/{install-signal-cli-BDbzFcU2.mjs → install-signal-cli-ChvjzM6X.mjs} +0 -4
- package/dist/.setup/legacy-transport-QIpaMNST.mjs +18 -0
- package/dist/.setup/{monitor-Dnz6Ygz5.mjs → monitor-BfwQr78f.mjs} +95 -124
- package/dist/.setup/{probe-DXT2eLnw.mjs → probe-BYLzra6D.mjs} +9 -9
- package/dist/.setup/{reaction-runtime-api-BnQGHcrB.mjs → reaction-runtime-api-DDi5x2wC.mjs} +3 -17
- package/dist/.setup/{question-reactions-C8cSEjVf.mjs → reaction-targets-CEdyjtrC.mjs} +11 -8
- package/dist/.setup/{rpc-context-CwwADZ1b.mjs → rpc-context-D26RxFIm.mjs} +1 -1
- package/dist/.setup/runtime-8sxUF217.mjs +8 -0
- package/dist/.setup/{send-B78M_eFp.mjs → send-DEjrbpIC.mjs} +25 -55
- package/dist/.setup/{channel.runtime-CG79z_Vy.mjs → setup-surface-Drt-4t3R.mjs} +4 -6
- package/dist/.setup/transport-detection-BVUDE42e.mjs +25 -0
- package/dist/.setup/{transport-policy-5VSnj5ma.mjs → transport-policy-B6C_LogW.mjs} +19 -1
- package/dist/.setup/transport-probes.runtime-DwXEHnXr.mjs +2 -0
- package/dist/api.js +10 -10
- package/dist/channel-config-api.js +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +2 -2
- package/dist/doctor-contract-api.js +1 -1
- package/dist/reaction-runtime-api.js +1 -1
- package/dist/runtime-api.js +2 -19
- package/dist/setup-entry.js +1 -1
- package/node_modules/@openclaw/fs-safe/CHANGELOG.md +102 -0
- package/node_modules/@openclaw/fs-safe/README.md +24 -6
- package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +6 -1
- package/node_modules/@openclaw/fs-safe/dist/advanced.js +3 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-durability.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-merge.js +1 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-plan.d.ts +2 -7
- package/node_modules/@openclaw/fs-safe/dist/archive-read.js +9 -18
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +1 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +3 -3
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.js +4 -0
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-entry.d.ts +11 -11
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-entry.js +3 -35
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-integrity.d.ts +2 -2
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-integrity.js +2 -12
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.d.ts +7 -3
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.js +13 -10
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.js +3 -1
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.d.ts +2 -3
- package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.js +16 -8
- package/node_modules/@openclaw/fs-safe/dist/archive.d.ts +6 -3
- package/node_modules/@openclaw/fs-safe/dist/archive.js +22 -19
- package/node_modules/@openclaw/fs-safe/dist/atomic.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/copy-publication.d.ts +1 -3
- package/node_modules/@openclaw/fs-safe/dist/copy-publication.js +2 -6
- package/node_modules/@openclaw/fs-safe/dist/deny-mutation-match.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/deny-mutation-match.js +71 -0
- package/node_modules/@openclaw/fs-safe/dist/deny-mutations.js +4 -3
- package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +0 -3
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.d.ts +20 -2
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.js +77 -1
- package/node_modules/@openclaw/fs-safe/dist/directory-receipt.js +5 -7
- package/node_modules/@openclaw/fs-safe/dist/effective-uid.js +1 -4
- package/node_modules/@openclaw/fs-safe/dist/errors.d.ts +3 -1
- package/node_modules/@openclaw/fs-safe/dist/errors.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/file-identity.js +10 -2
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-acquisition.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-admission.js +5 -1
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-held.d.ts +4 -11
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-held.js +1 -4
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.d.ts +3 -6
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-options.d.ts +2 -10
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root.d.ts +2 -4
- package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +2 -2
- package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.d.ts +3 -7
- package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.js +7 -10
- package/node_modules/@openclaw/fs-safe/dist/file-store-prune.js +7 -6
- package/node_modules/@openclaw/fs-safe/dist/file-store.d.ts +4 -7
- package/node_modules/@openclaw/fs-safe/dist/file-store.js +19 -21
- package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +23 -31
- package/node_modules/@openclaw/fs-safe/dist/guest.js +21 -12
- package/node_modules/@openclaw/fs-safe/dist/json-document-store.d.ts +4 -9
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.d.ts +1 -5
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.js +2 -7
- package/node_modules/@openclaw/fs-safe/dist/local-file-access.js +2 -5
- package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.d.ts +2 -5
- package/node_modules/@openclaw/fs-safe/dist/local-roots.d.ts +2 -7
- package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.js +4 -4
- package/node_modules/@openclaw/fs-safe/dist/mutation-authority.js +5 -0
- package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +51 -14
- package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +8 -2
- package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.d.ts +13 -0
- package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.js +303 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch-worker.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch-worker.js +54 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch.d.ts +5 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch.js +64 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/owner-dacl.js +3 -0
- package/node_modules/@openclaw/fs-safe/dist/path.js +17 -1
- package/node_modules/@openclaw/fs-safe/dist/permission-exec.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/permission-exec.js +3 -6
- package/node_modules/@openclaw/fs-safe/dist/permissions-public.d.ts +3 -1
- package/node_modules/@openclaw/fs-safe/dist/permissions-public.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts +3 -6
- package/node_modules/@openclaw/fs-safe/dist/permissions.d.ts +3 -10
- package/node_modules/@openclaw/fs-safe/dist/permissions.js +0 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.js +4 -2
- package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.d.ts +2 -8
- package/node_modules/@openclaw/fs-safe/dist/pinned-open.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/pinned-open.js +2 -3
- package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +4 -0
- package/node_modules/@openclaw/fs-safe/dist/read-opened-file.d.ts +2 -5
- package/node_modules/@openclaw/fs-safe/dist/regular-file.js +3 -3
- package/node_modules/@openclaw/fs-safe/dist/replace-directory.js +5 -17
- package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.js +36 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.d.ts +4 -10
- package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +66 -38
- package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.d.ts +7 -11
- package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +10 -2
- package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.d.ts +21 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.js +123 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-mutation.d.ts +26 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-mutation.js +47 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts +2 -2
- package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.js +16 -4
- package/node_modules/@openclaw/fs-safe/dist/replace-file-types.d.ts +55 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/replace-file.d.ts +3 -55
- package/node_modules/@openclaw/fs-safe/dist/replace-file.js +31 -11
- package/node_modules/@openclaw/fs-safe/dist/retained-directory-replacement.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/retained-directory-replacement.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/retained-file-types.d.ts +50 -0
- package/node_modules/@openclaw/fs-safe/dist/retained-file-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/retained-file.d.ts +3 -0
- package/node_modules/@openclaw/fs-safe/dist/retained-file.js +121 -0
- package/node_modules/@openclaw/fs-safe/dist/root-context.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/root-directory-entry.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-entry.js +28 -0
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +9 -1
- package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +88 -37
- package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.js +1 -6
- package/node_modules/@openclaw/fs-safe/dist/root-file.js +2 -5
- package/node_modules/@openclaw/fs-safe/dist/root-handle-context.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/root-handle-context.js +12 -0
- package/node_modules/@openclaw/fs-safe/dist/root-impl.d.ts +3 -3
- package/node_modules/@openclaw/fs-safe/dist/root-impl.js +8 -5
- package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts +2 -7
- package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +3 -3
- package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts +0 -1
- package/node_modules/@openclaw/fs-safe/dist/root-observed-path.js +0 -3
- package/node_modules/@openclaw/fs-safe/dist/root-path-observation.d.ts +4 -11
- package/node_modules/@openclaw/fs-safe/dist/root-path.js +7 -10
- package/node_modules/@openclaw/fs-safe/dist/root-paths.d.ts +2 -6
- package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.d.ts +1 -3
- package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts +19 -12
- package/node_modules/@openclaw/fs-safe/dist/root-walk.js +56 -20
- package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +1 -6
- package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.d.ts +1 -0
- package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.js +8 -2
- package/node_modules/@openclaw/fs-safe/dist/secret-file.d.ts +6 -2
- package/node_modules/@openclaw/fs-safe/dist/secret-file.js +12 -16
- package/node_modules/@openclaw/fs-safe/dist/secret-read-policy.js +1 -1
- package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.js +5 -14
- package/node_modules/@openclaw/fs-safe/dist/secure-file.js +3 -2
- package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.js +2 -7
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +4 -4
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission-parser.d.ts +1 -2
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-handle.d.ts +2 -8
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.d.ts +2 -7
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.d.ts +2 -2
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +11 -12
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-stale-admission.d.ts +1 -5
- package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.js +9 -7
- package/node_modules/@openclaw/fs-safe/dist/staged-symlink-types.d.ts +39 -0
- package/node_modules/@openclaw/fs-safe/dist/staged-symlink-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/stat-observation.js +3 -10
- package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.d.ts +2 -0
- package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.js +6 -6
- package/node_modules/@openclaw/fs-safe/dist/symlink-parents.js +58 -7
- package/node_modules/@openclaw/fs-safe/dist/temp-target.js +8 -10
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.js +28 -33
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +1 -1
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +16 -17
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.js +1 -2
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.js +4 -9
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.js +52 -0
- package/node_modules/@openclaw/fs-safe/dist/test-hooks.d.ts +5 -1
- package/node_modules/@openclaw/fs-safe/dist/text-atomic.d.ts +2 -1
- package/node_modules/@openclaw/fs-safe/dist/text-atomic.js +2 -0
- package/node_modules/@openclaw/fs-safe/dist/trash.js +27 -1
- package/node_modules/@openclaw/fs-safe/dist/walk.d.ts +2 -5
- package/node_modules/@openclaw/fs-safe/dist/watch-alias.d.ts +6 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-alias.js +88 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-hints.d.ts +9 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-hints.js +93 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-native.d.ts +36 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-native.js +73 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-scan.d.ts +28 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-scan.js +300 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-stream.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-stream.js +32 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-types.d.ts +60 -0
- package/node_modules/@openclaw/fs-safe/dist/watch-types.js +1 -0
- package/node_modules/@openclaw/fs-safe/dist/watch.d.ts +5 -0
- package/node_modules/@openclaw/fs-safe/dist/watch.js +530 -0
- package/node_modules/@openclaw/fs-safe/dist/windows-owner.d.ts +3 -7
- package/node_modules/@openclaw/fs-safe/dist/windows-owner.js +0 -1
- package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.cs +6 -6
- package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.ps1 +78 -3
- package/node_modules/@openclaw/fs-safe/dist/windows-security-command.d.ts +8 -0
- package/node_modules/@openclaw/fs-safe/dist/windows-security-command.js +66 -15
- package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.d.ts +4 -0
- package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.js +6 -2
- package/node_modules/@openclaw/fs-safe/docs/advanced.md +4 -2
- package/node_modules/@openclaw/fs-safe/docs/archive.md +16 -0
- package/node_modules/@openclaw/fs-safe/docs/atomic.md +93 -3
- package/node_modules/@openclaw/fs-safe/docs/contributing.md +102 -4
- package/node_modules/@openclaw/fs-safe/docs/copy.md +2 -0
- package/node_modules/@openclaw/fs-safe/docs/durability.md +7 -0
- package/node_modules/@openclaw/fs-safe/docs/file-store.md +5 -0
- package/node_modules/@openclaw/fs-safe/docs/guest.md +7 -1
- package/node_modules/@openclaw/fs-safe/docs/index.md +1 -0
- package/node_modules/@openclaw/fs-safe/docs/install.md +30 -0
- package/node_modules/@openclaw/fs-safe/docs/native-helper.md +20 -4
- package/node_modules/@openclaw/fs-safe/docs/native.md +63 -1
- package/node_modules/@openclaw/fs-safe/docs/permissions.md +66 -0
- package/node_modules/@openclaw/fs-safe/docs/public-api.md +30 -3
- package/node_modules/@openclaw/fs-safe/docs/retained-file.md +115 -0
- package/node_modules/@openclaw/fs-safe/docs/root.md +35 -9
- package/node_modules/@openclaw/fs-safe/docs/secret-file.md +19 -0
- package/node_modules/@openclaw/fs-safe/docs/security-model.md +4 -1
- package/node_modules/@openclaw/fs-safe/docs/sidecar-lock.md +5 -1
- package/node_modules/@openclaw/fs-safe/docs/staged-symlink.md +124 -0
- package/node_modules/@openclaw/fs-safe/docs/store.md +3 -1
- package/node_modules/@openclaw/fs-safe/docs/temp.md +24 -4
- package/node_modules/@openclaw/fs-safe/docs/testing.md +210 -0
- package/node_modules/@openclaw/fs-safe/docs/types.md +6 -0
- package/node_modules/@openclaw/fs-safe/docs/walk.md +34 -1
- package/node_modules/@openclaw/fs-safe/docs/watch.md +251 -0
- package/node_modules/@openclaw/fs-safe/docs/writing.md +21 -0
- package/node_modules/@openclaw/fs-safe/package.json +13 -9
- 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/package.json +5 -5
- package/dist/.setup/api-B9-B1L7Q.mjs +0 -17
- package/dist/.setup/client-adapter-dvFa47YL.mjs +0 -63
- package/dist/.setup/rolldown-runtime-8H4AJuhK.mjs +0 -14
- package/dist/.setup/send.runtime-CLnCWvrM.mjs +0 -2
- package/dist/.setup/transport-detection-CoiRl7Gx.mjs +0 -576
- package/dist/.setup/transport-detection.runtime-Tlhuv3T_.mjs +0 -2
- package/dist/.setup/transport-probes.runtime-WprAyBbL.mjs +0 -2
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-owner.d.ts +0 -20
- package/node_modules/@openclaw/fs-safe/dist/directory-mode-owner.js +0 -78
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRequire } from "node:module";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { isRecord } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
|
+
import { isRecord, normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import net, { createConnection } from "node:net";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { detectMime, extractOriginalFilename, parseMediaContentLength } from "openclaw/plugin-sdk/media-runtime";
|
|
7
|
-
import { parseStrictNonNegativeInteger, resolvePositiveTimerTimeoutMs, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
7
|
+
import { asNonNegativeFiniteNumber, asPositiveFiniteNumber, parseStrictNonNegativeInteger, resolvePositiveTimerTimeoutMs, resolveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
8
8
|
import { coerceErrorMessage, formatErrorMessage, toErrorObject } from "openclaw/plugin-sdk/error-runtime";
|
|
9
9
|
import { resolveFetch } from "openclaw/plugin-sdk/fetch-runtime";
|
|
10
10
|
import { readResponseTextPrefix, readResponseWithLimit } from "openclaw/plugin-sdk/response-limit-runtime";
|
|
@@ -23,13 +23,6 @@ const require = createRequire(import.meta.url);
|
|
|
23
23
|
const WebSocket = require(path.join(path.dirname(require.resolve("ws/package.json")), "index.js"));
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region extensions/signal/src/client-container.ts
|
|
26
|
-
/**
|
|
27
|
-
* Signal client for bbernhard/signal-cli-rest-api container.
|
|
28
|
-
* Uses WebSocket for receiving messages and REST API for sending.
|
|
29
|
-
*
|
|
30
|
-
* This is a separate implementation from client.ts (native signal-cli)
|
|
31
|
-
* to keep the two modes cleanly isolated.
|
|
32
|
-
*/
|
|
33
26
|
const DEFAULT_TIMEOUT_MS$2 = 1e4;
|
|
34
27
|
const DEFAULT_ATTACHMENT_RESPONSE_MAX_BYTES = 1048576;
|
|
35
28
|
const SIGNAL_REST_ERROR_RESPONSE_MAX_BYTES = 16384;
|
|
@@ -92,13 +85,6 @@ async function fetchWithTimeout(url, init, timeoutMs) {
|
|
|
92
85
|
signal
|
|
93
86
|
}));
|
|
94
87
|
}
|
|
95
|
-
function normalizeMaxResponseBytes(value) {
|
|
96
|
-
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return DEFAULT_ATTACHMENT_RESPONSE_MAX_BYTES;
|
|
97
|
-
return Math.floor(value);
|
|
98
|
-
}
|
|
99
|
-
function readContentLength(res) {
|
|
100
|
-
return parseMediaContentLength(res.headers?.get("content-length") ?? null) ?? void 0;
|
|
101
|
-
}
|
|
102
88
|
function signalRestIdleTimeoutError({ chunkTimeoutMs }) {
|
|
103
89
|
return /* @__PURE__ */ new Error(`Signal REST response body stalled after ${chunkTimeoutMs}ms`);
|
|
104
90
|
}
|
|
@@ -124,8 +110,8 @@ async function readSignalRestErrorText(res, bodyIdleTimeoutMs, bodyTimeoutMs) {
|
|
|
124
110
|
})).text;
|
|
125
111
|
}
|
|
126
112
|
async function readCappedResponseBuffer(res, maxResponseBytes, bodyIdleTimeoutMs, bodyTimeoutMs) {
|
|
127
|
-
const contentLength =
|
|
128
|
-
if (contentLength !==
|
|
113
|
+
const contentLength = parseMediaContentLength(res.headers?.get("content-length") ?? null);
|
|
114
|
+
if (contentLength !== null && contentLength > maxResponseBytes) throw new Error("Signal REST attachment exceeded size limit");
|
|
129
115
|
return await readResponseWithLimit(res, maxResponseBytes, {
|
|
130
116
|
chunkTimeoutMs: bodyIdleTimeoutMs,
|
|
131
117
|
onIdleTimeout: signalAttachmentIdleTimeoutError,
|
|
@@ -137,9 +123,6 @@ async function readCappedResponseBuffer(res, maxResponseBytes, bodyIdleTimeoutMs
|
|
|
137
123
|
async function releaseUnreadResponseBody(res) {
|
|
138
124
|
if (res?.bodyUsed !== true) await res?.body?.cancel().catch(() => void 0);
|
|
139
125
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Check if bbernhard container REST API is available.
|
|
142
|
-
*/
|
|
143
126
|
async function containerCheck(baseUrl, timeoutMs = DEFAULT_TIMEOUT_MS$2, account) {
|
|
144
127
|
const normalized = normalizeBaseUrl$1(baseUrl);
|
|
145
128
|
let res;
|
|
@@ -231,9 +214,6 @@ function containerReceiveCheck(normalizedBaseUrl, account, timeoutMs) {
|
|
|
231
214
|
});
|
|
232
215
|
});
|
|
233
216
|
}
|
|
234
|
-
/**
|
|
235
|
-
* Make a REST API request to bbernhard container.
|
|
236
|
-
*/
|
|
237
217
|
async function containerRestRequest(endpoint, opts, method = "GET", body) {
|
|
238
218
|
const url = `${normalizeBaseUrl$1(opts.baseUrl)}${endpoint}`;
|
|
239
219
|
const init = {
|
|
@@ -270,9 +250,6 @@ async function containerRestRequest(endpoint, opts, method = "GET", body) {
|
|
|
270
250
|
}
|
|
271
251
|
});
|
|
272
252
|
}
|
|
273
|
-
/**
|
|
274
|
-
* Fetch attachment binary from bbernhard container.
|
|
275
|
-
*/
|
|
276
253
|
async function containerFetchAttachment(attachmentId, opts) {
|
|
277
254
|
const url = `${normalizeBaseUrl$1(opts.baseUrl)}/v1/attachments/${encodeURIComponent(attachmentId)}`;
|
|
278
255
|
const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS$2;
|
|
@@ -288,7 +265,7 @@ async function containerFetchAttachment(attachmentId, opts) {
|
|
|
288
265
|
});
|
|
289
266
|
res = fetched;
|
|
290
267
|
if (!fetched.ok) return null;
|
|
291
|
-
return await readCappedResponseBuffer(fetched,
|
|
268
|
+
return await readCappedResponseBuffer(fetched, Math.floor(asPositiveFiniteNumber(opts.maxResponseBytes) ?? DEFAULT_ATTACHMENT_RESPONSE_MAX_BYTES), bodyIdleTimeoutMs, bodyTimeoutMs);
|
|
292
269
|
} finally {
|
|
293
270
|
await releaseUnreadResponseBody(res);
|
|
294
271
|
}
|
|
@@ -457,70 +434,6 @@ function parseContainerSendTimestamp(raw) {
|
|
|
457
434
|
if (timestamp === void 0) throw new Error("Signal REST send returned invalid timestamp");
|
|
458
435
|
return timestamp;
|
|
459
436
|
}
|
|
460
|
-
function normalizeContainerQuoteTimestamp(raw) {
|
|
461
|
-
return parseStrictNonNegativeInteger(raw) ?? void 0;
|
|
462
|
-
}
|
|
463
|
-
function normalizeContainerQuoteText(raw) {
|
|
464
|
-
return typeof raw === "string" ? raw : void 0;
|
|
465
|
-
}
|
|
466
|
-
/**
|
|
467
|
-
* Send message via bbernhard container REST API.
|
|
468
|
-
*/
|
|
469
|
-
async function containerSendMessage(params) {
|
|
470
|
-
const payload = {
|
|
471
|
-
message: params.message,
|
|
472
|
-
number: params.account,
|
|
473
|
-
recipients: params.recipients
|
|
474
|
-
};
|
|
475
|
-
if (params.textStyles && params.textStyles.length > 0) {
|
|
476
|
-
payload.message = renderContainerStyledText(params.message, params.textStyles);
|
|
477
|
-
payload["text_mode"] = "styled";
|
|
478
|
-
}
|
|
479
|
-
if (params.attachments && params.attachments.length > 0) {
|
|
480
|
-
const configuredMaxBytes = params.maxAttachmentBytes;
|
|
481
|
-
const maxAttachmentBytes = typeof configuredMaxBytes === "number" && Number.isFinite(configuredMaxBytes) && configuredMaxBytes >= 0 ? Math.floor(configuredMaxBytes) : DEFAULT_SIGNAL_CONTAINER_MAX_ATTACHMENT_BYTES;
|
|
482
|
-
payload.base64_attachments = await filesToBase64DataUris(params.attachments, maxAttachmentBytes);
|
|
483
|
-
}
|
|
484
|
-
if (params.quoteTimestamp !== void 0 && params.quoteAuthor) {
|
|
485
|
-
payload.quote_timestamp = params.quoteTimestamp;
|
|
486
|
-
payload.quote_author = params.quoteAuthor;
|
|
487
|
-
payload.quote_message = params.quoteMessage ?? "";
|
|
488
|
-
}
|
|
489
|
-
const timestamp = parseContainerSendTimestamp((await containerRestRequest("/v2/send", params, "POST", payload))?.timestamp);
|
|
490
|
-
return timestamp === void 0 ? {} : { timestamp };
|
|
491
|
-
}
|
|
492
|
-
/**
|
|
493
|
-
* Send typing indicator via bbernhard container REST API.
|
|
494
|
-
*/
|
|
495
|
-
async function containerSendTyping(params) {
|
|
496
|
-
const method = params.stop ? "DELETE" : "PUT";
|
|
497
|
-
await containerRestRequest(`/v1/typing-indicator/${encodeURIComponent(params.account)}`, params, method, { recipient: params.recipient });
|
|
498
|
-
return true;
|
|
499
|
-
}
|
|
500
|
-
/**
|
|
501
|
-
* Send read receipt via bbernhard container REST API.
|
|
502
|
-
*/
|
|
503
|
-
async function containerSendReceipt(params) {
|
|
504
|
-
await containerRestRequest(`/v1/receipts/${encodeURIComponent(params.account)}`, params, "POST", {
|
|
505
|
-
recipient: params.recipient,
|
|
506
|
-
timestamp: params.timestamp,
|
|
507
|
-
receipt_type: params.type ?? "read"
|
|
508
|
-
});
|
|
509
|
-
return true;
|
|
510
|
-
}
|
|
511
|
-
/**
|
|
512
|
-
* Add or remove a message reaction via the bbernhard container REST API.
|
|
513
|
-
*/
|
|
514
|
-
async function containerSendReaction(params) {
|
|
515
|
-
const payload = {
|
|
516
|
-
recipient: params.recipient,
|
|
517
|
-
reaction: params.emoji,
|
|
518
|
-
target_author: params.targetAuthor,
|
|
519
|
-
timestamp: params.targetTimestamp
|
|
520
|
-
};
|
|
521
|
-
if (params.groupId) payload.group_id = params.groupId;
|
|
522
|
-
return await containerRestRequest(`/v1/reactions/${encodeURIComponent(params.account)}`, params, params.remove ? "DELETE" : "POST", payload) ?? {};
|
|
523
|
-
}
|
|
524
437
|
/**
|
|
525
438
|
* Strip the "uuid:" prefix that native signal-cli accepts but the container API rejects.
|
|
526
439
|
*/
|
|
@@ -559,56 +472,55 @@ async function containerRpcRequest(method, params, opts) {
|
|
|
559
472
|
style
|
|
560
473
|
}];
|
|
561
474
|
});
|
|
562
|
-
const
|
|
563
|
-
const
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
textStyles
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
475
|
+
const message = p.message ?? "";
|
|
476
|
+
const payload = {
|
|
477
|
+
message,
|
|
478
|
+
number: p.account ?? "",
|
|
479
|
+
recipients: finalRecipients
|
|
480
|
+
};
|
|
481
|
+
if (textStyles?.length) {
|
|
482
|
+
payload.message = renderContainerStyledText(message, textStyles);
|
|
483
|
+
payload.text_mode = "styled";
|
|
484
|
+
}
|
|
485
|
+
const attachments = p.attachments;
|
|
486
|
+
if (attachments?.length) payload.base64_attachments = await filesToBase64DataUris(attachments, Math.floor(asNonNegativeFiniteNumber(opts.maxAttachmentBytes) ?? DEFAULT_SIGNAL_CONTAINER_MAX_ATTACHMENT_BYTES));
|
|
487
|
+
const quoteTimestamp = parseStrictNonNegativeInteger(p.quoteTimestamp ?? p["quote-timestamp"]);
|
|
488
|
+
const quoteAuthor = p.quoteAuthor ?? p["quote-author"];
|
|
489
|
+
if (quoteTimestamp !== void 0 && typeof quoteAuthor === "string" && quoteAuthor) {
|
|
490
|
+
const author = stripUuidPrefix(quoteAuthor);
|
|
491
|
+
if (author) {
|
|
492
|
+
const quoteMessage = p.quoteMessage ?? p["quote-message"];
|
|
493
|
+
payload.quote_timestamp = quoteTimestamp;
|
|
494
|
+
payload.quote_author = author;
|
|
495
|
+
payload.quote_message = typeof quoteMessage === "string" ? quoteMessage : "";
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
const timestamp = parseContainerSendTimestamp((await containerRestRequest("/v2/send", opts, "POST", payload))?.timestamp);
|
|
499
|
+
return timestamp === void 0 ? {} : { timestamp };
|
|
575
500
|
}
|
|
576
501
|
case "sendTyping": {
|
|
577
502
|
const recipient = stripUuidPrefix(p.recipient?.[0] ?? (p.groupId ? formatGroupIdForContainer(p.groupId) : ""));
|
|
578
|
-
await
|
|
579
|
-
...opts,
|
|
580
|
-
account: p.account ?? "",
|
|
581
|
-
recipient,
|
|
582
|
-
stop: p.stop
|
|
583
|
-
});
|
|
503
|
+
await containerRestRequest(`/v1/typing-indicator/${encodeURIComponent(p.account ?? "")}`, opts, p.stop ? "DELETE" : "PUT", { recipient });
|
|
584
504
|
return;
|
|
585
505
|
}
|
|
586
|
-
case "sendReceipt":
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
...opts,
|
|
590
|
-
account: p.account ?? "",
|
|
591
|
-
recipient,
|
|
506
|
+
case "sendReceipt":
|
|
507
|
+
await containerRestRequest(`/v1/receipts/${encodeURIComponent(p.account ?? "")}`, opts, "POST", {
|
|
508
|
+
recipient: stripUuidPrefix(p.recipient?.[0] ?? ""),
|
|
592
509
|
timestamp: p.targetTimestamp,
|
|
593
|
-
|
|
510
|
+
receipt_type: p.type ?? "read"
|
|
594
511
|
});
|
|
595
512
|
return;
|
|
596
|
-
}
|
|
597
513
|
case "sendReaction": {
|
|
598
514
|
const recipient = stripUuidPrefix(p.recipients?.[0] ?? "");
|
|
599
|
-
const groupId = p.groupIds?.[0]
|
|
515
|
+
const groupId = p.groupIds?.[0];
|
|
600
516
|
const formattedGroupId = groupId ? formatGroupIdForContainer(groupId) : void 0;
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
targetTimestamp: p.targetTimestamp,
|
|
609
|
-
groupId: formattedGroupId,
|
|
610
|
-
remove: Boolean(p.remove)
|
|
611
|
-
});
|
|
517
|
+
return await containerRestRequest(`/v1/reactions/${encodeURIComponent(p.account ?? "")}`, opts, p.remove ? "DELETE" : "POST", {
|
|
518
|
+
recipient: formattedGroupId || recipient || "",
|
|
519
|
+
reaction: p.emoji ?? "",
|
|
520
|
+
target_author: stripUuidPrefix(p.targetAuthor ?? recipient),
|
|
521
|
+
timestamp: p.targetTimestamp,
|
|
522
|
+
...formattedGroupId ? { group_id: formattedGroupId } : {}
|
|
523
|
+
}) ?? {};
|
|
612
524
|
}
|
|
613
525
|
case "getAttachment": {
|
|
614
526
|
const attachmentId = p.id;
|
|
@@ -628,6 +540,23 @@ async function containerRpcRequest(method, params, opts) {
|
|
|
628
540
|
}
|
|
629
541
|
}
|
|
630
542
|
//#endregion
|
|
543
|
+
//#region extensions/signal/src/quote-rejection.ts
|
|
544
|
+
function isSignalQuoteMetadataRejection(error) {
|
|
545
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
546
|
+
const normalized = normalizeLowercaseStringOrEmpty(message);
|
|
547
|
+
const rpcCode = /^signal rpc (-?\d+):/u.exec(normalized)?.[1];
|
|
548
|
+
if (rpcCode !== void 0) {
|
|
549
|
+
if (rpcCode !== "-32602") return false;
|
|
550
|
+
} else {
|
|
551
|
+
const restStatusText = /^signal rest (\d{3}):/u.exec(normalized)?.[1];
|
|
552
|
+
if (!restStatusText) return false;
|
|
553
|
+
const restStatus = Number(restStatusText);
|
|
554
|
+
if (restStatus < 400 || restStatus >= 500 || restStatus === 408 || restStatus === 429) return false;
|
|
555
|
+
}
|
|
556
|
+
if (!normalized.includes("quote")) return false;
|
|
557
|
+
return normalized.includes("reject") || normalized.includes("invalid") || normalized.includes("unrecognized") || normalized.includes("unsupported") || normalized.includes("not found") || normalized.includes("no such") || normalized.includes("unknown");
|
|
558
|
+
}
|
|
559
|
+
//#endregion
|
|
631
560
|
//#region extensions/signal/src/socket-path.ts
|
|
632
561
|
const execFileAsync = promisify(execFile);
|
|
633
562
|
function socketOwner(socketPath) {
|
|
@@ -804,26 +733,12 @@ async function* messages(socket, maxBytes = MAX_FRAME_BYTES) {
|
|
|
804
733
|
}
|
|
805
734
|
if (pending.length) throw new Error("Signal UNIX RPC closed with an incomplete frame");
|
|
806
735
|
}
|
|
807
|
-
const QUOTE_REJECTION_WORDS = [
|
|
808
|
-
"reject",
|
|
809
|
-
"invalid",
|
|
810
|
-
"unrecognized",
|
|
811
|
-
"unsupported",
|
|
812
|
-
"not found",
|
|
813
|
-
"no such",
|
|
814
|
-
"unknown"
|
|
815
|
-
];
|
|
816
|
-
function isQuoteMetadataRejection(code, rawMessage) {
|
|
817
|
-
if (code !== -32602) return false;
|
|
818
|
-
const normalized = rawMessage.toLowerCase();
|
|
819
|
-
return normalized.includes("quote") && QUOTE_REJECTION_WORDS.some((word) => normalized.includes(word));
|
|
820
|
-
}
|
|
821
736
|
function result(message) {
|
|
822
737
|
if (message.jsonrpc !== "2.0" || !Object.hasOwn(message, "result") && !message.error) throw new Error("Signal UNIX RPC returned invalid response envelope");
|
|
823
738
|
if (message.error) {
|
|
824
739
|
const error = isRecord(message.error) ? message.error : {};
|
|
825
740
|
const code = typeof error.code === "number" ? error.code : "unknown";
|
|
826
|
-
if (typeof error.message === "string" &&
|
|
741
|
+
if (typeof error.message === "string" && isSignalQuoteMetadataRejection(`Signal RPC ${code}: ${error.message}`)) throw new Error(`Signal RPC ${code}: quote metadata rejected (redacted)`);
|
|
827
742
|
throw new Error(`Signal RPC ${code}: remote error`);
|
|
828
743
|
}
|
|
829
744
|
return message.result;
|
|
@@ -942,10 +857,6 @@ function parseSignalRpcResponse(text, status) {
|
|
|
942
857
|
function assertSignalHttpProtocol(url, label) {
|
|
943
858
|
if (url.protocol !== "http:" && url.protocol !== "https:") throw new Error(`Signal ${label} unsupported protocol: ${url.protocol}`);
|
|
944
859
|
}
|
|
945
|
-
function normalizeSignalHttpResponseMaxBytes(value) {
|
|
946
|
-
if (typeof value !== "number" || !Number.isFinite(value) || value <= 0) return DEFAULT_SIGNAL_HTTP_RESPONSE_MAX_BYTES;
|
|
947
|
-
return Math.floor(value);
|
|
948
|
-
}
|
|
949
860
|
function normalizeSignalSseTimeoutMs(timeoutMs) {
|
|
950
861
|
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) return null;
|
|
951
862
|
return resolveTimerTimeoutMs(timeoutMs, DEFAULT_TIMEOUT_MS);
|
|
@@ -977,7 +888,7 @@ function requestSignalHttp(url, options) {
|
|
|
977
888
|
cleanup();
|
|
978
889
|
resolve(response);
|
|
979
890
|
};
|
|
980
|
-
const maxResponseBytes =
|
|
891
|
+
const maxResponseBytes = Math.floor(asPositiveFiniteNumber(options.maxResponseBytes) ?? DEFAULT_SIGNAL_HTTP_RESPONSE_MAX_BYTES);
|
|
981
892
|
const request = client.request(url, {
|
|
982
893
|
method: options.method,
|
|
983
894
|
headers: options.headers
|
|
@@ -1209,4 +1120,4 @@ async function streamSignalEvents(params) {
|
|
|
1209
1120
|
await flushEvent();
|
|
1210
1121
|
}
|
|
1211
1122
|
//#endregion
|
|
1212
|
-
export { prepareSignalSocketPath as a,
|
|
1123
|
+
export { prepareSignalSocketPath as a, containerRpcRequest as c, streamSignalEvents as i, streamContainerEvents as l, signalCheck as n, isSignalQuoteMetadataRejection as o, signalRpcRequest as r, containerCheck as s, SignalSseRejectionError as t };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { c as containerRpcRequest, i as streamSignalEvents$1, l as streamContainerEvents, n as signalCheck$1, r as signalRpcRequest$1, s as containerCheck } from "./client-AXcDteBZ.mjs";
|
|
2
|
+
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
3
|
+
//#region extensions/signal/src/client-adapter.ts
|
|
4
|
+
const DEFAULT_TIMEOUT_MS = 1e4;
|
|
5
|
+
async function signalRpcRequest(method, params, opts) {
|
|
6
|
+
return opts.transportKind === "container" ? containerRpcRequest(method, params, opts) : signalRpcRequest$1(method, params, opts);
|
|
7
|
+
}
|
|
8
|
+
async function signalCheck(baseUrl, timeoutMs = DEFAULT_TIMEOUT_MS, options = {}) {
|
|
9
|
+
try {
|
|
10
|
+
return options.transportKind === "container" ? await containerCheck(baseUrl, timeoutMs, options.account) : await signalCheck$1(baseUrl, timeoutMs);
|
|
11
|
+
} catch (error) {
|
|
12
|
+
return {
|
|
13
|
+
ok: false,
|
|
14
|
+
status: null,
|
|
15
|
+
error: formatErrorMessage(error)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function streamSignalEvents(params) {
|
|
20
|
+
if (params.transportKind === "container") return streamContainerEvents({
|
|
21
|
+
...params,
|
|
22
|
+
onEvent: (event) => params.onEvent({
|
|
23
|
+
event: "receive",
|
|
24
|
+
data: JSON.stringify(event)
|
|
25
|
+
})
|
|
26
|
+
});
|
|
27
|
+
return streamSignalEvents$1(params);
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
export { signalRpcRequest as n, streamSignalEvents as r, signalCheck as t };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { o as resolveSignalAccountEntry, t as assertSignalSocketTransport } from "./transport-url-CAC0JcuI.mjs";
|
|
2
|
+
import { t as LEGACY_SIGNAL_TRANSPORT_FIELDS } from "./legacy-transport-QIpaMNST.mjs";
|
|
2
3
|
import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
|
|
3
4
|
import { isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
5
|
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-resolution";
|
|
@@ -52,18 +53,7 @@ const signalChannelConfigUiHints = {
|
|
|
52
53
|
};
|
|
53
54
|
//#endregion
|
|
54
55
|
//#region extensions/signal/src/config-schema.ts
|
|
55
|
-
const SIGNAL_RETIRED_TRANSPORT_KEYS = [
|
|
56
|
-
"apiMode",
|
|
57
|
-
"configPath",
|
|
58
|
-
"httpUrl",
|
|
59
|
-
"httpHost",
|
|
60
|
-
"httpPort",
|
|
61
|
-
"cliPath",
|
|
62
|
-
"autoStart",
|
|
63
|
-
"startupTimeoutMs",
|
|
64
|
-
"receiveMode",
|
|
65
|
-
"ignoreStories"
|
|
66
|
-
];
|
|
56
|
+
const SIGNAL_RETIRED_TRANSPORT_KEYS = ["apiMode", ...LEGACY_SIGNAL_TRANSPORT_FIELDS];
|
|
67
57
|
const SignalTransportUrlSchema = z.string().url().regex(/^[Hh][Tt][Tt][Pp][Ss]?:\/\/(?![^/?#]*@)/, "Expected http:// or https:// URL without embedded credentials");
|
|
68
58
|
function projectSignalConfigForUpdateValidation(value) {
|
|
69
59
|
if (process.env.OPENCLAW_UPDATE_IN_PROGRESS !== "1" || !isRecord(value)) return value;
|
|
@@ -206,4 +196,4 @@ const CanonicalSignalConfigSchema = SignalConfigSchemaBase.superRefine((value, c
|
|
|
206
196
|
const SignalConfigSchema = z.preprocess(projectSignalConfigForUpdateValidation, CanonicalSignalConfigSchema);
|
|
207
197
|
const SignalChannelConfigSchema = buildChannelConfigSchema(SignalConfigSchema, { uiHints: signalChannelConfigUiHints });
|
|
208
198
|
//#endregion
|
|
209
|
-
export {
|
|
199
|
+
export { SignalChannelConfigSchema as t };
|