@mnemonik/shared 7.153.0 → 7.154.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/gateOutbox.d.ts +65 -0
- package/dist/gateOutbox.d.ts.map +1 -0
- package/dist/gateOutbox.js +156 -0
- package/dist/gateOutbox.js.map +1 -0
- package/dist/hookConversation.d.ts +9 -0
- package/dist/hookConversation.d.ts.map +1 -1
- package/dist/hookConversation.js +35 -1
- package/dist/hookConversation.js.map +1 -1
- package/dist/hookRuntime.d.ts +1 -0
- package/dist/hookRuntime.d.ts.map +1 -1
- package/dist/hookRuntime.js +1 -0
- package/dist/hookRuntime.js.map +1 -1
- package/dist/hookTimeouts.d.ts +80 -42
- package/dist/hookTimeouts.d.ts.map +1 -1
- package/dist/hookTimeouts.js +245 -59
- package/dist/hookTimeouts.js.map +1 -1
- package/package.json +2 -2
- package/src/gateOutbox.ts +181 -0
- package/src/hookConversation.ts +32 -1
- package/src/hookRuntime.ts +1 -0
- package/src/hookTimeouts.ts +252 -61
- package/tests/gateOutbox.test.ts +121 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate telemetry rides the next injections request instead of its own.
|
|
3
|
+
*
|
|
4
|
+
* Why: every PreToolUse a hook gated used to end with an awaited POST
|
|
5
|
+
* /api/v1/hooks/gate-fired, a whole extra round trip (about 220 ms from New
|
|
6
|
+
* Zealand to us-east-1) after the decision was already made, because the host
|
|
7
|
+
* waits for the hook process to exit. Measured on 26 October 2026 it was about
|
|
8
|
+
* 30% of a PreToolUse hook's process time on an idle machine, and one in three
|
|
9
|
+
* hook requests the server received. The event is telemetry: who gated what,
|
|
10
|
+
* how, and the action observation for credit capture. Nothing on the agent's
|
|
11
|
+
* path waits for it.
|
|
12
|
+
*
|
|
13
|
+
* So the hook writes the event to a small per-session folder (synchronous, no
|
|
14
|
+
* network) and the next injections request of the same session claims the
|
|
15
|
+
* events and carries them as `gateEvents`; the server records them exactly as
|
|
16
|
+
* the gate-fired route does. A request that gets no answer puts its events
|
|
17
|
+
* back for the next one; each event carries an id the server records once, so
|
|
18
|
+
* a request that was recorded but whose answer was lost does not count twice.
|
|
19
|
+
* Events still queued when a session goes idle for GATE_OUTBOX_MAX_AGE_MS are
|
|
20
|
+
* dropped, and the folder holds at most GATE_OUTBOX_CAP events (the oldest
|
|
21
|
+
* go first), so a server that stays unreachable cannot grow it without
|
|
22
|
+
* bound. Temporary and claimed files a killed hook process left behind are
|
|
23
|
+
* swept after GATE_OUTBOX_STRAY_MS. Never throws.
|
|
24
|
+
*
|
|
25
|
+
* One file per event, written to a temporary name and renamed into the folder,
|
|
26
|
+
* and claimed by renaming it again: a reader never sees half an event, two
|
|
27
|
+
* hook processes never claim the same one, and a writer racing a reader never
|
|
28
|
+
* loses its event.
|
|
29
|
+
*/
|
|
30
|
+
/** The per-session folder name (pass it to the host's session state path helper). */
|
|
31
|
+
export declare const GATE_OUTBOX_FILE = "gate-outbox";
|
|
32
|
+
/** The most events one request carries; the server accepts the same. */
|
|
33
|
+
export declare const GATE_OUTBOX_MAX_EVENTS = 32;
|
|
34
|
+
/** Events older than this are dropped rather than reported: the session went idle. */
|
|
35
|
+
export declare const GATE_OUTBOX_MAX_AGE_MS: number;
|
|
36
|
+
/** The most events the folder holds; past it the oldest are dropped. */
|
|
37
|
+
export declare const GATE_OUTBOX_CAP = 500;
|
|
38
|
+
/**
|
|
39
|
+
* A temporary or claimed file older than this belongs to a hook process that
|
|
40
|
+
* was killed between two renames (a live one holds it for milliseconds).
|
|
41
|
+
*/
|
|
42
|
+
export declare const GATE_OUTBOX_STRAY_MS: number;
|
|
43
|
+
export interface QueuedGateEvent {
|
|
44
|
+
/** Unique per event; the server records each id once. */
|
|
45
|
+
id: string;
|
|
46
|
+
tool: string;
|
|
47
|
+
mode: string;
|
|
48
|
+
outcome: string;
|
|
49
|
+
/** Epoch ms when the gate fired; the server stores it as the event's time. */
|
|
50
|
+
at: number;
|
|
51
|
+
host?: string;
|
|
52
|
+
cwd?: string;
|
|
53
|
+
projectId?: string;
|
|
54
|
+
projectRoot?: string;
|
|
55
|
+
actionObservation?: unknown;
|
|
56
|
+
}
|
|
57
|
+
export declare function queueGateEvent(folder: string, event: Omit<QueuedGateEvent, 'id'>): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Claim every queued event of this session, oldest first, at most
|
|
60
|
+
* GATE_OUTBOX_MAX_EVENTS (the rest wait for the next request).
|
|
61
|
+
*/
|
|
62
|
+
export declare function takeGateEvents(folder: string, now?: number): QueuedGateEvent[];
|
|
63
|
+
/** Put back events a request could not deliver, so the next request carries them. */
|
|
64
|
+
export declare function returnGateEvents(folder: string, events: readonly QueuedGateEvent[]): void;
|
|
65
|
+
//# sourceMappingURL=gateOutbox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateOutbox.d.ts","sourceRoot":"","sources":["../src/gateOutbox.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAcH,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sFAAsF;AACtF,eAAO,MAAM,sBAAsB,QAAsB,CAAC;AAE1D,wEAAwE;AACxE,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAiB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAoCD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,GAAG,OAAO,CAQ1F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,eAAe,EAAE,CA6C1F;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,eAAe,EAAE,GAAG,IAAI,CASzF"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gate telemetry rides the next injections request instead of its own.
|
|
3
|
+
*
|
|
4
|
+
* Why: every PreToolUse a hook gated used to end with an awaited POST
|
|
5
|
+
* /api/v1/hooks/gate-fired, a whole extra round trip (about 220 ms from New
|
|
6
|
+
* Zealand to us-east-1) after the decision was already made, because the host
|
|
7
|
+
* waits for the hook process to exit. Measured on 26 October 2026 it was about
|
|
8
|
+
* 30% of a PreToolUse hook's process time on an idle machine, and one in three
|
|
9
|
+
* hook requests the server received. The event is telemetry: who gated what,
|
|
10
|
+
* how, and the action observation for credit capture. Nothing on the agent's
|
|
11
|
+
* path waits for it.
|
|
12
|
+
*
|
|
13
|
+
* So the hook writes the event to a small per-session folder (synchronous, no
|
|
14
|
+
* network) and the next injections request of the same session claims the
|
|
15
|
+
* events and carries them as `gateEvents`; the server records them exactly as
|
|
16
|
+
* the gate-fired route does. A request that gets no answer puts its events
|
|
17
|
+
* back for the next one; each event carries an id the server records once, so
|
|
18
|
+
* a request that was recorded but whose answer was lost does not count twice.
|
|
19
|
+
* Events still queued when a session goes idle for GATE_OUTBOX_MAX_AGE_MS are
|
|
20
|
+
* dropped, and the folder holds at most GATE_OUTBOX_CAP events (the oldest
|
|
21
|
+
* go first), so a server that stays unreachable cannot grow it without
|
|
22
|
+
* bound. Temporary and claimed files a killed hook process left behind are
|
|
23
|
+
* swept after GATE_OUTBOX_STRAY_MS. Never throws.
|
|
24
|
+
*
|
|
25
|
+
* One file per event, written to a temporary name and renamed into the folder,
|
|
26
|
+
* and claimed by renaming it again: a reader never sees half an event, two
|
|
27
|
+
* hook processes never claim the same one, and a writer racing a reader never
|
|
28
|
+
* loses its event.
|
|
29
|
+
*/
|
|
30
|
+
import { randomUUID } from 'node:crypto';
|
|
31
|
+
import { mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
32
|
+
import { join } from 'node:path';
|
|
33
|
+
/** The per-session folder name (pass it to the host's session state path helper). */
|
|
34
|
+
export const GATE_OUTBOX_FILE = 'gate-outbox';
|
|
35
|
+
/** The most events one request carries; the server accepts the same. */
|
|
36
|
+
export const GATE_OUTBOX_MAX_EVENTS = 32;
|
|
37
|
+
/** Events older than this are dropped rather than reported: the session went idle. */
|
|
38
|
+
export const GATE_OUTBOX_MAX_AGE_MS = 24 * 60 * 60 * 1000;
|
|
39
|
+
/** The most events the folder holds; past it the oldest are dropped. */
|
|
40
|
+
export const GATE_OUTBOX_CAP = 500;
|
|
41
|
+
/**
|
|
42
|
+
* A temporary or claimed file older than this belongs to a hook process that
|
|
43
|
+
* was killed between two renames (a live one holds it for milliseconds).
|
|
44
|
+
*/
|
|
45
|
+
export const GATE_OUTBOX_STRAY_MS = 10 * 60 * 1000;
|
|
46
|
+
function write(folder, event) {
|
|
47
|
+
mkdirSync(folder, { recursive: true, mode: 0o700 });
|
|
48
|
+
const name = `${String(event.at).padStart(15, '0')}-${event.id}.json`;
|
|
49
|
+
const temporary = join(folder, `.${name}.tmp`);
|
|
50
|
+
writeFileSync(temporary, JSON.stringify(event), { mode: 0o600 });
|
|
51
|
+
renameSync(temporary, join(folder, name));
|
|
52
|
+
}
|
|
53
|
+
const unlinkQuietly = (path) => {
|
|
54
|
+
try {
|
|
55
|
+
unlinkSync(path);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// Already gone.
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
/** Event file names, oldest first (names start with the zero-padded time). */
|
|
62
|
+
function queuedNames(folder) {
|
|
63
|
+
return readdirSync(folder)
|
|
64
|
+
.filter((name) => name.endsWith('.json') && !name.startsWith('.'))
|
|
65
|
+
.sort();
|
|
66
|
+
}
|
|
67
|
+
/** Drop the oldest events past GATE_OUTBOX_CAP. */
|
|
68
|
+
function enforceCap(folder) {
|
|
69
|
+
try {
|
|
70
|
+
const names = queuedNames(folder);
|
|
71
|
+
for (const name of names.slice(0, Math.max(0, names.length - GATE_OUTBOX_CAP)))
|
|
72
|
+
unlinkQuietly(join(folder, name));
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
// Telemetry.
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export function queueGateEvent(folder, event) {
|
|
79
|
+
try {
|
|
80
|
+
write(folder, { ...event, id: randomUUID() });
|
|
81
|
+
enforceCap(folder);
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Claim every queued event of this session, oldest first, at most
|
|
90
|
+
* GATE_OUTBOX_MAX_EVENTS (the rest wait for the next request).
|
|
91
|
+
*/
|
|
92
|
+
export function takeGateEvents(folder, now = Date.now()) {
|
|
93
|
+
let entries;
|
|
94
|
+
try {
|
|
95
|
+
entries = readdirSync(folder);
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return [];
|
|
99
|
+
}
|
|
100
|
+
// Sweep what killed hook processes left between renames.
|
|
101
|
+
for (const name of entries) {
|
|
102
|
+
if (!name.startsWith('.') || !(name.endsWith('.tmp') || name.endsWith('.claimed')))
|
|
103
|
+
continue;
|
|
104
|
+
const path = join(folder, name);
|
|
105
|
+
try {
|
|
106
|
+
if (now - statSync(path).mtimeMs > GATE_OUTBOX_STRAY_MS)
|
|
107
|
+
unlinkQuietly(path);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
// Gone meanwhile.
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const names = entries.filter((name) => name.endsWith('.json') && !name.startsWith('.')).sort();
|
|
114
|
+
const events = [];
|
|
115
|
+
for (const name of names) {
|
|
116
|
+
if (events.length >= GATE_OUTBOX_MAX_EVENTS)
|
|
117
|
+
break;
|
|
118
|
+
const claimed = join(folder, `.${name}.${process.pid}.claimed`);
|
|
119
|
+
try {
|
|
120
|
+
renameSync(join(folder, name), claimed);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
continue; // Another hook process of this session took it.
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
const event = JSON.parse(readFileSync(claimed, 'utf8'));
|
|
127
|
+
if (typeof event?.id === 'string' &&
|
|
128
|
+
typeof event.tool === 'string' &&
|
|
129
|
+
typeof event.mode === 'string' &&
|
|
130
|
+
typeof event.outcome === 'string' &&
|
|
131
|
+
typeof event.at === 'number' &&
|
|
132
|
+
now - event.at <= GATE_OUTBOX_MAX_AGE_MS)
|
|
133
|
+
events.push(event);
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
// Unreadable; dropped.
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
unlinkQuietly(claimed);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return events;
|
|
143
|
+
}
|
|
144
|
+
/** Put back events a request could not deliver, so the next request carries them. */
|
|
145
|
+
export function returnGateEvents(folder, events) {
|
|
146
|
+
for (const event of events) {
|
|
147
|
+
try {
|
|
148
|
+
write(folder, event);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Lost; telemetry.
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
enforceCap(folder);
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=gateOutbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateOutbox.js","sourceRoot":"","sources":["../src/gateOutbox.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,15 @@ export interface HookConversationInput {
|
|
|
12
12
|
export declare class HookConversation {
|
|
13
13
|
private readonly input;
|
|
14
14
|
private conversationId?;
|
|
15
|
+
/**
|
|
16
|
+
* The hook call (x-mnemonik-hook-request-id) whose acquiring request holds
|
|
17
|
+
* the conversation lock in this process. Its hedged second request
|
|
18
|
+
* (hedgedHookRequest) is the same call: waiting for the lock would hold it
|
|
19
|
+
* until the first request finished, which is exactly what the hedge exists
|
|
20
|
+
* to route around. The server hands both requests the same answer, so the
|
|
21
|
+
* second may save the handle without the lock.
|
|
22
|
+
*/
|
|
23
|
+
private lockHeldFor?;
|
|
15
24
|
private readonly scope;
|
|
16
25
|
constructor(input: HookConversationInput);
|
|
17
26
|
get id(): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookConversation.d.ts","sourceRoot":"","sources":["../src/hookConversation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hookConversation.d.ts","sourceRoot":"","sources":["../src/hookConversation.ts"],"names":[],"mappings":"AAQA,KAAK,aAAa,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAG9D,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAOD,qBAAa,gBAAgB;IAYf,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXlC,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,YAA6B,KAAK,EAAE,qBAAqB,EAYxD;IACD,IAAI,EAAE,IAAI,MAAM,GAAG,SAAS,CAE3B;IAEK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA0CxC;YAEa,MAAM;YAmBN,IAAI;IAsBlB,kFAAkF;IAC5E,OAAO,CACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,GAC/C,OAAO,CAAC,QAAQ,CAAC,CAqEnB;YAEa,MAAM;IASpB,wEAAwE;IAClE,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC1C;CACF;AAGD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3F;AACD,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,SAAS,CAE1D;AACD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAIvD;AACD,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1E;AASD,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,QAAQ,CAAC,GAC/C,OAAO,CAAC,QAAQ,CAAC,CAEnB"}
|
package/dist/hookConversation.js
CHANGED
|
@@ -3,6 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { lstat, mkdir, open, rename, rm, utimes } from 'node:fs/promises';
|
|
4
4
|
import { dirname } from 'node:path';
|
|
5
5
|
import { withFileLock } from './settingsIo.js';
|
|
6
|
+
import { HOOK_REQUEST_ID_HEADER } from './hookTimeouts.js';
|
|
6
7
|
import { ensureWindowsPrivateDirectorySync } from './runtimeSigners.js';
|
|
7
8
|
const RETENTION_MS = 24 * 60 * 60 * 1000;
|
|
8
9
|
export const CONVERSATION_STATE_FILE = 'conversation.json';
|
|
@@ -13,6 +14,15 @@ function boundedHandle(value) {
|
|
|
13
14
|
export class HookConversation {
|
|
14
15
|
input;
|
|
15
16
|
conversationId;
|
|
17
|
+
/**
|
|
18
|
+
* The hook call (x-mnemonik-hook-request-id) whose acquiring request holds
|
|
19
|
+
* the conversation lock in this process. Its hedged second request
|
|
20
|
+
* (hedgedHookRequest) is the same call: waiting for the lock would hold it
|
|
21
|
+
* until the first request finished, which is exactly what the hedge exists
|
|
22
|
+
* to route around. The server hands both requests the same answer, so the
|
|
23
|
+
* second may save the handle without the lock.
|
|
24
|
+
*/
|
|
25
|
+
lockHeldFor;
|
|
16
26
|
scope;
|
|
17
27
|
constructor(input) {
|
|
18
28
|
this.input = input;
|
|
@@ -144,7 +154,23 @@ export class HookConversation {
|
|
|
144
154
|
await this.save(this.conversationId);
|
|
145
155
|
return response;
|
|
146
156
|
};
|
|
147
|
-
const
|
|
157
|
+
const callId = hookCallId(init.headers);
|
|
158
|
+
let response;
|
|
159
|
+
if (!acquisition || (callId !== undefined && this.lockHeldFor === callId)) {
|
|
160
|
+
response = await send();
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
response = await this.locked(async () => {
|
|
164
|
+
this.lockHeldFor = callId;
|
|
165
|
+
try {
|
|
166
|
+
return await send();
|
|
167
|
+
}
|
|
168
|
+
finally {
|
|
169
|
+
if (this.lockHeldFor === callId)
|
|
170
|
+
this.lockHeldFor = undefined;
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
148
174
|
// The server refused the cached handle (a signing-secret rotation, say).
|
|
149
175
|
// Forget it so the next acquiring event mints a fresh one; this request
|
|
150
176
|
// is never resent, and a handle another event acquired meanwhile stays.
|
|
@@ -226,6 +252,14 @@ export function conversationMarker() {
|
|
|
226
252
|
export async function adoptHookConversation(result) {
|
|
227
253
|
await active?.adopt(result);
|
|
228
254
|
}
|
|
255
|
+
function hookCallId(headers) {
|
|
256
|
+
try {
|
|
257
|
+
return new Headers(headers).get(HOOK_REQUEST_ID_HEADER) ?? undefined;
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return undefined;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
229
263
|
export function withHookConversation(url, init, post) {
|
|
230
264
|
return active ? active.request(url, init, post) : post(init);
|
|
231
265
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookConversation.js","sourceRoot":"","sources":["../src/hookConversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAIxE,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAY3D,8EAA8E;AAC9E,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yCAAyC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"hookConversation.js","sourceRoot":"","sources":["../src/hookConversation.ts"],"names":[],"mappings":"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"}
|
package/dist/hookRuntime.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookRuntime.d.ts","sourceRoot":"","sources":["../src/hookRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAiC,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKpG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAwB3F;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAGvD;AAED,6FAA6F;AAC7F,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,CAAC,CAEpC;AAED,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsCxB;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;UAO5B,OAAO;GAC3E;AAED;2EAC2E;AAC3E,wBAAsB,eAAe,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAChD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,OAAO,CAAC,IAAI,CAAC,CA2Gf;AAED,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"hookRuntime.d.ts","sourceRoot":"","sources":["../src/hookRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAiC,KAAK,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAKpG;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpE;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAYD,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAwB3F;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAGvD;AAED,6FAA6F;AAC7F,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,yBAAyB,CAAC,CAEpC;AAED,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,UAAY,CAAC;AAE9C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GACL,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsCxB;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,CAEzE;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAMlE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,sFAAsF;AACtF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;UAO5B,OAAO;GAC3E;AAED;2EAC2E;AAC3E,wBAAsB,eAAe,CACnC,KAAK,EAAE,gBAAgB,EACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC7D,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAChD,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1D,OAAO,CAAC,IAAI,CAAC,CA2Gf;AAED,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
package/dist/hookRuntime.js
CHANGED
package/dist/hookRuntime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookRuntime.js","sourceRoot":"","sources":["../src/hookRuntime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hookRuntime.js","sourceRoot":"","sources":["../src/hookRuntime.ts"],"names":[],"mappings":"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"}
|
package/dist/hookTimeouts.d.ts
CHANGED
|
@@ -94,47 +94,59 @@ export declare function withHookTimeout(ms: number): {
|
|
|
94
94
|
cleanup: () => void;
|
|
95
95
|
};
|
|
96
96
|
/**
|
|
97
|
-
*
|
|
97
|
+
* The main hook call (POST /api/v1/hooks/injections) is hedged: when the first
|
|
98
|
+
* request has not answered by HOOK_HEDGE_SHARE of the budget, a second request
|
|
99
|
+
* starts beside it on a fresh connection, and whichever answers first is used.
|
|
98
100
|
*
|
|
99
|
-
* Why
|
|
100
|
-
* were lost for 50 minutes to a stall between Cloudflare
|
|
101
|
-
* node. The server had accepted those requests and was
|
|
102
|
-
* never finished arriving. A second request opens a new
|
|
103
|
-
* normally lands on a healthy path.
|
|
104
|
-
* injection bus dedups on the server), so repeating it is safe.
|
|
101
|
+
* Why a second request at all: on 24 October 2026 about a third of one
|
|
102
|
+
* machine's hook calls were lost for 50 minutes to a stall between Cloudflare
|
|
103
|
+
* and one load-balancer node. The server had accepted those requests and was
|
|
104
|
+
* waiting for a body that never finished arriving. A second request opens a new
|
|
105
|
+
* connection and normally lands on a healthy path.
|
|
105
106
|
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
107
|
+
* Why it is a hedge and not a retry: v7.149.0 abandoned the first request at
|
|
108
|
+
* 65% of the budget and then retried. Every hook process opens its own
|
|
109
|
+
* connection (DNS, TCP and TLS from the user's machine to Cloudflare), and the
|
|
110
|
+
* credential is read before the request leaves, so on 25 October that first
|
|
111
|
+
* request had often been on the wire for only a few hundred milliseconds when
|
|
112
|
+
* it was abandoned. Answers that were merely slow were thrown away, half the
|
|
113
|
+
* calls on the owner's machine needed two requests, about 8% lost both, and the
|
|
114
|
+
* load balancer counted each abandoned request as a client close (ELB 460). A
|
|
115
|
+
* hedge never abandons an answer that is on its way: the first request keeps
|
|
116
|
+
* running to the end of the budget.
|
|
111
117
|
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
118
|
+
* Both requests share one deadline, `budgetMs` from the call, so the budget
|
|
119
|
+
* every hook event is checked against (tests/HookEventBudgets.test.ts) and the
|
|
120
|
+
* host's kill limit do not move. A first request that fails fast (a connection
|
|
121
|
+
* error or a gateway status) starts the second at once instead of at the hedge
|
|
122
|
+
* point.
|
|
116
123
|
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
124
|
+
* What counts as an answer: any response other than a gateway status (408, 502,
|
|
125
|
+
* 503, 504, Cloudflare's 52x) and other than the server's "the first request is
|
|
126
|
+
* still working" reply (HOOK_REPLAY_HEADER: pending). A 4xx or a 500 is an
|
|
127
|
+
* answer (null to the caller): repeating it would repeat the failure.
|
|
128
|
+
*
|
|
129
|
+
* The server de-duplicates the two requests by HOOK_REQUEST_ID_HEADER
|
|
130
|
+
* (src/server/hookReplay.ts): the second request is handed the first one's
|
|
131
|
+
* answer, or waits for it, and nothing is counted twice. Nothing is queued or
|
|
132
|
+
* stored on the client; a call with no answer by the deadline is dropped.
|
|
120
133
|
*/
|
|
121
|
-
export declare const
|
|
122
|
-
/** Below this much budget left, a second
|
|
134
|
+
export declare const HOOK_HEDGE_SHARE = 0.65;
|
|
135
|
+
/** Below this much budget left, a second request cannot complete a round trip. */
|
|
123
136
|
export declare const HOOK_SECOND_ATTEMPT_MIN_MS = 300;
|
|
124
|
-
/** Sent on every
|
|
137
|
+
/** Sent on every request: 1 for the first, 2 for the hedge. */
|
|
125
138
|
export declare const HOOK_ATTEMPT_HEADER = "x-mnemonik-hook-attempt";
|
|
126
139
|
/**
|
|
127
|
-
* Sent on both
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
140
|
+
* Sent on both requests with the same value. The server keeps the first
|
|
141
|
+
* request's answer for a few seconds under this id and hands it to the second,
|
|
142
|
+
* so an answer decided by one request is delivered through either, and nothing
|
|
143
|
+
* is counted twice (src/server/hookReplay.ts).
|
|
131
144
|
*/
|
|
132
145
|
export declare const HOOK_REQUEST_ID_HEADER = "x-mnemonik-hook-request-id";
|
|
133
146
|
/**
|
|
134
|
-
* Sent on every
|
|
135
|
-
*
|
|
136
|
-
*
|
|
137
|
-
* has already given up.
|
|
147
|
+
* Sent on every request: how many milliseconds the caller will still wait. The
|
|
148
|
+
* server fits its own work inside this less the return trip, so it never
|
|
149
|
+
* decides an answer the client will not be there to receive.
|
|
138
150
|
*/
|
|
139
151
|
export declare const HOOK_BUDGET_HEADER = "x-mnemonik-hook-budget-ms";
|
|
140
152
|
/**
|
|
@@ -149,22 +161,48 @@ export declare const HOOK_VERSION_HEADER = "x-mnemonik-hook-version";
|
|
|
149
161
|
export declare function withHookVersion<T extends {
|
|
150
162
|
headers?: unknown;
|
|
151
163
|
}>(init: T, runtime: string, version: string): T;
|
|
164
|
+
/**
|
|
165
|
+
* Sent on every request by a hedging client (hedgedHookRequest). Its budget
|
|
166
|
+
* header is what the whole call still has; clients v7.149 to v7.151 sent the
|
|
167
|
+
* first attempt's own 1.3 s cut-off instead, so a server that sees no marker
|
|
168
|
+
* assumes the whole-call 2 s budget rather than trusting that header.
|
|
169
|
+
*/
|
|
170
|
+
export declare const HOOK_HEDGED_HEADER = "x-mnemonik-hook-hedged";
|
|
171
|
+
/**
|
|
172
|
+
* Sent on the second request only: what had become of the first when the second
|
|
173
|
+
* left. `pending; sent=812` (still waiting, its body finished sending 812 ms
|
|
174
|
+
* earlier), `pending; sent=none` (it had not finished sending, so the client
|
|
175
|
+
* itself was slow), `gateway; sent=<ms>` (the edge answered 502/503/504/52x) or
|
|
176
|
+
* `transport; sent=<ms>` (the connection failed). The server uses it to count
|
|
177
|
+
* requests the network lost on the way in, which is what the edge alarm reads
|
|
178
|
+
* (src/server/hookReplay.ts, hookEdgeMetrics.ts).
|
|
179
|
+
*/
|
|
180
|
+
export declare const HOOK_FIRST_ATTEMPT_HEADER = "x-mnemonik-hook-first-attempt";
|
|
181
|
+
/**
|
|
182
|
+
* Set by the server on a reply that is not an answer: the request found the
|
|
183
|
+
* other request of the same call still working on it and could not wait any
|
|
184
|
+
* longer. The client keeps waiting for the other request.
|
|
185
|
+
*/
|
|
186
|
+
export declare const HOOK_REPLAY_HEADER = "x-mnemonik-hook-replay";
|
|
187
|
+
export declare const HOOK_REPLAY_PENDING = "pending";
|
|
188
|
+
export type HookFirstAttemptState = 'pending' | 'gateway' | 'transport';
|
|
189
|
+
export interface HookFirstAttempt {
|
|
190
|
+
state: HookFirstAttemptState;
|
|
191
|
+
/** Milliseconds since the first request finished sending its body; null when it had not. */
|
|
192
|
+
sentAgoMs: number | null;
|
|
193
|
+
}
|
|
194
|
+
export declare function formatHookFirstAttempt(first: HookFirstAttempt): string;
|
|
195
|
+
export declare function parseHookFirstAttempt(value: unknown): HookFirstAttempt | null;
|
|
152
196
|
/** Statuses that mean the request did not reach, or was not served by, the application. */
|
|
153
197
|
export declare function isRetryableHookStatus(status: number): boolean;
|
|
154
198
|
/** Timeouts and connection failures. A parse error or a bug in the caller is not transient. */
|
|
155
199
|
export declare function isTransientHookFetchError(error: unknown): boolean;
|
|
156
|
-
export type HookAttemptResult<T> = {
|
|
157
|
-
done: true;
|
|
158
|
-
value: T;
|
|
159
|
-
} | {
|
|
160
|
-
done: false;
|
|
161
|
-
};
|
|
162
200
|
/**
|
|
163
|
-
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
201
|
+
* Send one hook call as up to two hedged requests inside `budgetMs` (see
|
|
202
|
+
* HOOK_HEDGE_SHARE). `send` performs one request with the headers and signal it
|
|
203
|
+
* is given; `parse` reads an answer. Returns the first answer, null when no
|
|
204
|
+
* request answered in time or the answer was an error status, and rejects only
|
|
205
|
+
* when `send` or `parse` fails in a way that is not a transport failure.
|
|
168
206
|
*/
|
|
169
|
-
export declare function
|
|
207
|
+
export declare function hedgedHookRequest<T>(budgetMs: number, send: (headers: Record<string, string>, signal: AbortSignal) => Promise<Response>, parse: (response: Response) => Promise<T>, clock?: () => number): Promise<T | null>;
|
|
170
208
|
//# sourceMappingURL=hookTimeouts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hookTimeouts.d.ts","sourceRoot":"","sources":["../src/hookTimeouts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hookTimeouts.d.ts","sourceRoot":"","sources":["../src/hookTimeouts.ts"],"names":[],"mappings":"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"}
|