用途:该技能面向 Effect(TypeScript 函数式效果库)的 Runtime 执行引擎,帮助理解如何运行 Effect、配置自定义运行时以及管理服务与生命周期。
主要能力:
- 默认运行时:无需配置即可运行 Effect,提供 Effect.runPromise、Effect.runPromiseExit、Effect.runSync、Effect.runSyncExit 等运行方法,其中带 Exit 的版本不抛错而是返回 Exit。
- 局部作用域配置:可通过 Logger.withMinimumLogLevel 等管道操作修改特定 Effect 的运行时行为。
- 服务与依赖注入:使用 Context.Tag 或 Effect.Tag 创建带类型的服务标签,在 Effect.gen 中通过 yield* 获取服务。
- ManagedRuntime:通过 ManagedRuntime.make(AppLive) 预构建 Layer,复用服务并支持 dispose() 清理,适合应用级使用。
- 框架集成:资料给出 Express 与 React 的集成示例,包括在请求处理中调用 runtime.runPromise,以及在组件卸载时调用 runtime.dispose()。
- 运行时配置:可用 Runtime.withFiberRef、Runtime.provideService 定制执行上下文与服务。
- 默认服务与覆盖:Clock、Random、Tracer、Console 等默认提供,测试时可用 TestClock.layer 覆盖以实现确定性时间。
- 中断处理:支持 Fiber.interrupt 与 Effect.uninterruptible 保护关键区段。
使用方式:按资料示例,先定义 Layer 组合(如 Layer.mergeAll),再用 ManagedRuntime.make 创建运行时,通过 runtime.runPromise 执行程序,结束时调用 runtime.dispose()。服务通过 Layer 提供,而非直接修改运行时。
适用场景:需要依赖注入、生命周期管理、框架集成或可测试时间控制的 Effect 应用。
限制:资料未提供具体版本要求、性能数据或收费信息;部分示例依赖 DatabaseLive、LoggerLive 等未展开定义。更多细节可查阅 ${CLAUDE_PLUGIN_ROOT}/references/llms-full.txt 中的相关章节。