import { BusEvent } from "@/bus/bus-event"
import { Schema } from "effect"

// Provider SDK 동적 설치 이벤트 — TUI/웹뷰에서 구독하여 설치 진행 상태 표시
// BusEvent.define 호출로 전역 레지스트리에 자동 등록됨
export const ProviderInstallEvent = {
  Started: BusEvent.define(
    "provider.install.started",
    Schema.Struct({
      providerID: Schema.String,
      pkg: Schema.String,
    }),
  ),
  Completed: BusEvent.define(
    "provider.install.completed",
    Schema.Struct({
      providerID: Schema.String,
      pkg: Schema.String,
    }),
  ),
  Failed: BusEvent.define(
    "provider.install.failed",
    Schema.Struct({
      providerID: Schema.String,
      pkg: Schema.String,
      error: Schema.String,
    }),
  ),
}
