import type { Clock, CredentialMaterialProvider, OAuthFlowExecutor, TypeToken } from "@codemation/core"; import type { BoundedDedupMap } from "./workflows/BoundedDedupMap"; import type { SessionVerifier } from "./application/auth/SessionVerifier"; import type { Command } from "./application/bus/Command"; import type { CommandBus } from "./application/bus/CommandBus"; import type { CommandHandler } from "./application/bus/CommandHandler"; import type { DomainEvent } from "./application/bus/DomainEvent"; import type { DomainEventBus } from "./application/bus/DomainEventBus"; import type { DomainEventHandler } from "./application/bus/DomainEventHandler"; import type { Query } from "./application/bus/Query"; import type { QueryBus } from "./application/bus/QueryBus"; import type { QueryHandler } from "./application/bus/QueryHandler"; import type { Logger, LoggerFactory } from "./application/logging/Logger"; import type { ProcessRunner } from "./process/ProcessRunner.types"; import type { TelemetrySpanPublisher } from "./application/telemetry/TelemetrySpanPublisher"; import type { CredentialStore } from "./domain/credentials/CredentialServices"; import type { RunTraceContextRepository, TelemetryArtifactStore, TelemetryExporter, TelemetryMetricPointStore, TelemetrySpanStore, } from "./domain/telemetry/TelemetryContracts"; import type { WorkflowRunRepository } from "./domain/runs/WorkflowRunRepository"; import type { WorkflowDebuggerOverlayRepository } from "./domain/workflows/WorkflowDebuggerOverlayRepository"; import type { WorkflowDefinitionRepository } from "./domain/workflows/WorkflowDefinitionRepository"; import type { WorkflowActivationRepository } from "./domain/workflows/WorkflowActivationRepository"; import type { PrismaDatabaseClient } from "./infrastructure/persistence/PrismaDatabaseClient"; import type { WorkerRuntimeScheduler } from "./infrastructure/scheduler/WorkerRuntimeScheduler"; import type { AppConfig } from "./presentation/config/AppConfig"; import type { CodemationAuthConfig } from "./presentation/config/CodemationAuthConfig"; import type { CodemationWhitelabelConfig } from "./presentation/config/CodemationWhitelabelConfig"; import type { HonoApiRouteRegistrar } from "./presentation/http/hono/HonoApiRouteRegistrar"; import type { InternalHonoApiRouteRegistrar } from "./presentation/http/hono/InternalHonoApiRouteRegistrar"; import type { ManagedCorsMiddleware } from "./auth/managed/ManagedCorsMiddleware"; import type { IWorkflowAuditEmitter } from "./audit/IAuditEmitter"; export const ApplicationTokens = { CodemationAuthConfig: Symbol.for("codemation.application.CodemationAuthConfig") as TypeToken< CodemationAuthConfig | undefined >, CodemationWhitelabelConfig: Symbol.for( "codemation.application.CodemationWhitelabelConfig", ) as TypeToken, AppConfig: Symbol.for("codemation.application.AppConfig") as TypeToken, QueryBus: Symbol.for("codemation.application.QueryBus") as TypeToken, CommandBus: Symbol.for("codemation.application.CommandBus") as TypeToken, DomainEventBus: Symbol.for("codemation.application.DomainEventBus") as TypeToken, QueryHandler: Symbol.for("codemation.application.QueryHandler") as TypeToken, unknown>>, CommandHandler: Symbol.for("codemation.application.CommandHandler") as TypeToken< CommandHandler, unknown> >, DomainEventHandler: Symbol.for("codemation.application.DomainEventHandler") as TypeToken< DomainEventHandler >, HonoApiRouteRegistrar: Symbol.for("codemation.application.HonoApiRouteRegistrar") as TypeToken, InternalHonoApiRouteRegistrar: Symbol.for( "codemation.application.InternalHonoApiRouteRegistrar", ) as TypeToken, ManagedCorsMiddleware: Symbol.for("codemation.application.ManagedCorsMiddleware") as TypeToken, TelemetrySpanPublisher: Symbol.for( "codemation.application.TelemetrySpanPublisher", ) as TypeToken, WorkerRuntimeScheduler: Symbol.for( "codemation.application.WorkerRuntimeScheduler", ) as TypeToken, WorkflowDefinitionRepository: Symbol.for( "codemation.application.WorkflowDefinitionRepository", ) as TypeToken, WorkflowActivationRepository: Symbol.for( "codemation.application.WorkflowActivationRepository", ) as TypeToken, WorkflowDebuggerOverlayRepository: Symbol.for( "codemation.application.WorkflowDebuggerOverlayRepository", ) as TypeToken, WorkflowRunRepository: Symbol.for("codemation.application.WorkflowRunRepository") as TypeToken, LoggerFactory: Symbol.for("codemation.application.LoggerFactory") as TypeToken, PerformanceDiagnosticsLogger: Symbol.for("codemation.application.PerformanceDiagnosticsLogger") as TypeToken, CredentialStore: Symbol.for("codemation.application.CredentialStore") as TypeToken, RunTraceContextRepository: Symbol.for( "codemation.application.RunTraceContextRepository", ) as TypeToken, TelemetrySpanStore: Symbol.for("codemation.application.TelemetrySpanStore") as TypeToken, TelemetryArtifactStore: Symbol.for( "codemation.application.TelemetryArtifactStore", ) as TypeToken, TelemetryMetricPointStore: Symbol.for( "codemation.application.TelemetryMetricPointStore", ) as TypeToken, TelemetryExporter: Symbol.for("codemation.application.TelemetryExporter") as TypeToken, PrismaClient: Symbol.for("codemation.application.PrismaClient") as TypeToken, SessionVerifier: Symbol.for("codemation.application.SessionVerifier") as TypeToken, Clock: Symbol.for("codemation.application.Clock") as TypeToken, WorkflowAuditEmitter: Symbol.for("codemation.application.WorkflowAuditEmitter") as TypeToken, ProcessRunner: Symbol.for("codemation.application.ProcessRunner") as TypeToken, OAuthFlowExecutor: Symbol.for("codemation.application.OAuthFlowExecutor") as TypeToken, CredentialMaterialInnerProvider: Symbol.for( "codemation.application.CredentialMaterialInnerProvider", ) as TypeToken, TriggerDispatchDedupMap: Symbol.for("codemation.application.TriggerDispatchDedupMap") as TypeToken, } as const;