@openclaw/crabline 0.1.17 → 0.1.19

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.
Files changed (33) hide show
  1. package/README.md +8 -0
  2. package/dist/src/openclaw/private-file.js +71 -24
  3. package/dist/src/openclaw/private-file.js.map +1 -1
  4. package/dist/src/platform/process-owned-lock.d.ts +5 -2
  5. package/dist/src/platform/process-owned-lock.js +20 -10
  6. package/dist/src/platform/process-owned-lock.js.map +1 -1
  7. package/dist/src/servers/discord.js +25 -35
  8. package/dist/src/servers/discord.js.map +1 -1
  9. package/dist/src/servers/http.d.ts +3 -0
  10. package/dist/src/servers/http.js +15 -0
  11. package/dist/src/servers/http.js.map +1 -1
  12. package/dist/src/servers/matrix.js +8 -8
  13. package/dist/src/servers/matrix.js.map +1 -1
  14. package/dist/src/servers/mattermost.js +7 -10
  15. package/dist/src/servers/mattermost.js.map +1 -1
  16. package/dist/src/servers/recorder.d.ts +16 -6
  17. package/dist/src/servers/recorder.js +52 -12
  18. package/dist/src/servers/recorder.js.map +1 -1
  19. package/dist/src/servers/signal.js +8 -8
  20. package/dist/src/servers/signal.js.map +1 -1
  21. package/dist/src/servers/slack.js +8 -8
  22. package/dist/src/servers/slack.js.map +1 -1
  23. package/dist/src/servers/telegram.d.ts +2 -2
  24. package/dist/src/servers/telegram.js +8 -8
  25. package/dist/src/servers/telegram.js.map +1 -1
  26. package/dist/src/servers/whatsapp-baileys-websocket.js +4 -3
  27. package/dist/src/servers/whatsapp-baileys-websocket.js.map +1 -1
  28. package/dist/src/servers/whatsapp.js +13 -18
  29. package/dist/src/servers/whatsapp.js.map +1 -1
  30. package/dist/src/servers/zalo.js +8 -7
  31. package/dist/src/servers/zalo.js.map +1 -1
  32. package/docs/channel-setup.md +14 -1
  33. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  export declare function isDeadLinuxProcessState(value: string): boolean;
3
- export declare function createProcessOwnedLockFileSystem(options?: {
3
+ type ProcessOwnedLockOptions = {
4
4
  beforeDirectoryRemoval?: (directoryPath: string) => void;
5
5
  machineIdentityReader?: () => string | null;
6
6
  onDirectoryOwned?: (directoryPath: string, identity: {
@@ -8,4 +8,7 @@ export declare function createProcessOwnedLockFileSystem(options?: {
8
8
  ino: bigint;
9
9
  }) => void;
10
10
  processIdentityReader?: (pid: number) => string | null;
11
- }): typeof fs;
11
+ };
12
+ export declare function initializeProcessOwnedLockIdentity(): void;
13
+ export declare function createProcessOwnedLockFileSystem(options?: ProcessOwnedLockOptions): typeof fs;
14
+ export {};
@@ -789,16 +789,7 @@ function isRecoverableUnknownOwner(candidate, status, stats) {
789
789
  Date.now() - candidate.publishedAtMs >= OWNERLESS_LOCK_RECOVERY_MS &&
790
790
  Date.now() - statMtimeMs(stats) >= OWNERLESS_LOCK_RECOVERY_MS);
791
791
  }
792
- export function createProcessOwnedLockFileSystem(options = {}) {
793
- if (process.platform !== "linux" &&
794
- process.platform !== "darwin" &&
795
- process.platform !== "win32") {
796
- return fs;
797
- }
798
- const token = randomUUID();
799
- const removeLockDirectorySync = (directoryPath, expectedIdentity, expectedMtimeMs, afterClaim) => {
800
- removeVerifiedLockDirectorySync(directoryPath, expectedIdentity, expectedMtimeMs, options.beforeDirectoryRemoval, afterClaim);
801
- };
792
+ function readCurrentLockOwner(options) {
802
793
  const identityReader = options.processIdentityReader ?? readProcessIdentity;
803
794
  let currentProcessIdentity;
804
795
  if (options.processIdentityReader) {
@@ -838,6 +829,25 @@ export function createProcessOwnedLockFileSystem(options = {}) {
838
829
  if (process.platform === "linux" && currentProcessNamespace === null) {
839
830
  throw new Error("Recorder lock process namespace is unavailable.");
840
831
  }
832
+ return { currentProcessIdentity, currentMachineIdentity, currentProcessNamespace };
833
+ }
834
+ export function initializeProcessOwnedLockIdentity() {
835
+ if (["linux", "darwin", "win32"].includes(process.platform)) {
836
+ readCurrentLockOwner({});
837
+ }
838
+ }
839
+ export function createProcessOwnedLockFileSystem(options = {}) {
840
+ if (process.platform !== "linux" &&
841
+ process.platform !== "darwin" &&
842
+ process.platform !== "win32") {
843
+ return fs;
844
+ }
845
+ const { currentProcessIdentity, currentMachineIdentity, currentProcessNamespace } = readCurrentLockOwner(options);
846
+ const identityReader = options.processIdentityReader ?? readProcessIdentity;
847
+ const token = randomUUID();
848
+ const removeLockDirectorySync = (directoryPath, expectedIdentity, expectedMtimeMs, afterClaim) => {
849
+ removeVerifiedLockDirectorySync(directoryPath, expectedIdentity, expectedMtimeMs, options.beforeDirectoryRemoval, afterClaim);
850
+ };
841
851
  const ownedDirectories = new Map();
842
852
  const interruptedPublicationIdentities = new Map();
843
853
  let cachedForeignIdentity;