()
| 316 | if identity.TenantID == "" { |
| 317 | identity.TenantID = session.LocalTenantID |
| 318 | } |
| 319 | identity.SessionID = sessionID |
| 320 | if identity.ProjectID == "" { |
| 321 | identity.ProjectID = agent.MemoryFabricSpace(cfg) |
| 322 | } |
| 323 | controller := &SessionController{ |
| 324 | tenantID: identity.TenantID, |
| 325 | id: sessionID, |
| 326 | fenceToken: identity.FenceToken, |
| 327 | identity: identity, |
| 328 | cfg: cfg, |
| 329 | engine: engine, |
| 330 | repository: repository, |
| 331 | journal: journal, |
| 332 | state: state, |
| 333 | } |
| 334 | controller.bridge = NewWSRendererBridge(identity.TenantID, sessionID, emit, controller.nextSeq) |
| 335 | controller.ui = luminaui.NewUiRuntime(engine, controller.bridge) |
| 336 | if engine != nil && engine.CoreEngine != nil { |
| 337 | engine.CoreEngine.StateObserver = controller.observeState |
| 338 | engine.CoreEngine.RuntimeEvents = agent.NewRuntimeEventRecorder(journal, sessionID) |
| 339 | engine.CoreEngine.RuntimeEvents.SetPublisher(controller.bridge.emitRuntimeEvents) |
| 340 | engine.CoreEngine.TaskRuntime.SetTaskEventObserver(engine.CoreEngine.RuntimeEvents) |
| 341 | } |
| 342 | return controller |
| 343 | } |
| 344 | |
| 345 | func (c *SessionController) ID() string { |
no test coverage detected