@cotal-ai/connector-core 0.56.0 → 0.57.0
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/dist/agent.d.ts +27 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +40 -8
- package/dist/agent.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/control.d.ts +13 -0
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +3 -3
- package/dist/control.js.map +1 -1
- package/dist/docs-bundle.generated.js +17 -17
- package/dist/docs-bundle.generated.js.map +1 -1
- package/dist/durable-source.d.ts +4 -0
- package/dist/durable-source.d.ts.map +1 -1
- package/dist/durable-source.js +13 -5
- package/dist/durable-source.js.map +1 -1
- package/dist/runtime.d.ts +32 -0
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +1 -1
- package/dist/runtime.js.map +1 -1
- package/dist/subject-frontier.d.ts +13 -0
- package/dist/subject-frontier.d.ts.map +1 -1
- package/dist/subject-frontier.js +73 -22
- package/dist/subject-frontier.js.map +1 -1
- package/dist/tool-specs.d.ts.map +1 -1
- package/dist/tool-specs.js +3 -2
- package/dist/tool-specs.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs-bundle.generated.js","sourceRoot":"","sources":["../src/docs-bundle.generated.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,SAAS,EAAE,QAAQ;IACnB,eAAe,EAAE,mEAAmE;IACpF,OAAO,EAAE;QACP;YACE,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,eAAe;YACxB,MAAM,EAAE,0BAA0B;YAClC,SAAS,EAAE,+FAA+F;YAC1G,MAAM,EAAE,k5IAAk5I;SAC35I;QACD;YACE,MAAM,EAAE,iBAAiB;YACzB,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,0BAA0B;YAClC,SAAS,EAAE,gHAAgH;YAC3H,MAAM,EAAE,uoXAAuoX;SAChpX;QACD;YACE,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,uBAAuB;YAC/B,SAAS,EAAE,wMAAwM;YACnN,MAAM,EAAE,s2jBAAs2jB;SAC/2jB;QACD;YACE,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,kBAAkB;YAC3B,MAAM,EAAE,mEAAmE;YAC3E,SAAS,EAAE,wMAAwM;YACnN,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"docs-bundle.generated.js","sourceRoot":"","sources":["../src/docs-bundle.generated.ts"],"names":[],"mappings":"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"}
|
package/dist/durable-source.d.ts
CHANGED
|
@@ -61,6 +61,10 @@ export interface DurableSource<T> {
|
|
|
61
61
|
*/
|
|
62
62
|
read(cursor: string | undefined): Promise<SourceRead<T>>;
|
|
63
63
|
}
|
|
64
|
+
/** The file no longer has the identity or consumed prefix recorded by its cursor. */
|
|
65
|
+
export declare class JsonlFileResetError extends Error {
|
|
66
|
+
constructor(message: string);
|
|
67
|
+
}
|
|
64
68
|
/**
|
|
65
69
|
* A durable source over an append-only JSONL file — the shape both the Claude session transcript
|
|
66
70
|
* and the Codex rollout log take.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-source.d.ts","sourceRoot":"","sources":["../src/durable-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6FAA6F;AAC7F,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1D;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAGvD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,IAAI,gBAAgB;gBAEA,IAAI,EAAE,MAAM;IAEzC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAQ1B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;mBACkB,MAAM;IAO3B,mGAAmG;mBAC9E,oBAAoB;IAgBzC;;;;;;;;;;;OAWG;IACG,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAOjD,4DAA4D;IACtD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAUpC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAwH/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAIxD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,EAAE,MAAM;IAKhC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAGzD"}
|
|
1
|
+
{"version":3,"file":"durable-source.d.ts","sourceRoot":"","sources":["../src/durable-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,KAAK,EAAE,CAAC,CAAC;IACT,2FAA2F;IAC3F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6FAA6F;AAC7F,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3B;;;;;;;OAOG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1D;AAED,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,eAAe,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAGvD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,QAAQ,CAAC,IAAI,gBAAgB;gBAEA,IAAI,EAAE,MAAM;IAEzC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAQ1B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;mBACkB,MAAM;IAO3B,mGAAmG;mBAC9E,oBAAoB;IAgBzC;;;;;;;;;;;OAWG;IACG,iBAAiB,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAOjD,4DAA4D;IACtD,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAUpC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAwH/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAIxD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAGH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EACvB,KAAK,EAAE,MAAM;IAKhC,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;CAGzD"}
|
package/dist/durable-source.js
CHANGED
|
@@ -18,6 +18,13 @@
|
|
|
18
18
|
import { createHash } from "node:crypto";
|
|
19
19
|
import { constants } from "node:fs";
|
|
20
20
|
import { open } from "node:fs/promises";
|
|
21
|
+
/** The file no longer has the identity or consumed prefix recorded by its cursor. */
|
|
22
|
+
export class JsonlFileResetError extends Error {
|
|
23
|
+
constructor(message) {
|
|
24
|
+
super(message);
|
|
25
|
+
this.name = "JsonlFileResetError";
|
|
26
|
+
}
|
|
27
|
+
}
|
|
21
28
|
/**
|
|
22
29
|
* A durable source over an append-only JSONL file — the shape both the Claude session transcript
|
|
23
30
|
* and the Codex rollout log take.
|
|
@@ -149,6 +156,8 @@ export class JsonlFileSource {
|
|
|
149
156
|
// adding this stops being a fix and becomes a compatibility argument with whoever is already
|
|
150
157
|
// relying on the old behaviour. The same rule the maintenance reader already applies to its
|
|
151
158
|
// resume document (`O_RDONLY | O_NOFOLLOW`), for the same reason.
|
|
159
|
+
// Invalid persisted state must refuse even when the file is temporarily absent.
|
|
160
|
+
const from = cursor === undefined ? undefined : JsonlFileSource.parseCursor(cursor);
|
|
152
161
|
const fh = await open(this.path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
|
|
153
162
|
try {
|
|
154
163
|
const st = await fh.stat();
|
|
@@ -160,25 +169,24 @@ export class JsonlFileSource {
|
|
|
160
169
|
// still appending: adopt at byte 1 of `{"i":1`, let the writer finish `2}\n`, and the source
|
|
161
170
|
// emits `2}` while the real record is `{"i":12}`. That is the truncated-record corruption the
|
|
162
171
|
// partial-line rule exists to prevent, reached through the adopt path instead of the read one.
|
|
163
|
-
if (
|
|
172
|
+
if (from === undefined)
|
|
164
173
|
return { records: [], cursor: await here(await JsonlFileSource.lastCompleteBoundary(fh, size)) };
|
|
165
|
-
const from = JsonlFileSource.parseCursor(cursor);
|
|
166
174
|
// Replacement is DETECTED by identity, not inferred from size — a replacement that is the
|
|
167
175
|
// same size or larger looks exactly like an append, and resuming at the old offset emits
|
|
168
176
|
// fragments of a document this reader has never seen. Re-adopting silently loses records and
|
|
169
177
|
// restarting resends them, so neither is guessed here: the caller decides.
|
|
170
178
|
if (from.dev !== dev || from.ino !== ino)
|
|
171
|
-
throw new
|
|
179
|
+
throw new JsonlFileResetError(`JsonlFileSource: ${this.path} is not the file this cursor came from ` +
|
|
172
180
|
`(cursor ${from.dev}:${from.ino}, now ${dev}:${ino}) — it was replaced or rotated`);
|
|
173
181
|
if (from.offset > size)
|
|
174
|
-
throw new
|
|
182
|
+
throw new JsonlFileResetError(`JsonlFileSource: cursor offset ${from.offset} is past end ${size} for ${this.path} — the file was truncated`);
|
|
175
183
|
// The last 512 bytes of the consumed prefix must still be the bytes we consumed. dev/ino catch
|
|
176
184
|
// unlink-and-recreate; this catches an IN-PLACE rewrite, which keeps the inode and which size
|
|
177
185
|
// cannot see when the replacement is larger. It is a WINDOW, not the whole prefix: a rewrite
|
|
178
186
|
// confined to bytes before `offset - 512` passes here. See `sealAt` for the bound and its edges.
|
|
179
187
|
const seal = await JsonlFileSource.sealAt(fh, from.offset);
|
|
180
188
|
if (seal !== from.seal)
|
|
181
|
-
throw new
|
|
189
|
+
throw new JsonlFileResetError(`JsonlFileSource: the bytes before offset ${from.offset} in ${this.path} have changed ` +
|
|
182
190
|
`(seal ${from.seal} -> ${seal}) — the file was rewritten in place, not appended to`);
|
|
183
191
|
if (from.offset === size)
|
|
184
192
|
return { records: [], cursor: await here(from.offset) };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durable-source.js","sourceRoot":"","sources":["../src/durable-source.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"durable-source.js","sourceRoot":"","sources":["../src/durable-source.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.d.ts
CHANGED
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A connector's local control endpoint: the OS path its lifecycle hooks (and the manager's
|
|
3
|
+
* cooperative-shutdown call) connect to, plus the shared secret that authenticates the first frame.
|
|
4
|
+
*
|
|
5
|
+
* The path id is `sha256(space\0name\0pid\0token)` (base64url, ≤32) — unguessable and
|
|
6
|
+
* collision-free without leaking identity; the 256-bit `token` is the actual auth boundary (the
|
|
7
|
+
* server validates it with a constant-time compare before doing anything — see `control.ts`).
|
|
8
|
+
*
|
|
9
|
+
* Transport is per-platform but the same `node:net` path string drives both: win32 has no
|
|
10
|
+
* filesystem AF_UNIX socket Node can bind, so the path is a named pipe (`\\.\pipe\…`) whose default
|
|
11
|
+
* DACL lets ANY local process connect — which is exactly why the token, not the path, is the
|
|
12
|
+
* security boundary there. POSIX uses a per-user `tmpdir` socket.
|
|
13
|
+
*
|
|
14
|
+
* Minted ONCE at launch (in the manager's process, via the connector's `buildLaunch`). Both ends —
|
|
15
|
+
* the in-agent server that LISTENS and the short-lived hooks that CONNECT — then read `path`+`token`
|
|
16
|
+
* from the child env (`COTAL_CONTROL_SOCKET`/`COTAL_CONTROL_TOKEN`), never recompute them from
|
|
17
|
+
* public identity; the manager keeps them in memory for the cooperative shutdown. (`process.pid` is
|
|
18
|
+
* just generation-time entropy — the value flows by env, so it never has to match across processes.)
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* The longest control-socket path the kernel will actually bind, in BYTES.
|
|
22
|
+
*
|
|
23
|
+
* `sockaddr_un.sun_path` is 108 bytes on Linux and 104 on macOS, and overrunning it fails at the
|
|
24
|
+
* bind with a bare `EINVAL` — an errno that names neither paths, nor lengths, nor sockets. The
|
|
25
|
+
* connector then reads as broken when what is actually wrong is the directory it was handed.
|
|
26
|
+
*
|
|
27
|
+
* MEASURED, not assumed: on this Linux 6.12 box a 108-byte path binds and a 109-byte path fails
|
|
28
|
+
* `EINVAL`, so the limit is INCLUSIVE and the whole 108 is usable. The darwin figure is the
|
|
29
|
+
* documented `sun_path` size and is NOT measured here; it is the smaller of the two, so taking it
|
|
30
|
+
* as the cap fails closed.
|
|
31
|
+
*/
|
|
32
|
+
export declare const SUN_PATH_MAX_BYTES: number;
|
|
1
33
|
export declare function controlEndpoint(space: string, name: string, token?: string): {
|
|
2
34
|
path: string;
|
|
3
35
|
token: string;
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAA4C,CAAC;AAE5E,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAA8C,GACpD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAwBjC"}
|
package/dist/runtime.js
CHANGED
|
@@ -32,7 +32,7 @@ import { createHash, randomBytes } from "node:crypto";
|
|
|
32
32
|
* documented `sun_path` size and is NOT measured here; it is the smaller of the two, so taking it
|
|
33
33
|
* as the cap fails closed.
|
|
34
34
|
*/
|
|
35
|
-
const SUN_PATH_MAX_BYTES = process.platform === "darwin" ? 104 : 108;
|
|
35
|
+
export const SUN_PATH_MAX_BYTES = process.platform === "darwin" ? 104 : 108;
|
|
36
36
|
export function controlEndpoint(space, name, token = randomBytes(32).toString("base64url")) {
|
|
37
37
|
const id = createHash("sha256")
|
|
38
38
|
.update(`${space}\0${name}\0${process.pid}\0${token}`)
|
package/dist/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAE5E,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,IAAY,EACZ,QAAgB,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IAErD,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC5B,MAAM,CAAC,GAAG,KAAK,KAAK,IAAI,KAAK,OAAO,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;SACrD,MAAM,CAAC,WAAW,CAAC;SACnB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAChB,MAAM,IAAI,GACR,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjG,sFAAsF;IACtF,6FAA6F;IAC7F,gGAAgG;IAChG,kGAAkG;IAClG,uFAAuF;IACvF,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,KAAK,GAAG,kBAAkB,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,0BAA0B,KAAK,oBAAoB,kBAAkB,0BAA0B;YAC7F,GAAG,OAAO,CAAC,QAAQ,oEAAoE,IAAI,IAAI;YAC/F,8BAA8B,IAAI,2CAA2C;YAC7E,GAAG,kBAAkB,GAAG,IAAI,sBAAsB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,SAAS;YACtF,IAAI,MAAM,EAAE,yCAAyC,CACxD,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -39,6 +39,19 @@ export declare class FileSubjectFrontier implements SubjectFrontier {
|
|
|
39
39
|
private doc;
|
|
40
40
|
private constructor();
|
|
41
41
|
get tip(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Read the record's bytes with no follow, or `undefined` when it is absent.
|
|
44
|
+
*
|
|
45
|
+
* SHARED BY `open` AND BY {@link readDiskTip} on purpose, the same reason {@link parse} is
|
|
46
|
+
* shared: the read side has exactly one policy about what a subject.json is allowed to be, and a
|
|
47
|
+
* second copy would drift. `lstat` first so a symlink is refused before any content is read
|
|
48
|
+
* (following it would hand a writer another file's tip through the record's own name); the open
|
|
49
|
+
* itself adds `O_NOFOLLOW` for the TOCTOU window between that `lstat` and the open. The portable
|
|
50
|
+
* `?? 0` shape follows {@link recoverTipFromThreadLogs}: Windows has no `O_NOFOLLOW` and a
|
|
51
|
+
* junction is not a symlink to `lstat`, so on that platform the `lstat` refusal alone is the
|
|
52
|
+
* coverage, exactly as it is for the scan.
|
|
53
|
+
*/
|
|
54
|
+
private static readRecord;
|
|
42
55
|
/**
|
|
43
56
|
* Open, or create a virgin record.
|
|
44
57
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subject-frontier.d.ts","sourceRoot":"","sources":["../src/subject-frontier.ts"],"names":[],"mappings":"AA+CA,oFAAoF;AACpF,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAAxC,IAAI,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI9E;AAED;;;;;;;GAOG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;gBAA5E,IAAI,EAAE,MAAM,EAAW,OAAO,EAAE,MAAM,EAAW,OAAO,EAAE,MAAM,GAAG,SAAS;CAUlG;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,oFAAoF;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;
|
|
1
|
+
{"version":3,"file":"subject-frontier.d.ts","sourceRoot":"","sources":["../src/subject-frontier.ts"],"names":[],"mappings":"AA+CA,oFAAoF;AACpF,qBAAa,2BAA4B,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAAxC,IAAI,EAAE,MAAM,EAAW,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI9E;AAED;;;;;;;GAOG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS;gBAA5E,IAAI,EAAE,MAAM,EAAW,OAAO,EAAE,MAAM,EAAW,OAAO,EAAE,MAAM,GAAG,SAAS;CAUlG;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,8FAA8F;IAC9F,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,oFAAoF;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AASD,qGAAqG;AACrG,qBAAa,mBAAoB,YAAW,eAAe;IAEvD,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,GAAG;IAFb,OAAO;IAKP,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED;;;;;;;;;;;OAWG;mBACkB,UAAU;IA0B/B;;;;;;;;OAQG;WACU,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAczG;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,KAAK;IAoCd,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzC;;;;;OAKG;YACW,WAAW;IAMzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,SAAS;IAOjB;;;;;;;;;;;;;;;;;;;OAmBG;mBACkB,wBAAwB;IA6HvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,wEAAwE;YAC1D,KAAK;CAuCpB"}
|
package/dist/subject-frontier.js
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
import { randomUUID } from "node:crypto";
|
|
31
31
|
import { constants } from "node:fs";
|
|
32
|
-
import { lstat, open, readdir,
|
|
32
|
+
import { lstat, open, readdir, rename, unlink } from "node:fs/promises";
|
|
33
33
|
import { dirname, join } from "node:path";
|
|
34
34
|
import { fsyncDir } from "./agui-wal-path.js";
|
|
35
35
|
/** The document on disk. Versioned, because a shape change must be refused rather than misread. */
|
|
@@ -70,6 +70,10 @@ export class SubjectFrontierMovedError extends Error {
|
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
const isSafeNonNegInt = (n) => typeof n === "number" && Number.isSafeInteger(n) && n >= 0;
|
|
73
|
+
// The one value in that family that is well formed and operationally fatal: `MAX_SAFE_INTEGER`
|
|
74
|
+
// makes the successor at event-wal.ts unrepresentable and the ack check unsatisfiable, so a
|
|
75
|
+
// frontier tip must stay strictly below it while every other safe non-negative integer is fine.
|
|
76
|
+
const isFrontierTip = (n) => isSafeNonNegInt(n) && n < Number.MAX_SAFE_INTEGER;
|
|
73
77
|
/** The durable implementation, one file per principal beside that principal's thread directories. */
|
|
74
78
|
export class FileSubjectFrontier {
|
|
75
79
|
path;
|
|
@@ -81,6 +85,48 @@ export class FileSubjectFrontier {
|
|
|
81
85
|
get tip() {
|
|
82
86
|
return this.doc.tip;
|
|
83
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Read the record's bytes with no follow, or `undefined` when it is absent.
|
|
90
|
+
*
|
|
91
|
+
* SHARED BY `open` AND BY {@link readDiskTip} on purpose, the same reason {@link parse} is
|
|
92
|
+
* shared: the read side has exactly one policy about what a subject.json is allowed to be, and a
|
|
93
|
+
* second copy would drift. `lstat` first so a symlink is refused before any content is read
|
|
94
|
+
* (following it would hand a writer another file's tip through the record's own name); the open
|
|
95
|
+
* itself adds `O_NOFOLLOW` for the TOCTOU window between that `lstat` and the open. The portable
|
|
96
|
+
* `?? 0` shape follows {@link recoverTipFromThreadLogs}: Windows has no `O_NOFOLLOW` and a
|
|
97
|
+
* junction is not a symlink to `lstat`, so on that platform the `lstat` refusal alone is the
|
|
98
|
+
* coverage, exactly as it is for the scan.
|
|
99
|
+
*/
|
|
100
|
+
static async readRecord(path) {
|
|
101
|
+
let st;
|
|
102
|
+
try {
|
|
103
|
+
st = await lstat(path);
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
if (e.code === "ENOENT")
|
|
107
|
+
return undefined;
|
|
108
|
+
throw e;
|
|
109
|
+
}
|
|
110
|
+
if (st.isSymbolicLink())
|
|
111
|
+
throw new SubjectFrontierCorruptError(path, "a real subject record, never a symlink", "the writer never wrote a symlink");
|
|
112
|
+
try {
|
|
113
|
+
const fh = await open(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
|
|
114
|
+
try {
|
|
115
|
+
return await fh.readFile();
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
await fh.close();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (e) {
|
|
122
|
+
const code = e.code;
|
|
123
|
+
if (code === "ENOENT")
|
|
124
|
+
return undefined;
|
|
125
|
+
if (code === "ELOOP")
|
|
126
|
+
throw new SubjectFrontierCorruptError(path, "a real subject record, never a symlink", "the record became a symlink between the check and the open");
|
|
127
|
+
throw e;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
84
130
|
/**
|
|
85
131
|
* Open, or create a virgin record.
|
|
86
132
|
*
|
|
@@ -91,14 +137,7 @@ export class FileSubjectFrontier {
|
|
|
91
137
|
* mechanism exists to remove.
|
|
92
138
|
*/
|
|
93
139
|
static async open(path, opts) {
|
|
94
|
-
|
|
95
|
-
try {
|
|
96
|
-
bytes = await readFile(path);
|
|
97
|
-
}
|
|
98
|
-
catch (e) {
|
|
99
|
-
if (e.code !== "ENOENT")
|
|
100
|
-
throw e;
|
|
101
|
-
}
|
|
140
|
+
const bytes = await FileSubjectFrontier.readRecord(path);
|
|
102
141
|
if (bytes === undefined) {
|
|
103
142
|
// ABSENT, so this record has never existed. Before calling the principal virgin, look at the
|
|
104
143
|
// thread logs that already sit beside it. See {@link recoverTipFromThreadLogs}.
|
|
@@ -147,16 +186,20 @@ export class FileSubjectFrontier {
|
|
|
147
186
|
// The principal is the whole key of this record: a file belonging to another identity would
|
|
148
187
|
// hand this writer another principal's tip, which is a fabricated frontier of exactly the kind
|
|
149
188
|
// the write-ahead log refuses for the same reason.
|
|
189
|
+
//
|
|
190
|
+
// A BYTE COMPARE, NOT A DECODED ONE: `assertValidOwnerToken` and `principalKey` fold nothing,
|
|
191
|
+
// and the principal directory is `h(principal)` over the exact bytes, so a decoded or
|
|
192
|
+
// case-folded compare here would accept a key that names a different directory on disk.
|
|
150
193
|
if (d.principal !== opts.principal)
|
|
151
194
|
throw new SubjectFrontierCorruptError(path, "principal matches", `file=${String(d.principal)} caller=${opts.principal}`);
|
|
152
|
-
if (!
|
|
153
|
-
throw new SubjectFrontierCorruptError(path, "tip is a safe non-negative integer", String(d.tip));
|
|
195
|
+
if (!isFrontierTip(d.tip))
|
|
196
|
+
throw new SubjectFrontierCorruptError(path, "tip is a safe non-negative integer below Number.MAX_SAFE_INTEGER", String(d.tip));
|
|
154
197
|
return { v: d.v, space: d.space, principal: d.principal, tip: d.tip };
|
|
155
198
|
}
|
|
156
199
|
async advance(seq) {
|
|
157
200
|
return this.serialize(async () => {
|
|
158
|
-
if (!
|
|
159
|
-
throw new Error(`subject frontier ${this.path}: seq must be a safe non-negative integer, got ${String(seq)}`);
|
|
201
|
+
if (!isFrontierTip(seq))
|
|
202
|
+
throw new Error(`subject frontier ${this.path}: seq must be a safe non-negative integer below Number.MAX_SAFE_INTEGER, got ${String(seq)}`);
|
|
160
203
|
// VALIDATE BEFORE THE DURABLE WRITE. A bad value written first bricks the record permanently
|
|
161
204
|
// while the call that wrote it reports success, and the next open refuses a file nothing can
|
|
162
205
|
// repair. Fail-closed has to happen before the write, not on the boot after it.
|
|
@@ -191,15 +234,9 @@ export class FileSubjectFrontier {
|
|
|
191
234
|
* number, and a number taken from a document that failed its own shape checks is not evidence.
|
|
192
235
|
*/
|
|
193
236
|
async readDiskTip() {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
}
|
|
198
|
-
catch (e) {
|
|
199
|
-
if (e.code === "ENOENT")
|
|
200
|
-
return undefined;
|
|
201
|
-
throw e;
|
|
202
|
-
}
|
|
237
|
+
const bytes = await FileSubjectFrontier.readRecord(this.path);
|
|
238
|
+
if (bytes === undefined)
|
|
239
|
+
return undefined;
|
|
203
240
|
return FileSubjectFrontier.parse(this.path, bytes, { space: this.doc.space, principal: this.doc.principal }).tip;
|
|
204
241
|
}
|
|
205
242
|
/**
|
|
@@ -394,6 +431,20 @@ export class FileSubjectFrontier {
|
|
|
394
431
|
await fh.close();
|
|
395
432
|
}
|
|
396
433
|
try {
|
|
434
|
+
// A planted link at the record's name must never receive the rename: that would leave the
|
|
435
|
+
// link's TARGET holding the stale document while this principal's own history moved on.
|
|
436
|
+
// Absence is fine (creation stays legal); only a symlink is refused, the same class {@link
|
|
437
|
+
// readRecord} throws on the read side, so the create and read paths agree about links here too.
|
|
438
|
+
let st;
|
|
439
|
+
try {
|
|
440
|
+
st = await lstat(this.path);
|
|
441
|
+
}
|
|
442
|
+
catch (e) {
|
|
443
|
+
if (e.code !== "ENOENT")
|
|
444
|
+
throw e;
|
|
445
|
+
}
|
|
446
|
+
if (st?.isSymbolicLink())
|
|
447
|
+
throw new SubjectFrontierCorruptError(this.path, "a real subject record, never a symlink", "the writer never wrote a symlink");
|
|
397
448
|
await rename(tmp, this.path);
|
|
398
449
|
}
|
|
399
450
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subject-frontier.js","sourceRoot":"","sources":["../src/subject-frontier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,mGAAmG;AACnG,MAAM,wBAAwB,GAAG,CAAC,CAAC;AAUnC,oFAAoF;AACpF,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC/B;IAAuB;IAA5C,YAAqB,IAAY,EAAW,SAAiB,EAAE,MAAc;QAC3E,KAAK,CAAC,oBAAoB,IAAI,cAAc,SAAS,MAAM,MAAM,EAAE,CAAC,CAAC;QADlD,SAAI,GAAJ,IAAI,CAAQ;QAAW,cAAS,GAAT,SAAS,CAAQ;QAE3D,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;IAC5C,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAC7B;IAAuB;IAA0B;IAAtE,YAAqB,IAAY,EAAW,OAAe,EAAW,OAA2B;QAC/F,KAAK,CACH,oBAAoB,IAAI,yDAAyD,OAAO,IAAI;YAC1F,kBAAkB,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,0BAA0B;YAChG,+FAA+F;YAC/F,8FAA8F;YAC9F,wBAAwB,CAC3B,CAAC;QAPiB,SAAI,GAAJ,IAAI,CAAQ;QAAW,YAAO,GAAP,OAAO,CAAQ;QAAW,YAAO,GAAP,OAAO,CAAoB;QAQ/F,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAkBD,MAAM,eAAe,GAAG,CAAC,CAAU,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEhH,qGAAqG;AACrG,MAAM,OAAO,mBAAmB;IAEX;IACT;IAFV,YACmB,IAAY,EACrB,GAAe;QADN,SAAI,GAAJ,IAAI,CAAQ;QACrB,QAAG,GAAH,GAAG,CAAY;IACtB,CAAC;IAEJ,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,IAA0C;QACxE,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,6FAA6F;YAC7F,gFAAgF;YAChF,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YACpG,MAAM,KAAK,GAAG,IAAI,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,wBAAwB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnI,IAAI,SAAS,GAAG,CAAC;gBAAE,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;OAOG;IACK,MAAM,CAAC,KAAK,CAAC,IAAY,EAAE,KAAa,EAAE,IAA0C;QAC1F,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,8FAA8F;YAC9F,6FAA6F;YAC7F,8FAA8F;YAC9F,mCAAmC;YACnC,GAAG,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,aAAa,EAAE,+DAA+D,CAAC,CAAC;QAC9H,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAClB,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,kBAAkB,EAAE,6EAA6E,CAAC,CAAC;QAEjJ,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;QACtF,CAAC;QACD,MAAM,CAAC,GAAG,MAA6B,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,KAAK,wBAAwB;YAAE,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACzI,4FAA4F;QAC5F,+FAA+F;QAC/F,mDAAmD;QACnD,IAAI,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YAChC,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,mBAAmB,EAAE,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3H,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,2BAA2B,CAAC,IAAI,EAAE,oCAAoC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9H,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,kDAAkD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzI,6FAA6F;YAC7F,6FAA6F;YAC7F,gFAAgF;YAChF,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG;gBACrB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,IAAI,SAAS,GAAG,6BAA6B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACxG,6FAA6F;YAC7F,4FAA4F;YAC5F,6FAA6F;YAC7F,8FAA8F;YAC9F,EAAE;YACF,4FAA4F;YAC5F,2FAA2F;YAC3F,qFAAqF;YACrF,2FAA2F;YAC3F,0FAA0F;YAC1F,uFAAuF;YACvF,8EAA8E;YAC9E,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACtC,6FAA6F;YAC7F,yFAAyF;YACzF,4FAA4F;YAC5F,+FAA+F;YAC/F,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG;gBACjE,MAAM,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrE,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,KAAa,CAAC;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,SAAS,CAAC;YACrE,MAAM,CAAC,CAAC;QACV,CAAC;QACD,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC;IACnH,CAAC;IAED;;;;;;;;;;OAUG;IACK,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,SAAS,CAAI,EAAoB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QACrC,4FAA4F;QAC5F,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,MAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,YAAoB,EAAE,SAAiB;QACnF,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAK,CAA2B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YAC7D,MAAM,CAAC,CAAC;QACV,CAAC;QACD,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,4FAA4F;YAC5F,2FAA2F;YAC3F,2FAA2F;YAC3F,6FAA6F;YAC7F,mCAAmC;YACnC,IAAI,GAAG,CAAC,cAAc,EAAE;gBACtB,MAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,qDAAqD,EAAE,qKAAqK,CAAC,CAAC;YACpS,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;gBAAE,SAAS,CAAC,kEAAkE;YACpG,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACzD,yFAAyF;YACzF,2FAA2F;YAC3F,8BAA8B;YAC9B,EAAE;YACF,uFAAuF;YACvF,6FAA6F;YAC7F,yEAAyE;YACzE,8FAA8F;YAC9F,0FAA0F;YAC1F,0FAA0F;YAC1F,wFAAwF;YACxF,yFAAyF;YACzF,oCAAoC;YACpC,IAAI,EAAE,CAAC;YACP,IAAI,CAAC;gBACH,EAAE,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;gBAC/C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS,CAAC,yBAAyB;gBAChF,MAAM,CAAC,CAAC;YACV,CAAC;YACD,IAAI,EAAE,CAAC,cAAc,EAAE;gBACrB,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,oCAAoC,EAAE,mEAAmE,CAAC,CAAC;YAC5J,0FAA0F;YAC1F,6FAA6F;YAC7F,2FAA2F;YAC3F,kEAAkE;YAClE,IAAI,EAAE,CAAC,KAAK,GAAG,CAAC;gBACd,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,oCAAoC,EAAE,UAAU,EAAE,CAAC,KAAK,qHAAqH,CAAC,CAAC;YAChO,IAAI,GAAW,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,QAAQ,GAAG,CAAC,SAAS,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;gBACjF,IAAI,CAAC;oBACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAC5B,CAAC;wBAAS,CAAC;oBACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,CAAC;gBAC/C,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBACtD,IAAI,IAAI,KAAK,OAAO;oBAClB,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,oCAAoC,EAAE,0DAA0D,CAAC,CAAC;gBACnJ,MAAM,CAAC,CAAC;YACV,CAAC;YACD,IAAI,GAA6H,CAAC;YAClI,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAe,CAAC;YACxF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,wDAAwD,EAAG,CAAW,CAAC,OAAO,CAAC,CAAC;YACjI,CAAC;YACD,6FAA6F;YAC7F,0FAA0F;YAC1F,wCAAwC;YACxC,IAAI,GAAG,CAAC,SAAS,KAAK,SAAS;gBAC7B,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,8BAA8B,SAAS,EAAE,EAAE,SAAS,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC9H,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;gBACvB,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,wDAAwD,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACxH,IAAI,GAAG,GAAG,IAAI;gBAAE,IAAI,GAAG,GAAG,CAAC;YAC3B,mFAAmF;YACnF,EAAE;YACF,gFAAgF;YAChF,sEAAsE;YACtE,0FAA0F;YAC1F,wFAAwF;YACxF,0FAA0F;YAC1F,wFAAwF;YACxF,wFAAwF;YACxF,wDAAwD;YACxD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;gBAC7B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;oBACzB,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,qDAAqD,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvH,IAAI,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;oBAChB,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,6DAA6D,EAAE,UAAU,KAAK,4BAA4B,GAAG,EAAE,CAAC,CAAC;gBAClK,IAAI,KAAK,GAAG,IAAI;oBAAE,IAAI,GAAG,KAAK,CAAC;YACjC,CAAC;YACD,8FAA8F;YAC9F,EAAE;YACF,6FAA6F;YAC7F,2FAA2F;YAC3F,6FAA6F;YAC7F,6FAA6F;YAC7F,6FAA6F;YAC7F,+FAA+F;YAC/F,mCAAmC;YACnC,EAAE;YACF,8FAA8F;YAC9F,8FAA8F;YAC9F,0FAA0F;YAC1F,+FAA+F;YAC/F,6FAA6F;YAC7F,4FAA4F;YAC5F,oCAAoC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8FAA8F;IAC9F,+FAA+F;IAC/F,0FAA0F;IAC1F,iGAAiG;IACjG,6FAA6F;IAC7F,2DAA2D;IAE3D,KAAK,CAAC,KAAK;QACT,8FAA8F;QAC9F,8FAA8F;QAC9F,yDAAyD;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wEAAwE;IAChE,KAAK,CAAC,KAAK,CAAC,IAAgB;QAClC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,MAAM,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7F,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACzC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;QACD,8FAA8F;QAC9F,wFAAwF;QACxF,EAAE;QACF,6FAA6F;QAC7F,wFAAwF;QACxF,yFAAyF;QACzF,gGAAgG;QAChG,gGAAgG;QAChG,6FAA6F;QAC7F,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;IAClB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"subject-frontier.js","sourceRoot":"","sources":["../src/subject-frontier.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-specs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-specs.d.ts","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAI5F;yDACyD;AACzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgDD;;;;;;;sGAOsG;AACtG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAExD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB;;;;8FAI0F;IAC1F,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACzF;AAUD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzF;AAED;;;;;;;;;GASG;AACH;mGACmG;AACnG,eAAO,MAAM,YAAY,EAAE,cAAmC,CAAC;AAE/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG7E;AAeD;mGACmG;AACnG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,8EAA8E;IAC9E,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,uEAAuE;IACvE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,KAAK,MAAM,CAAC;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC,GAAG,aAAa,CAyFhB;AAyJD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AAED;+DAC+D;AAC/D,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,SAAc,GAAG,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"tool-specs.d.ts","sourceRoot":"","sources":["../src/tool-specs.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC;AAE7E,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAI5F;yDACyD;AACzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAgDD;;;;;;;sGAOsG;AACtG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AAExD,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB;;;;8FAI0F;IAC1F,MAAM,EAAE,cAAc,CAAC;IACvB,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;CACzF;AAUD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzF;AAED;;;;;;;;;GASG;AACH;mGACmG;AACnG,eAAO,MAAM,YAAY,EAAE,cAAmC,CAAC;AAE/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAG7E;AAeD;mGACmG;AACnG;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,QAAS,CAAC;AAEzC,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC5B,iGAAiG;IACjG,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,8EAA8E;IAC9E,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,uEAAuE;IACvE,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,KAAK,MAAM,CAAC;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACjC,GAAG,aAAa,CAyFhB;AAyJD,+FAA+F;AAC/F,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQhE;AAED;+DAC+D;AAC/D,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,SAAc,GAAG,aAAa,EAAE,CA2gCzF"}
|
package/dist/tool-specs.js
CHANGED
|
@@ -770,8 +770,9 @@ export function cotalToolSpecs(config, source = "connector") {
|
|
|
770
770
|
},
|
|
771
771
|
async run(agent, _config, { to, text: msg }) {
|
|
772
772
|
try {
|
|
773
|
-
const { peer } = await agent.dm(to, msg);
|
|
774
|
-
|
|
773
|
+
const { peer, ack, recipientStatusAtSend } = await agent.dm(to, msg);
|
|
774
|
+
const dup = ack.duplicate ? " duplicate publication." : "";
|
|
775
|
+
return ok(`DM stored as seq ${ack.seq} for ${peer.card.name} (recipient was ${recipientStatusAtSend} at send; delivery not confirmed).${dup}`);
|
|
775
776
|
}
|
|
776
777
|
catch (e) {
|
|
777
778
|
if (e instanceof AmbiguousPeerError) {
|