RFC-005 Phase 1: Core types — AgentFn, ThreadContext, Role/Moderator signature #268

Closed
opened 2026-04-30 06:51:38 +00:00 by xiaomo · 0 comments
Owner

目标

@uncaged/nerve-core 中引入新类型,更新 Role 和 Moderator 签名。

变更范围

packages/core/src/workflow.ts + packages/core/src/index.ts

具体任务

  1. 新增 ThreadContext<M> 类型:{ threadId: string; start: StartStep; steps: RoleStep<M>[] }
  2. 新增 AgentFn 类型:(ctx: ThreadContext, systemPrompt: string) => Promise<string>
  3. 重构 Role<Meta> 签名:从 (start, messages) 改为 (ctx: ThreadContext) => Promise<RoleResult<Meta>>
  4. 重构 Moderator<M> — 复用 ThreadContext<M> 替代 ModeratorContext<M>(或将 ModeratorContext 改为 ThreadContext 的别名)
  5. StartStep.meta 中移除 dryRun(移到 engine/adapter config 层)
  6. 导出新类型
  7. pnpm run check + pnpm run build 通过(允许下游编译错误,Phase 2 修)

验证步骤

  • ThreadContextAgentFn 类型已导出
  • Role<Meta> 签名为 (ctx: ThreadContext) => Promise<RoleResult<Meta>>
  • ModeratorContextThreadContext 替代或对齐
  • dryRun 不再出现在 StartStep.meta
  • pnpm run build 在 core 包内通过

Ref: #267

## 目标 在 `@uncaged/nerve-core` 中引入新类型,更新 Role 和 Moderator 签名。 ## 变更范围 `packages/core/src/workflow.ts` + `packages/core/src/index.ts` ## 具体任务 1. 新增 `ThreadContext<M>` 类型:`{ threadId: string; start: StartStep; steps: RoleStep<M>[] }` 2. 新增 `AgentFn` 类型:`(ctx: ThreadContext, systemPrompt: string) => Promise<string>` 3. 重构 `Role<Meta>` 签名:从 `(start, messages)` 改为 `(ctx: ThreadContext) => Promise<RoleResult<Meta>>` 4. 重构 `Moderator<M>` — 复用 `ThreadContext<M>` 替代 `ModeratorContext<M>`(或将 `ModeratorContext` 改为 `ThreadContext` 的别名) 5. 从 `StartStep.meta` 中移除 `dryRun`(移到 engine/adapter config 层) 6. 导出新类型 7. `pnpm run check` + `pnpm run build` 通过(允许下游编译错误,Phase 2 修) ## 验证步骤 - [ ] `ThreadContext` 和 `AgentFn` 类型已导出 - [ ] `Role<Meta>` 签名为 `(ctx: ThreadContext) => Promise<RoleResult<Meta>>` - [ ] `ModeratorContext` 被 `ThreadContext` 替代或对齐 - [ ] `dryRun` 不再出现在 `StartStep.meta` 中 - [ ] `pnpm run build` 在 core 包内通过 Ref: #267
This repo is archived. You cannot comment on issues.
No Label
1 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/nerve#268