agent-comms 9.0.11 → 9.0.13
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +12 -6
- package/dist/account-cli.d.ts.map +1 -1
- package/dist/account-cli.js +4 -1
- package/dist/account-cli.js.map +1 -1
- package/dist/bridges/user/web/dist/bundle.js +1 -1
- package/dist/bridges/user/web/dist/index.html +1 -7
- package/dist/bridges/user/web/dist/mesh-worker.js +4 -4
- package/dist/bridges/user/web/dist/sw.js +1 -1
- package/dist/bridges/user/web/hosted-dashboard.d.ts +10 -0
- package/dist/bridges/user/web/hosted-dashboard.d.ts.map +1 -0
- package/dist/bridges/user/web/hosted-dashboard.js +10 -0
- package/dist/bridges/user/web/hosted-dashboard.js.map +1 -0
- package/dist/bridges/user/web/web-access.d.ts +0 -2
- package/dist/bridges/user/web/web-access.d.ts.map +1 -1
- package/dist/bridges/user/web/web-access.js +1 -2
- package/dist/bridges/user/web/web-access.js.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +9 -12
- package/dist/cli-main.js.map +1 -1
- package/dist/core/account-bundle.d.ts +1 -1
- package/dist/core/account-bundle.d.ts.map +1 -1
- package/dist/core/account-bundle.js +26 -19
- package/dist/core/account-bundle.js.map +1 -1
- package/dist/core/account-join.d.ts.map +1 -1
- package/dist/core/account-join.js +5 -2
- package/dist/core/account-join.js.map +1 -1
- package/dist/core/account-ledger-crypto.d.ts.map +1 -1
- package/dist/core/account-ledger-crypto.js +4 -1
- package/dist/core/account-ledger-crypto.js.map +1 -1
- package/dist/core/account-ledger-store.d.ts +3 -1
- package/dist/core/account-ledger-store.d.ts.map +1 -1
- package/dist/core/account-ledger-store.js +6 -3
- package/dist/core/account-ledger-store.js.map +1 -1
- package/dist/core/account-ledger.d.ts +51 -4
- package/dist/core/account-ledger.d.ts.map +1 -1
- package/dist/core/account-ledger.js +102 -15
- package/dist/core/account-ledger.js.map +1 -1
- package/dist/core/bridge-mesh.d.ts.map +1 -1
- package/dist/core/bridge-mesh.js +3 -0
- package/dist/core/bridge-mesh.js.map +1 -1
- package/dist/core/bridge.d.ts.map +1 -1
- package/dist/core/bridge.js +16 -4
- package/dist/core/bridge.js.map +1 -1
- package/dist/core/capability-ask.d.ts.map +1 -1
- package/dist/core/capability-ask.js +10 -2
- package/dist/core/capability-ask.js.map +1 -1
- package/dist/core/connection-code-tool.d.ts +1 -1
- package/dist/core/connection-code-tool.js +2 -2
- package/dist/core/connection-code-tool.js.map +1 -1
- package/dist/core/connection-code.d.ts +5 -5
- package/dist/core/connection-code.d.ts.map +1 -1
- package/dist/core/connection-code.js +22 -6
- package/dist/core/connection-code.js.map +1 -1
- package/dist/core/device-membership.d.ts +8 -3
- package/dist/core/device-membership.d.ts.map +1 -1
- package/dist/core/device-membership.js +4 -4
- package/dist/core/device-membership.js.map +1 -1
- package/dist/core/dm-grant-actions.d.ts.map +1 -1
- package/dist/core/dm-grant-actions.js +7 -1
- package/dist/core/dm-grant-actions.js.map +1 -1
- package/dist/core/error-reporting.d.ts.map +1 -1
- package/dist/core/error-reporting.js +5 -0
- package/dist/core/error-reporting.js.map +1 -1
- package/dist/core/gateway-trust.d.ts +1 -1
- package/dist/core/gateway-trust.d.ts.map +1 -1
- package/dist/core/gateway-trust.js +4 -4
- package/dist/core/gateway-trust.js.map +1 -1
- package/dist/core/group-proofs.d.ts.map +1 -1
- package/dist/core/group-proofs.js +2 -2
- package/dist/core/group-proofs.js.map +1 -1
- package/dist/core/identity-store.d.ts +13 -9
- package/dist/core/identity-store.d.ts.map +1 -1
- package/dist/core/identity-store.js +122 -147
- package/dist/core/identity-store.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/iso-timestamp.d.ts +10 -0
- package/dist/core/iso-timestamp.d.ts.map +1 -0
- package/dist/core/iso-timestamp.js +19 -0
- package/dist/core/iso-timestamp.js.map +1 -0
- package/dist/core/issuer-identity-file.d.ts +15 -0
- package/dist/core/issuer-identity-file.d.ts.map +1 -1
- package/dist/core/issuer-identity-file.js +69 -20
- package/dist/core/issuer-identity-file.js.map +1 -1
- package/dist/core/machine-identity.d.ts +1 -1
- package/dist/core/machine-identity.d.ts.map +1 -1
- package/dist/core/machine-identity.js +14 -11
- package/dist/core/machine-identity.js.map +1 -1
- package/dist/core/mesh-store.d.ts +2 -2
- package/dist/core/mesh-store.d.ts.map +1 -1
- package/dist/core/mesh-store.js.map +1 -1
- package/dist/core/peer-lifecycle.d.ts.map +1 -1
- package/dist/core/peer-lifecycle.js +8 -2
- package/dist/core/peer-lifecycle.js.map +1 -1
- package/dist/core/pid-lock-file.d.ts +27 -4
- package/dist/core/pid-lock-file.d.ts.map +1 -1
- package/dist/core/pid-lock-file.js +120 -11
- package/dist/core/pid-lock-file.js.map +1 -1
- package/dist/core/process-start.d.ts +10 -0
- package/dist/core/process-start.d.ts.map +1 -0
- package/dist/core/process-start.js +43 -0
- package/dist/core/process-start.js.map +1 -0
- package/dist/core/room-lifecycle.d.ts +3 -2
- package/dist/core/room-lifecycle.d.ts.map +1 -1
- package/dist/core/room-lifecycle.js +9 -8
- package/dist/core/room-lifecycle.js.map +1 -1
- package/dist/core/room-protocol.d.ts.map +1 -1
- package/dist/core/room-protocol.js +25 -3
- package/dist/core/room-protocol.js.map +1 -1
- package/dist/core/stale-agent-checker.d.ts.map +1 -1
- package/dist/core/stale-agent-checker.js +3 -1
- package/dist/core/stale-agent-checker.js.map +1 -1
- package/dist/core/store.d.ts +3 -0
- package/dist/core/store.d.ts.map +1 -1
- package/dist/core/store.js +42 -20
- package/dist/core/store.js.map +1 -1
- package/dist/core/tool.d.ts +5 -1
- package/dist/core/tool.d.ts.map +1 -1
- package/dist/core/tool.js +7 -1
- package/dist/core/tool.js.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +8 -3
- package/dist/core/types.js.map +1 -1
- package/dist/core/user-identity.d.ts +5 -5
- package/dist/core/user-identity.d.ts.map +1 -1
- package/dist/core/user-identity.js +59 -45
- package/dist/core/user-identity.js.map +1 -1
- package/package.json +1 -1
- package/src/account-cli.ts +4 -1
- package/src/bridges/user/web/dist/bundle.js +1 -1
- package/src/bridges/user/web/dist/index.html +1 -7
- package/src/bridges/user/web/dist/mesh-worker.js +4 -4
- package/src/bridges/user/web/dist/sw.js +1 -1
- package/src/bridges/user/web/hosted-dashboard.ts +11 -0
- package/src/bridges/user/web/web-access.ts +1 -3
- package/src/cli-main.ts +10 -12
- package/src/core/account-bundle.ts +36 -25
- package/src/core/account-join.ts +5 -2
- package/src/core/account-ledger-crypto.ts +4 -1
- package/src/core/account-ledger-store.ts +11 -3
- package/src/core/account-ledger.ts +142 -20
- package/src/core/bridge-mesh.ts +4 -0
- package/src/core/bridge.ts +24 -4
- package/src/core/capability-ask.ts +16 -1
- package/src/core/connection-code-tool.ts +2 -2
- package/src/core/connection-code.ts +34 -8
- package/src/core/device-membership.ts +12 -8
- package/src/core/dm-grant-actions.ts +7 -1
- package/src/core/error-reporting.ts +5 -0
- package/src/core/gateway-trust.ts +4 -4
- package/src/core/group-proofs.ts +5 -2
- package/src/core/identity-store.ts +182 -191
- package/src/core/index.ts +1 -0
- package/src/core/iso-timestamp.ts +21 -0
- package/src/core/issuer-identity-file.ts +87 -23
- package/src/core/machine-identity.ts +15 -12
- package/src/core/mesh-store.ts +2 -1
- package/src/core/peer-lifecycle.ts +9 -4
- package/src/core/pid-lock-file.ts +139 -11
- package/src/core/process-start.ts +45 -0
- package/src/core/room-lifecycle.ts +12 -9
- package/src/core/room-protocol.ts +23 -3
- package/src/core/stale-agent-checker.ts +3 -1
- package/src/core/store.ts +48 -23
- package/src/core/tool.ts +14 -1
- package/src/core/types.ts +9 -3
- package/src/core/user-identity.ts +65 -51
|
@@ -1,21 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A lock file holding the PID of the process that claimed it: the exclusivity guard for a bridge's identity slot (identity-store.ts) and for appends to the machine's account ledger (ledger-lock.ts). A lock whose recorded process has died is stale and may be taken over, so a holder that crashed never wedges the lock.
|
|
3
3
|
*
|
|
4
|
-
* Every claim writes the PID
|
|
4
|
+
* Every claim writes the PID, a random nonce, the host name and the process's start marker, one per line. The nonce keeps two claims from ever leaving identical content even when a PID is reused. The host and the start marker are what a later claimant checks before judging the holder dead: a lock is taken over only when its holder can be shown dead, so a holder on another host (the directory is shared) and a holder whose PID still names the process that recorded it are left alone, and a PID that now names a process that started at another time is a holder that died. A lock written without them (an older build) is judged by its PID on this host alone. Two hosts that report the same host name are not told apart. Removing a stale lock is the one step that could delete a newer, live claim by mistake (the stale file can be released and re-claimed between reading it and removing it), so it happens only under a second, takeover lock file, and only when the lock still holds exactly the content that was read and judged stale. A live holder releasing its own lock never needs the takeover lock: only its own claim can be at that name while it holds it.
|
|
5
5
|
*/
|
|
6
6
|
import { randomBytes } from "node:crypto";
|
|
7
7
|
import * as fs from "node:fs";
|
|
8
|
+
import * as os from "node:os";
|
|
9
|
+
import { processStartMarker } from "./process-start.js";
|
|
10
|
+
import { CommsError } from "./store.js";
|
|
8
11
|
/** Random bytes in each claim's content, enough that two claims never collide. */
|
|
9
12
|
const CLAIM_NONCE_BYTES = 16;
|
|
13
|
+
/** Whether a process with this pid exists on this host. A process this one is not allowed to signal exists, so it counts as alive. */
|
|
10
14
|
export function isPidAlive(pid) {
|
|
11
15
|
try {
|
|
12
16
|
process.kill(pid, 0);
|
|
13
17
|
return true;
|
|
14
18
|
}
|
|
15
|
-
catch {
|
|
16
|
-
return
|
|
19
|
+
catch (err) {
|
|
20
|
+
return isErrorCode(err, "EPERM");
|
|
17
21
|
}
|
|
18
22
|
}
|
|
23
|
+
/** The host name every claim records, read once. */
|
|
24
|
+
const OWN_HOST = os.hostname();
|
|
25
|
+
let ownStartMarker;
|
|
26
|
+
function ownMarker() {
|
|
27
|
+
ownStartMarker ??= { value: processStartMarker(process.pid) };
|
|
28
|
+
return ownStartMarker.value;
|
|
29
|
+
}
|
|
30
|
+
function holderOf(content) {
|
|
31
|
+
const [, , host, start] = content.split("\n");
|
|
32
|
+
return {
|
|
33
|
+
pid: pidOf(content),
|
|
34
|
+
host: host === undefined || host === "" ? undefined : host,
|
|
35
|
+
start: start === undefined || start === "" ? undefined : start,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/** Whether the holder a lock records cannot be shown dead: it runs on another host, or it runs here and its pid names a live process that started when the claim recorded (or the claim recorded no start). A lock with no readable pid has no holder. */
|
|
39
|
+
function holderMayBeAlive(holder) {
|
|
40
|
+
if (holder.pid === undefined)
|
|
41
|
+
return false;
|
|
42
|
+
if (holder.host !== undefined && holder.host !== OWN_HOST)
|
|
43
|
+
return true;
|
|
44
|
+
if (!isPidAlive(holder.pid))
|
|
45
|
+
return false;
|
|
46
|
+
if (holder.start === undefined)
|
|
47
|
+
return true;
|
|
48
|
+
const current = processStartMarker(holder.pid);
|
|
49
|
+
return current === undefined || current === holder.start;
|
|
50
|
+
}
|
|
51
|
+
/** The pid recorded by the lock at lockFile when its holder cannot be shown dead (see holderMayBeAlive), including this process; undefined when there is no lock or its holder is shown dead. */
|
|
52
|
+
export function liveLockHolder(lockFile) {
|
|
53
|
+
const content = readLockContent(lockFile);
|
|
54
|
+
if (content === undefined)
|
|
55
|
+
return undefined;
|
|
56
|
+
const holder = holderOf(content);
|
|
57
|
+
return holderMayBeAlive(holder) ? holder.pid : undefined;
|
|
58
|
+
}
|
|
19
59
|
function readLockContent(lockFile) {
|
|
20
60
|
try {
|
|
21
61
|
return fs.readFileSync(lockFile, "utf-8");
|
|
@@ -30,8 +70,7 @@ function pidOf(content) {
|
|
|
30
70
|
const pid = Number.parseInt(content.trim(), 10);
|
|
31
71
|
return Number.isInteger(pid) ? pid : undefined;
|
|
32
72
|
}
|
|
33
|
-
|
|
34
|
-
export function readLockPid(lockFile) {
|
|
73
|
+
function readLockPid(lockFile) {
|
|
35
74
|
const content = readLockContent(lockFile);
|
|
36
75
|
return content === undefined ? undefined : pidOf(content);
|
|
37
76
|
}
|
|
@@ -45,7 +84,7 @@ function isErrorCode(err, code) {
|
|
|
45
84
|
*/
|
|
46
85
|
function claimExclusive(file) {
|
|
47
86
|
const tmpFile = `${file}.${String(process.pid)}.tmp`;
|
|
48
|
-
fs.writeFileSync(tmpFile, `${String(process.pid)
|
|
87
|
+
fs.writeFileSync(tmpFile, `${[String(process.pid), randomBytes(CLAIM_NONCE_BYTES).toString("hex"), OWN_HOST, ownMarker() ?? ""].join("\n")}\n`, "utf-8");
|
|
49
88
|
try {
|
|
50
89
|
fs.linkSync(tmpFile, file);
|
|
51
90
|
return true;
|
|
@@ -59,10 +98,12 @@ function claimExclusive(file) {
|
|
|
59
98
|
fs.rmSync(tmpFile, { force: true });
|
|
60
99
|
}
|
|
61
100
|
}
|
|
62
|
-
/** Whether content names a
|
|
101
|
+
/** Whether content names a holder that can be shown to no longer be holding the lock: one that has died (see holderMayBeAlive), this process itself on this host (which claims a lock only after releasing it, so a lock naming it is left over from before), or no readable PID at all. */
|
|
63
102
|
function isStale(content) {
|
|
64
|
-
const
|
|
65
|
-
|
|
103
|
+
const holder = holderOf(content);
|
|
104
|
+
const isThisProcess = holder.pid === process.pid &&
|
|
105
|
+
(holder.host === undefined || holder.host === OWN_HOST);
|
|
106
|
+
return isThisProcess || !holderMayBeAlive(holder);
|
|
66
107
|
}
|
|
67
108
|
/** Removes `file` if it still holds exactly `content`, the content a caller read and judged stale. Any newer claim has different content (each carries its own nonce), so it is left alone. */
|
|
68
109
|
function removeIfUnchanged(file, content) {
|
|
@@ -106,9 +147,77 @@ export function tryAcquireLock(lockFile) {
|
|
|
106
147
|
return { acquired: true };
|
|
107
148
|
return { acquired: false, heldBy: readLockPid(lockFile) };
|
|
108
149
|
}
|
|
109
|
-
/**
|
|
150
|
+
/** Total time a writer waits for another process's write to the same file to finish. A write is one small file read and one atomic rename, so this is far above its real cost, and bounded so a holder that never releases cannot wedge every other writer. */
|
|
151
|
+
export const WRITE_LOCK_WAIT_MS = 5000;
|
|
152
|
+
/** Poll interval while waiting for a write lock. */
|
|
153
|
+
const WRITE_LOCK_POLL_MS = 10;
|
|
154
|
+
/** One Int32 element's worth of bytes: all Atomics.wait needs to block on. */
|
|
155
|
+
const INT32_BYTE_LENGTH = 4;
|
|
156
|
+
/** The `code` of the error thrown when a write lock stays held beyond the wait budget. */
|
|
157
|
+
export const WRITE_LOCK_TIMEOUT = "WRITE_LOCK_TIMEOUT";
|
|
158
|
+
/** Thrown when the write lock of a file stays held by a live process beyond WRITE_LOCK_WAIT_MS. Nothing was written. */
|
|
159
|
+
export class WriteLockTimeoutError extends CommsError {
|
|
160
|
+
file;
|
|
161
|
+
constructor(file) {
|
|
162
|
+
super(`Timed out waiting for another process to finish writing ${file}; nothing was written. If no other agent-comms process is running, remove ${writeLockFor(file)}.`, WRITE_LOCK_TIMEOUT);
|
|
163
|
+
this.file = file;
|
|
164
|
+
this.name = "WriteLockTimeoutError";
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/** Blocks this thread for `ms` milliseconds. Only for callers that are themselves synchronous. */
|
|
168
|
+
export function sleepSync(ms) {
|
|
169
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(INT32_BYTE_LENGTH)), 0, 0, ms);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* The lock file serialising writes to `file`. Its name ends in `.write-lock`, which no lock file this package names for a bridge slot (`.lock`) or any other file ends in, so it cannot equal another file's name whatever the slot's working directory is called.
|
|
173
|
+
*/
|
|
174
|
+
export function writeLockFor(file) {
|
|
175
|
+
return `${file}.write-lock`;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Runs `action` holding the write lock of `file`, so the read-modify-write it performs cannot interleave with another process's. The lock is not reentrant: `action` must not take the same lock again (this process would count as having left it stale). A lock whose holder process has died is taken over (see tryAcquireLock). Throws WriteLockTimeoutError when the lock stays held by a live process beyond WRITE_LOCK_WAIT_MS. Blocks this thread while it waits, so a caller that is asynchronous uses withWriteLockAsync.
|
|
179
|
+
*/
|
|
180
|
+
export function withWriteLock(file, action) {
|
|
181
|
+
const lockFile = writeLockFor(file);
|
|
182
|
+
const deadline = Date.now() + WRITE_LOCK_WAIT_MS;
|
|
183
|
+
while (!tryAcquireLock(lockFile).acquired) {
|
|
184
|
+
if (Date.now() >= deadline)
|
|
185
|
+
throw new WriteLockTimeoutError(file);
|
|
186
|
+
sleepSync(WRITE_LOCK_POLL_MS);
|
|
187
|
+
}
|
|
188
|
+
try {
|
|
189
|
+
return action();
|
|
190
|
+
}
|
|
191
|
+
finally {
|
|
192
|
+
releaseLockFile(lockFile);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** withWriteLock for an asynchronous caller: waits on timers, so the event loop keeps running while another process holds the lock. `action` is synchronous, so the lock is never held across an await. */
|
|
196
|
+
export async function withWriteLockAsync(file, action) {
|
|
197
|
+
const lockFile = writeLockFor(file);
|
|
198
|
+
const deadline = Date.now() + WRITE_LOCK_WAIT_MS;
|
|
199
|
+
while (!tryAcquireLock(lockFile).acquired) {
|
|
200
|
+
if (Date.now() >= deadline)
|
|
201
|
+
throw new WriteLockTimeoutError(file);
|
|
202
|
+
await new Promise((resolve) => {
|
|
203
|
+
setTimeout(resolve, WRITE_LOCK_POLL_MS);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
try {
|
|
207
|
+
return action();
|
|
208
|
+
}
|
|
209
|
+
finally {
|
|
210
|
+
releaseLockFile(lockFile);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/** Removes lockFile if this process holds it; a lock another process has since taken over, on this host or another, is left alone. The release half of tryAcquireLock. */
|
|
110
214
|
export function releaseLockFile(lockFile) {
|
|
111
|
-
|
|
215
|
+
const content = readLockContent(lockFile);
|
|
216
|
+
if (content === undefined)
|
|
217
|
+
return;
|
|
218
|
+
const holder = holderOf(content);
|
|
219
|
+
if (holder.pid === process.pid &&
|
|
220
|
+
(holder.host === undefined || holder.host === OWN_HOST)) {
|
|
112
221
|
fs.rmSync(lockFile, { force: true });
|
|
113
222
|
}
|
|
114
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pid-lock-file.js","sourceRoot":"","sources":["../../src/core/pid-lock-file.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"pid-lock-file.js","sourceRoot":"","sources":["../../src/core/pid-lock-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A marker for when a process started, so a lock that records it tells its holder from an unrelated process that was later given the same pid.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* An opaque string that is the same for as long as the process lives and differs from the marker of any process that started at another time, or undefined when the process does not exist or this host offers no way to read it. Two markers are only compared with each other for equality.
|
|
6
|
+
*
|
|
7
|
+
* Linux reads the kernel's own start time (clock ticks since boot, so it holds across a clock change); elsewhere the process table's start time is read through `ps`, which has whole-second resolution, so a pid reused within the same second as its predecessor is not told apart.
|
|
8
|
+
*/
|
|
9
|
+
export declare function processStartMarker(pid: number): string | undefined;
|
|
10
|
+
//# sourceMappingURL=process-start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-start.d.ts","sourceRoot":"","sources":["../../src/core/process-start.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAElE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A marker for when a process started, so a lock that records it tells its holder from an unrelated process that was later given the same pid.
|
|
3
|
+
*/
|
|
4
|
+
import { execFileSync } from "node:child_process";
|
|
5
|
+
import * as fs from "node:fs";
|
|
6
|
+
/** Zero-based index of the start time among the fields of /proc/<pid>/stat that follow the parenthesised command name (field 22 of the file, field 3 being the first after the name). */
|
|
7
|
+
const PROC_STAT_START_TIME_INDEX = 19;
|
|
8
|
+
/** How long the process table listing may take; it reads one entry and returns at once on a healthy host. */
|
|
9
|
+
const PS_TIMEOUT_MS = 2000;
|
|
10
|
+
/**
|
|
11
|
+
* An opaque string that is the same for as long as the process lives and differs from the marker of any process that started at another time, or undefined when the process does not exist or this host offers no way to read it. Two markers are only compared with each other for equality.
|
|
12
|
+
*
|
|
13
|
+
* Linux reads the kernel's own start time (clock ticks since boot, so it holds across a clock change); elsewhere the process table's start time is read through `ps`, which has whole-second resolution, so a pid reused within the same second as its predecessor is not told apart.
|
|
14
|
+
*/
|
|
15
|
+
export function processStartMarker(pid) {
|
|
16
|
+
return process.platform === "linux" ? procStartTime(pid) : psStartTime(pid);
|
|
17
|
+
}
|
|
18
|
+
function procStartTime(pid) {
|
|
19
|
+
try {
|
|
20
|
+
const stat = fs.readFileSync(`/proc/${String(pid)}/stat`, "utf-8");
|
|
21
|
+
// The command name is parenthesised and may itself hold spaces and parentheses, so the fields are counted from the last closing one.
|
|
22
|
+
const fields = stat.slice(stat.lastIndexOf(")") + 2).split(" ");
|
|
23
|
+
return fields[PROC_STAT_START_TIME_INDEX];
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function psStartTime(pid) {
|
|
30
|
+
try {
|
|
31
|
+
const out = execFileSync("ps", ["-o", "lstart=", "-p", String(pid)], {
|
|
32
|
+
encoding: "utf-8",
|
|
33
|
+
env: { ...process.env, LC_ALL: "C" },
|
|
34
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
35
|
+
timeout: PS_TIMEOUT_MS,
|
|
36
|
+
}).trim();
|
|
37
|
+
return out === "" ? undefined : out.replace(/\s+/g, " ");
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=process-start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-start.js","sourceRoot":"","sources":["../../src/core/process-start.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,yLAAyL;AACzL,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,6GAA6G;AAC7G,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnE,qIAAqI;QACrI,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YACnE,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;YACpC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* RoomLifecycle — room CRUD and the requester's own outbound half of the wire protocol: create/get/list, join/leave (local CRDT mutation for an already-known room, or a real wire-level room.join/room.leave round trip via joinRemoteRoom/leaveRemoteRoom when this store's own identity isn't yet admitted), invite/decline, membership-grant revocation, kick, and destroy. Split out of mesh-store.ts to reduce it under the repo's max-lines cap.
|
|
3
3
|
*/
|
|
4
|
+
import type { LedgerGaps } from "./account-ledger.js";
|
|
4
5
|
import type { MeshStoreIdentity } from "./mesh-store-shared.js";
|
|
5
6
|
import type { DeliveryEngine } from "./delivery-engine.js";
|
|
6
7
|
import type { MeshTransport } from "./transport.js";
|
|
@@ -98,8 +99,8 @@ export declare class RoomLifecycle {
|
|
|
98
99
|
*/
|
|
99
100
|
admitAgentForDm(bearerId: string, delegationsRemaining?: number): Promise<CapabilityToken>;
|
|
100
101
|
/**
|
|
101
|
-
* Revokes every dm:send grant for bearerId that the account's replicated ledger holds as outstanding, whichever machine of the account minted it: mints a revocation-entry for each token-id, records it in this store's own RevocationView immediately, announces it to every connected peer, and appends it to the ledger so every machine of the account sees it revoked and a later re-admission starts from nothing outstanding. The same revocation shape revokeMemberGrant gives room:member grants, applied to the user principal's own dm:send grants. Does nothing when the ledger holds no outstanding grant for bearerId.
|
|
102
|
+
* Revokes every dm:send grant for bearerId that the account's replicated ledger holds as outstanding, whichever machine of the account minted it: mints a revocation-entry for each token-id, records it in this store's own RevocationView immediately, announces it to every connected peer, and appends it to the ledger so every machine of the account sees it revoked and a later re-admission starts from nothing outstanding. The same revocation shape revokeMemberGrant gives room:member grants, applied to the user principal's own dm:send grants. Does nothing when the ledger holds no outstanding grant for bearerId. A ledger entry that cannot be read does not stop the revocation (account-ledger.ts): every grant the readable entries record is still revoked, and one recorded only in an unreadable entry is not, which the result says (`unreadable` above zero means the revocation is incomplete).
|
|
102
103
|
*/
|
|
103
|
-
revokeAgentDmAccess(bearerId: string): Promise<
|
|
104
|
+
revokeAgentDmAccess(bearerId: string): Promise<LedgerGaps>;
|
|
104
105
|
}
|
|
105
106
|
//# sourceMappingURL=room-lifecycle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/room-lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"room-lifecycle.d.ts","sourceRoot":"","sources":["../../src/core/room-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ export class RoomLifecycle {
|
|
|
41
41
|
if (!verdict.ok) {
|
|
42
42
|
throw new Error(`MeshStore: failed to mint room owner grant for ${roomPath}: ${verdict.reason}`);
|
|
43
43
|
}
|
|
44
|
-
saveRoomToken(slot, roomPath, verdict.token);
|
|
44
|
+
await saveRoomToken(slot, roomPath, verdict.token);
|
|
45
45
|
}
|
|
46
46
|
async createRoom(opts) {
|
|
47
47
|
// slugRoomName sanitises an arbitrary caller-supplied name (e.g. from a live create_room tool call, not just an internal cwd basename) into the room-path grammar's [A-Za-z0-9_-]+ charset -- createRoom is the one choke point every room creation goes through, so this is the right place to do it rather than trusting every caller to have pre-slugged, the way the old bare-name id never required at all.
|
|
@@ -143,7 +143,7 @@ export class RoomLifecycle {
|
|
|
143
143
|
}
|
|
144
144
|
const { "granted-token": grantedToken, members: memberList } = parsedOutcome.data;
|
|
145
145
|
const { slot } = this.deps.requireIdentity();
|
|
146
|
-
saveRoomToken(slot, roomPath, grantedToken);
|
|
146
|
+
await saveRoomToken(slot, roomPath, grantedToken);
|
|
147
147
|
const members = memberList.map((member) => deviceIdToHex(member.device));
|
|
148
148
|
const roomState = parseRoomStateExtension(parsedOutcome.data["room-state"]);
|
|
149
149
|
const room = {
|
|
@@ -229,7 +229,7 @@ export class RoomLifecycle {
|
|
|
229
229
|
throw new CommsError(`DM access response from ${counterpart} was malformed`, "MALFORMED_RESPONSE");
|
|
230
230
|
}
|
|
231
231
|
const { slot } = this.deps.requireIdentity();
|
|
232
|
-
saveRoomToken(slot, dmPath, parsedOutcome.data["granted-token"]);
|
|
232
|
+
await saveRoomToken(slot, dmPath, parsedOutcome.data["granted-token"]);
|
|
233
233
|
}
|
|
234
234
|
/**
|
|
235
235
|
* Joins a room. For this store's own identity, "already known locally" is not the right gate for skipping real admission: the legacy full-state-sync replicates a room's metadata to every mesh-connected peer the moment it's created, well before that peer has ever been admitted, so a room already present in this.rooms says nothing about whether this store actually holds a valid room:member token for it. The real gate is that token's presence -- absent, this always goes through joinRemoteRoom's real wire-level admission regardless of what this.rooms already knows, so a peer that merely heard about a room never mistakes hearing about it for having joined it. Joining on behalf of a DIFFERENT agentId (this store's own convergence/admin bookkeeping, exercised directly by state-sync-convergence.test.ts) is untouched -- that's a pure local CRDT mutation with no admission concept at all.
|
|
@@ -357,7 +357,7 @@ export class RoomLifecycle {
|
|
|
357
357
|
if (outcome.result !== "ok") {
|
|
358
358
|
throw new CommsError(`Leaving ${roomPath} failed (${outcome.code})`, "LEAVE_FAILED");
|
|
359
359
|
}
|
|
360
|
-
deleteRoomToken(slot, roomPath);
|
|
360
|
+
await deleteRoomToken(slot, roomPath);
|
|
361
361
|
this.deps.rooms.delete(roomPath);
|
|
362
362
|
this.deps.messages.delete(roomPath);
|
|
363
363
|
}
|
|
@@ -392,7 +392,7 @@ export class RoomLifecycle {
|
|
|
392
392
|
if (!verdict.ok) {
|
|
393
393
|
throw new CommsError(`Failed to mint an invite grant for ${targetId}`, "MINT_FAILED");
|
|
394
394
|
}
|
|
395
|
-
saveIssuedRoomGrant(slot, roomId, targetId, tokenId);
|
|
395
|
+
await saveIssuedRoomGrant(slot, roomId, targetId, tokenId);
|
|
396
396
|
const inviter = this.deps.agents.get(inviterId);
|
|
397
397
|
const params = {
|
|
398
398
|
verb: "room.invite",
|
|
@@ -437,7 +437,7 @@ export class RoomLifecycle {
|
|
|
437
437
|
});
|
|
438
438
|
await revocation.record(entry, { identity });
|
|
439
439
|
await this.deps.requireTransport().broadcastRevocation([entry]);
|
|
440
|
-
deleteIssuedRoomGrant(slot, roomId, memberId);
|
|
440
|
+
await deleteIssuedRoomGrant(slot, roomId, memberId);
|
|
441
441
|
}
|
|
442
442
|
/**
|
|
443
443
|
* Kicks targetId from roomId. Beyond the legacy CRDT membership removal (retired in P3.8 along with every other non-message broadcastPatch caller), this revokes the member's own room:member grant for real: mints a revocation-entry for the token-id this identity recorded when it admitted them (admitRoomJoin's own saveIssuedRoomGrant), records it in this store's own RevocationView immediately (so this identity's own future verifications see the kick without waiting on its own gossip), and announces it to every connected peer so each one's independent verification of the target's token -- not just this room's owner -- also starts failing as "revoked" from here on. Silently skips the revocation step (kick still happens; only the token-side enforcement doesn't) when no issued-grant record exists for this member, e.g. a grant predating this bookkeeping.
|
|
@@ -562,11 +562,11 @@ export class RoomLifecycle {
|
|
|
562
562
|
return verdict.token;
|
|
563
563
|
}
|
|
564
564
|
/**
|
|
565
|
-
* Revokes every dm:send grant for bearerId that the account's replicated ledger holds as outstanding, whichever machine of the account minted it: mints a revocation-entry for each token-id, records it in this store's own RevocationView immediately, announces it to every connected peer, and appends it to the ledger so every machine of the account sees it revoked and a later re-admission starts from nothing outstanding. The same revocation shape revokeMemberGrant gives room:member grants, applied to the user principal's own dm:send grants. Does nothing when the ledger holds no outstanding grant for bearerId.
|
|
565
|
+
* Revokes every dm:send grant for bearerId that the account's replicated ledger holds as outstanding, whichever machine of the account minted it: mints a revocation-entry for each token-id, records it in this store's own RevocationView immediately, announces it to every connected peer, and appends it to the ledger so every machine of the account sees it revoked and a later re-admission starts from nothing outstanding. The same revocation shape revokeMemberGrant gives room:member grants, applied to the user principal's own dm:send grants. Does nothing when the ledger holds no outstanding grant for bearerId. A ledger entry that cannot be read does not stop the revocation (account-ledger.ts): every grant the readable entries record is still revoked, and one recorded only in an unreadable entry is not, which the result says (`unreadable` above zero means the revocation is incomplete).
|
|
566
566
|
*/
|
|
567
567
|
async revokeAgentDmAccess(bearerId) {
|
|
568
568
|
const { userIdentity, accountLedger, clock, revocation } = this.deps.requireIdentity();
|
|
569
|
-
const outstanding = await accountLedger.
|
|
569
|
+
const { grants: outstanding, unreadable } = await accountLedger.outstandingGrantsChecked("dm", bearerId);
|
|
570
570
|
for (const { tokenId } of outstanding) {
|
|
571
571
|
const entry = await mintRevocationEntry({
|
|
572
572
|
identity: userIdentity,
|
|
@@ -577,6 +577,7 @@ export class RoomLifecycle {
|
|
|
577
577
|
await this.deps.requireTransport().broadcastRevocation([entry]);
|
|
578
578
|
await accountLedger.recordRevocation("dm", bearerId, tokenId, entry);
|
|
579
579
|
}
|
|
580
|
+
return { unreadable };
|
|
580
581
|
}
|
|
581
582
|
}
|
|
582
583
|
//# sourceMappingURL=room-lifecycle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-lifecycle.js","sourceRoot":"","sources":["../../src/core/room-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"room-lifecycle.js","sourceRoot":"","sources":["../../src/core/room-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-protocol.d.ts","sourceRoot":"","sources":["../../src/core/room-protocol.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,KAAK,EACV,eAAe,EAEhB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"room-protocol.d.ts","sourceRoot":"","sources":["../../src/core/room-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { bytesToHex, deviceIdFromHex } from "wire-mesh-core/domain/device-id";
|
|
5
5
|
import { mintCapabilityToken } from "wire-mesh-core/domain/tokens";
|
|
6
6
|
import { roomInviteSchema, roomLeaveSchema, roomReadSchema, roomSendSchema, } from "wire-mesh-core/generated/protocol";
|
|
7
|
+
import { WriteLockTimeoutError } from "./pid-lock-file.js";
|
|
7
8
|
import { parseRoomPath } from "./room-path.js";
|
|
8
9
|
import { ROOM_MEMBER_CAPABILITY, ROOM_MEMBER_DELEGATION_POLICY, verifyRoomToken, } from "./room-token-verification.js";
|
|
9
10
|
import { resolveDelegationsRemaining } from "./delegation-policy.js";
|
|
@@ -89,7 +90,12 @@ export class RoomProtocol {
|
|
|
89
90
|
const replyTo = RoomProtocol.replyToFromRefs(params.refs);
|
|
90
91
|
const streamingBehavior = RoomProtocol.streamingBehaviorFromParams(params);
|
|
91
92
|
const id = bytesToHex(params["message-id"]);
|
|
92
|
-
const
|
|
93
|
+
const sentAt = new Date(params["sent-at"]);
|
|
94
|
+
// A number outside the range of dates is an invalid date, and formatting one throws.
|
|
95
|
+
if (Number.isNaN(sentAt.getTime())) {
|
|
96
|
+
return { result: "error", code: "malformed_params" };
|
|
97
|
+
}
|
|
98
|
+
const timestamp = sentAt.toISOString();
|
|
93
99
|
const peerId = this.deps.getPeerId();
|
|
94
100
|
const parsedPath = parseRoomPath(roomPath);
|
|
95
101
|
let event;
|
|
@@ -487,7 +493,15 @@ export class RoomProtocol {
|
|
|
487
493
|
if (!verdict.ok) {
|
|
488
494
|
return { result: "error", code: "mint_failed" };
|
|
489
495
|
}
|
|
490
|
-
|
|
496
|
+
try {
|
|
497
|
+
await saveIssuedRoomGrant(slot, roomPath, handle.id, tokenId);
|
|
498
|
+
}
|
|
499
|
+
catch (err) {
|
|
500
|
+
if (err instanceof WriteLockTimeoutError) {
|
|
501
|
+
return { result: "error", code: "storage_busy" };
|
|
502
|
+
}
|
|
503
|
+
throw err;
|
|
504
|
+
}
|
|
491
505
|
const room = this.deps.rooms.get(roomPath);
|
|
492
506
|
if (room !== undefined) {
|
|
493
507
|
this.deps.deliveryEngine.bump(room);
|
|
@@ -528,7 +542,15 @@ export class RoomProtocol {
|
|
|
528
542
|
if (!verdict.ok) {
|
|
529
543
|
return { result: "error", code: "unauthorized" };
|
|
530
544
|
}
|
|
531
|
-
|
|
545
|
+
try {
|
|
546
|
+
await saveRoomToken(slot, roomPath, token);
|
|
547
|
+
}
|
|
548
|
+
catch (err) {
|
|
549
|
+
if (err instanceof WriteLockTimeoutError) {
|
|
550
|
+
return { result: "error", code: "storage_busy" };
|
|
551
|
+
}
|
|
552
|
+
throw err;
|
|
553
|
+
}
|
|
532
554
|
const parsed = parseRoomPath(roomPath);
|
|
533
555
|
const inviterId = parsed.kind === "owner-named" ? parsed.owner : peerId;
|
|
534
556
|
const roomState = parseRoomStateExtension(parsedParams.data["room-state"]);
|