refactor(core): separate out location node functionality and integrate into v2 (#34119)

This commit is contained in:
James Long 2026-06-26 22:46:07 -04:00 committed by GitHub
commit ecdfff5a42
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
117 changed files with 1450 additions and 1196 deletions

View file

@ -1,5 +1,6 @@
import { Cause, Effect, Layer } from "effect"
import { LocationServiceMap } from "../../location-layer"
import { LocationServiceMap } from "../../location-service-map"
import { makeGlobalNode } from "../../effect/node"
import { SessionRunCoordinator } from "../run-coordinator"
import { SessionRunner } from "../runner"
import { SessionSchema } from "../schema"
@ -11,7 +12,7 @@ export const layer = Layer.effect(
SessionExecution.Service,
Effect.gen(function* () {
const store = yield* SessionStore.Service
const locations = yield* LocationServiceMap
const locations = yield* LocationServiceMap.Service
const coordinator = yield* SessionRunCoordinator.make<SessionSchema.ID, SessionRunner.RunError>({
drain: Effect.fnUntraced(function* (sessionID: SessionSchema.ID, force) {
const session = yield* store.get(sessionID)
@ -37,3 +38,11 @@ export const layer = Layer.effect(
)
export const defaultLayer = layer.pipe(Layer.provide(SessionStore.defaultLayer))
export const node = makeGlobalNode({
service: SessionExecution.Service,
layer,
deps: [SessionStore.node, LocationServiceMap.node],
})
export * as SessionExecutionLocal from "./local"