@@ -17,6 +17,7 @@ import { AgentLayer } from './agent/agent.js';
1717import { ToolEnvLayer } from './agent/tool-env.js' ;
1818import { SubagentRunnerLayer } from './subagent/subagent.js' ;
1919import { SubagentRunRegistryLayer } from './subagent/registry.js' ;
20+ import { TurnRegistryLayer } from './turn/registry.js' ;
2021import { MailboxLayer } from './session/mailbox.js' ;
2122import { SchedulerLayer } from './scheduler/scheduler.js' ;
2223
@@ -31,14 +32,17 @@ const InfraLayer = Layer.mergeAll(
3132 TodoLayer
3233) ;
3334
35+ // 状态帧由 turn 投递 ⇒ turn 要 sink;
36+ const TurnWithDeps = TurnRegistryLayer . pipe ( Layer . provide ( EventSinkLayer ) ) ;
37+
3438const ApprovalWithDeps = ApprovalLayer . pipe (
3539 Layer . provide ( Layer . mergeAll ( HookLayer , EventSinkLayer , ApprovalWaitLayer ) )
3640) ;
3741const ToolExecutorWithDeps = ToolExecutorLayer . pipe (
3842 Layer . provide ( Layer . mergeAll ( HookLayer , ApprovalWithDeps ) )
3943) ;
4044const ContextWithDeps = ContextLayer . pipe (
41- Layer . provide ( Layer . mergeAll ( SessionLayer , LlmLayer , EventSinkLayer ) )
45+ Layer . provide ( Layer . mergeAll ( SessionLayer , LlmLayer , EventSinkLayer , TurnWithDeps ) )
4246) ;
4347const MemoryWithDeps = MemoryLayer . pipe ( Layer . provide ( LlmLayer ) ) ;
4448
@@ -52,7 +56,8 @@ const AgentServiceLayers = Layer.mergeAll(
5256 ContextWithDeps ,
5357 MemoryWithDeps ,
5458 CheckpointLayer ,
55- LlmLayer
59+ LlmLayer ,
60+ TurnWithDeps
5661) ;
5762
5863// agent with deps
@@ -65,8 +70,9 @@ const SubagentWithDeps = SubagentRunnerLayer.pipe(Layer.provide(AgentWithDeps));
6570
6671// 运行注册表:要 runner 起子代理、要 mailbox 投递终态、要 sink 发 subagent_event 帧、
6772// 要 hooks 在子代理终态时触发 agent.subagent.complete。
73+ // 终态归属已并入状态表(turn 已在 AgentWithDeps 链路里,Layer 按引用去重 ⇒ 全进程一份 records)。
6874const SubagentRunRegistryWithDeps = SubagentRunRegistryLayer . pipe (
69- Layer . provide ( Layer . mergeAll ( SubagentWithDeps , MailboxLayer , EventSinkLayer , HookLayer ) )
75+ Layer . provide ( Layer . mergeAll ( SubagentWithDeps , MailboxLayer , EventSinkLayer , HookLayer , TurnWithDeps ) )
7076) ;
7177
7278export const AppLayer = Layer . mergeAll (
@@ -82,6 +88,7 @@ export const AppLayer = Layer.mergeAll(
8288 AgentWithDeps ,
8389 SubagentWithDeps ,
8490 SubagentRunRegistryWithDeps ,
91+ TurnWithDeps ,
8592 SchedulerLayer ,
8693 EventSinkLayer
8794) ;
0 commit comments