SuperAPI AI 工具集

effect-foundations

编程与开发

查看项目

更新于 10-16 00:28

技能介绍

用途:为编码智能体提供一份紧凑的 Effect TypeScript 编写清单,强调数据优先 pipe 风格、最少命令式代码与强类型,适合上下文有限的代理使用。触发场景包括新建或重构 Effect 实现、选择 map/flatMap/andThen/tap 操作符、将 promise/callback 转为 Effect。

主要能力:给出操作符选择指南(Effect.map 映射值、Effect.flatMap 链式 Effect、Effect.andThen 忽略前结果、Effect.tap 仅副作用、Effect.provide/layers 提供上下文、Layer.merge 组合层);提供创建、变换、串行、并行的最小模式;用 Effect.gen 写串行逻辑、Effect.all 做并行;用 Data.TaggedError 声明错误并以 catchTag(s) 恢复;用 Effect.runPromise 桥接异步流程。

使用方式:优先使用 .pipe() 数据优先风格;Effect.gen 内用 yield* 逐个执行 Effect;Effect.all(values, { concurrency }) 并发运行独立 Effect;Effect.catchTag 仅恢复特定类型错误,catchAll 兜底;R 不为 never 时需显式提供 layer。工具步骤建议先在本地源码 docs/effect-source/ 中搜索实现,例如 grep -rF "Effect.gen" docs/effect-source/effect/src/,再参考测试文件中的用法。

适用场景与限制:适合编写、重构 Effect 代码及选择操作符。注意不要混用 promise 与 Effect,需用 Effect.try/tryPromise 包装;不要在 Effect.gen 中返回原始值,应始终 yield* 一个 Effect;未满足的 R 需求需提供 layer 或调整架构。官方文档与具体安装方式资料中暂未提供。