Files

2.0 KiB
Raw Permalink Blame History

标准 JavaScript 会话编排发现

Requirements

  • 提供 @ccweb/session,支持 getCurrentConversationIdcreateConversationsendMessageselectSemanticBranchgetLastMessage
  • 脚本位于当前来源对话 cwd 下 .ccweb/scripts/,只允许 .js,目录使用 ESM。
  • MCP 提供 create/write/run/get_run/stop 以及 ccweb_javascript_session_api manifest。
  • 异步脚本通过 runId 查询;主动 stop 不插入来源消息;异常结束向来源对话插入通知。

Research Findings

  • lib/ccweb-mcp-server.js 已有 HTTP MCP 客户端,使用 CC_WEB_MCP_URLCC_WEB_MCP_TOKENCC_WEB_SOURCE_SESSION_ID
  • server.js/api/internal/mcp 会鉴权后调用 callInternalMcpTool
  • 现有会话入口为 createMcpConversationsendCrossConversationMessagehandleCodexAppSteerMessage
  • Codex App 完成路径 handleCodexAppTurnComplete 会持久化 assistant 消息并完成跨会话回复;需要复用其完成点实现脚本等待。
  • killProcesshandleCodexAppAbortSession 可作为停止行为的参考,但脚本子进程需要独立 PID/日志/状态管理。
  • codebase-memory 项目 home-cc-web 索引状态为 ready7740 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.js
  • lib/ccweb-mcp-server.js
  • lib/codex-app-server-client.js
  • .codex/skills/planning-with-files/