@schlessera/brain-ui-react 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 (86) hide show
  1. package/dist/components/activity/activity-page.d.ts +11 -0
  2. package/dist/components/activity/activity-page.d.ts.map +1 -0
  3. package/dist/components/activity/activity-page.js +243 -0
  4. package/dist/components/activity/activity-page.js.map +1 -0
  5. package/dist/components/activity/digest-card.d.ts +10 -0
  6. package/dist/components/activity/digest-card.d.ts.map +1 -0
  7. package/dist/components/activity/digest-card.js +55 -0
  8. package/dist/components/activity/digest-card.js.map +1 -0
  9. package/dist/components/activity/push-toggle.d.ts +2 -0
  10. package/dist/components/activity/push-toggle.d.ts.map +1 -0
  11. package/dist/components/activity/push-toggle.js +121 -0
  12. package/dist/components/activity/push-toggle.js.map +1 -0
  13. package/dist/components/activity/span-bits.d.ts +76 -0
  14. package/dist/components/activity/span-bits.d.ts.map +1 -0
  15. package/dist/components/activity/span-bits.js +127 -0
  16. package/dist/components/activity/span-bits.js.map +1 -0
  17. package/dist/components/chat/chat-page.d.ts.map +1 -1
  18. package/dist/components/chat/chat-page.js +4 -1
  19. package/dist/components/chat/chat-page.js.map +1 -1
  20. package/dist/components/chat/session-drawer.d.ts.map +1 -1
  21. package/dist/components/chat/session-drawer.js +1 -15
  22. package/dist/components/chat/session-drawer.js.map +1 -1
  23. package/dist/components/chat/subagent-view.d.ts +18 -0
  24. package/dist/components/chat/subagent-view.d.ts.map +1 -0
  25. package/dist/components/chat/subagent-view.js +83 -0
  26. package/dist/components/chat/subagent-view.js.map +1 -0
  27. package/dist/components/chat/tool-call-timeline.d.ts.map +1 -1
  28. package/dist/components/chat/tool-call-timeline.js +40 -4
  29. package/dist/components/chat/tool-call-timeline.js.map +1 -1
  30. package/dist/components/chat/tool-views.d.ts +4 -0
  31. package/dist/components/chat/tool-views.d.ts.map +1 -1
  32. package/dist/components/chat/tool-views.js +26 -0
  33. package/dist/components/chat/tool-views.js.map +1 -1
  34. package/dist/components/layout/mobile-tab-bar.d.ts.map +1 -1
  35. package/dist/components/layout/mobile-tab-bar.js +10 -4
  36. package/dist/components/layout/mobile-tab-bar.js.map +1 -1
  37. package/dist/components/layout/side-rail.d.ts.map +1 -1
  38. package/dist/components/layout/side-rail.js +7 -4
  39. package/dist/components/layout/side-rail.js.map +1 -1
  40. package/dist/components/settings/models-tab.d.ts +15 -0
  41. package/dist/components/settings/models-tab.d.ts.map +1 -1
  42. package/dist/components/settings/models-tab.js +100 -21
  43. package/dist/components/settings/models-tab.js.map +1 -1
  44. package/dist/hooks/use-now.d.ts +8 -0
  45. package/dist/hooks/use-now.d.ts.map +1 -0
  46. package/dist/hooks/use-now.js +32 -0
  47. package/dist/hooks/use-now.js.map +1 -0
  48. package/dist/hooks/use-websocket.d.ts.map +1 -1
  49. package/dist/hooks/use-websocket.js +46 -0
  50. package/dist/hooks/use-websocket.js.map +1 -1
  51. package/dist/index.d.ts +1 -0
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +1 -0
  54. package/dist/index.js.map +1 -1
  55. package/dist/lib/api-client.d.ts +67 -1
  56. package/dist/lib/api-client.d.ts.map +1 -1
  57. package/dist/lib/api-client.js +41 -0
  58. package/dist/lib/api-client.js.map +1 -1
  59. package/dist/stores/activity-store.d.ts +108 -0
  60. package/dist/stores/activity-store.d.ts.map +1 -0
  61. package/dist/stores/activity-store.js +359 -0
  62. package/dist/stores/activity-store.js.map +1 -0
  63. package/dist/stores/ui-store.d.ts +9 -1
  64. package/dist/stores/ui-store.d.ts.map +1 -1
  65. package/dist/stores/ui-store.js +3 -0
  66. package/dist/stores/ui-store.js.map +1 -1
  67. package/dist/styles.css +1 -1
  68. package/package.json +2 -2
  69. package/src/components/activity/activity-page.tsx +623 -0
  70. package/src/components/activity/digest-card.tsx +105 -0
  71. package/src/components/activity/push-toggle.tsx +157 -0
  72. package/src/components/activity/span-bits.tsx +194 -0
  73. package/src/components/chat/chat-page.tsx +17 -0
  74. package/src/components/chat/session-drawer.tsx +1 -12
  75. package/src/components/chat/subagent-view.tsx +239 -0
  76. package/src/components/chat/tool-call-timeline.tsx +61 -3
  77. package/src/components/chat/tool-views.tsx +22 -0
  78. package/src/components/layout/mobile-tab-bar.tsx +25 -5
  79. package/src/components/layout/side-rail.tsx +17 -0
  80. package/src/components/settings/models-tab.tsx +135 -21
  81. package/src/hooks/use-now.ts +32 -0
  82. package/src/hooks/use-websocket.ts +44 -0
  83. package/src/index.ts +1 -0
  84. package/src/lib/api-client.ts +111 -0
  85. package/src/stores/activity-store.ts +451 -0
  86. package/src/stores/ui-store.ts +13 -1
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A ticking `Date.now()` for live elapsed labels. Every consumer shares a
3
+ * single setInterval (created on the first subscriber's cadence, torn down
4
+ * with the last), so a screen full of running rows costs one timer, and all
5
+ * their labels tick in the same frame.
6
+ */
7
+ export declare function useNow(intervalMs?: number): number;
8
+ //# sourceMappingURL=use-now.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-now.d.ts","sourceRoot":"","sources":["../../src/hooks/use-now.ts"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,UAAU,SAAO,GAAG,MAAM,CAmBhD"}
@@ -0,0 +1,32 @@
1
+ import { useEffect, useState } from "react";
2
+ /** All subscribed setters, driven by ONE shared interval. */
3
+ const listeners = new Set();
4
+ let ticker = null;
5
+ /**
6
+ * A ticking `Date.now()` for live elapsed labels. Every consumer shares a
7
+ * single setInterval (created on the first subscriber's cadence, torn down
8
+ * with the last), so a screen full of running rows costs one timer, and all
9
+ * their labels tick in the same frame.
10
+ */
11
+ export function useNow(intervalMs = 1000) {
12
+ const [now, setNow] = useState(() => Date.now());
13
+ useEffect(() => {
14
+ listeners.add(setNow);
15
+ if (!ticker) {
16
+ ticker = setInterval(() => {
17
+ const t = Date.now();
18
+ for (const listener of listeners)
19
+ listener(t);
20
+ }, intervalMs);
21
+ }
22
+ return () => {
23
+ listeners.delete(setNow);
24
+ if (listeners.size === 0 && ticker) {
25
+ clearInterval(ticker);
26
+ ticker = null;
27
+ }
28
+ };
29
+ }, [intervalMs]);
30
+ return now;
31
+ }
32
+ //# sourceMappingURL=use-now.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-now.js","sourceRoot":"","sources":["../../src/hooks/use-now.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,6DAA6D;AAC7D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;AACnD,IAAI,MAAM,GAA0C,IAAI,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,UAAU,GAAG,IAAI;IACtC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;gBACxB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,KAAK,MAAM,QAAQ,IAAI,SAAS;oBAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,GAAG,EAAE;YACV,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;gBACnC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACtB,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACjB,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-websocket.d.ts","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAId,MAAM,mCAAmC,CAAC;AA2E3C,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAOpF;AA2BD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,QAuLrD;AA8GD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAK7D;AAED,wBAAgB,YAAY;gBA8CK,aAAa;EAK7C"}
1
+ {"version":3,"file":"use-websocket.d.ts","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EAId,MAAM,mCAAmC,CAAC;AA2E3C,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAOpF;AA2CD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,QAkNrD;AA8GD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAK7D;AAED,wBAAgB,YAAY;gBA8CK,aAAa;EAK7C"}
@@ -4,6 +4,7 @@ import { useConnectionStore } from "../stores/connection-store.js";
4
4
  import { useChatStore, activeChat } from "../stores/chat-store.js";
5
5
  import { useProviderStore } from "../stores/provider-store.js";
6
6
  import { useMaskStore } from "../stores/mask-store.js";
7
+ import { useActivityStore, loadSessionActivityHistory } from "../stores/activity-store.js";
7
8
  import { getWsUrl } from "../lib/backend.js";
8
9
  import { isAskUserTool } from "../lib/tool-names.js";
9
10
  let historyMessageCounter = 0;
@@ -106,8 +107,43 @@ function isOurDraftAnnouncement(state, msg) {
106
107
  // No echo to compare against.
107
108
  return true;
108
109
  }
110
+ /**
111
+ * Lazily open a session-scoped activity subscription (live subagent rows,
112
+ * server-stamped tool timing). Idempotent per connection; the subscribed set
113
+ * resets when a new socket's server_hello arrives.
114
+ */
115
+ function ensureActivitySubscription(sessionId) {
116
+ if (!sessionId)
117
+ return;
118
+ const activity = useActivityStore.getState();
119
+ if (!activity.supported || activity.subscribed[sessionId])
120
+ return;
121
+ activity.markSubscribed(sessionId);
122
+ wsClient?.send({ type: "activity_subscribe", view: "session", sessionId });
123
+ // The subscription snapshot carries OPEN runs; finished runs (history
124
+ // timing, past fan-outs) come from the REST side.
125
+ void loadSessionActivityHistory(sessionId);
126
+ }
109
127
  export function handleServerMessage(msg) {
110
128
  const state = useChatStore.getState();
129
+ // Activity stream frames feed their own store and never touch chat state.
130
+ if (msg.type === "server_hello") {
131
+ useActivityStore.getState().setSupported(msg.capabilities?.activity === true);
132
+ // A new hello means a new connection: server-side subscriptions are gone.
133
+ useActivityStore.getState().resetSubscriptions();
134
+ // …and view-owned subscriptions (the Activity index) must re-send too.
135
+ useActivityStore.getState().bumpConnectionEpoch();
136
+ ensureActivitySubscription(state.activeSessionId);
137
+ return;
138
+ }
139
+ if (msg.type === "activity_snapshot") {
140
+ useActivityStore.getState().applySnapshot(msg);
141
+ return;
142
+ }
143
+ if (msg.type === "activity_delta") {
144
+ useActivityStore.getState().applyDelta(msg);
145
+ return;
146
+ }
111
147
  // Parallel-session demux (per-session buffers). Every frame is scoped by
112
148
  // sessionId; a scoped frame lands in ITS session's buffer, so a background
113
149
  // session's transcript keeps accumulating while another one is in view.
@@ -169,12 +205,21 @@ export function handleServerMessage(msg) {
169
205
  state.appendThinking(key, msg.text);
170
206
  break;
171
207
  case "tool_use_start":
208
+ // A tool call INSIDE a subagent nests under its Agent entry, rendered
209
+ // from the activity stream — putting it in the flat transcript would
210
+ // interleave fan-out work with the main turn's steps.
211
+ if (msg.parentToolUseId)
212
+ break;
172
213
  state.startToolCall(key, msg.toolUseId, msg.toolName);
173
214
  break;
174
215
  case "tool_input_delta":
175
216
  state.appendToolInput(key, msg.partialJson);
176
217
  break;
177
218
  case "tool_use_complete":
219
+ // Subagent tool calls render nested (activity stream), and the flat
220
+ // store's name-based fallback match must never see them.
221
+ if (msg.parentToolUseId)
222
+ break;
178
223
  state.completeToolCall(key, msg.toolUseId, msg.toolName, msg.input);
179
224
  break;
180
225
  case "tool_approval_request":
@@ -211,6 +256,7 @@ export function handleServerMessage(msg) {
211
256
  resyncIfNeeded(msg.sessionId);
212
257
  break;
213
258
  case "session_info": {
259
+ ensureActivitySubscription(msg.sessionId);
214
260
  // bindDraftSession above handled draft adoption; an info frame may still
215
261
  // re-pin the provider picker when it concerns the session in view.
216
262
  const current = useChatStore.getState();
@@ -1 +1 @@
1
- {"version":3,"file":"use-websocket.js","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-websocket.js","sourceRoot":"","sources":["../../src/hooks/use-websocket.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ export { ConnectionGate } from "./components/connectivity/connection-gate.js";
12
12
  export { AppShell } from "./components/layout/app-shell.js";
13
13
  export { ChatPage } from "./components/chat/chat-page.js";
14
14
  export { GraphPage } from "./components/graph/graph-page.js";
15
+ export { ActivityPage } from "./components/activity/activity-page.js";
15
16
  export { BrainMarkdown } from "./components/chat/brain-markdown.js";
16
17
  export { MermaidBlock } from "./components/chat/mermaid-block.js";
17
18
  export { inlineMermaidDiagrams, renderMermaidSvg } from "./lib/mermaid.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMvD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAGtE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAG3E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAMvD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EACL,aAAa,EACb,eAAe,EACf,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAG9D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ export { ConnectionGate } from "./components/connectivity/connection-gate.js";
14
14
  export { AppShell } from "./components/layout/app-shell.js";
15
15
  export { ChatPage } from "./components/chat/chat-page.js";
16
16
  export { GraphPage } from "./components/graph/graph-page.js";
17
+ export { ActivityPage } from "./components/activity/activity-page.js";
17
18
  // Markdown renderer (also useful standalone, e.g. for a dev kitchen sink).
18
19
  export { BrainMarkdown } from "./components/chat/brain-markdown.js";
19
20
  // Mermaid: standalone diagram block (streaming-safe) + the fence-to-SVG
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAE7E,yCAAyC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,2EAA2E;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,wEAAwE;AACxE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,8EAA8E;AAC9E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,GAOb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAoB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAkB,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,yEAAyE;AACzE,+EAA+E;AAC/E,0EAA0E;AAC1E,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EACL,aAAa,EACb,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,yDAAyD;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,sEAAsE;AACtE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAE7E,yCAAyC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAEtE,2EAA2E;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,wEAAwE;AACxE,iFAAiF;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,8EAA8E;AAC9E,OAAO,EACL,YAAY,EACZ,UAAU,EACV,YAAY,GAOb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAoB,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAmB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,aAAa,EAAkB,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,yEAAyE;AACzE,+EAA+E;AAC/E,0EAA0E;AAC1E,uCAAuC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,uBAAuB;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,yEAAyE;AACzE,0EAA0E;AAC1E,OAAO,EACL,aAAa,EACb,eAAe,GAEhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,yDAAyD;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,4 +1,5 @@
1
- import type { VoiceKeytermsResponse, VoiceTokenResponse, VoiceSessionResponse, PronunciationOverride, ProviderInfo, PasskeySummary, ModelCatalogResponse } from "@schlessera/brain-ui-sdk/protocol";
1
+ import type { VoiceKeytermsResponse, VoiceTokenResponse, VoiceSessionResponse, PronunciationOverride, ProviderInfo, PasskeySummary, BillingMode, ModelCatalogResponse, ActivityRunSummary, ActivityRunDetail, ActivityRollups, ActivityDigest, ActivityIntent } from "@schlessera/brain-ui-sdk/protocol";
2
+ export type { ActivityRunSummary, ActivityRunDetail, ActivityRunRollup, ActivityAggregate, ActivityRollups, ActivityDigest, ActivityIntent, } from "@schlessera/brain-ui-sdk/protocol";
2
3
  import type { AuthenticationResponseJSON, RegistrationResponseJSON, PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON } from "@simplewebauthn/browser";
3
4
  /**
4
5
  * One hit from `brain search`. `snippet` carries the CLI's FTS highlight
@@ -18,6 +19,22 @@ export interface BrainSearchResponse {
18
19
  /** Degraded-mode notices, e.g. vector search unavailable so results are FTS-only. */
19
20
  warnings: string[];
20
21
  }
22
+ /**
23
+ * Pricing-table freshness (GET /api/models/pricing) — mirrors the server
24
+ * pricing service's state. The route is additive: an older server 404s, and
25
+ * callers treat the rejection as "no freshness signal, show nothing".
26
+ */
27
+ export interface PricingState {
28
+ enabled: boolean;
29
+ /** When a refresh last succeeded (either source); null when none ever has. */
30
+ fetchedAt: number | null;
31
+ /** The current table is older than the TTL (or was never fetched). */
32
+ stale: boolean;
33
+ /** What the table is served from: remote data (cache included) or the bundled snapshot. */
34
+ source: "remote" | "snapshot";
35
+ /** Last refresh failure, if the current table is served despite one. */
36
+ error?: string;
37
+ }
21
38
  /** Backend id + capability flags the client renders behavior from. */
22
39
  export interface BackendInfo {
23
40
  id: string;
@@ -98,6 +115,10 @@ export declare const api: {
98
115
  models: () => Promise<ModelCatalogResponse>;
99
116
  /** Replace the hidden set (full list, not a delta); returns the new catalog. */
100
117
  setHiddenModels: (hidden: string[]) => Promise<ModelCatalogResponse>;
118
+ /** Replace the billing-override record (full record, not a delta); returns the new catalog. */
119
+ setBillingOverrides: (billing: Record<string, BillingMode>) => Promise<ModelCatalogResponse>;
120
+ /** Pricing-table freshness for the Activity staleness indicator (see `PricingState`). */
121
+ pricingState: () => Promise<PricingState>;
101
122
  /** Force a discovery refresh, bypassing the TTL. */
102
123
  refreshModels: () => Promise<ModelCatalogResponse>;
103
124
  /** Password-mode login. Resolves on success; throws the server error otherwise. */
@@ -130,5 +151,50 @@ export declare const api: {
130
151
  passkeyDelete: (id: string) => Promise<{
131
152
  ok: true;
132
153
  }>;
154
+ activityRuns: (opts?: {
155
+ origin?: "session" | "cron";
156
+ job?: string;
157
+ session?: string;
158
+ status?: string;
159
+ limit?: number;
160
+ before?: number;
161
+ }) => Promise<{
162
+ live: ActivityRunSummary[];
163
+ history: ActivityRunSummary[];
164
+ }>;
165
+ /**
166
+ * One run's detail. Payload bodies (tool_input/tool_output events) are
167
+ * excluded by default — the session-history fetch only needs span timings —
168
+ * and opted into by the drill-in views via `includePayloads`.
169
+ */
170
+ activityRun: (runId: string, opts?: {
171
+ includePayloads?: boolean;
172
+ }) => Promise<ActivityRunDetail>;
173
+ activityRollups: (days?: number) => Promise<ActivityRollups>;
174
+ activityInbox: () => Promise<{
175
+ intents: ActivityIntent[];
176
+ }>;
177
+ activityInboxAck: (id: number) => Promise<{
178
+ ok: true;
179
+ }>;
180
+ activityInboxAckAll: () => Promise<{
181
+ acknowledged: number;
182
+ }>;
183
+ activityDigest: () => Promise<{
184
+ digest: ActivityDigest | null;
185
+ dismissedAt: number;
186
+ }>;
187
+ activityDigestDismiss: () => Promise<{
188
+ ok: true;
189
+ }>;
190
+ pushPublicKey: () => Promise<{
191
+ publicKey: string;
192
+ }>;
193
+ pushSubscribe: (subscription: unknown, label?: string) => Promise<{
194
+ ok: true;
195
+ }>;
196
+ pushUnsubscribe: (endpoint: string) => Promise<{
197
+ removed: boolean;
198
+ }>;
133
199
  };
134
200
  //# sourceMappingURL=api-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,cAAc,EACd,oBAAoB,EACrB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,sCAAsC,EACtC,qCAAqC,EACtC,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,qFAAqF;IACrF,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE;QACZ,kBAAkB,EAAE,OAAO,CAAC;QAC5B,QAAQ,EAAE,OAAO,CAAC;QAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAiBD,eAAO,MAAM,GAAG;;gBAEQ,MAAM;gBAAU,MAAM;iBAAW,MAAM;;;aAE5B,OAAO;;;iBAI3B,OAAO;gBACR,MAAM;kBACJ,KAAK,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;YACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;SAC3B,CAAC;uBACa,OAAO;;qBAIrB,MAAM,SACF;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;QACnC,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB;;iBAeoB,MAAM;;;mBAId,MAAM;gBACT,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;kBACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;cAC1B,MAAM;eACL,MAAM;;;iBAIM,OAAO;iBAAW,MAAM;;wBAI3B,MAAM,SAAS;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;iBAC9D,OAAO;;;kBAOhB,KAAK,CAAC;YACd,EAAE,EAAE,MAAM,CAAC;YACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,YAAY,EAAE,MAAM,CAAC;SACtB,CAAC;;IAGN,+DAA+D;4BACvC,WAAW;IAGnC,qEAAqE;;;8BAM3C,WAAW;mBACZ,qBAAqB,EAAE;;;mBAMjC,YAAY,EAAE;mBACd,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC;;IAG1C,4EAA4E;;IAG5E,gFAAgF;8BACtD,MAAM,EAAE;IAMlC,oDAAoD;;IAIpD,mFAAmF;sBACjE,MAAM;YACN,IAAI;;;YAMJ,IAAI;;IAEtB,+EAA+E;;kBAEvD,OAAO;iBAAW,OAAO;;;mCAQlB,0BAA0B;YACvC,IAAI;;;sCAWY,wBAAwB,UAAU,MAAM;YACxD,IAAI;oBAAc,cAAc,GAAG,IAAI;;;qBAM9B,cAAc,EAAE;;wBAEvB,MAAM,SAAS,MAAM;YACvB,IAAI;;wBAKF,MAAM;YACR,IAAI;;CAGvB,CAAC"}
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,13 @@ export const api = {
52
52
  method: "PUT",
53
53
  body: JSON.stringify({ hidden }),
54
54
  }),
55
+ /** Replace the billing-override record (full record, not a delta); returns the new catalog. */
56
+ setBillingOverrides: (billing) => fetchJson("/models/billing", {
57
+ method: "PUT",
58
+ body: JSON.stringify({ billing }),
59
+ }),
60
+ /** Pricing-table freshness for the Activity staleness indicator (see `PricingState`). */
61
+ pricingState: () => fetchJson("/models/pricing"),
55
62
  /** Force a discovery refresh, bypassing the TTL. */
56
63
  refreshModels: () => fetchJson("/models/refresh", { method: "POST" }),
57
64
  /** Password-mode login. Resolves on success; throws the server error otherwise. */
@@ -83,5 +90,39 @@ export const api = {
83
90
  passkeyDelete: (id) => fetchJson(`/auth/passkey/${encodeURIComponent(id)}`, {
84
91
  method: "DELETE",
85
92
  }),
93
+ // --- Activity record (read side; live updates ride the WebSocket) ---
94
+ activityRuns: (opts) => fetchJson("/activity/runs?" +
95
+ [
96
+ opts?.origin && `origin=${opts.origin}`,
97
+ opts?.job && `job=${encodeURIComponent(opts.job)}`,
98
+ opts?.session && `session=${encodeURIComponent(opts.session)}`,
99
+ opts?.status && `status=${encodeURIComponent(opts.status)}`,
100
+ opts?.limit && `limit=${opts.limit}`,
101
+ opts?.before && `before=${opts.before}`,
102
+ ]
103
+ .filter(Boolean)
104
+ .join("&")),
105
+ /**
106
+ * One run's detail. Payload bodies (tool_input/tool_output events) are
107
+ * excluded by default — the session-history fetch only needs span timings —
108
+ * and opted into by the drill-in views via `includePayloads`.
109
+ */
110
+ activityRun: (runId, opts) => fetchJson(`/activity/runs/${encodeURIComponent(runId)}` +
111
+ (opts?.includePayloads ? "?include=payloads" : "")),
112
+ activityRollups: (days) => fetchJson(`/activity/rollups${days ? `?days=${days}` : ""}`),
113
+ activityInbox: () => fetchJson("/activity/inbox"),
114
+ activityInboxAck: (id) => fetchJson(`/activity/inbox/${id}/ack`, { method: "POST" }),
115
+ activityInboxAckAll: () => fetchJson("/activity/inbox/ack-all", { method: "POST" }),
116
+ activityDigest: () => fetchJson("/activity/digest"),
117
+ activityDigestDismiss: () => fetchJson("/activity/digest/dismiss", { method: "POST" }),
118
+ pushPublicKey: () => fetchJson("/push/public-key"),
119
+ pushSubscribe: (subscription, label) => fetchJson("/push/subscribe", {
120
+ method: "POST",
121
+ body: JSON.stringify({ subscription, label }),
122
+ }),
123
+ pushUnsubscribe: (endpoint) => fetchJson("/push/unsubscribe", {
124
+ method: "POST",
125
+ body: JSON.stringify({ endpoint }),
126
+ }),
86
127
  };
87
128
  //# sourceMappingURL=api-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/lib/api-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import type { ActivitySpan, ActivitySpanEvent, ServerActivityDelta, ServerActivitySnapshot } from "@schlessera/brain-ui-sdk/protocol";
2
+ import { type ActivityIntent } from "../lib/api-client.js";
3
+ /**
4
+ * Client mirror of the server's activity record, fed by the snapshot-then-
5
+ * delta stream. The server computes; this store only holds and indexes what
6
+ * arrived — no aggregation, no derived rollups (those come from the REST
7
+ * activity API).
8
+ *
9
+ * Ordering contract (AE6): a snapshot sets the per-run high-water seq; a
10
+ * delta at or below it is DISCARDED (its content is already in the
11
+ * snapshot). Applying a delta is idempotent — span deltas upsert by spanId,
12
+ * event deltas insert-if-absent by (spanId, eventIndex) — so a duplicate
13
+ * delivery can never corrupt state. The guard is symmetric: a snapshot
14
+ * whose per-run high-water is STRICTLY LOWER than what is held (a stale
15
+ * frame racing a reconnect) is skipped for that run; an equal value still
16
+ * applies, so chunked append frames keep working.
17
+ *
18
+ * Bounded mirror: at most MAX_TERMINAL_RUNS finished runs are held — once a
19
+ * run past the cap, the oldest terminal runs (by root start time) are
20
+ * evicted wholesale (spans, events, high-water, reverse index). Live runs
21
+ * are never evicted; evicted history remains fetchable over REST.
22
+ */
23
+ interface ActivityState {
24
+ /** server_hello said this host records activity. */
25
+ supported: boolean;
26
+ /** Session ids this connection has an activity subscription for. */
27
+ subscribed: Record<string, true>;
28
+ /** Bumped on every new connection so subscribe effects re-send. */
29
+ connectionEpoch: number;
30
+ /** Live span state per run, keyed runId -> spanId. */
31
+ spans: Record<string, Record<string, ActivitySpan>>;
32
+ /** Ordered events per span (already sorted by eventIndex). */
33
+ events: Record<string, ActivitySpanEvent[]>;
34
+ /** Per-run high-water seq from the snapshot; deltas at or below drop. */
35
+ highWater: Record<string, number>;
36
+ /**
37
+ * Newest APPLIED delta seq per run. Kept apart from `highWater` on
38
+ * purpose: the snapshot staleness guard compares against the max of both
39
+ * (a snapshot older than an applied delta must not roll it back), while
40
+ * the delta gate keeps comparing against the snapshot floor alone so
41
+ * out-of-order delta delivery stays tolerated (insert-if-absent absorbs it).
42
+ */
43
+ deltaSeq: Record<string, number>;
44
+ /** spanId -> runId reverse index, for timing lookups by toolUseId. */
45
+ spanRun: Record<string, string>;
46
+ /** Unacknowledged notification intents — the guaranteed-tier inbox. */
47
+ inbox: ActivityIntent[];
48
+ loadInbox: () => Promise<void>;
49
+ acknowledgeIntent: (id: number) => Promise<void>;
50
+ acknowledgeAllIntents: () => Promise<void>;
51
+ setSupported: (supported: boolean) => void;
52
+ /** New connection: server-side subscriptions are gone; re-subscribe lazily. */
53
+ resetSubscriptions: () => void;
54
+ bumpConnectionEpoch: () => void;
55
+ markSubscribed: (sessionId: string) => void;
56
+ applySnapshot: (msg: ServerActivitySnapshot) => void;
57
+ applyDelta: (msg: ServerActivityDelta) => void;
58
+ clear: () => void;
59
+ }
60
+ export declare const useActivityStore: import("zustand").UseBoundStore<import("zustand").StoreApi<ActivityState>>;
61
+ /**
62
+ * Pull a session's recent FINISHED runs from the REST activity API into the
63
+ * store. The live subscription's snapshot carries open runs only; this is
64
+ * what makes duration badges on history-loaded messages real (AE2) — span
65
+ * ids are tool-use ids, so the timeline's timing lookup starts hitting.
66
+ * Fire-and-forget; a failure just leaves badges absent, as before.
67
+ */
68
+ export declare function loadSessionActivityHistory(sessionId: string): Promise<void>;
69
+ /**
70
+ * Backfill one finished run's tool payload events into the mirror. The
71
+ * history fetch above and the run-list default deliberately skip payload
72
+ * bodies — they exist for duration badges, not drill-ins — so the first
73
+ * expanded payload view of a history span pulls the full detail
74
+ * (`include=payloads`) and merges it. Live runs never need this: their
75
+ * payload events ride the delta stream. The merge is safe because a snapshot
76
+ * at the same high-water still applies and events insert-if-absent.
77
+ */
78
+ export declare function loadSpanPayloads(spanId: string): Promise<void>;
79
+ /** All spans of a run, roots first, then by start time. */
80
+ export declare function runSpans(state: ActivityState, runId: string): ActivitySpan[];
81
+ /** Direct children of a span (e.g. the tool calls inside a subagent). */
82
+ export declare function childSpans(state: ActivityState, parentSpanId: string): ActivitySpan[];
83
+ /** The subagent spans spawned by a turn's Agent tool calls, live status included. */
84
+ export declare function subagentSpans(state: ActivityState, sessionId: string): ActivitySpan[];
85
+ /** Stable empty result for `eventsFor` — a fresh `[]` per call would defeat
86
+ * reference-equality checks in zustand selectors. */
87
+ export declare const EMPTY_EVENTS: ActivitySpanEvent[];
88
+ /** Ordered events of a span; the shared frozen empty array when none. */
89
+ export declare function eventsFor(state: ActivityState, spanId: string): ActivitySpanEvent[];
90
+ /**
91
+ * The recorded input/output payload events of a tool span (AE7). Returns a
92
+ * fresh array per call — subscribe through `useShallow` (like `childSpans`).
93
+ */
94
+ export declare function payloadEventsFor(state: ActivityState, spanId: string): ActivitySpanEvent[];
95
+ /** The span behind one tool call (span ids ARE toolUseIds), if streamed. */
96
+ export declare function spanForTool(state: ActivityState, toolUseId: string): ActivitySpan | null;
97
+ /**
98
+ * Server-stamped timing for a tool call. One clock for live and reloaded
99
+ * views: when the activity stream carries the span, its timestamps win over
100
+ * client stamps (AE2 — live and revisit must render identical timings).
101
+ * `waitUntil` marks the approval-wait/execution boundary.
102
+ */
103
+ export declare function timingFor(state: ActivityState, toolUseId: string): {
104
+ startedAt: number;
105
+ endedAt?: number;
106
+ } | null;
107
+ export {};
108
+ //# sourceMappingURL=activity-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-store.d.ts","sourceRoot":"","sources":["../../src/stores/activity-store.ts"],"names":[],"mappings":"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"}