feat: add OpenCode Zen AI provider - #372
Open
Jiandao303 wants to merge 7 commits into
Open
Conversation
Land the native conversational resume agent plus the supporting routing migration in one commit: - OpenCode Zen provider with a tool-gated native resume agent runtime (resume-agent-runtime/): locked-down permission set, read-only research tool whitelist, triple budgets, fact gating, user-confirmation gates. - Two-stage discovery: when no target company is given, the agent searches the web for real career directions and lets the user pick one before researching its latest JD. - SSRF-safe JD fetching: redirects / manual-mode fetch degrade to a recoverable outcome instead of failing the whole job. - Agent UI: thinking-chain timeline, resizable three-tab side panel, A4 CSS-zoom preview with a collapsible template rail, clarification question wizard with explicit step cursor and previous/next navigation. - Field-path questions humanized to Chinese, questions de-duplicated, all seven resume sections covered by confirmation questions. - Skills rendered grouped by category instead of one skill per line. - Drop Next.js app-router / i18n-compat leftovers in favor of TanStack Start file routing; update docs, changelog, and roadmap. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Use the two new portrait previews for the support section in both the English and Chinese readmes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- 技能:model 提示词要求按「类别名: 技能、技能」分组输出,skillContent 渲染增强识别分组格式(类别名加粗 + 技能顿号分隔),education/experience 等普通列表不受影响 - 续聊:新增 /continue 端点与 continueResumeAgentJob,首轮结束后直接发消息 复用同一 Job,重跑 candidate_facts/tailoring/fact_gate 而保留岗位调研; candidate_facts 后加目标一致性检测,公司/职位/JD 链接变化时自动回退重新 调研;前端续聊不重置时间线、从上次事件序列续读;时间线新增 continue-runtime 里程碑替代重复的「已启动」欢迎语 - 7 板块确认:buildPendingQuestions 新增板块覆盖 pass,除基本信息外的 6 个 空板块逐一询问(可自由填写或点「没有相关内容」/跳过),稳定 section-* id 配合 answeredQuestions 避免重复追问;问题上限 12→16
- model-adapter 新增 classifyUserIntent:一次轻量模型调用判断最新消息是 chat(闲聊/问候/道谢)还是 resume(提供简历素材或制作/修改请求), 闲聊时顺带生成带引导的回复(介绍能力 + 引导发基本信息和目标岗位/JD) - runner 在 candidate_facts 前插入意图分流层:chat 直接返回回复并进入 waiting_user,不启动工作流、不调工具;resume 才继续完整流程。闲聊轮次 不标记任何步骤,下一条消息会再次分流;简历做完后的纯聊天同样走此层, 只回复、不动草稿 - 作答(/answer)与方向选择(/select-direction)是明确的简历操作,通过 checkpoint.intentSkipped 跳过分流;意图分类失败保守按 resume 处理 - 前端 user.required 携带 mode:chat 时以 idle 状态呈现(不展开轨迹、不弹 澄清卡片),聊天回复以普通气泡展示;timeline 新增 intake 里程碑 stage
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
为了方便使用,我添加了opencode的提供商