@schlessera/brain-ui-server 0.34.1 → 0.35.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/README.md +28 -0
- package/dist/activity/notify.d.ts.map +1 -1
- package/dist/activity/notify.js +18 -8
- package/dist/activity/notify.js.map +1 -1
- package/dist/activity/push-sender.d.ts +7 -3
- package/dist/activity/push-sender.d.ts.map +1 -1
- package/dist/activity/push-sender.js +45 -11
- package/dist/activity/push-sender.js.map +1 -1
- package/dist/activity/query.d.ts.map +1 -1
- package/dist/activity/query.js +8 -0
- package/dist/activity/query.js.map +1 -1
- package/dist/activity/recorder.d.ts +11 -1
- package/dist/activity/recorder.d.ts.map +1 -1
- package/dist/activity/recorder.js +52 -2
- package/dist/activity/recorder.js.map +1 -1
- package/dist/activity/runtime.d.ts.map +1 -1
- package/dist/activity/runtime.js +2 -5
- package/dist/activity/runtime.js.map +1 -1
- package/dist/activity/sql.d.ts +3 -3
- package/dist/activity/sql.d.ts.map +1 -1
- package/dist/activity/sql.js +7 -5
- package/dist/activity/sql.js.map +1 -1
- package/dist/activity/store.d.ts +7 -0
- package/dist/activity/store.d.ts.map +1 -1
- package/dist/activity/store.js +15 -3
- package/dist/activity/store.js.map +1 -1
- package/dist/activity/stream.d.ts +3 -1
- package/dist/activity/stream.d.ts.map +1 -1
- package/dist/activity/stream.js +32 -17
- package/dist/activity/stream.js.map +1 -1
- package/dist/app-env.d.ts +8 -0
- package/dist/app-env.d.ts.map +1 -0
- package/dist/app-env.js +2 -0
- package/dist/app-env.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +28 -3
- package/dist/app.js.map +1 -1
- package/dist/brain/client.d.ts +4 -2
- package/dist/brain/client.d.ts.map +1 -1
- package/dist/brain/client.js +60 -20
- package/dist/brain/client.js.map +1 -1
- package/dist/brain/types.d.ts +9 -0
- package/dist/brain/types.d.ts.map +1 -1
- package/dist/cron/run-job.d.ts.map +1 -1
- package/dist/cron/run-job.js +60 -10
- package/dist/cron/run-job.js.map +1 -1
- package/dist/db/principals.d.ts +72 -0
- package/dist/db/principals.d.ts.map +1 -0
- package/dist/db/principals.js +294 -0
- package/dist/db/principals.js.map +1 -0
- package/dist/files/walker.d.ts.map +1 -1
- package/dist/files/walker.js +6 -1
- package/dist/files/walker.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/middleware/auth.d.ts +37 -9
- package/dist/middleware/auth.d.ts.map +1 -1
- package/dist/middleware/auth.js +148 -74
- package/dist/middleware/auth.js.map +1 -1
- package/dist/middleware/passkeys.d.ts +9 -7
- package/dist/middleware/passkeys.d.ts.map +1 -1
- package/dist/middleware/passkeys.js +25 -7
- package/dist/middleware/passkeys.js.map +1 -1
- package/dist/middleware/principals.d.ts +18 -0
- package/dist/middleware/principals.d.ts.map +1 -0
- package/dist/middleware/principals.js +138 -0
- package/dist/middleware/principals.js.map +1 -0
- package/dist/middleware/require-owner.d.ts +5 -0
- package/dist/middleware/require-owner.d.ts.map +1 -0
- package/dist/middleware/require-owner.js +10 -0
- package/dist/middleware/require-owner.js.map +1 -0
- package/dist/observability/loggers.js +1 -1
- package/dist/observability/loggers.js.map +1 -1
- package/dist/routes/activity.d.ts.map +1 -1
- package/dist/routes/activity.js +3 -0
- package/dist/routes/activity.js.map +1 -1
- package/dist/routes/brain.d.ts.map +1 -1
- package/dist/routes/brain.js +102 -63
- package/dist/routes/brain.js.map +1 -1
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +7 -2
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/push.d.ts +61 -2
- package/dist/routes/push.d.ts.map +1 -1
- package/dist/routes/push.js +8 -3
- package/dist/routes/push.js.map +1 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +30 -4
- package/dist/routes/sessions.js.map +1 -1
- package/dist/share/staging.d.ts.map +1 -1
- package/dist/share/staging.js +11 -4
- package/dist/share/staging.js.map +1 -1
- package/dist/ws/bridge.d.ts.map +1 -1
- package/dist/ws/bridge.js +6 -2
- package/dist/ws/bridge.js.map +1 -1
- package/dist/ws/clients.d.ts +9 -2
- package/dist/ws/clients.d.ts.map +1 -1
- package/dist/ws/clients.js +44 -6
- package/dist/ws/clients.js.map +1 -1
- package/dist/ws/connection.d.ts +7 -4
- package/dist/ws/connection.d.ts.map +1 -1
- package/dist/ws/connection.js +83 -12
- package/dist/ws/connection.js.map +1 -1
- package/dist/ws/dispatch.d.ts +12 -1
- package/dist/ws/dispatch.d.ts.map +1 -1
- package/dist/ws/dispatch.js +46 -6
- package/dist/ws/dispatch.js.map +1 -1
- package/dist/ws/history.d.ts.map +1 -1
- package/dist/ws/history.js +7 -5
- package/dist/ws/history.js.map +1 -1
- package/dist/ws/host.d.ts +22 -0
- package/dist/ws/host.d.ts.map +1 -1
- package/dist/ws/host.js +39 -1
- package/dist/ws/host.js.map +1 -1
- package/dist/ws/run-session.d.ts +7 -7
- package/dist/ws/run-session.d.ts.map +1 -1
- package/dist/ws/run-session.js +208 -52
- package/dist/ws/run-session.js.map +1 -1
- package/dist/ws/shrink.d.ts +3 -1
- package/dist/ws/shrink.d.ts.map +1 -1
- package/dist/ws/shrink.js +46 -16
- package/dist/ws/shrink.js.map +1 -1
- package/dist/ws/turns.d.ts +58 -3
- package/dist/ws/turns.d.ts.map +1 -1
- package/dist/ws/turns.js +101 -2
- package/dist/ws/turns.js.map +1 -1
- package/migrations/011_principals.sql +13 -0
- package/migrations/012_activity_principals.sql +12 -0
- package/migrations/013_push_subscription_principals.sql +7 -0
- package/migrations/014_invalidate_legacy_sessions.sql +14 -0
- package/package.json +3 -3
- package/src/activity/notify.ts +16 -7
- package/src/activity/push-sender.ts +79 -16
- package/src/activity/query.ts +8 -0
- package/src/activity/recorder.ts +68 -3
- package/src/activity/runtime.ts +2 -5
- package/src/activity/sql.ts +7 -5
- package/src/activity/store.ts +32 -1
- package/src/activity/stream.ts +37 -17
- package/src/app-env.ts +8 -0
- package/src/app.ts +33 -4
- package/src/brain/client.ts +61 -20
- package/src/brain/types.ts +10 -0
- package/src/cron/run-job.ts +41 -17
- package/src/db/principals.ts +452 -0
- package/src/files/walker.ts +5 -1
- package/src/index.ts +6 -1
- package/src/middleware/auth.ts +241 -81
- package/src/middleware/passkeys.ts +35 -14
- package/src/middleware/principals.ts +189 -0
- package/src/middleware/require-owner.ts +13 -0
- package/src/observability/loggers.ts +1 -1
- package/src/routes/activity.ts +3 -0
- package/src/routes/brain.ts +107 -70
- package/src/routes/files.ts +10 -5
- package/src/routes/push.ts +11 -5
- package/src/routes/sessions.ts +45 -20
- package/src/share/staging.ts +11 -4
- package/src/ws/bridge.ts +14 -2
- package/src/ws/clients.ts +52 -7
- package/src/ws/connection.ts +98 -20
- package/src/ws/dispatch.ts +66 -6
- package/src/ws/history.ts +7 -5
- package/src/ws/host.ts +59 -1
- package/src/ws/run-session.ts +247 -74
- package/src/ws/shrink.ts +48 -14
- package/src/ws/turns.ts +136 -5
package/dist/ws/host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/ws/host.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EAAE,yBAAyB,EAAsB,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/ws/host.ts"],"names":[],"mappings":"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"}
|
package/dist/ws/run-session.d.ts
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import type { ChatImageAttachment, ClientEnvironment } from "@schlessera/brain-ui-sdk/protocol";
|
|
2
2
|
import type { WSContext } from "./clients.js";
|
|
3
|
+
import type { AuthorizationContext } from "./turns.js";
|
|
3
4
|
import { type WsHost } from "./host.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* order. The host owns per-turn cancellation (AbortController + timeout). Never
|
|
7
|
-
* throws — runtime failures are emitted as error frames.
|
|
8
|
-
*/
|
|
9
|
-
export declare function runSession(host: WsHost, initial: {
|
|
5
|
+
type RunSessionInput = {
|
|
6
|
+
authorization: AuthorizationContext;
|
|
10
7
|
text: string;
|
|
11
8
|
sessionId?: string;
|
|
12
9
|
attachments: ChatImageAttachment[];
|
|
@@ -14,9 +11,11 @@ export declare function runSession(host: WsHost, initial: {
|
|
|
14
11
|
client?: ClientEnvironment;
|
|
15
12
|
/** Client correlation id for a new conversation; echoed on session_info. */
|
|
16
13
|
draftId?: string;
|
|
17
|
-
}
|
|
14
|
+
};
|
|
15
|
+
export declare function runSession(host: WsHost, initial: RunSessionInput): Promise<void>;
|
|
18
16
|
/** Dispatch a chat_message: follow-up to a running session, or a new session. */
|
|
19
17
|
export declare function handleChatMessage(host: WsHost, ws: WSContext, msg: {
|
|
18
|
+
authorization: AuthorizationContext;
|
|
20
19
|
text: string;
|
|
21
20
|
sessionId?: string;
|
|
22
21
|
attachments: ChatImageAttachment[];
|
|
@@ -24,4 +23,5 @@ export declare function handleChatMessage(host: WsHost, ws: WSContext, msg: {
|
|
|
24
23
|
client?: ClientEnvironment;
|
|
25
24
|
draftId?: string;
|
|
26
25
|
}): Promise<void>;
|
|
26
|
+
export {};
|
|
27
27
|
//# sourceMappingURL=run-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-session.d.ts","sourceRoot":"","sources":["../../src/ws/run-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"run-session.d.ts","sourceRoot":"","sources":["../../src/ws/run-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,mBAAmB,EACnB,iBAAiB,EAClB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,OAAO,KAAK,EAAE,oBAAoB,EAA+B,MAAM,YAAY,CAAC;AAEpF,OAAO,EAKL,KAAK,MAAM,EACZ,MAAM,WAAW,CAAC;AA6CnB,KAAK,eAAe,GAAG;IACrB,aAAa,EAAE,oBAAoB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAOtF;AAqVD,iFAAiF;AACjF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,SAAS,EACb,GAAG,EAAE;IACH,aAAa,EAAE,oBAAoB,CAAC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,IAAI,CAAC,CA0Ff"}
|
package/dist/ws/run-session.js
CHANGED
|
@@ -9,8 +9,50 @@ import { MAX_SESSION_QUEUE, QUEUE_MAX_BYTES, QUEUE_WARN_BYTES, turnLogAttributes
|
|
|
9
9
|
* order. The host owns per-turn cancellation (AbortController + timeout). Never
|
|
10
10
|
* throws — runtime failures are emitted as error frames.
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Write out cancellations that were accepted before a recorder existed.
|
|
14
|
+
*
|
|
15
|
+
* A cancel can land while routing or billing is still in flight, when there is
|
|
16
|
+
* nothing to record it on yet, so the actor is buffered on the turn. Both exits
|
|
17
|
+
* from that window have to drain it — the ordinary one, which then has a
|
|
18
|
+
* recorder, and the revoked one, which must build a throwaway recorder rather
|
|
19
|
+
* than drop a decision someone actually made.
|
|
20
|
+
*/
|
|
21
|
+
function recordPendingCancellations(host, turn, billing) {
|
|
22
|
+
if (turn.pendingCancellationPrincipalIds.length === 0)
|
|
23
|
+
return;
|
|
24
|
+
const recorder = turn.recorder ??
|
|
25
|
+
(host.activity
|
|
26
|
+
? createTurnRecorder({
|
|
27
|
+
store: host.activity.store,
|
|
28
|
+
onWrite: () => host.activity.stream.pump(),
|
|
29
|
+
log: host.log,
|
|
30
|
+
}, {
|
|
31
|
+
turnId: turn.turnId,
|
|
32
|
+
sessionId: turn.sessionId,
|
|
33
|
+
principalId: turn.principalId,
|
|
34
|
+
...billing,
|
|
35
|
+
})
|
|
36
|
+
: undefined);
|
|
37
|
+
for (const principalId of turn.pendingCancellationPrincipalIds) {
|
|
38
|
+
recorder?.recordCancellation(principalId);
|
|
39
|
+
}
|
|
40
|
+
turn.pendingCancellationPrincipalIds.length = 0;
|
|
41
|
+
}
|
|
12
42
|
export async function runSession(host, initial) {
|
|
43
|
+
const releaseAuthorization = initial.authorization.retain();
|
|
44
|
+
try {
|
|
45
|
+
await runRetainedSession(host, initial);
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
releaseAuthorization();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
async function runRetainedSession(host, initial) {
|
|
13
52
|
const { coordinator } = host;
|
|
53
|
+
const starting = { queue: [], cancelled: false };
|
|
54
|
+
if (initial.sessionId)
|
|
55
|
+
coordinator.startingBySession.set(initial.sessionId, starting);
|
|
14
56
|
coordinator.startingSessions += 1;
|
|
15
57
|
let target;
|
|
16
58
|
try {
|
|
@@ -31,7 +73,14 @@ export async function runSession(host, initial) {
|
|
|
31
73
|
}
|
|
32
74
|
finally {
|
|
33
75
|
coordinator.startingSessions = Math.max(0, coordinator.startingSessions - 1);
|
|
76
|
+
if (initial.sessionId && coordinator.startingBySession.get(initial.sessionId) === starting) {
|
|
77
|
+
coordinator.startingBySession.delete(initial.sessionId);
|
|
78
|
+
}
|
|
34
79
|
}
|
|
80
|
+
if (starting.cancelled)
|
|
81
|
+
return;
|
|
82
|
+
if (!initial.authorization.valid)
|
|
83
|
+
return;
|
|
35
84
|
const { backend, profileId: initialProfileId } = target;
|
|
36
85
|
if (target.droppedPin) {
|
|
37
86
|
host.log.emit({
|
|
@@ -47,6 +96,8 @@ export async function runSession(host, initial) {
|
|
|
47
96
|
});
|
|
48
97
|
}
|
|
49
98
|
const turn = {
|
|
99
|
+
principalId: initial.authorization.principalId,
|
|
100
|
+
authorization: initial.authorization,
|
|
50
101
|
sessionId: initial.sessionId ?? null,
|
|
51
102
|
turnId: crypto.randomUUID(),
|
|
52
103
|
// Only meaningful when the client had no session id to send.
|
|
@@ -55,7 +106,8 @@ export async function runSession(host, initial) {
|
|
|
55
106
|
backend,
|
|
56
107
|
abortController: new AbortController(),
|
|
57
108
|
timeoutHandle: setTimeout(() => { }, 0),
|
|
58
|
-
queue:
|
|
109
|
+
queue: starting.queue,
|
|
110
|
+
pendingCancellationPrincipalIds: [],
|
|
59
111
|
cancelled: false,
|
|
60
112
|
lastResult: null,
|
|
61
113
|
};
|
|
@@ -66,12 +118,29 @@ export async function runSession(host, initial) {
|
|
|
66
118
|
let profileId = initialProfileId;
|
|
67
119
|
let resumeId = initial.sessionId;
|
|
68
120
|
let next = {
|
|
121
|
+
principalId: initial.authorization.principalId,
|
|
122
|
+
authorization: initial.authorization,
|
|
69
123
|
text: initial.text,
|
|
70
124
|
attachments: initial.attachments,
|
|
71
125
|
...(initial.client ? { client: initial.client } : {}),
|
|
126
|
+
releaseAuthorization: () => { },
|
|
72
127
|
};
|
|
128
|
+
let releaseActiveAuthorization;
|
|
73
129
|
try {
|
|
74
130
|
while (next && !turn.cancelled) {
|
|
131
|
+
releaseActiveAuthorization = next.releaseAuthorization;
|
|
132
|
+
turn.principalId = next.principalId;
|
|
133
|
+
turn.authorization = next.authorization;
|
|
134
|
+
if (!turn.authorization.valid) {
|
|
135
|
+
releaseActiveAuthorization();
|
|
136
|
+
releaseActiveAuthorization = undefined;
|
|
137
|
+
next = turn.queue.shift() ?? null;
|
|
138
|
+
if (next) {
|
|
139
|
+
turn.turnId = crypto.randomUUID();
|
|
140
|
+
turn.lastResult = null;
|
|
141
|
+
}
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
75
144
|
const { text, attachments, client } = next;
|
|
76
145
|
next = null;
|
|
77
146
|
const abortController = new AbortController();
|
|
@@ -101,13 +170,49 @@ export async function runSession(host, initial) {
|
|
|
101
170
|
const billing = host.activity
|
|
102
171
|
? await resolveRunBilling(host.registry, backend.id, profileId)
|
|
103
172
|
: undefined;
|
|
173
|
+
// Revocation can land while routing or billing is in flight. This is the
|
|
174
|
+
// final await boundary before startTurn, so an invalid principal never
|
|
175
|
+
// reaches the backend while an already-running turn remains untouched.
|
|
176
|
+
// Expiry is authoritative, not advisory: the sweep that turns an expired
|
|
177
|
+
// principal into a revocation runs on a timer, and a follow-up dequeued
|
|
178
|
+
// inside that window would otherwise start — reviewer measured one
|
|
179
|
+
// starting 12ms past expiry — and then survive, because a started turn is
|
|
180
|
+
// deliberately never aborted. Enforce it at the same boundary that
|
|
181
|
+
// enforces revocation, so the timer only has to close the socket.
|
|
182
|
+
host.expireAuthorizationContexts();
|
|
183
|
+
if (!turn.authorization.valid) {
|
|
184
|
+
clearTimeout(timeoutHandle);
|
|
185
|
+
releaseActiveAuthorization();
|
|
186
|
+
releaseActiveAuthorization = undefined;
|
|
187
|
+
// A cancellation accepted while billing was in flight is already a
|
|
188
|
+
// decision someone made; losing it because the turn's own principal
|
|
189
|
+
// was revoked a moment later would erase the actor, not the turn. Drain
|
|
190
|
+
// the buffer before leaving.
|
|
191
|
+
recordPendingCancellations(host, turn, billing);
|
|
192
|
+
if (turn.queue.length > 0) {
|
|
193
|
+
next = turn.queue.shift();
|
|
194
|
+
turn.turnId = crypto.randomUUID();
|
|
195
|
+
turn.lastResult = null;
|
|
196
|
+
}
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
104
199
|
const recorder = host.activity
|
|
105
200
|
? createTurnRecorder({
|
|
106
201
|
store: host.activity.store,
|
|
107
202
|
onWrite: () => host.activity.stream.pump(),
|
|
108
203
|
log: host.log,
|
|
109
|
-
}, {
|
|
204
|
+
}, {
|
|
205
|
+
turnId: turn.turnId,
|
|
206
|
+
sessionId: turn.sessionId,
|
|
207
|
+
principalId: turn.principalId,
|
|
208
|
+
...billing,
|
|
209
|
+
})
|
|
110
210
|
: undefined;
|
|
211
|
+
turn.recorder = recorder;
|
|
212
|
+
for (const principalId of turn.pendingCancellationPrincipalIds) {
|
|
213
|
+
recorder?.recordCancellation(principalId);
|
|
214
|
+
}
|
|
215
|
+
turn.pendingCancellationPrincipalIds.length = 0;
|
|
111
216
|
const bridge = makeBridge(host, turn, text, backend.id, recorder);
|
|
112
217
|
const startedAt = Date.now();
|
|
113
218
|
host.reportTurnStarted(turn);
|
|
@@ -150,6 +255,9 @@ export async function runSession(host, initial) {
|
|
|
150
255
|
}
|
|
151
256
|
finally {
|
|
152
257
|
clearTimeout(timeoutHandle);
|
|
258
|
+
turn.recorder = undefined;
|
|
259
|
+
releaseActiveAuthorization();
|
|
260
|
+
releaseActiveAuthorization = undefined;
|
|
153
261
|
}
|
|
154
262
|
// Subsequent (queued) turns resume the now-known session and keep its
|
|
155
263
|
// pin. turn.providerId is the resolved profile (set from initial routing
|
|
@@ -167,8 +275,13 @@ export async function runSession(host, initial) {
|
|
|
167
275
|
}
|
|
168
276
|
}
|
|
169
277
|
finally {
|
|
170
|
-
|
|
278
|
+
releaseActiveAuthorization?.();
|
|
279
|
+
next?.releaseAuthorization();
|
|
280
|
+
for (const entry of turn.queue.splice(0))
|
|
281
|
+
entry.releaseAuthorization();
|
|
282
|
+
if (turn.sessionId && coordinator.bySession.get(turn.sessionId) === turn) {
|
|
171
283
|
coordinator.bySession.delete(turn.sessionId);
|
|
284
|
+
}
|
|
172
285
|
coordinator.running.delete(turn);
|
|
173
286
|
coordinator.drainPendingForTurn(turn, "Session ended");
|
|
174
287
|
}
|
|
@@ -204,66 +317,108 @@ async function resolveRunBilling(registry, backendId, profileId) {
|
|
|
204
317
|
function formatMb(bytes) {
|
|
205
318
|
return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
|
|
206
319
|
}
|
|
320
|
+
/** Apply the same queue budgets during routing and during a running turn. */
|
|
321
|
+
function queueFollowUp(host, ws, sessionId, slot, entry) {
|
|
322
|
+
const parked = queuedBytes(slot);
|
|
323
|
+
const incoming = queuedFollowUpBytes(entry);
|
|
324
|
+
// A single message can never exceed the budget on its own: the frame cap
|
|
325
|
+
// is 12 MB and a message's attachments are capped well below that, so an
|
|
326
|
+
// empty queue always has room and this cannot wedge.
|
|
327
|
+
const overBudget = parked + incoming > QUEUE_MAX_BYTES;
|
|
328
|
+
const overDepth = slot.queue.length >= MAX_SESSION_QUEUE;
|
|
329
|
+
if (overBudget || overDepth) {
|
|
330
|
+
host.sendMessage(ws,
|
|
331
|
+
// Session-scoped only: the rejected message would have become a
|
|
332
|
+
// FUTURE turn in this slot, not the one currently running.
|
|
333
|
+
withSessionId({
|
|
334
|
+
type: "error",
|
|
335
|
+
code: "SESSION_QUEUE_FULL",
|
|
336
|
+
message: overBudget
|
|
337
|
+
? `This session's queue is full (${formatMb(parked)} of ${formatMb(QUEUE_MAX_BYTES)}; this message needs ${formatMb(incoming)}). Wait for it to catch up.`
|
|
338
|
+
: `This session's queue is full (${MAX_SESSION_QUEUE} messages). Wait for it to catch up.`,
|
|
339
|
+
}, sessionId));
|
|
340
|
+
// The entry never joins a queue, so nothing else will ever release its
|
|
341
|
+
// lease: a refused follow-up would otherwise hold its principal
|
|
342
|
+
// discoverable forever and the registry would never empty.
|
|
343
|
+
entry.releaseAuthorization();
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
// Queue it as the session's next turn; report queued immediately.
|
|
347
|
+
slot.queue.push(entry);
|
|
348
|
+
const total = parked + incoming;
|
|
349
|
+
// Accepted, but heavy enough that the sender should know before they hit
|
|
350
|
+
// the wall — every queued byte is held in this process until its turn runs.
|
|
351
|
+
const detail = total >= QUEUE_WARN_BYTES
|
|
352
|
+
? `Queue is holding ${formatMb(total)} across ${slot.queue.length} messages (limit ${formatMb(QUEUE_MAX_BYTES)}).`
|
|
353
|
+
: undefined;
|
|
354
|
+
if (detail) {
|
|
355
|
+
host.log.emit({
|
|
356
|
+
severityText: "WARN",
|
|
357
|
+
body: "session follow-up queue is heavy",
|
|
358
|
+
attributes: {
|
|
359
|
+
"session.id": sessionId,
|
|
360
|
+
size: formatMb(total),
|
|
361
|
+
queued: slot.queue.length,
|
|
362
|
+
},
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
host.sendToClients(withSessionId({ type: "status", status: "queued", ...(detail ? { detail } : {}) }, sessionId));
|
|
366
|
+
}
|
|
207
367
|
/** Dispatch a chat_message: follow-up to a running session, or a new session. */
|
|
208
368
|
export async function handleChatMessage(host, ws, msg) {
|
|
209
|
-
const { text, attachments, sessionId, providerId: requestedProviderId, client, draftId } = msg;
|
|
369
|
+
const { authorization, text, attachments, sessionId, providerId: requestedProviderId, client, draftId, } = msg;
|
|
210
370
|
const { coordinator } = host;
|
|
211
371
|
const runningTurn = sessionId ? coordinator.bySession.get(sessionId) : undefined;
|
|
372
|
+
const starting = sessionId ? coordinator.startingBySession.get(sessionId) : undefined;
|
|
373
|
+
if (starting && sessionId) {
|
|
374
|
+
if (starting.cancelled) {
|
|
375
|
+
host.sendMessage(ws, { type: "error", code: "SESSION_BUSY", sessionId, message: "This session is cancelling. Wait before sending again." });
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
queueFollowUp(host, ws, sessionId, starting, {
|
|
379
|
+
principalId: authorization.principalId,
|
|
380
|
+
authorization,
|
|
381
|
+
text,
|
|
382
|
+
attachments,
|
|
383
|
+
...(client ? { client } : {}),
|
|
384
|
+
releaseAuthorization: authorization.retain(),
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
212
389
|
if (runningTurn && sessionId) {
|
|
213
390
|
const backend = runningTurn.backend;
|
|
214
|
-
//
|
|
215
|
-
|
|
391
|
+
// Drain older messages queued during routing before allowing native
|
|
392
|
+
// injection to overtake them.
|
|
393
|
+
if (backend.capabilities.followUp && backend.followUp && runningTurn.queue.length === 0) {
|
|
216
394
|
// Inject into the running turn; frames flow through its bridge. The
|
|
217
395
|
// device snapshot is deliberately not forwarded: a follow-up joins a
|
|
218
396
|
// turn whose system prompt was already built and cannot be revised.
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
397
|
+
runningTurn.recorder?.recordFollowUp(authorization.principalId);
|
|
398
|
+
void (async () => {
|
|
399
|
+
const releaseFollowUp = authorization.retain();
|
|
400
|
+
try {
|
|
401
|
+
await backend.followUp({ sessionId, prompt: text, attachments });
|
|
402
|
+
}
|
|
403
|
+
catch (err) {
|
|
404
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
405
|
+
host.reportTurnFailed("FOLLOWUP_FAILED", runningTurn, message);
|
|
406
|
+
host.sendToClients(withTurnScope({ type: "error", code: "FOLLOWUP_FAILED", message }, runningTurn));
|
|
407
|
+
}
|
|
408
|
+
finally {
|
|
409
|
+
releaseFollowUp();
|
|
410
|
+
}
|
|
411
|
+
})();
|
|
224
412
|
}
|
|
225
413
|
else {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
if (overBudget || overDepth) {
|
|
235
|
-
host.sendMessage(ws,
|
|
236
|
-
// Session-scoped only: the rejected message would have become a
|
|
237
|
-
// FUTURE turn in this slot, not the one currently running.
|
|
238
|
-
withSessionId({
|
|
239
|
-
type: "error",
|
|
240
|
-
code: "SESSION_QUEUE_FULL",
|
|
241
|
-
message: overBudget
|
|
242
|
-
? `This session's queue is full (${formatMb(parked)} of ${formatMb(QUEUE_MAX_BYTES)}; this message needs ${formatMb(incoming)}). Wait for it to catch up.`
|
|
243
|
-
: `This session's queue is full (${MAX_SESSION_QUEUE} messages). Wait for it to catch up.`,
|
|
244
|
-
}, sessionId));
|
|
245
|
-
return;
|
|
246
|
-
}
|
|
247
|
-
// Queue it as the session's next turn; report queued immediately.
|
|
248
|
-
runningTurn.queue.push(entry);
|
|
249
|
-
const total = parked + incoming;
|
|
250
|
-
// Accepted, but heavy enough that the sender should know before they hit
|
|
251
|
-
// the wall — every queued byte is held in this process until its turn runs.
|
|
252
|
-
const detail = total >= QUEUE_WARN_BYTES
|
|
253
|
-
? `Queue is holding ${formatMb(total)} across ${runningTurn.queue.length} messages (limit ${formatMb(QUEUE_MAX_BYTES)}).`
|
|
254
|
-
: undefined;
|
|
255
|
-
if (detail) {
|
|
256
|
-
host.log.emit({
|
|
257
|
-
severityText: "WARN",
|
|
258
|
-
body: "session follow-up queue is heavy",
|
|
259
|
-
attributes: {
|
|
260
|
-
"session.id": sessionId,
|
|
261
|
-
size: formatMb(total),
|
|
262
|
-
queued: runningTurn.queue.length,
|
|
263
|
-
},
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
host.sendToClients(withSessionId({ type: "status", status: "queued", ...(detail ? { detail } : {}) }, sessionId));
|
|
414
|
+
queueFollowUp(host, ws, sessionId, runningTurn, {
|
|
415
|
+
principalId: authorization.principalId,
|
|
416
|
+
authorization,
|
|
417
|
+
text,
|
|
418
|
+
attachments,
|
|
419
|
+
...(client ? { client } : {}),
|
|
420
|
+
releaseAuthorization: authorization.retain(),
|
|
421
|
+
});
|
|
267
422
|
}
|
|
268
423
|
return;
|
|
269
424
|
}
|
|
@@ -282,6 +437,7 @@ export async function handleChatMessage(host, ws, msg) {
|
|
|
282
437
|
host.sendToClients(withSessionId({ type: "status", status: "thinking" }, sessionId));
|
|
283
438
|
}
|
|
284
439
|
void runSession(host, {
|
|
440
|
+
authorization,
|
|
285
441
|
text,
|
|
286
442
|
sessionId,
|
|
287
443
|
attachments,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-session.js","sourceRoot":"","sources":["../../src/ws/run-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-session.js","sourceRoot":"","sources":["../../src/ws/run-session.ts"],"names":[],"mappings":"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"}
|
package/dist/ws/shrink.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare const MAX_WS_MESSAGE_BYTES = 512000;
|
|
|
23
23
|
/** Target byte size for one `session_history` chunk. Below the frame cap so a
|
|
24
24
|
* batch plus its wrapper stays comfortably under {@link MAX_WS_MESSAGE_BYTES}. */
|
|
25
25
|
export declare const HISTORY_CHUNK_BYTES = 400000;
|
|
26
|
+
/** JSON's UTF-8 wire size, including escaped control characters. */
|
|
27
|
+
export declare function jsonBytes(value: unknown): number;
|
|
26
28
|
/**
|
|
27
29
|
* Return `value` unchanged when its JSON serialization already fits
|
|
28
30
|
* {@link MAX_WS_MESSAGE_BYTES}; otherwise return a deep-cloned shadow shrunk
|
|
@@ -30,5 +32,5 @@ export declare const HISTORY_CHUNK_BYTES = 400000;
|
|
|
30
32
|
* only string leaves and array tails change — discriminator fields, ids, and
|
|
31
33
|
* other small metadata pass through untouched.
|
|
32
34
|
*/
|
|
33
|
-
export declare function shrinkForReplication<T>(value: T): T;
|
|
35
|
+
export declare function shrinkForReplication<T>(value: T, maxBytes?: number): T;
|
|
34
36
|
//# sourceMappingURL=shrink.d.ts.map
|
package/dist/ws/shrink.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/ws/shrink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;yDACyD;AACzD,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAE5C;kFACkF;AAClF,eAAO,MAAM,mBAAmB,SAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"shrink.d.ts","sourceRoot":"","sources":["../../src/ws/shrink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;yDACyD;AACzD,eAAO,MAAM,oBAAoB,SAAU,CAAC;AAE5C;kFACkF;AAClF,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAwB3C,oEAAoE;AACpE,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhD;AA4DD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,SAAuB,GAAG,CAAC,CAQpF"}
|
package/dist/ws/shrink.js
CHANGED
|
@@ -24,10 +24,9 @@ export const MAX_WS_MESSAGE_BYTES = 512_000;
|
|
|
24
24
|
* batch plus its wrapper stays comfortably under {@link MAX_WS_MESSAGE_BYTES}. */
|
|
25
25
|
export const HISTORY_CHUNK_BYTES = 400_000;
|
|
26
26
|
/**
|
|
27
|
-
* Progressive shrink passes. Each tightens
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* every array to one element, so even pathological mixes converge.
|
|
27
|
+
* Progressive shrink passes. Each tightens display strings and array tails;
|
|
28
|
+
* the loop stops when the serialized UTF-8 payload fits. Identity strings
|
|
29
|
+
* remain intact, and typed arrays never receive an untyped elision marker.
|
|
31
30
|
*/
|
|
32
31
|
const SHRINK_PASSES = [
|
|
33
32
|
{ stringCap: 64 * 1024, arrayLimit: 256 },
|
|
@@ -39,33 +38,64 @@ const SHRINK_PASSES = [
|
|
|
39
38
|
{ stringCap: 64, arrayLimit: 1 },
|
|
40
39
|
];
|
|
41
40
|
const STRING_ELISION_RESERVE = 80;
|
|
41
|
+
/** JSON's UTF-8 wire size, including escaped control characters. */
|
|
42
|
+
export function jsonBytes(value) {
|
|
43
|
+
return Buffer.byteLength(JSON.stringify(value), "utf8");
|
|
44
|
+
}
|
|
45
|
+
// These strings identify protocol objects rather than display text.
|
|
46
|
+
const IDENTITY_FIELDS = new Set([
|
|
47
|
+
"id", "type", "kind", "role", "name", "sessionId", "turnId", "draftId",
|
|
48
|
+
"requestId", "toolUseId", "parentToolUseId", "providerId", "backendId",
|
|
49
|
+
]);
|
|
42
50
|
/**
|
|
43
51
|
* Recursively walk `value`, head-truncating any string longer than
|
|
44
52
|
* `stringCap` and head-clipping any array longer than `arrayLimit`. Returns a
|
|
45
53
|
* freshly built deep clone; short strings/numbers/booleans pass through.
|
|
46
54
|
*/
|
|
47
|
-
function shrinkWalk(value, stringCap, arrayLimit) {
|
|
55
|
+
function shrinkWalk(value, stringCap, arrayLimit, opaque = false) {
|
|
48
56
|
if (typeof value === "string") {
|
|
49
57
|
if (value.length <= stringCap)
|
|
50
58
|
return value;
|
|
51
|
-
|
|
59
|
+
let headLen = Math.max(0, stringCap - STRING_ELISION_RESERVE);
|
|
60
|
+
// Never split a UTF-16 surrogate pair at the truncation boundary.
|
|
61
|
+
const last = value.charCodeAt(headLen - 1);
|
|
62
|
+
if (last >= 0xd800 && last <= 0xdbff)
|
|
63
|
+
headLen--;
|
|
52
64
|
return `${value.slice(0, headLen)}\n…[${value.length - headLen} chars elided]`;
|
|
53
65
|
}
|
|
54
66
|
if (Array.isArray(value)) {
|
|
55
67
|
const keep = Math.min(value.length, arrayLimit);
|
|
56
|
-
const
|
|
57
|
-
const out = new Array(elided > 0 ? keep + 1 : keep);
|
|
68
|
+
const out = new Array(keep);
|
|
58
69
|
for (let i = 0; i < keep; i++)
|
|
59
|
-
out[i] = shrinkWalk(value[i], stringCap, arrayLimit);
|
|
60
|
-
if (elided > 0)
|
|
61
|
-
out[keep] = `…[${elided} items elided]`;
|
|
70
|
+
out[i] = shrinkWalk(value[i], stringCap, arrayLimit, opaque);
|
|
62
71
|
return out;
|
|
63
72
|
}
|
|
64
73
|
if (value && typeof value === "object") {
|
|
65
74
|
const src = value;
|
|
66
75
|
const out = {};
|
|
67
|
-
|
|
68
|
-
|
|
76
|
+
// Arbitrary tool input can exceed the cap through key count alone. Clip
|
|
77
|
+
// its records recursively, while preserving fields on protocol objects.
|
|
78
|
+
const keys = Object.keys(src);
|
|
79
|
+
for (const k of opaque ? keys.slice(0, arrayLimit) : keys) {
|
|
80
|
+
out[k] = !opaque && IDENTITY_FIELDS.has(k) && typeof src[k] === "string"
|
|
81
|
+
? src[k]
|
|
82
|
+
: shrinkWalk(src[k], stringCap, arrayLimit, opaque || k === "input");
|
|
83
|
+
}
|
|
84
|
+
// History parts refer to toolCalls by array index. Head clipping preserves
|
|
85
|
+
// retained indices, but references to removed tools must go with them.
|
|
86
|
+
if (!opaque && (src.role === "assistant" || src.role === "user") && Array.isArray(out.toolCalls)) {
|
|
87
|
+
const toolCount = out.toolCalls.length;
|
|
88
|
+
if (Array.isArray(out.parts)) {
|
|
89
|
+
out.parts = out.parts.filter((part) => !part || part.kind !== "tool" ||
|
|
90
|
+
(Number.isInteger(part.toolIndex) && part.toolIndex >= 0 && part.toolIndex < toolCount));
|
|
91
|
+
}
|
|
92
|
+
if (Array.isArray(src.toolCalls) && src.toolCalls.length > toolCount && typeof out.content === "string") {
|
|
93
|
+
const notice = `\n…[${src.toolCalls.length - toolCount} tool calls elided]`;
|
|
94
|
+
out.content += notice;
|
|
95
|
+
if (Array.isArray(out.parts))
|
|
96
|
+
out.parts.push({ kind: "text", text: notice });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
69
99
|
return out;
|
|
70
100
|
}
|
|
71
101
|
return value;
|
|
@@ -77,13 +107,13 @@ function shrinkWalk(value, stringCap, arrayLimit) {
|
|
|
77
107
|
* only string leaves and array tails change — discriminator fields, ids, and
|
|
78
108
|
* other small metadata pass through untouched.
|
|
79
109
|
*/
|
|
80
|
-
export function shrinkForReplication(value) {
|
|
81
|
-
if (
|
|
110
|
+
export function shrinkForReplication(value, maxBytes = MAX_WS_MESSAGE_BYTES) {
|
|
111
|
+
if (jsonBytes(value) <= maxBytes)
|
|
82
112
|
return value;
|
|
83
113
|
let shrunk = value;
|
|
84
114
|
for (const pass of SHRINK_PASSES) {
|
|
85
115
|
shrunk = shrinkWalk(value, pass.stringCap, pass.arrayLimit);
|
|
86
|
-
if (
|
|
116
|
+
if (jsonBytes(shrunk) <= maxBytes)
|
|
87
117
|
return shrunk;
|
|
88
118
|
}
|
|
89
119
|
return shrunk;
|
package/dist/ws/shrink.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/ws/shrink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;yDACyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAE5C;kFACkF;AAClF,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAO3C
|
|
1
|
+
{"version":3,"file":"shrink.js","sourceRoot":"","sources":["../../src/ws/shrink.ts"],"names":[],"mappings":"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"}
|