F-11 发送全链与现场卡片。作曲框 send()、turn ticket、步骤 / 计划 / 权限 / 候选卡片、附件与 @-引用问题卡、admission 追踪器。window 名字(send、buildStepCard、renderAttachmentProblems、renderRefProblems、searchResultHttpUrl、admissionSettled、forgetAdmission、outstandingAdmissions、reconcileLastAdmission、rememberAdmission)由本模块赋值,不再留给 F-05 占位。frame_update 仍归 F-06;turn-ticket 体通过 setFrameUpdateTurnHandler 注入。
| 文件 | 职责 |
|---|---|
admission.ts |
Admission 追踪器。独立键 openai4s.admission.{fid}.{id};legacy key 迁移;60 秒 grace。 |
admission.test.ts |
前缀、legacy 迁移、grace 窗口、settled 状态。 |
bind.test.ts |
bindComposer 只绑一次;installSend 不碰 DOM;Enter 派发文本;同一时刻只有一个 dispatch 在途。 |
candidate.ts |
Review 门控三态时序:markCandidateReady → applyCandidateResolution → applyFinalReviewStatus。 |
candidate.test.ts |
三态顺序、禁止把 verified 降级、durable 回执规则。 |
first-send.test.ts |
新会话的第一条消息只在共享创建流程打开对话之后才派发,openConversation 的重置不会落在回合中间;票据与运行态得以保留。 |
refused-send.test.ts |
服务端在准入之前拒绝的发送(409 model_profile_needs_key / model_revision_unavailable / model_profile_needs_active):文字回到输入框、移除乐观气泡(若输入框里已有新内容,则保留该气泡并标为未发送,被拒绝的文字不会丢失),提示保留服务端给出的原因而不是「本轮失败」;改绑成功后的提示说明实际绑定了什么(rebindDoneText);改绑确认框依据服务端的 code 与消息说明真实原因(rebindConfirmText:配置已改指其他提供商或端点、缺少密钥、固定配置无法读取、匹配不唯一;只有服务端明确说"已不存在"时才这样说,其余情况用中性的"已不可用")。 |
environment.ts |
send() / turnDone 用的 standard-profile 就绪横幅。 |
handlers.ts |
cards / candidate / step / plan / permission 的 WS 类型;handleFrameUpdateTurn。 |
host.ts |
用 isReady 查 window(callLane / hostFn);取消按钮显隐。 |
icon.ts |
步骤 / 计划 / 权限多出来的图标(globe、list-check、lock 等)。 |
index.ts |
installSend 往 window 赋值、注册 WS handler。不碰 DOM:作曲框由 main.tsx 在 render 之后绑定。 |
install.test.ts |
十个契约名字通过 isReady;不注册 frame_update。 |
permission.ts |
权限门卡片。冻结 DOM 类名 .perm-card / .resolved / .allowed / .denied。 |
plan.ts |
结构化计划卡、进度、批准 / 修订 / 丢弃 / 恢复。仍为 in_progress 的步骤只在计划执行中时才闪烁;completed 计划若仍带着这样的步骤(服务端开始拒绝这种组合之前写下的行),会用本功能自带的文案表标成「已结束、有步骤未确认完成」。 |
plan.test.ts |
结束态计划卡:带着进行中步骤的已完成计划不显示为完成;执行中仍保留实时图标;步骤全部有结论的计划照常显示完成。 |
problems.ts |
附件问题卡(客户端文案)与 @-引用问题卡(服务端文案)。 |
send.ts |
作曲框发送全链。计划模式 payload 走 F-07 planModePayload。bindComposer(由 main.tsx 在 render 之后调用)。 |
step.ts |
语义活动步骤、buildStepCard、searchResultHttpUrl。 |
ticket.ts |
Turn ticket 世代、acceptTurnTicket / activateTurnTicket、resumeWatch。 |
turn.ts |
turnDone 收尾;调用 F-14 的 notebookOnTurnDone();收尾仍显示运行中的活动卡片(messages/cardState.ts)。 |