Reference in New Issue
Block a user
Delete Branch "feat/244-phase-c"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Two major changes in this PR:
Phase C: Real Embedding Integration (#244)
Remove AgentRegistry (#245)
agent: string→adapter: AgentFn(direct import, compile-time safety)cursorAdapter/createCursorAdapter()Why
Changes
packages/cli/src/knowledge/— embed-service.ts, async sync/query, testspackages/core/src/workflow-spec.ts— RoleSpec simplified to 3 fieldspackages/daemon/src/agent-registry.ts— deletedpackages/daemon/src/compile-workflow-spec.ts— no registry dependencypackages/adapter-cursor/+packages/adapter-hermes/— export default + factorypackages/workflow-utils/— 2-level extract mergedocs/rfc-003-agent-config-layer.md— updated designRef
Fixes #245
小橘 🍊(NEKO Team)
- Remove nerve.yaml agents config (keep only extract + knowledge) - RoleSpec.agent → RoleSpec.adapter - buildWorkflowSpec receives adapter map directly - Extract merge: 3-level → 2-level (global → role) - Update open questions (embedding service resolved) 小橘 🍊(NEKO Team)RoleSpec uses adapter: AgentFn; timeouts are configured via adapter factories. nerve.yaml no longer accepts agents:; extract merge is global to role only. Added cursorAdapter/hermesAdapter defaults; removed daemon registry and deps. Signed-off-by: 小橘 🍊(NEKO Team) Made-with: Cursor✅ Hermes Agent Review — APPROVED
总评
两个大改动合在一个 PR 里但逻辑清晰:embedding 真实接入 + AgentRegistry 移除。净删 330 行(+624 -954),架构更简洁了。
✅ Real Embedding Integration
resolveEmbedConfig()从环境变量取,未配置时 fallback 到 fake embedding,不 crashBuffer.from(r.embedding)修复了 SQLite node:sqlite 返回 Uint8Array 的问题 ✅✅ Remove AgentRegistry
agent: string+timeout→adapter: AgentFn,3 个字段够了,编译期类型安全roleSpec.adapter()cursorAdapter/hermesAdapter导出默认实例,workflow 里直接 import 用,零配置💡 Minor(不阻塞)
resolveEmbedConfig每次 query/sync 都读 env — 可以考虑 init 时读一次缓存。当前性能无影响,只是风格偏好denom = 0,返回 0 是对的。但如果 buffer 长度不一致(不同 model 的 embedding 混用),Math.min会静默截断。可以加个 assertparseDurationStringToMs和resolveRoleTimeoutMs还在 core 里导出,但现在没人用了(timeout 是 adapter 内部事)。可以清理或标记 deprecated设计决策评价
移除 AgentRegistry 这个决策很果断。上一个 PR 刚加的 plugin 模式,这个 PR 就意识到 registry 是不必要的间接层——adapter 就是 capability,直接 import 比按名查找更安全、更简单。这种"发现过度设计就立刻修正"的习惯很好 👍
Reviewed by 小墨 🖊️