@hraness/peopleblade 0.2.1 → 0.2.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/README.md +21 -17
- package/THIRD_PARTY_NOTICES.md +2 -2
- package/dist/cli.ts +19 -9
- package/dist/peopleblade.js +358 -339
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ Installation includes the pinned runtime dependencies Zod 4.4.3 and Effect 3.22.
|
|
|
15
15
|
## Install
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
bun add --global @hraness/peopleblade@0.2.
|
|
18
|
+
bun add --global @hraness/peopleblade@0.2.2
|
|
19
19
|
peopleblade --version
|
|
20
20
|
peopleblade init
|
|
21
21
|
peopleblade stats --json
|
|
@@ -37,33 +37,37 @@ authorized devices, `peopleblade cloud revoke DEVICE_ID` for a lost device, and
|
|
|
37
37
|
token. The signed-in dashboard provides the lost-device recovery path when no CLI
|
|
38
38
|
token remains available.
|
|
39
39
|
|
|
40
|
-
### Optional
|
|
40
|
+
### Optional Ghostget-backed sources
|
|
41
41
|
|
|
42
|
-
The package does not install
|
|
42
|
+
The package does not install Ghostget, browser automation, KB, native model runtimes,
|
|
43
43
|
or provider credentials. Beeper, Google, and WhatsApp live sync commands delegate
|
|
44
|
-
through a separately reviewed `
|
|
45
|
-
`
|
|
46
|
-
0.
|
|
47
|
-
or silently download
|
|
44
|
+
through a separately reviewed `ghostget` executable on `PATH` (or the absolute
|
|
45
|
+
`PEOPLEBLADE_GHOSTGET_EXECUTABLE` path). PeopleBlade bundles only the pinned Ghostget
|
|
46
|
+
0.17.1 client validators needed to fence requests and receipts; it does not bundle
|
|
47
|
+
or silently download Ghostget's execution runtime.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
`PEOPLEBLADE_WRENCH_EXECUTABLE` remains a compatibility alias for the explicit
|
|
50
|
+
path. When both variables are set, they must name the same executable. The
|
|
51
|
+
bridge still requires exact Ghostget 0.17.1 before invoking a provider operation.
|
|
52
|
+
|
|
53
|
+
PeopleBlade 0.2.2 contains the reviewed Ghostget-backed Beeper, Google, and WhatsApp
|
|
50
54
|
live sync commands. Running them requires the separately installed public
|
|
51
|
-
`@hraness/
|
|
55
|
+
`@hraness/ghostget` 0.17.1 package. Beeper support is bounded to account-aware
|
|
52
56
|
`contacts.list@3` reads, `contacts.search@1`, `messaging.search@2`, and the separate
|
|
53
57
|
body-free interaction exporter. `contacts.search@1` executes the official Beeper
|
|
54
|
-
CLI 0.6.2 executable pinned by
|
|
55
|
-
use
|
|
58
|
+
CLI 0.6.2 executable pinned by Ghostget; `contacts.list@3` and `messaging.search@2`
|
|
59
|
+
use Ghostget's bounded Desktop-loopback read paths. The exporter is macOS arm64 only
|
|
56
60
|
and reports lower-bound interaction counts from complete one-to-one conversations
|
|
57
61
|
only. See
|
|
58
62
|
[peopleblade.com/sources](https://peopleblade.com/sources) for the complete provider
|
|
59
63
|
guide. A database previously synced by PeopleBlade 0.1.1 through Wrench 0.16.7
|
|
60
64
|
must run `peopleblade beeper rebind --auth beeper-main --confirm --json` once after
|
|
61
|
-
installing
|
|
65
|
+
installing Ghostget 0.17.1. The command appends reviewed metadata for the same source
|
|
62
66
|
identity only after both complete account inventories match. Do not force-bind
|
|
63
|
-
|
|
64
|
-
Beeper interface directly and exposes none of
|
|
67
|
+
Ghostget unless its authenticated Desktop target changed. PeopleBlade calls no
|
|
68
|
+
Beeper interface directly and exposes none of Ghostget's Beeper send or action
|
|
65
69
|
operations. Archive imports, Apple Contacts, iMessage, notes, identity review,
|
|
66
|
-
backups, and optional PeopleBlade cloud commands do not require
|
|
70
|
+
backups, and optional PeopleBlade cloud commands do not require Ghostget.
|
|
67
71
|
|
|
68
72
|
## Browse and edit locally
|
|
69
73
|
|
|
@@ -118,9 +122,9 @@ message text. The optional cloud projection excludes source records, raw archive
|
|
|
118
122
|
local paths, provider credentials, note bodies and revisions, and message bodies. Ambiguous identity links
|
|
119
123
|
remain reviewable instead of being silently merged.
|
|
120
124
|
|
|
121
|
-
This npm artifact contains only the bundled local CLI, its pinned
|
|
125
|
+
This npm artifact contains only the bundled local CLI, its pinned Ghostget client
|
|
122
126
|
validators and executable bridge, SQLite migrations, and package documentation.
|
|
123
|
-
It includes the self-contained loopback workspace, but not the
|
|
127
|
+
It includes the self-contained loopback workspace, but not the Ghostget execution
|
|
124
128
|
runtime, hosted PeopleBlade web server, billing
|
|
125
129
|
implementation, operational tooling, tests, or private product documentation.
|
|
126
130
|
|
package/THIRD_PARTY_NOTICES.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Third-party notices
|
|
2
2
|
|
|
3
3
|
The PeopleBlade CLI bundle includes reviewed client-boundary code from
|
|
4
|
-
`@hraness/
|
|
5
|
-
`
|
|
4
|
+
`@hraness/ghostget` 0.17.1 (commit
|
|
5
|
+
`b74ae2ac594bcf07c3def71dc4bb2e5a98c826dd`) and message-bundle contract code
|
|
6
6
|
from `@hraness/message-like-me` 0.7.0. Those portions are provided under the
|
|
7
7
|
following license. The PeopleBlade CLI package has its own MIT grant in
|
|
8
8
|
`LICENSE`; this notice preserves the attribution for the bundled portions.
|
package/dist/cli.ts
CHANGED
|
@@ -3,10 +3,20 @@
|
|
|
3
3
|
import { accessSync, constants, realpathSync } from "node:fs";
|
|
4
4
|
import { isAbsolute, resolve } from "node:path";
|
|
5
5
|
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const reviewedGhostgetVersion = "0.17.1";
|
|
7
|
+
const canonicalConfigured = process.env.PEOPLEBLADE_GHOSTGET_EXECUTABLE;
|
|
8
|
+
const legacyConfigured = process.env.PEOPLEBLADE_WRENCH_EXECUTABLE;
|
|
9
|
+
if (
|
|
10
|
+
canonicalConfigured !== undefined
|
|
11
|
+
&& legacyConfigured !== undefined
|
|
12
|
+
&& canonicalConfigured !== legacyConfigured
|
|
13
|
+
) {
|
|
14
|
+
console.error("PEOPLEBLADE_GHOSTGET_EXECUTABLE and PEOPLEBLADE_WRENCH_EXECUTABLE must name the same executable when both are set.");
|
|
15
|
+
process.exit(127);
|
|
16
|
+
}
|
|
17
|
+
const configured = canonicalConfigured ?? legacyConfigured;
|
|
8
18
|
const executable = configured === undefined
|
|
9
|
-
? Bun.which("
|
|
19
|
+
? Bun.which("ghostget")
|
|
10
20
|
: isAbsolute(configured)
|
|
11
21
|
? resolve(configured)
|
|
12
22
|
: null;
|
|
@@ -14,8 +24,8 @@ const executable = configured === undefined
|
|
|
14
24
|
if (executable === null) {
|
|
15
25
|
console.error(
|
|
16
26
|
configured === undefined
|
|
17
|
-
? "PeopleBlade
|
|
18
|
-
: "
|
|
27
|
+
? "PeopleBlade Ghostget-backed sources require a separately reviewed `ghostget` executable on PATH."
|
|
28
|
+
: "PEOPLEBLADE_GHOSTGET_EXECUTABLE must be an absolute executable path.",
|
|
19
29
|
);
|
|
20
30
|
process.exit(127);
|
|
21
31
|
}
|
|
@@ -25,11 +35,11 @@ try {
|
|
|
25
35
|
accessSync(executable, constants.X_OK);
|
|
26
36
|
canonicalExecutable = realpathSync(executable);
|
|
27
37
|
} catch {
|
|
28
|
-
console.error("The configured PeopleBlade
|
|
38
|
+
console.error("The configured PeopleBlade Ghostget executable is unavailable or not executable.");
|
|
29
39
|
process.exit(127);
|
|
30
40
|
}
|
|
31
41
|
if (process.argv[1] !== undefined && canonicalExecutable === realpathSync(process.argv[1])) {
|
|
32
|
-
console.error("The PeopleBlade
|
|
42
|
+
console.error("The PeopleBlade Ghostget executable bridge cannot delegate to itself.");
|
|
33
43
|
process.exit(127);
|
|
34
44
|
}
|
|
35
45
|
|
|
@@ -54,11 +64,11 @@ if (
|
|
|
54
64
|
|| versionProbe.signalCode !== undefined
|
|
55
65
|
|| versionProbe.exitedDueToTimeout === true
|
|
56
66
|
|| versionProbe.exitedDueToMaxBuffer === true
|
|
57
|
-
|| versionProbe.stdout?.toString() !== `${
|
|
67
|
+
|| versionProbe.stdout?.toString() !== `${reviewedGhostgetVersion}\n`
|
|
58
68
|
|| versionProbe.stderr?.byteLength !== 0
|
|
59
69
|
) {
|
|
60
70
|
console.error(
|
|
61
|
-
`PeopleBlade
|
|
71
|
+
`PeopleBlade Ghostget-backed sources require the exact reviewed Ghostget ${reviewedGhostgetVersion} executable.`,
|
|
62
72
|
);
|
|
63
73
|
process.exit(126);
|
|
64
74
|
}
|