@schlessera/brain-ui-server 0.18.0 → 0.20.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.
Files changed (130) hide show
  1. package/README.md +5 -1
  2. package/data/model-prices.json +63 -0
  3. package/dist/activity/digest.d.ts +29 -0
  4. package/dist/activity/digest.d.ts.map +1 -0
  5. package/dist/activity/digest.js +89 -0
  6. package/dist/activity/digest.js.map +1 -0
  7. package/dist/activity/notify.d.ts +62 -0
  8. package/dist/activity/notify.d.ts.map +1 -0
  9. package/dist/activity/notify.js +193 -0
  10. package/dist/activity/notify.js.map +1 -0
  11. package/dist/activity/push-sender.d.ts +63 -0
  12. package/dist/activity/push-sender.d.ts.map +1 -0
  13. package/dist/activity/push-sender.js +131 -0
  14. package/dist/activity/push-sender.js.map +1 -0
  15. package/dist/activity/query.d.ts +16 -0
  16. package/dist/activity/query.d.ts.map +1 -0
  17. package/dist/activity/query.js +155 -0
  18. package/dist/activity/query.js.map +1 -0
  19. package/dist/activity/recorder.d.ts +53 -0
  20. package/dist/activity/recorder.d.ts.map +1 -0
  21. package/dist/activity/recorder.js +238 -0
  22. package/dist/activity/recorder.js.map +1 -0
  23. package/dist/activity/runtime.d.ts +37 -0
  24. package/dist/activity/runtime.d.ts.map +1 -0
  25. package/dist/activity/runtime.js +127 -0
  26. package/dist/activity/runtime.js.map +1 -0
  27. package/dist/activity/span-sink.d.ts +22 -0
  28. package/dist/activity/span-sink.d.ts.map +1 -0
  29. package/dist/activity/span-sink.js +138 -0
  30. package/dist/activity/span-sink.js.map +1 -0
  31. package/dist/activity/store.d.ts +256 -0
  32. package/dist/activity/store.d.ts.map +1 -0
  33. package/dist/activity/store.js +657 -0
  34. package/dist/activity/store.js.map +1 -0
  35. package/dist/activity/stream.d.ts +49 -0
  36. package/dist/activity/stream.d.ts.map +1 -0
  37. package/dist/activity/stream.js +353 -0
  38. package/dist/activity/stream.js.map +1 -0
  39. package/dist/agent/backend.d.ts +13 -4
  40. package/dist/agent/backend.d.ts.map +1 -1
  41. package/dist/agent/backend.js +68 -5
  42. package/dist/agent/backend.js.map +1 -1
  43. package/dist/app.d.ts.map +1 -1
  44. package/dist/app.js +33 -2
  45. package/dist/app.js.map +1 -1
  46. package/dist/config/env.d.ts +36 -0
  47. package/dist/config/env.d.ts.map +1 -1
  48. package/dist/config/env.js +66 -2
  49. package/dist/config/env.js.map +1 -1
  50. package/dist/cron/scheduler.d.ts.map +1 -1
  51. package/dist/cron/scheduler.js +20 -5
  52. package/dist/cron/scheduler.js.map +1 -1
  53. package/dist/db/client.d.ts.map +1 -1
  54. package/dist/db/client.js +32 -6
  55. package/dist/db/client.js.map +1 -1
  56. package/dist/db/settings.d.ts +15 -0
  57. package/dist/db/settings.d.ts.map +1 -1
  58. package/dist/db/settings.js +43 -0
  59. package/dist/db/settings.js.map +1 -1
  60. package/dist/index.d.ts +4 -0
  61. package/dist/index.d.ts.map +1 -1
  62. package/dist/index.js +7 -0
  63. package/dist/index.js.map +1 -1
  64. package/dist/pricing/model-pricing.d.ts +61 -0
  65. package/dist/pricing/model-pricing.d.ts.map +1 -0
  66. package/dist/pricing/model-pricing.js +379 -0
  67. package/dist/pricing/model-pricing.js.map +1 -0
  68. package/dist/routes/activity.d.ts +20 -0
  69. package/dist/routes/activity.d.ts.map +1 -0
  70. package/dist/routes/activity.js +308 -0
  71. package/dist/routes/activity.js.map +1 -0
  72. package/dist/routes/models.d.ts +6 -0
  73. package/dist/routes/models.d.ts.map +1 -1
  74. package/dist/routes/models.js +38 -3
  75. package/dist/routes/models.js.map +1 -1
  76. package/dist/routes/push.d.ts +6 -0
  77. package/dist/routes/push.d.ts.map +1 -0
  78. package/dist/routes/push.js +73 -0
  79. package/dist/routes/push.js.map +1 -0
  80. package/dist/routes/sessions.d.ts.map +1 -1
  81. package/dist/routes/sessions.js +20 -4
  82. package/dist/routes/sessions.js.map +1 -1
  83. package/dist/ws/bridge.d.ts +2 -1
  84. package/dist/ws/bridge.d.ts.map +1 -1
  85. package/dist/ws/bridge.js +27 -2
  86. package/dist/ws/bridge.js.map +1 -1
  87. package/dist/ws/connection.d.ts.map +1 -1
  88. package/dist/ws/connection.js +9 -1
  89. package/dist/ws/connection.js.map +1 -1
  90. package/dist/ws/dispatch.d.ts.map +1 -1
  91. package/dist/ws/dispatch.js +11 -0
  92. package/dist/ws/dispatch.js.map +1 -1
  93. package/dist/ws/host.d.ts +16 -0
  94. package/dist/ws/host.d.ts.map +1 -1
  95. package/dist/ws/host.js +2 -0
  96. package/dist/ws/host.js.map +1 -1
  97. package/dist/ws/run-session.d.ts.map +1 -1
  98. package/dist/ws/run-session.js +55 -1
  99. package/dist/ws/run-session.js.map +1 -1
  100. package/migrations/007_activity.sql +114 -0
  101. package/migrations/008_push_subscriptions.sql +24 -0
  102. package/migrations/009_activity_followups.sql +22 -0
  103. package/migrations/010_effective_cost.sql +21 -0
  104. package/package.json +6 -3
  105. package/src/activity/digest.ts +120 -0
  106. package/src/activity/notify.ts +307 -0
  107. package/src/activity/push-sender.ts +215 -0
  108. package/src/activity/query.ts +187 -0
  109. package/src/activity/recorder.ts +313 -0
  110. package/src/activity/runtime.ts +169 -0
  111. package/src/activity/span-sink.ts +152 -0
  112. package/src/activity/store.ts +1069 -0
  113. package/src/activity/stream.ts +396 -0
  114. package/src/agent/backend.ts +91 -10
  115. package/src/app.ts +35 -2
  116. package/src/config/env.ts +90 -2
  117. package/src/cron/scheduler.ts +28 -8
  118. package/src/db/client.ts +31 -6
  119. package/src/db/settings.ts +56 -0
  120. package/src/index.ts +23 -0
  121. package/src/pricing/model-pricing.ts +497 -0
  122. package/src/routes/activity.ts +371 -0
  123. package/src/routes/models.ts +57 -6
  124. package/src/routes/push.ts +90 -0
  125. package/src/routes/sessions.ts +24 -4
  126. package/src/ws/bridge.ts +29 -2
  127. package/src/ws/connection.ts +9 -1
  128. package/src/ws/dispatch.ts +13 -0
  129. package/src/ws/host.ts +18 -0
  130. package/src/ws/run-session.ts +71 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/activity/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Live activity streaming: view-scoped subscriptions, snapshot-then-delta.
3
+ *
4
+ * All emission is change-log driven — one code path for the server's own
5
+ * writes and a foreign writer's (the cron wrapper). A write on this process
6
+ * calls `pump()` directly (near-zero latency); foreign writes are picked up
7
+ * by a fast poll interval that runs ONLY while at least one subscription is
8
+ * live. The pump reads `changesSince(cursor)` and fans each committed change
9
+ * out as an `activity_delta` to matching subscribers, so ordering is the
10
+ * change log's and a delta can never precede its commit (persist-then-emit).
11
+ *
12
+ * The subscribe handler answers with a snapshot whose per-run high-water seq
13
+ * and pump baseline come from ONE store read transaction — there is no gap
14
+ * window between snapshot and first delta, and no duplication the client's
15
+ * seq-discard rule cannot handle.
16
+ *
17
+ * This is deliberately the only place broadcast is per-connection filtered;
18
+ * every other frame keeps the host's broadcast-to-all semantics.
19
+ */
20
+ import { type ActivityRunRollup, type ActivitySpan, type ActivitySpanEvent, type ClientActivitySubscribe, type ClientActivityUnsubscribe } from "@schlessera/brain-ui-sdk/protocol";
21
+ import type { Logger } from "@opentelemetry/api-logs";
22
+ import type { WSContext } from "../ws/clients.js";
23
+ import type { ActivityStore, RunRollupRow, SpanEventRow, SpanRow } from "./store.js";
24
+ /** Store row → wire span. Lifts the typed fields the protocol promotes
25
+ * (toolName, subagent enrichment) out of the naming/attr conventions. */
26
+ export declare function toWireSpan(span: SpanRow): ActivitySpan;
27
+ export declare function toWireEvent(event: SpanEventRow): ActivitySpanEvent;
28
+ /** Store rollup → wire rollup: nullable columns become omitted-when-null per
29
+ * the optional wire contract (effectiveCostUsd stays explicit — null means
30
+ * unknown, and omitting it would let a client mistake unknown for absent). */
31
+ export declare function toWireRollup(r: RunRollupRow): ActivityRunRollup;
32
+ export interface ActivityStream {
33
+ handleSubscribe(ws: WSContext, msg: ClientActivitySubscribe): void;
34
+ handleUnsubscribe(ws: WSContext, msg: ClientActivityUnsubscribe): void;
35
+ /** Forget a closed socket. */
36
+ dropConnection(ws: WSContext): void;
37
+ /** Drain new committed changes to subscribers. Reentrancy-safe. */
38
+ pump(): void;
39
+ /** Whether any connection currently watches the given session's activity. */
40
+ isWatched(scope: {
41
+ sessionId?: string;
42
+ runId?: string;
43
+ }): boolean;
44
+ /** Number of live subscriptions (all connections). */
45
+ subscriptionCount(): number;
46
+ close(): void;
47
+ }
48
+ export declare function createActivityStream(store: ActivityStore, log?: Logger): ActivityStream;
49
+ //# sourceMappingURL=stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../src/activity/stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAG/B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAEV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACR,MAAM,YAAY,CAAC;AAiBpB;0EAC0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CA8BtD;AAgBD,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CASlE;AAED;;+EAE+E;AAC/E,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,iBAAiB,CAiB/D;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACnE,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACvE,8BAA8B;IAC9B,cAAc,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,mEAAmE;IACnE,IAAI,IAAI,IAAI,CAAC;IACb,6EAA6E;IAC7E,SAAS,CAAC,KAAK,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;IAClE,sDAAsD;IACtD,iBAAiB,IAAI,MAAM,CAAC;IAC5B,KAAK,IAAI,IAAI,CAAC;CACf;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAwOvF"}
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Live activity streaming: view-scoped subscriptions, snapshot-then-delta.
3
+ *
4
+ * All emission is change-log driven — one code path for the server's own
5
+ * writes and a foreign writer's (the cron wrapper). A write on this process
6
+ * calls `pump()` directly (near-zero latency); foreign writes are picked up
7
+ * by a fast poll interval that runs ONLY while at least one subscription is
8
+ * live. The pump reads `changesSince(cursor)` and fans each committed change
9
+ * out as an `activity_delta` to matching subscribers, so ordering is the
10
+ * change log's and a delta can never precede its commit (persist-then-emit).
11
+ *
12
+ * The subscribe handler answers with a snapshot whose per-run high-water seq
13
+ * and pump baseline come from ONE store read transaction — there is no gap
14
+ * window between snapshot and first delta, and no duplication the client's
15
+ * seq-discard rule cannot handle.
16
+ *
17
+ * This is deliberately the only place broadcast is per-connection filtered;
18
+ * every other frame keeps the host's broadcast-to-all semantics.
19
+ */
20
+ import { SPAN_TOOL_NAME_PREFIX, } from "@schlessera/brain-ui-sdk/protocol";
21
+ import { sendTo } from "../ws/clients.js";
22
+ /** Events per snapshot frame — keeps each frame far below the WS size cap. */
23
+ const SNAPSHOT_EVENT_CHUNK = 100;
24
+ /** Spans per snapshot frame, same rationale. */
25
+ const SNAPSHOT_SPAN_CHUNK = 100;
26
+ /** Fast-poll cadence while subscriptions exist (foreign-writer liveness). */
27
+ const POLL_INTERVAL_MS = 1500;
28
+ const TOOL_NAME_PREFIX = SPAN_TOOL_NAME_PREFIX;
29
+ /** Store row → wire span. Lifts the typed fields the protocol promotes
30
+ * (toolName, subagent enrichment) out of the naming/attr conventions. */
31
+ export function toWireSpan(span) {
32
+ const isToolLike = span.kind === "tool" || span.kind === "subagent";
33
+ const toolName = span.kind === "subagent" && span.name.startsWith(`${TOOL_NAME_PREFIX}Agent`)
34
+ ? "Agent"
35
+ : isToolLike && span.name.startsWith(TOOL_NAME_PREFIX)
36
+ ? span.name.slice(TOOL_NAME_PREFIX.length)
37
+ : isToolLike
38
+ ? span.name
39
+ : undefined;
40
+ const subagent = span.kind === "subagent" ? subagentOf(span.attrs) : undefined;
41
+ return {
42
+ spanId: span.spanId,
43
+ runId: span.runId,
44
+ parentSpanId: span.parentSpanId ?? undefined,
45
+ name: span.name,
46
+ ...(toolName !== undefined ? { toolName } : {}),
47
+ kind: span.kind,
48
+ origin: span.origin,
49
+ sessionId: span.sessionId ?? undefined,
50
+ jobName: span.jobName ?? undefined,
51
+ startedAt: span.startedAt,
52
+ waitUntil: span.waitUntil ?? undefined,
53
+ endedAt: span.endedAt ?? undefined,
54
+ outcome: span.outcome ?? undefined,
55
+ outcomeReason: span.outcomeReason ?? undefined,
56
+ usage: hasUsage(span) ? { ...span.usage } : undefined,
57
+ ...(subagent ? { subagent } : {}),
58
+ attrs: Object.keys(span.attrs).length > 0 ? span.attrs : undefined,
59
+ };
60
+ }
61
+ function subagentOf(attrs) {
62
+ const type = attrs["subagent.type"];
63
+ const description = attrs["subagent.description"];
64
+ const summary = attrs["subagent.summary"];
65
+ const totalTokens = attrs["subagent.total_tokens"];
66
+ const subagent = {
67
+ ...(typeof type === "string" ? { type } : {}),
68
+ ...(typeof description === "string" ? { description } : {}),
69
+ ...(typeof summary === "string" ? { summary } : {}),
70
+ ...(typeof totalTokens === "number" ? { totalTokens } : {}),
71
+ };
72
+ return Object.keys(subagent).length > 0 ? subagent : undefined;
73
+ }
74
+ export function toWireEvent(event) {
75
+ return {
76
+ spanId: event.spanId,
77
+ eventIndex: event.eventIndex,
78
+ ts: event.ts,
79
+ eventType: event.eventType,
80
+ payload: event.payload,
81
+ ...(event.truncated ? { truncated: true } : {}),
82
+ };
83
+ }
84
+ /** Store rollup → wire rollup: nullable columns become omitted-when-null per
85
+ * the optional wire contract (effectiveCostUsd stays explicit — null means
86
+ * unknown, and omitting it would let a client mistake unknown for absent). */
87
+ export function toWireRollup(r) {
88
+ return {
89
+ origin: r.origin,
90
+ name: r.name,
91
+ sessionId: r.sessionId,
92
+ jobName: r.jobName,
93
+ startedAt: r.startedAt,
94
+ endedAt: r.endedAt,
95
+ outcome: r.outcome,
96
+ durationMs: r.durationMs,
97
+ spanCount: r.spanCount,
98
+ costUsd: r.costUsd,
99
+ effectiveCostUsd: r.effectiveCostUsd,
100
+ billingMode: r.billingMode ?? undefined,
101
+ pricingEstimate: r.pricingEstimate ?? undefined,
102
+ failureReason: r.failureReason,
103
+ };
104
+ }
105
+ export function createActivityStream(store, log) {
106
+ const subscriptions = new Map();
107
+ let cursor = store.latestChangeCursor();
108
+ let pumping = false;
109
+ let pollHandle = null;
110
+ /** runId → sessionId, learned from any span seen; a run's session never
111
+ * changes, so entries are immutable. Replaces per-event store lookups
112
+ * when matching event deltas against session-view subscriptions. */
113
+ const runSessions = new Map();
114
+ function noteSpan(span) {
115
+ if (span.sessionId && !runSessions.has(span.runId)) {
116
+ runSessions.set(span.runId, span.sessionId);
117
+ }
118
+ }
119
+ function subKey(s) {
120
+ return `${s.view}:${s.sessionId ?? ""}:${s.runId ?? ""}`;
121
+ }
122
+ function matches(sub, runId, span) {
123
+ if (sub.view === "index")
124
+ return true;
125
+ if (sub.view === "run")
126
+ return sub.runId === runId;
127
+ // Session view: match by the span's session when we have it; event-only
128
+ // deltas resolve through the memoized run→session map.
129
+ if (span?.sessionId)
130
+ return span.sessionId === sub.sessionId;
131
+ return runSessions.get(runId) === sub.sessionId;
132
+ }
133
+ function ensurePolling() {
134
+ if (pollHandle || subscriptions.size === 0)
135
+ return;
136
+ pollHandle = setInterval(() => pump(), POLL_INTERVAL_MS);
137
+ }
138
+ function stopPollingIfIdle() {
139
+ if (pollHandle && subscriptions.size === 0) {
140
+ clearInterval(pollHandle);
141
+ pollHandle = null;
142
+ }
143
+ }
144
+ function deltaFrame(change) {
145
+ return change.kind === "span"
146
+ ? { type: "activity_delta", runId: change.runId, seq: change.seq, span: toWireSpan(change.span) }
147
+ : {
148
+ type: "activity_delta",
149
+ runId: change.runId,
150
+ seq: change.seq,
151
+ event: toWireEvent(change.event),
152
+ };
153
+ }
154
+ function pump() {
155
+ if (pumping)
156
+ return;
157
+ pumping = true;
158
+ try {
159
+ // Nobody listening: skip the changes entirely, but keep the cursor at
160
+ // the log's head — otherwise the first subscriber's pump would replay
161
+ // history its snapshot already carries (harmless under the client's
162
+ // seq-discard rule, but pure waste). Side effects that must see every
163
+ // change (the notifier) keep their OWN cursor.
164
+ if (subscriptions.size === 0) {
165
+ cursor = store.latestChangeCursor();
166
+ return;
167
+ }
168
+ for (;;) {
169
+ const changes = store.changesSince(cursor, 200);
170
+ if (changes.length === 0)
171
+ break;
172
+ for (const change of changes) {
173
+ cursor = change.changeId;
174
+ const span = change.kind === "span" ? change.span : undefined;
175
+ if (span)
176
+ noteSpan(span);
177
+ const frame = deltaFrame(change);
178
+ for (const [ws, subs] of subscriptions) {
179
+ if (subs.some((s) => matches(s, change.runId, span))) {
180
+ sendTo(ws, frame);
181
+ }
182
+ }
183
+ }
184
+ if (changes.length < 200)
185
+ break;
186
+ }
187
+ }
188
+ catch (err) {
189
+ log?.emit({
190
+ severityText: "WARN",
191
+ body: "activity pump failed",
192
+ attributes: { error: err instanceof Error ? err.message : String(err) },
193
+ });
194
+ }
195
+ finally {
196
+ pumping = false;
197
+ }
198
+ }
199
+ function sendSnapshot(ws, sub) {
200
+ let spans = [];
201
+ let events = [];
202
+ const highWater = {};
203
+ if (sub.view === "run" && sub.runId) {
204
+ const snap = store.snapshotRun(sub.runId);
205
+ if (snap) {
206
+ spans = snap.spans;
207
+ events = snap.events;
208
+ highWater[snap.runId] = snap.highWaterSeq;
209
+ // No pump-cursor rewind: the pump cursor can only LAG the snapshot
210
+ // read (it never runs ahead of the DB), so unpumped changes are
211
+ // already inside this snapshot's high-water and the client's
212
+ // seq-discard rule absorbs them when the pump catches up.
213
+ }
214
+ }
215
+ else if (sub.view === "session" && sub.sessionId) {
216
+ for (const root of store.openRootSpans()) {
217
+ if (root.sessionId !== sub.sessionId)
218
+ continue;
219
+ const snap = store.snapshotRun(root.runId);
220
+ if (!snap)
221
+ continue;
222
+ spans = spans.concat(snap.spans);
223
+ events = events.concat(snap.events);
224
+ highWater[snap.runId] = snap.highWaterSeq;
225
+ }
226
+ }
227
+ else {
228
+ // Index view: open roots only — history is the REST activity API's job.
229
+ for (const root of store.openRootSpans()) {
230
+ spans.push(root);
231
+ highWater[root.runId] = store.runHighWaterSeq(root.runId);
232
+ }
233
+ }
234
+ for (const span of spans)
235
+ noteSpan(span);
236
+ const base = {
237
+ type: "activity_snapshot",
238
+ view: sub.view,
239
+ ...(sub.sessionId ? { sessionId: sub.sessionId } : {}),
240
+ ...(sub.runId ? { runId: sub.runId } : {}),
241
+ highWaterSeq: highWater,
242
+ };
243
+ // Chunk: first span/event batch in the base frame, then append frames
244
+ // for the rest (the client's applySnapshot merges append frames).
245
+ const wireSpans = spans.map(toWireSpan);
246
+ sendTo(ws, {
247
+ ...base,
248
+ spans: wireSpans.slice(0, SNAPSHOT_SPAN_CHUNK),
249
+ events: events.slice(0, SNAPSHOT_EVENT_CHUNK).map(toWireEvent),
250
+ });
251
+ for (let i = SNAPSHOT_SPAN_CHUNK; i < wireSpans.length; i += SNAPSHOT_SPAN_CHUNK) {
252
+ sendTo(ws, {
253
+ ...base,
254
+ spans: wireSpans.slice(i, i + SNAPSHOT_SPAN_CHUNK),
255
+ events: [],
256
+ append: true,
257
+ });
258
+ }
259
+ for (let i = SNAPSHOT_EVENT_CHUNK; i < events.length; i += SNAPSHOT_EVENT_CHUNK) {
260
+ sendTo(ws, {
261
+ ...base,
262
+ spans: [],
263
+ events: events.slice(i, i + SNAPSHOT_EVENT_CHUNK).map(toWireEvent),
264
+ append: true,
265
+ });
266
+ }
267
+ }
268
+ return {
269
+ handleSubscribe(ws, msg) {
270
+ // A scoped view without its scope id can never match anything and
271
+ // would only leak an all-runs snapshot shape — ignore it up front.
272
+ if ((msg.view === "session" && !msg.sessionId) || (msg.view === "run" && !msg.runId)) {
273
+ return;
274
+ }
275
+ const sub = {
276
+ view: msg.view,
277
+ ...(msg.sessionId ? { sessionId: msg.sessionId } : {}),
278
+ ...(msg.runId ? { runId: msg.runId } : {}),
279
+ };
280
+ const list = subscriptions.get(ws) ?? [];
281
+ if (!list.some((s) => subKey(s) === subKey(sub)))
282
+ list.push(sub);
283
+ subscriptions.set(ws, list);
284
+ ensurePolling();
285
+ try {
286
+ sendSnapshot(ws, sub);
287
+ }
288
+ catch (err) {
289
+ log?.emit({
290
+ severityText: "WARN",
291
+ body: "activity snapshot failed",
292
+ attributes: { error: err instanceof Error ? err.message : String(err) },
293
+ });
294
+ }
295
+ },
296
+ handleUnsubscribe(ws, msg) {
297
+ const list = subscriptions.get(ws);
298
+ if (!list)
299
+ return;
300
+ const key = subKey({
301
+ view: msg.view,
302
+ ...(msg.sessionId ? { sessionId: msg.sessionId } : {}),
303
+ ...(msg.runId ? { runId: msg.runId } : {}),
304
+ });
305
+ const remaining = list.filter((s) => subKey(s) !== key);
306
+ if (remaining.length > 0)
307
+ subscriptions.set(ws, remaining);
308
+ else
309
+ subscriptions.delete(ws);
310
+ stopPollingIfIdle();
311
+ },
312
+ dropConnection(ws) {
313
+ subscriptions.delete(ws);
314
+ stopPollingIfIdle();
315
+ },
316
+ pump,
317
+ isWatched(scope) {
318
+ for (const subs of subscriptions.values()) {
319
+ for (const s of subs) {
320
+ if (s.view === "index")
321
+ return true;
322
+ if (scope.runId && s.view === "run" && s.runId === scope.runId)
323
+ return true;
324
+ if (scope.sessionId && s.view === "session" && s.sessionId === scope.sessionId)
325
+ return true;
326
+ }
327
+ }
328
+ return false;
329
+ },
330
+ subscriptionCount() {
331
+ let n = 0;
332
+ for (const subs of subscriptions.values())
333
+ n += subs.length;
334
+ return n;
335
+ },
336
+ close() {
337
+ if (pollHandle)
338
+ clearInterval(pollHandle);
339
+ pollHandle = null;
340
+ subscriptions.clear();
341
+ },
342
+ };
343
+ }
344
+ function hasUsage(span) {
345
+ const u = span.usage;
346
+ return (u.inputTokens !== undefined ||
347
+ u.outputTokens !== undefined ||
348
+ u.cacheReadTokens !== undefined ||
349
+ u.cacheCreationTokens !== undefined ||
350
+ u.costUsd !== undefined ||
351
+ u.model !== undefined);
352
+ }
353
+ //# sourceMappingURL=stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/activity/stream.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { Logger } from "@opentelemetry/api-logs";
2
2
  import type { AgentConfig } from "../config/env.js";
3
- import type { ProviderInfo } from "@schlessera/brain-ui-sdk";
3
+ import type { BillingMode, ProviderInfo } from "@schlessera/brain-ui-sdk";
4
4
  import type { AgentBackend, BackendCapabilities } from "@schlessera/brain-ui-sdk/server";
5
5
  /**
6
6
  * Backend registry for one app instance. Built by `createApp()` from the
@@ -118,6 +118,12 @@ export interface BackendRegistryOptions {
118
118
  * sessions pinned to it. Defaults to "nothing hidden".
119
119
  */
120
120
  getHiddenModelIds?: () => string[];
121
+ /**
122
+ * Per-profile billing-mode overrides (from the app's settings table).
123
+ * Consulted LAST: an override wins over both the declared-credential rule
124
+ * and the ambient predicate. Defaults to "no overrides".
125
+ */
126
+ getBillingOverrides?: () => Record<string, BillingMode>;
121
127
  /**
122
128
  * Where the registry and its backends report. Adapted to the backends'
123
129
  * minimal callback ({@link BackendLogFn}) before crossing the package
@@ -139,9 +145,11 @@ export interface BackendRegistry {
139
145
  /** Resolve a persisted backend id, falling back for legacy/unknown sessions. */
140
146
  getBackendForSession(backendId: string | null | undefined): Promise<AgentBackend>;
141
147
  /**
142
- * Every available profile, tagged with its owning backend id. Hidden
143
- * profiles are omitted by default (this feeds the picker); the settings
144
- * screen passes `includeHidden` to render the full catalog.
148
+ * Every available profile, tagged with its owning backend id and (when the
149
+ * registry can classify it) its resolved `billingMode` settings override
150
+ * applied last. Hidden profiles are omitted by default (this feeds the
151
+ * picker); the settings screen passes `includeHidden` to render the full
152
+ * catalog.
145
153
  */
146
154
  listAllProviders(options?: {
147
155
  includeHidden?: boolean;
@@ -187,6 +195,7 @@ export declare function createBackendRegistry(options: BackendRegistryOptions):
187
195
  */
188
196
  export declare function createStaticBackendRegistry(backends: AgentBackend[], defaultBackendId?: string, options?: {
189
197
  getHiddenModelIds?: () => string[];
198
+ getBillingOverrides?: () => Record<string, BillingMode>;
190
199
  log?: Logger;
191
200
  }): BackendRegistry;
192
201
  //# sourceMappingURL=backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/agent/backend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC;;;;;;;;;;;;;;;GAeG;AA0BH;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,CACzB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAC1C,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAC9C,IAAI,CAAC;AAkBV,kFAAkF;AAClF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;CAChD;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/C,+EAA+E;IAC/E,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,mBAAmB,EAAE,CAAC,OAAO,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;QACrD,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACxC,GAAG,CAAC,EAAE,YAAY,CAAC;KACpB,KAAK,YAAY,CAAC;IACnB,iBAAiB,EAAE,CAAC,OAAO,EAAE;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,KAAK,iBAAiB,CAAC;IACxB,cAAc,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,CAAC;CACnE;AAED,oFAAoF;AACpF,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,IAAI,EAAE,MAAM,kBAAkB,EAAE,CAAC;CAClC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,2DAA2D;IAC3D,KAAK,EAAE,OAAO,CAAC;IACf,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6EAA6E;AAC7E,MAAM,WAAW,oBAAoB;IACnC,KAAK,IAAI,mBAAmB,CAAC;IAC7B,2EAA2E;IAC3E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,6DAA6D;IAC7D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,EAAE,WAAW,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACvC,kDAAkD;IAClD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAC9D,4DAA4D;IAC5D,iBAAiB,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAC3C,4CAA4C;IAC5C,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,kEAAkE;IAClE,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAC3E,gFAAgF;IAChF,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAClF;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACjF,sEAAsE;IACtE,eAAe,IAAI,OAAO,CACxB,MAAM,CAAC,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,mBAAmB,CAAA;KAAE,CAAC,CAClE,CAAC;IACF;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACvD,oFAAoF;IACpF,kBAAkB,IAAI,IAAI,CAAC;CAC5B;AAmGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,CAKrC,GAAG,EAAE,QAAQ,GAAG,IAAI,EACpB,QAAQ,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAoC,GACnF,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAE/B,GACA,IAAI,CASN;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,CA4MjB;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,YAAY,EAAE,EACxB,gBAAgB,SAAwB,EACxC,OAAO,GAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GACjE,eAAe,CAQjB"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/agent/backend.ts"],"names":[],"mappings":"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"}