2.0 KiB
2.0 KiB
标准 JavaScript 会话编排发现
Requirements
- 提供
@ccweb/session,支持getCurrentConversationId、createConversation、sendMessage、selectSemanticBranch、getLastMessage。 - 脚本位于当前来源对话 cwd 下
.ccweb/scripts/,只允许.js,目录使用 ESM。 - MCP 提供 create/write/run/get_run/stop 以及
ccweb_javascript_session_apimanifest。 - 异步脚本通过
runId查询;主动 stop 不插入来源消息;异常结束向来源对话插入通知。
Research Findings
lib/ccweb-mcp-server.js已有 HTTP MCP 客户端,使用CC_WEB_MCP_URL、CC_WEB_MCP_TOKEN、CC_WEB_SOURCE_SESSION_ID。server.js的/api/internal/mcp会鉴权后调用callInternalMcpTool。- 现有会话入口为
createMcpConversation、sendCrossConversationMessage和handleCodexAppSteerMessage。 - Codex App 完成路径
handleCodexAppTurnComplete会持久化 assistant 消息并完成跨会话回复;需要复用其完成点实现脚本等待。 killProcess与handleCodexAppAbortSession可作为停止行为的参考,但脚本子进程需要独立 PID/日志/状态管理。- codebase-memory 项目
home-cc-web索引状态为 ready(7740 nodes/17835 edges)。
Technical Decisions
| Decision | Rationale |
|---|---|
脚本包通过本地 node_modules/@ccweb/session 注入 |
Node ESM 对裸包名解析稳定,不依赖不可靠的 NODE_PATH |
| 脚本运行凭据按 runId 绑定 | 避免把全局内部 MCP token 长期暴露给用户脚本 |
| 日志追加落盘,get_run 分段读取 | 支持用户确认的无限输出,同时保护 MCP 响应大小 |
| 判断器一次性只读 Codex App turn | 不污染目标会话、工作区和普通 MCP 能力 |
Issues Encountered
| Issue | Resolution |
|---|---|
| 根目录计划属于此前 hooks 验证任务 | 使用 scoped plan,保留原有计划文件 |
Resources
server.jslib/ccweb-mcp-server.jslib/codex-app-server-client.js.codex/skills/planning-with-files/