@hraness/ghostget 0.18.13 → 0.18.14

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/CHANGELOG.md +17 -0
  2. package/README.md +12 -7
  3. package/dist/apple-photos-client.js +1 -1
  4. package/dist/beeper-client.js +42 -6
  5. package/dist/{imessage-direct-install-2gm3kge7.js → imessage-direct-install-5nftwc6p.js} +1 -1
  6. package/dist/{index-maa9hb5z.js → index-g6na3p6k.js} +1 -1
  7. package/dist/{index-en5hycxp.js → index-kaav16fd.js} +4 -2
  8. package/dist/{index-2ymnp8xv.js → index-qcf2f6wm.js} +5 -1
  9. package/dist/{messaging-automation-j4274hvc.js → messaging-automation-58s1366z.js} +1 -1
  10. package/dist/messaging-automation-api.js +2 -2
  11. package/dist/{messaging-native-install-8w1j36ah.js → messaging-native-install-c90nv501.js} +1 -1
  12. package/dist/{whatsapp-automation-runtime-hgh1e9rm.js → whatsapp-automation-runtime-ke1dx91p.js} +1 -1
  13. package/docs/messaging-automation.md +14 -7
  14. package/package.json +8 -4
  15. package/skills/ghostget/references/install.md +5 -5
  16. package/src/assets/adapters/beeper/wrench-web-adapter.json +37 -1
  17. package/src/assets/adapters/beeper/wrench-web-adapter.v2.4.0.json +1500 -0
  18. package/src/beeper-client-types.ts +1 -1
  19. package/src/control/menubar-cli.ts +3 -1
  20. package/src/control/menubar-icon.ts +4 -0
  21. package/src/messaging-automation-descriptors.ts +9 -1
  22. package/src/messaging-automation-factory.ts +7 -5
  23. package/src/messaging-automation-server.ts +2 -2
  24. package/src/messaging-automation-types.ts +3 -2
  25. package/src/messaging-automation-validation.ts +5 -1
  26. package/src/plugins/beeper-linked-device/plugin.ts +3 -1
  27. package/src/provider-plugin-contract-identity.ts +11 -2
  28. package/src/providers/beeper-automation.ts +447 -0
  29. package/src/providers/beeper-local-runtime.ts +61 -21
  30. package/src/providers/beeper-local.ts +4 -4
  31. package/src/providers/beeper-omni.ts +9 -2
  32. package/src/providers/messaging-native-install.ts +2 -1
  33. package/src/version.ts +1 -1
@@ -978,7 +978,7 @@ export function materializeBeeperMessagingRead(
978
978
  "tombstones",
979
979
  "continuation",
980
980
  "completeness",
981
- ], [], "messaging.read output");
981
+ ], ["canonicalSelfUserId"], "messaging.read output");
982
982
  if (source.accountId !== parsed.accountId || source.conversationId !== parsed.conversationId) {
983
983
  drift("messaging.read output", "must bind input account and conversation");
984
984
  }
@@ -987,6 +987,13 @@ export function materializeBeeperMessagingRead(
987
987
  "messaging.read output.selfUserId",
988
988
  2_048,
989
989
  );
990
+ const canonicalSelfUserId = source.canonicalSelfUserId === undefined || source.canonicalSelfUserId === null
991
+ ? null
992
+ : beeperRawIdentifier(
993
+ source.canonicalSelfUserId,
994
+ "messaging.read output.canonicalSelfUserId",
995
+ 2_048,
996
+ );
990
997
  const requestCursor = parsed.beforeCursor ?? parsed.afterCursor;
991
998
  if (source.requestCursor !== requestCursor) {
992
999
  drift("messaging.read output.requestCursor", "must bind the requested cursor");
@@ -1025,7 +1032,7 @@ export function materializeBeeperMessagingRead(
1025
1032
  );
1026
1033
  if (
1027
1034
  isSender !== null
1028
- && isSender !== (senderId === selfUserId)
1035
+ && isSender !== (senderId === selfUserId || (canonicalSelfUserId !== null && senderId === canonicalSelfUserId))
1029
1036
  ) drift(
1030
1037
  "messaging.read output.messages",
1031
1038
  "must bind direction to the exact self user ID",
@@ -62,8 +62,9 @@ export async function ensureImsgNativeResources(installDirectory: string, enviro
62
62
 
63
63
  /** Owner setup only. Installing resources never pairs, opens Messages, changes
64
64
  * OS permissions, connects a provider, or grants messaging authority. */
65
- export async function installBundledMessagingRuntime(provider: "imessage" | "whatsapp", environment: Environment = process.env): Promise<{ version: string; sha256: string; alreadyPresent?: boolean }> {
65
+ export async function installBundledMessagingRuntime(provider: "imessage" | "whatsapp" | "beeper", environment: Environment = process.env): Promise<{ version: string; sha256: string; alreadyPresent?: boolean }> {
66
66
  if (process.platform !== "darwin" || process.arch !== "arm64") throw new Error("Bundled messaging runtimes require Apple silicon macOS");
67
+ if (provider === "beeper") throw new Error("Beeper has no bundled messaging runtime; the pinned local CLI and running Beeper Desktop are installed separately");
67
68
  if (provider !== "imessage" && provider !== "whatsapp") throw new Error("Unknown messaging runtime");
68
69
  const bytes = await readBundledMessagingAsset(provider), directory = await mkdtemp(join(await realpath(tmpdir()), "wrench-messaging-install-")); await chmod(directory, 0o700);
69
70
  const path = join(directory, "runtime"), file = await open(path, constants.O_CREAT | constants.O_EXCL | constants.O_WRONLY | constants.O_NOFOLLOW, 0o500);
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** Canonical immutable Ghostget package release identity. */
2
- export const GHOSTGET_VERSION = "0.18.13" as const;
2
+ export const GHOSTGET_VERSION = "0.18.14" as const;