@jmoyers/harness 0.1.11 → 0.1.20

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 (232) hide show
  1. package/README.md +31 -39
  2. package/package.json +31 -11
  3. package/packages/harness-ai/src/anthropic-protocol.ts +68 -68
  4. package/packages/harness-ai/src/stream-text.ts +13 -91
  5. package/packages/harness-ui/src/frame-primitives.ts +158 -0
  6. package/packages/harness-ui/src/index.ts +18 -0
  7. package/packages/harness-ui/src/interaction/conversation-input-forwarder.ts +221 -0
  8. package/packages/harness-ui/src/interaction/conversation-selection-input.ts +213 -0
  9. package/packages/harness-ui/src/interaction/global-shortcut-input.ts +172 -0
  10. package/{src/ui → packages/harness-ui/src/interaction}/input-preflight.ts +10 -12
  11. package/{src/ui → packages/harness-ui/src/interaction}/input-token-router.ts +120 -69
  12. package/packages/harness-ui/src/interaction/input.ts +420 -0
  13. package/packages/harness-ui/src/interaction/left-nav-input.ts +166 -0
  14. package/{src/ui → packages/harness-ui/src/interaction}/main-pane-pointer-input.ts +91 -23
  15. package/{src/ui → packages/harness-ui/src/interaction}/pointer-routing-input.ts +112 -48
  16. package/packages/harness-ui/src/interaction/rail-pointer-input.ts +62 -0
  17. package/packages/harness-ui/src/interaction/repository-fold-input.ts +118 -0
  18. package/packages/harness-ui/src/kit.ts +476 -0
  19. package/packages/harness-ui/src/layout.ts +238 -0
  20. package/packages/harness-ui/src/modal-manager.ts +222 -0
  21. package/{src/ui → packages/harness-ui/src}/screen.ts +53 -26
  22. package/packages/harness-ui/src/surface.ts +252 -0
  23. package/packages/harness-ui/src/text-layout.ts +210 -0
  24. package/packages/nim-core/src/contracts.ts +239 -0
  25. package/packages/nim-core/src/event-store.ts +299 -0
  26. package/packages/nim-core/src/events.ts +53 -0
  27. package/packages/nim-core/src/index.ts +9 -0
  28. package/packages/nim-core/src/provider-router.ts +129 -0
  29. package/packages/nim-core/src/providers/anthropic-driver.ts +291 -0
  30. package/packages/nim-core/src/runtime-factory.ts +49 -0
  31. package/packages/nim-core/src/runtime.ts +1797 -0
  32. package/packages/nim-core/src/session-store.ts +516 -0
  33. package/packages/nim-core/src/telemetry.ts +48 -0
  34. package/packages/nim-test-tui/src/index.ts +150 -0
  35. package/packages/nim-ui-core/src/index.ts +1 -0
  36. package/packages/nim-ui-core/src/projection.ts +87 -0
  37. package/scripts/codex-live-mux-runtime.ts +2 -3872
  38. package/scripts/control-plane-daemon.ts +11 -0
  39. package/scripts/harness-bin.js +5 -0
  40. package/scripts/harness-commands.ts +300 -0
  41. package/scripts/harness-runtime.ts +82 -0
  42. package/scripts/harness.ts +33 -3019
  43. package/scripts/nim-tui-smoke.ts +748 -0
  44. package/src/cli/auth/runtime.ts +948 -0
  45. package/src/cli/gateway/runtime.ts +1872 -0
  46. package/src/cli/parsing/flags.ts +23 -0
  47. package/src/cli/parsing/session.ts +42 -0
  48. package/src/cli/runtime/context.ts +193 -0
  49. package/src/cli/runtime-app/application.ts +392 -0
  50. package/src/cli/runtime-infra/gateway-control.ts +729 -0
  51. package/{scripts/harness-inspector.ts → src/cli/workflows/inspector.ts} +14 -11
  52. package/src/cli/workflows/runtime.ts +965 -0
  53. package/src/clients/tui/left-rail-interactions.ts +519 -0
  54. package/src/clients/tui/main-pane-interactions.ts +509 -0
  55. package/src/clients/tui/modal-input-routing.ts +71 -0
  56. package/src/clients/tui/render-snapshot-adapter.ts +88 -0
  57. package/src/clients/web/synced-selectors.ts +132 -0
  58. package/src/codex/live-session.ts +82 -29
  59. package/src/config/config-core.ts +348 -8
  60. package/src/config/harness.config.template.jsonc +33 -0
  61. package/src/control-plane/agent-realtime-api.ts +82 -427
  62. package/src/control-plane/session-summary.ts +10 -81
  63. package/src/control-plane/status/reducer-base.ts +12 -12
  64. package/src/control-plane/status/reducers/claude-status-reducer.ts +3 -3
  65. package/src/control-plane/status/reducers/codex-status-reducer.ts +4 -4
  66. package/src/control-plane/status/reducers/cursor-status-reducer.ts +3 -3
  67. package/src/control-plane/stream-client.ts +12 -2
  68. package/src/control-plane/stream-command-parser.ts +83 -143
  69. package/src/control-plane/stream-protocol.ts +53 -37
  70. package/src/control-plane/stream-server-command.ts +376 -69
  71. package/src/control-plane/stream-server-session-runtime.ts +3 -2
  72. package/src/control-plane/stream-server.ts +864 -70
  73. package/src/control-plane/stream-session-runtime-types.ts +41 -0
  74. package/src/{mux/live-mux/control-plane-records.ts → core/contracts/records.ts} +24 -97
  75. package/src/core/state/observed-stream-cursor.ts +43 -0
  76. package/src/core/state/synced-observed-state.ts +273 -0
  77. package/src/core/store/harness-synced-store.ts +81 -0
  78. package/src/diff/budget.ts +136 -0
  79. package/src/diff/build.ts +289 -0
  80. package/src/diff/chunker.ts +146 -0
  81. package/src/diff/git-invoke.ts +315 -0
  82. package/src/diff/git-parse.ts +472 -0
  83. package/src/diff/hash.ts +70 -0
  84. package/src/diff/index.ts +24 -0
  85. package/src/diff/normalize.ts +134 -0
  86. package/src/diff/types.ts +178 -0
  87. package/src/diff-ui/args.ts +346 -0
  88. package/src/diff-ui/commands.ts +123 -0
  89. package/src/diff-ui/finder.ts +94 -0
  90. package/src/diff-ui/highlight.ts +127 -0
  91. package/src/diff-ui/index.ts +2 -0
  92. package/src/diff-ui/model.ts +141 -0
  93. package/src/diff-ui/pager.ts +412 -0
  94. package/src/diff-ui/render.ts +337 -0
  95. package/src/diff-ui/runtime.ts +379 -0
  96. package/src/diff-ui/state.ts +224 -0
  97. package/src/diff-ui/types.ts +236 -0
  98. package/src/domain/workspace.ts +68 -5
  99. package/src/mux/control-plane-op-queue.ts +93 -7
  100. package/src/mux/conversation-rail.ts +28 -71
  101. package/src/mux/dual-pane-core.ts +13 -13
  102. package/src/mux/harness-core-ui.ts +313 -42
  103. package/src/mux/input-shortcuts.ts +13 -131
  104. package/src/mux/keybinding-catalog.ts +340 -0
  105. package/src/mux/keybinding-registry.ts +103 -0
  106. package/src/mux/live-mux/command-menu-open-in.ts +280 -0
  107. package/src/mux/live-mux/command-menu.ts +167 -4
  108. package/src/mux/live-mux/conversation-state.ts +13 -0
  109. package/src/mux/live-mux/directory-resolution.ts +1 -1
  110. package/src/mux/live-mux/git-snapshot.ts +33 -2
  111. package/src/mux/live-mux/global-shortcut-handlers.ts +6 -0
  112. package/src/mux/live-mux/home-pane-drop.ts +1 -1
  113. package/src/mux/live-mux/home-pane-pointer.ts +10 -0
  114. package/src/mux/live-mux/input-forwarding.ts +59 -2
  115. package/src/mux/live-mux/left-nav-activation.ts +124 -7
  116. package/src/mux/live-mux/left-nav.ts +35 -0
  117. package/src/mux/live-mux/link-click.ts +292 -0
  118. package/src/mux/live-mux/modal-command-menu-handler.ts +46 -9
  119. package/src/mux/live-mux/modal-conversation-handlers.ts +5 -1
  120. package/src/mux/live-mux/modal-input-reducers.ts +77 -12
  121. package/src/mux/live-mux/modal-overlays.ts +168 -34
  122. package/src/mux/live-mux/modal-pointer.ts +3 -7
  123. package/src/mux/live-mux/modal-prompt-handlers.ts +23 -2
  124. package/src/mux/live-mux/modal-release-notes-handler.ts +111 -0
  125. package/src/mux/live-mux/modal-task-editor-handler.ts +16 -11
  126. package/src/mux/live-mux/pointer-routing.ts +5 -2
  127. package/src/mux/live-mux/project-pane-pointer.ts +8 -0
  128. package/src/mux/live-mux/rail-layout.ts +33 -30
  129. package/src/mux/live-mux/release-notes.ts +383 -0
  130. package/src/mux/live-mux/render-trace-analysis.ts +52 -7
  131. package/src/mux/live-mux/repository-folding.ts +3 -0
  132. package/src/mux/live-mux/selection.ts +0 -4
  133. package/src/mux/live-mux/session-diagnostics-paths.ts +21 -0
  134. package/src/mux/project-pane-github-review.ts +271 -0
  135. package/src/mux/render-frame.ts +4 -0
  136. package/src/mux/runtime-app/codex-live-mux-runtime.ts +5191 -0
  137. package/src/mux/task-composer.ts +21 -14
  138. package/src/mux/task-focused-pane.ts +118 -117
  139. package/src/mux/task-screen-keybindings.ts +10 -101
  140. package/src/mux/workspace-rail-model.ts +270 -104
  141. package/src/mux/workspace-rail.ts +45 -22
  142. package/src/pty/session-broker.ts +1 -1
  143. package/{scripts → src/recording}/terminal-recording-gif-lib.ts +2 -2
  144. package/src/services/control-plane.ts +50 -32
  145. package/src/services/conversation-lifecycle.ts +118 -87
  146. package/src/services/conversation-startup-hydration.ts +20 -12
  147. package/src/services/directory-hydration.ts +21 -16
  148. package/src/services/event-persistence.ts +7 -0
  149. package/src/services/left-rail-pointer-handler.ts +329 -0
  150. package/src/services/mux-ui-state-persistence.ts +5 -1
  151. package/src/services/recording.ts +34 -26
  152. package/src/services/runtime-command-menu-agent-tools.ts +1 -1
  153. package/src/services/runtime-control-actions.ts +79 -61
  154. package/src/services/runtime-control-plane-ops.ts +122 -83
  155. package/src/services/runtime-conversation-actions.ts +40 -26
  156. package/src/services/runtime-conversation-activation.ts +73 -46
  157. package/src/services/runtime-conversation-starter.ts +53 -45
  158. package/src/services/runtime-conversation-title-edit.ts +91 -80
  159. package/src/services/runtime-envelope-handler.ts +107 -105
  160. package/src/services/runtime-git-state.ts +42 -29
  161. package/src/services/runtime-layout-resize.ts +3 -1
  162. package/src/services/runtime-left-rail-render.ts +99 -63
  163. package/src/services/runtime-nim-cli-session.ts +438 -0
  164. package/src/services/runtime-nim-session.ts +705 -0
  165. package/src/services/runtime-nim-tool-bridge.ts +141 -0
  166. package/src/services/runtime-observed-event-projection-pipeline.ts +45 -0
  167. package/src/services/runtime-process-wiring.ts +29 -36
  168. package/src/services/runtime-project-pane-github-review-cache.ts +164 -0
  169. package/src/services/runtime-render-flush.ts +63 -70
  170. package/src/services/runtime-render-lifecycle.ts +65 -64
  171. package/src/services/runtime-render-orchestrator.ts +55 -45
  172. package/src/services/runtime-render-pipeline.ts +106 -103
  173. package/src/services/runtime-render-state.ts +62 -49
  174. package/src/services/runtime-repository-actions.ts +97 -72
  175. package/src/services/runtime-right-pane-render.ts +80 -53
  176. package/src/services/runtime-shutdown.ts +38 -35
  177. package/src/services/runtime-stream-subscriptions.ts +35 -27
  178. package/src/services/runtime-task-composer-persistence.ts +71 -59
  179. package/src/services/runtime-task-composer-snapshot.ts +14 -0
  180. package/src/services/runtime-task-editor-actions.ts +46 -29
  181. package/src/services/runtime-task-pane-actions.ts +220 -134
  182. package/src/services/runtime-task-pane-shortcuts.ts +323 -123
  183. package/src/services/runtime-workspace-observed-effect-queue.ts +25 -0
  184. package/src/services/runtime-workspace-observed-events.ts +33 -184
  185. package/src/services/runtime-workspace-observed-transition-policy.ts +228 -0
  186. package/src/services/session-diagnostics-store.ts +217 -0
  187. package/src/services/startup-background-resume.ts +26 -21
  188. package/src/services/startup-orchestrator.ts +16 -13
  189. package/src/services/startup-paint-tracker.ts +29 -21
  190. package/src/services/startup-persisted-conversation-queue.ts +19 -13
  191. package/src/services/startup-settled-gate.ts +25 -15
  192. package/src/services/startup-shutdown.ts +18 -22
  193. package/src/services/startup-state-hydration.ts +44 -34
  194. package/src/services/startup-visibility.ts +12 -4
  195. package/src/services/task-pane-selection-actions.ts +89 -72
  196. package/src/services/task-planning-hydration.ts +24 -18
  197. package/src/services/task-planning-observed-events.ts +50 -52
  198. package/src/services/workspace-observed-events.ts +66 -63
  199. package/src/storage/storage-lifecycle-core.ts +438 -0
  200. package/src/store/control-plane-store-normalize.ts +33 -242
  201. package/src/store/control-plane-store-types.ts +1 -35
  202. package/src/store/control-plane-store.ts +360 -56
  203. package/src/store/event-store.ts +366 -8
  204. package/src/terminal/snapshot-oracle.ts +207 -94
  205. package/src/ui/mux-theme.ts +112 -8
  206. package/src/ui/panes/home-gridfire.ts +40 -31
  207. package/src/ui/panes/home.ts +10 -2
  208. package/src/ui/panes/nim.ts +315 -0
  209. package/src/mux/live-mux/actions-task.ts +0 -115
  210. package/src/mux/live-mux/left-rail-actions.ts +0 -118
  211. package/src/mux/live-mux/left-rail-conversation-click.ts +0 -85
  212. package/src/mux/live-mux/left-rail-pointer.ts +0 -74
  213. package/src/mux/live-mux/task-pane-shortcuts.ts +0 -206
  214. package/src/services/runtime-directory-actions.ts +0 -164
  215. package/src/services/runtime-input-pipeline.ts +0 -50
  216. package/src/services/runtime-input-router.ts +0 -195
  217. package/src/services/runtime-main-pane-input.ts +0 -230
  218. package/src/services/runtime-modal-input.ts +0 -137
  219. package/src/services/runtime-navigation-input.ts +0 -197
  220. package/src/services/runtime-rail-input.ts +0 -279
  221. package/src/services/runtime-task-pane.ts +0 -62
  222. package/src/services/runtime-workspace-actions.ts +0 -158
  223. package/src/ui/conversation-input-forwarder.ts +0 -114
  224. package/src/ui/conversation-selection-input.ts +0 -103
  225. package/src/ui/global-shortcut-input.ts +0 -89
  226. package/src/ui/input.ts +0 -269
  227. package/src/ui/kit.ts +0 -509
  228. package/src/ui/left-nav-input.ts +0 -80
  229. package/src/ui/left-rail-pointer-input.ts +0 -148
  230. package/src/ui/modals/manager.ts +0 -218
  231. package/src/ui/repository-fold-input.ts +0 -91
  232. package/src/ui/surface.ts +0 -224
@@ -10,6 +10,17 @@ export type StreamPromptCaptureSource = 'otlp-log' | 'hook-notify' | 'history';
10
10
  export type StreamPromptConfidence = 'high' | 'medium' | 'low';
11
11
  export type StreamSessionControllerType = 'human' | 'agent' | 'automation';
12
12
  export type StreamSessionDisplayPhase = 'needs-action' | 'starting' | 'working' | 'idle' | 'exited';
13
+ export type StreamSessionActivityHint = 'needs-action' | 'working' | 'idle';
14
+
15
+ export function isStreamSessionRuntimeStatus(value: unknown): value is StreamSessionRuntimeStatus {
16
+ return (
17
+ value === 'running' || value === 'needs-input' || value === 'completed' || value === 'exited'
18
+ );
19
+ }
20
+
21
+ export function parseStreamSessionRuntimeStatus(value: unknown): StreamSessionRuntimeStatus | null {
22
+ return isStreamSessionRuntimeStatus(value) ? value : null;
23
+ }
13
24
 
14
25
  export interface StreamSessionController {
15
26
  controllerId: string;
@@ -35,7 +46,7 @@ export interface StreamSessionStatusModel {
35
46
  attentionReason: string | null;
36
47
  lastKnownWork: string | null;
37
48
  lastKnownWorkAt: string | null;
38
- phaseHint: 'needs-action' | 'working' | 'idle' | null;
49
+ activityHint: StreamSessionActivityHint | null;
39
50
  observedAt: string;
40
51
  }
41
52
 
@@ -131,27 +142,10 @@ interface ConversationDeleteCommand {
131
142
 
132
143
  type StreamTaskStatus = 'draft' | 'ready' | 'in-progress' | 'completed';
133
144
  type StreamTaskScopeKind = 'global' | 'repository' | 'project';
134
- type StreamTaskLinearPriority = 0 | 1 | 2 | 3 | 4;
135
145
  type StreamProjectTaskFocusMode = 'balanced' | 'own-only';
136
146
  type StreamProjectThreadSpawnMode = 'new-thread' | 'reuse-thread';
137
147
  type StreamAutomationPolicyScope = 'global' | 'repository' | 'project';
138
148
 
139
- interface StreamTaskLinearInput {
140
- issueId?: string | null;
141
- identifier?: string | null;
142
- url?: string | null;
143
- teamId?: string | null;
144
- projectId?: string | null;
145
- projectMilestoneId?: string | null;
146
- cycleId?: string | null;
147
- stateId?: string | null;
148
- assigneeId?: string | null;
149
- priority?: StreamTaskLinearPriority | null;
150
- estimate?: number | null;
151
- dueDate?: string | null;
152
- labelIds?: readonly string[] | null;
153
- }
154
-
155
149
  interface RepositoryUpsertCommand {
156
150
  type: 'repository.upsert';
157
151
  repositoryId?: string;
@@ -200,9 +194,8 @@ interface TaskCreateCommand {
200
194
  workspaceId?: string;
201
195
  repositoryId?: string;
202
196
  projectId?: string;
203
- title: string;
204
- description?: string;
205
- linear?: StreamTaskLinearInput;
197
+ title?: string | null;
198
+ body: string;
206
199
  }
207
200
 
208
201
  interface TaskGetCommand {
@@ -225,11 +218,10 @@ interface TaskListCommand {
225
218
  interface TaskUpdateCommand {
226
219
  type: 'task.update';
227
220
  taskId: string;
228
- title?: string;
229
- description?: string;
221
+ title?: string | null;
222
+ body?: string;
230
223
  repositoryId?: string | null;
231
224
  projectId?: string | null;
232
- linear?: StreamTaskLinearInput | null;
233
225
  }
234
226
 
235
227
  interface TaskDeleteCommand {
@@ -329,6 +321,12 @@ interface GitHubProjectPrCommand {
329
321
  directoryId: string;
330
322
  }
331
323
 
324
+ interface GitHubProjectReviewCommand {
325
+ type: 'github.project-review';
326
+ directoryId: string;
327
+ forceRefresh?: boolean;
328
+ }
329
+
332
330
  interface GitHubPrListCommand {
333
331
  type: 'github.pr-list';
334
332
  tenantId?: string;
@@ -366,6 +364,16 @@ interface GitHubRepoMyPrsUrlCommand {
366
364
  repositoryId: string;
367
365
  }
368
366
 
367
+ interface LinearIssueImportCommand {
368
+ type: 'linear.issue.import';
369
+ url: string;
370
+ tenantId?: string;
371
+ userId?: string;
372
+ workspaceId?: string;
373
+ repositoryId?: string;
374
+ projectId?: string;
375
+ }
376
+
369
377
  interface StreamSubscribeCommand {
370
378
  type: 'stream.subscribe';
371
379
  tenantId?: string;
@@ -524,10 +532,12 @@ export type StreamCommand =
524
532
  | AutomationPolicyGetCommand
525
533
  | AutomationPolicySetCommand
526
534
  | GitHubProjectPrCommand
535
+ | GitHubProjectReviewCommand
527
536
  | GitHubPrListCommand
528
537
  | GitHubPrCreateCommand
529
538
  | GitHubPrJobsListCommand
530
539
  | GitHubRepoMyPrsUrlCommand
540
+ | LinearIssueImportCommand
531
541
  | StreamSubscribeCommand
532
542
  | StreamUnsubscribeCommand
533
543
  | SessionListCommand
@@ -1097,6 +1107,13 @@ function parsePromptConfidence(value: unknown): StreamPromptConfidence | null {
1097
1107
  return null;
1098
1108
  }
1099
1109
 
1110
+ function parseSessionActivityHint(value: unknown): StreamSessionActivityHint | undefined {
1111
+ if (value === 'needs-action' || value === 'working' || value === 'idle') {
1112
+ return value;
1113
+ }
1114
+ return undefined;
1115
+ }
1116
+
1100
1117
  function parseTelemetrySummary(value: unknown): StreamTelemetrySummary | null | undefined {
1101
1118
  if (value === undefined) {
1102
1119
  return undefined;
@@ -1131,7 +1148,9 @@ function parseTelemetrySummary(value: unknown): StreamTelemetrySummary | null |
1131
1148
  };
1132
1149
  }
1133
1150
 
1134
- function parseSessionStatusModel(value: unknown): StreamSessionStatusModel | null | undefined {
1151
+ export function parseStreamSessionStatusModel(
1152
+ value: unknown,
1153
+ ): StreamSessionStatusModel | null | undefined {
1135
1154
  if (value === undefined) {
1136
1155
  return undefined;
1137
1156
  }
@@ -1153,14 +1172,15 @@ function parseSessionStatusModel(value: unknown): StreamSessionStatusModel | nul
1153
1172
  record['lastKnownWork'] === null ? null : readString(record['lastKnownWork']);
1154
1173
  const lastKnownWorkAt =
1155
1174
  record['lastKnownWorkAt'] === null ? null : readString(record['lastKnownWorkAt']);
1156
- const phaseHint = record['phaseHint'] === null ? null : readString(record['phaseHint']);
1175
+ const activityHintValue = record['activityHint'];
1176
+ const activityHint =
1177
+ activityHintValue === undefined || activityHintValue === null
1178
+ ? null
1179
+ : parseSessionActivityHint(activityHintValue);
1157
1180
  const observedAt = readString(record['observedAt']);
1158
1181
  if (
1159
1182
  runtimeStatus === null ||
1160
- (runtimeStatus !== 'running' &&
1161
- runtimeStatus !== 'needs-input' &&
1162
- runtimeStatus !== 'completed' &&
1163
- runtimeStatus !== 'exited') ||
1183
+ !isStreamSessionRuntimeStatus(runtimeStatus) ||
1164
1184
  phase === null ||
1165
1185
  (phase !== 'needs-action' &&
1166
1186
  phase !== 'starting' &&
@@ -1175,11 +1195,7 @@ function parseSessionStatusModel(value: unknown): StreamSessionStatusModel | nul
1175
1195
  (attentionReason === null && record['attentionReason'] !== null) ||
1176
1196
  (lastKnownWork === null && record['lastKnownWork'] !== null) ||
1177
1197
  (lastKnownWorkAt === null && record['lastKnownWorkAt'] !== null) ||
1178
- (phaseHint === null && record['phaseHint'] !== null) ||
1179
- (phaseHint !== null &&
1180
- phaseHint !== 'needs-action' &&
1181
- phaseHint !== 'working' &&
1182
- phaseHint !== 'idle') ||
1198
+ activityHint === undefined ||
1183
1199
  observedAt === null
1184
1200
  ) {
1185
1201
  return undefined;
@@ -1193,7 +1209,7 @@ function parseSessionStatusModel(value: unknown): StreamSessionStatusModel | nul
1193
1209
  attentionReason,
1194
1210
  lastKnownWork,
1195
1211
  lastKnownWorkAt,
1196
- phaseHint,
1212
+ activityHint,
1197
1213
  observedAt,
1198
1214
  };
1199
1215
  }
@@ -1599,7 +1615,7 @@ function parseStreamObservedEvent(value: unknown): StreamObservedEvent | null {
1599
1615
  const sessionId = readString(record['sessionId']);
1600
1616
  const status = readString(record['status']);
1601
1617
  const attentionReason = readString(record['attentionReason']);
1602
- const statusModel = parseSessionStatusModel(record['statusModel']);
1618
+ const statusModel = parseStreamSessionStatusModel(record['statusModel']);
1603
1619
  const live = readBoolean(record['live']);
1604
1620
  const ts = readString(record['ts']);
1605
1621
  const directoryId = readString(record['directoryId']);