Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 35 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -153,15 +153,33 @@ install-junit-viewer: ## Install junit-viewer for HTML report generation (if not

dev: install-ui install-air setup-workspace $(if $(DEBUG),install-delve) ## Start complete development environment (UI + API with proxy)
@$(EXPOSE_ENV); \
set -m; \
set +m; \
ui_pid=""; \
api_pid=""; \
cleanup() { \
$(ECHO) "$(YELLOW)[make dev] cleanup started; ui_pid=$$ui_pid api_pid=$$api_pid$(NC)"; \
trap - EXIT INT TERM HUP; \
kill %1 %2 2>/dev/null || true; \
for pid in "$$ui_pid" "$$api_pid"; do \
if [ -n "$$pid" ]; then \
children="$$(pgrep -P "$$pid" 2>/dev/null || true)"; \
$(ECHO) "$(YELLOW)[make dev] sending TERM to pid $$pid and children: $${children:-none}$(NC)"; \
kill -TERM $$children "$$pid" 2>/dev/null || true; \
fi; \
done; \
sleep 1; \
kill -KILL %1 %2 2>/dev/null || true; \
for pid in "$$ui_pid" "$$api_pid"; do \
if [ -n "$$pid" ]; then \
children="$$(pgrep -P "$$pid" 2>/dev/null || true)"; \
$(ECHO) "$(YELLOW)[make dev] sending KILL to pid $$pid and remaining children: $${children:-none}$(NC)"; \
kill -KILL $$children "$$pid" 2>/dev/null || true; \
fi; \
done; \
$(ECHO) "$(YELLOW)[make dev] waiting for background jobs to exit...$(NC)"; \
wait 2>/dev/null || true; \
$(ECHO) "$(GREEN)[make dev] cleanup completed.$(NC)"; \
}; \
stop_dev() { \
$(ECHO) "$(YELLOW)[make dev] received shutdown signal; starting cleanup...$(NC)"; \
cleanup; \
exit 130; \
}; \
Expand All @@ -184,33 +202,38 @@ dev: install-ui install-air setup-workspace $(if $(DEBUG),install-delve) ## Star
$(ECHO) "$(YELLOW)Starting UI development server...$(NC)"; \
$(USE_NODE); if [ -n "$(DISABLE_PROFILER)" ]; then \
$(ECHO) "$(CYAN)DevProfiler disabled for testing$(NC)"; \
cd ui && BIFROST_DISABLE_PROFILER=1 npm run dev & \
(cd ui && BIFROST_DISABLE_PROFILER=1 npm run dev) & \
else \
cd ui && npm run dev & \
(cd ui && npm run dev) & \
fi; \
ui_pid="$$!"; \
$(ECHO) "$(YELLOW)[make dev] UI dev server started with pid $$ui_pid$(NC)"; \
sleep 3; \
$(ECHO) "$(YELLOW)Starting API server with UI proxy...$(NC)"; \
$(MAKE) setup-workspace >/dev/null; \
if [ -n "$(DEBUG)" ]; then \
$(ECHO) "$(CYAN)Starting with air + delve debugger on port 2345...$(NC)"; \
$(ECHO) "$(YELLOW)Attach your debugger to localhost:2345$(NC)"; \
cd transports/bifrost-http && BIFROST_UI_DEV=true air -c .air.debug.toml -- \
(cd transports/bifrost-http && BIFROST_UI_DEV=true air -c .air.debug.toml -- \
-host "$(HOST)" \
-port "$(PORT)" \
-log-style "$(LOG_STYLE)" \
-log-level "$(LOG_LEVEL)" \
$(if $(PROMETHEUS_LABELS),-prometheus-labels "$(PROMETHEUS_LABELS)") \
$(if $(APP_DIR),-app-dir "$(abspath $(APP_DIR))") & \
$(if $(APP_DIR),-app-dir "$(abspath $(APP_DIR))")) & \
else \
cd transports/bifrost-http && BIFROST_UI_DEV=true air -c .air.toml -- \
(cd transports/bifrost-http && BIFROST_UI_DEV=true air -c .air.toml -- \
-host "$(HOST)" \
-port "$(PORT)" \
-log-style "$(LOG_STYLE)" \
-log-level "$(LOG_LEVEL)" \
$(if $(PROMETHEUS_LABELS),-prometheus-labels "$(PROMETHEUS_LABELS)") \
$(if $(APP_DIR),-app-dir "$(abspath $(APP_DIR))") & \
$(if $(APP_DIR),-app-dir "$(abspath $(APP_DIR))")) & \
fi; \
while [ "$$(jobs -r | wc -l | tr -d ' ')" -eq 2 ]; do sleep 1; done; \
api_pid="$$!"; \
$(ECHO) "$(YELLOW)[make dev] API dev server started with pid $$api_pid$(NC)"; \
while kill -0 "$$ui_pid" 2>/dev/null && kill -0 "$$api_pid" 2>/dev/null; do sleep 1; done; \
$(ECHO) "$(YELLOW)[make dev] one of the dev processes exited; running cleanup...$(NC)"; \
cleanup; \
exit 1

Expand Down Expand Up @@ -247,9 +270,9 @@ dev-pulse: install-ui install-pulse setup-workspace $(if $(DEBUG),install-delve)
$(ECHO) "$(YELLOW)Starting UI development server...$(NC)"; \
$(USE_NODE); if [ -n "$(DISABLE_PROFILER)" ]; then \
$(ECHO) "$(CYAN)DevProfiler disabled for testing$(NC)"; \
cd ui && BIFROST_DISABLE_PROFILER=1 npm run dev & \
(cd ui && BIFROST_DISABLE_PROFILER=1 npm run dev) & \
else \
cd ui && npm run dev & \
(cd ui && npm run dev) & \
fi; \
sleep 3; \
$(ECHO) "$(YELLOW)Starting API server with UI proxy...$(NC)"; \
Expand Down
5 changes: 4 additions & 1 deletion core/internal/llmtests/realtime.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ func RunRealtimeTest(t *testing.T, client *bifrost.Bifrost, ctx context.Context,
}

wsURL := rtProvider.RealtimeWebSocketURL(key, testConfig.RealtimeModel)
hdrs := rtProvider.RealtimeHeaders(key)
hdrs, headerErr := rtProvider.RealtimeHeaders(bfCtx, key)
if headerErr != nil {
t.Fatalf("failed to build realtime headers for provider %s: %v", testConfig.Provider, headerErr)
}

httpHeaders := http.Header{}
for k, v := range hdrs {
Expand Down
Loading
Loading