Skip to content

About

一个提问式剧本创作辅助工具

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Next Story

Next Story 是一个带 AI 思考辅助的剧本写作桌面编辑器。它希望降低开始创作和获得帮助的前置门槛,把认真讲述自己故事的权利交给每一个想创作的人。

知识不是用来证明 AI 懂得多,而是用来减少用户必须先懂多少。工具希望把复杂创作知识转成贴合故事的观察、问题和可能性,帮助用户重新看见故事。最终判断、选择和故事完成属于创作者。它不替代创作所需的感受、思考、实践与坚持,不承诺转移专业创作能力,也不保证必然写出优秀作品。

当前状态: 阶段 1–6 已全部完成并归档:常驻 AI 会话(面板直接提问与选区「AI 及时召唤」两种首轮入口,回复流式逐字呈现,首次回应成功后可线性追问,追问只发送增量问题,可取消生成、可停止生成,驱动崩溃后自动重启并重放恢复所有在途讨论)、讨论保存到项目文件夹与会话列表重开、多讨论并存互不覆盖、单 AI 面板多讨论(一次只显示一个当前讨论,顶栏打开先出右边栏,面板内可最大化/恢复与收起;隐藏面板、×收起或切换讨论不删除讨论、不停止生成、不取消排队、不使会话启动或历史重放失效;应用内浮动讨论窗口与多窗口并排已取消——单面板改造已随 change update-frontend-ui-v5 归档,2026-10-10)、及时召唤快车道与全局并发排队、文档级 AI 可见性与统一受控只读边界、常规讨论自动现场材料(关注文档已保存正文或经校验的未保存快照、允许目录投影、跨文档字面检索片段,材料出处轻量可查看),以及 Agent 按需补读(材料不足时模型发起授权请求,用户允许后经 story-list / story-read / story-search 受控只读工具围绕问题补读,读取出处入「本次参考了什么」)。制作模块(独立第四页面、左侧全局链路库与版本启用/回退、右侧「导图|制作对话」双标签、提示词装配与注入、制作对话/试问与日常讨论隔离)已于 2026-10 归档。思维扩展已正式退场。没有附近上下文、整本摘要、语义 / 向量检索、完整作品认知、AI 内容库或用户确认的作品信息。应用级真实材料端到端、等待基线与并发上限已完成验证(2026-09-22:材料链路 8 场景+编排回归 5 场景全过;等待基线 42 条记录,首字中位约 3 秒——实测样本非承诺;并发上限用户定值 4)。等待计时数据可从面板「⋯」菜单一键导出(开发者用)。

当前里程碑

状态 内容
已完成 写作基础:新建、打开、编辑、手动保存项目,重新打开后读取已保存文本
已完成 单一 LLM 配置基础:本地保存、加载和真实 OpenAI-compatible(兼容 OpenAI 接口格式)连接测试
已完成 AI 思考闭环:常驻 AI 会话(直接提问、选区及时召唤、流式回复、线性追问、取消/停止生成、崩溃恢复、讨论保存与会话列表重开),多讨论并存互不覆盖
已完成 单 AI 面板与快车道:一次只显示一个当前讨论、列表切换、多讨论后台并存并发(单面板迁移已随 change update-frontend-ui-v5 归档,2026-10-10)、及时召唤快车道、全局并发上限与先到先服务排队
已完成 会话列表重做:按最后活动时间分组(置顶 / 今天 / 昨天 / 本周 / 上周 / 本月 / 上月 / 更早)、重命名、置顶、删除确认与撤销、按标题或文档名过滤、入口常驻
已完成 受控只读与可见性:文档级 AI 可见性开关、统一受控只读项目服务、未保存快照与选区授权、讨论材料出处与权限变化隔离(阶段 4,已归档)
已完成 常规讨论自动现场材料:关注文档现场(已保存正文或经校验未保存快照)、允许目录投影、跨文档字面检索(输出有硬上限)、材料出处轻量可查看、发送回执不伪造(阶段 5 A,已归档)
已完成 Agent 按需补读:材料不足时请求用户授权,允许后围绕问题经受控只读工具补读;授权属于讨论、可随时关闭、跨重启保留(阶段 6,已归档)
已完成 制作模块:独立第四页面、左侧全局链路库(多链路并存、版本不可变与回退、启用从下一轮生效)、右侧「导图|制作对话」双标签、提示词装配与注入、制作对话/试问与日常讨论隔离(2026-10 归档)
未来方向,未实现 思考收束、安全返回写作、AI 内容库、用户确认的作品信息,以及更多 AI 架构能力;具体范围仍须逐项确认

已实现能力

下面只列已经进入 openspec/specs/ 正式规格的能力。

项目与写作

  • 启动后显示欢迎页,提供“新建项目”和“打开项目”入口。
  • 可以输入项目名、选择保存位置并创建项目。系统会拒绝空名称、当前操作系统不允许的文件名、不可访问的位置和已有的同名文件夹。
  • 可以选择并打开结构有效的 Next Story 项目文件夹。打开前会校验必要文件,成功后进入写作空间并恢复上次编辑的文档。
  • 项目以「内容树」组织:只有文件夹与文档两种节点,可创建、重命名、移动、排序;删除进入回收站,可恢复。
  • 编辑器支持基础富文本格式(一级/二级标题、粗体、斜体、无序/有序列表),粘贴受控清洗。
  • 手动保存把当前文档正文写入结构化文件并更新项目元数据;重新打开项目时按内容树读回文档。

LLM 配置

  • 整个应用只有一份 LLM 配置,包括兼容 OpenAI 接口格式的 API 基础地址、API Key 和模型名。当前不展示多个服务提供方(provider)、多个模型槽位或预设模型列表。
  • 配置可以保存到本地,关闭并重新打开应用后可以再次加载。
  • “测试连接”会向填写的基础地址追加 /chat/completions,发起一次真实的兼容 OpenAI 接口格式的模型请求。只有响应是有效 JSON,并且包含合法、非空的 choices 模型回复,才算连接成功。仅返回 2xx 状态并不够。
  • 远程 API 地址必须使用 HTTPS。本机回环地址 localhost、127.0.0.1 或 ::1 可以使用 HTTP。
  • 从编辑器进入 LLM 配置页再返回时,当前项目、当前文档和未保存文本会保留。
  • 配置加载、保存或测试等异步操作不会并发覆盖输入,过期的加载结果也不会盖掉用户后来填写的内容。

AI 思考(常驻会话)

AI 通过常驻会话提供思考辅助:面板直接提问和选区及时召唤都可发起首轮,回复流式逐字呈现。

  • 在 AI 面板直接输入问题即可提问;编辑器选区会作为可选重点提示自动附带,无选区也可直接提问。
  • 选中文字后,编辑器旁会出现单一「AI」按钮;点击即可不输入问题,直接以冻结选区发起首轮。
  • 首轮消息由后端集中组装:围绕用户问题、可选重点材料与自动附带的现场材料提供观察、问题和思考方向。不代写正文;材料范围由受控只读边界与可见性设置决定,不含语义检索、摘要或 AI 内容库。
  • 回复流式逐字显示,以纯文本呈现,保留换行、可复制,不解析 HTML 或 Markdown。
  • 首次回应成功后可继续追问;追问只发送新增问题,此前讨论由常驻会话在驱动进程内维护。
  • 同一讨论内同一时间只允许一个请求,不同讨论互不阻塞;生成期间仍可写作。可取消生成、可停止生成(停止只结束对应讨论,已完成内容保留)。失败保留原问题并提供重试或修改后重发,不自动重试。
  • 长对话由框架自动压缩承接;超限时报错提示新建对话,绝不静默砍历史。
  • 驱动进程崩溃后自动重启,并重放已保存轮次显示历史恢复所有在途讨论的业务状态,不依赖当前显示视图。
  • 同一项目下多个讨论并存并发生成,但只显示一个当前讨论视图:顶栏打开先出右边栏,面板内可最大化/恢复与收起;隐藏面板、×收起或切换讨论不删除讨论、不停止生成、不取消排队、不使会话启动或历史重放失效,迟到结果只进入所属讨论;显式停止独立可用。应用内浮动讨论窗口、拖出移动缩放与多窗口并排已取消(单面板迁移见已归档 change 2026-10-10-update-frontend-ui-v5)。
  • 及时召唤快车道:常规生成进行中仍可独立发起召唤或新首轮;同时生成数达到上限时,新请求按先到先服务在对应讨论排队(排队状态只在对应讨论呈现,不显示为生成中)。
  • 新的直接提问、及时召唤或「新建对话」都会开启一个新讨论并保留旧讨论;讨论按项目归属,并绑定发起时的关注文档。
  • 常规讨论(面板直接提问与追问)自动附带现场材料:本讨论关注文档的最新内容(已保存正文,或经校验的未保存快照)、允许 AI 查看的目录投影,以及跨文档字面检索片段;「本次参考了什么」轻量可查看。及时召唤不经过常规自动取材流程。
  • 每轮追问重新取得发送时刻的关注文档最新现场材料;关注文档显式切换、下一轮生效,查看文档不自动改绑。
  • Agent 按需补读:材料不足时模型发起授权请求,用户允许后,围绕问题经 story-list / story-read / story-search 受控只读工具补读。授权属于当前讨论,可随时关闭,跨重启保留;读取出处进入「本次参考了什么」。及时召唤首轮不补读,后续追问按普通规则处理。
  • 每篇文档可单独设置是否允许 AI 查看;隐藏、回收站与越权读取被统一受控只读边界拒绝。使用过后来被隐藏材料的讨论永久只读,旧出处脱敏显示。
  • 讨论保存到项目文件夹 next-story-system/conversations/,与作品正文分开;重启后按当前项目提供会话列表,可重开查看已保存轮次;重开不自动重发。
  • 会话列表按最后活动时间分组(置顶 / 今天 / 昨天 / 本周 / 上周 / 本月 / 上月 / 更早),支持重命名、置顶、删除确认与撤销、按标题或文档名过滤;入口常驻不按讨论数量显隐。
  • 删除讨论是独立动作,不因关闭、切换文档或切换项目触发;删除先确认、提示期内可撤销。
  • 缺少完整 LLM 配置时不发起网络请求,面板引导前往配置页;返回后不自动请求。
  • AI 只产出临时材料,永远不直接写入、插入、替换、改写、删除或移动内容树中的任何作品文档,界面也不存在“应用到正文”之类入口。
  • 思维扩展 已正式退场;选区浮动入口恢复为单一的 AI 及时召唤 按钮。

制作模块

制作模块是独立的第四页面,与日常 AI 讨论在会话与上下文上相互隔离。

  • 左侧为全局链路库:多链路并存、版本不可变与回退、显式启用/停用,启用从下一轮生效;链路与卡随应用走,不进项目文件夹。
  • 右侧默认「导图|制作对话」双标签;导图把固定底座、要求/姿态卡与每轮动态的组装结构可视化。
  • 提示词按固定底座+要求/姿态卡+每轮动态装配并注入制作会话;固定底座与每轮动态只读,不伪装可修改。
  • 制作保存须用户确认,制作对话与试问走真实会话/链路;制作页不显示正文保存按钮,日常 AI 面板不覆盖制作页。

当前未实现

以下内容可能属于后续方向,但现在都不能使用:

  • 附近文本(光标周边取材)、整本摘要与语义 / 向量检索
  • 对完整故事、人物长期轨迹、世界观、主线、主题或作者完整意图的理解
  • 作品正文的自动保存、自动备份、版本快照(讨论档案由应用自动保存,与正文不同)
  • 内置 AI 内容库
  • 多服务提供方或多模型选择界面

这些是当前“还没做”的功能,不等于以后都必须补上。下一节说明已确认的未来方向;再下一节才是永久 AI 边界。

已确认的未来方向

选区 AI 及时召唤 已恢复为正式功能:从选区快速开始常驻会话。思维扩展 已正式退场,其“带选区打字”路径由“重点提示 + 直接提问”承接。未来若要扩展召唤入口或增加新的开启工具,仍须另开 change 确认。

思考收束是共享结束动作,不是第三个开启工具。它只整理当前讨论中的核心问题、已打开方向、关键差异和未知信息,帮助用户自己判断,不以生成对白或场景为目的,也不替用户决定方向。用户可以直接触发,无需再次确认;AI 可以建议进行收束,但只有用户接受建议才会触发。

收束后要支持安全返回写作:结果保持可见、可复制,基于选区时可查看冻结原文,用户能回到相关写作位置,不被 AI 结果挡住,也不必跨窗口寻找。这里的“返回”绝不表示应用或写回。

世界、情节、人物等未来只能先形成作品信息候选,由用户审阅、编辑、接受或拒绝;只有接受项成为用户确认的作品信息。它与供 AI 使用方法和资料的AI 内容库分开。说明性文档以后可以呈现确认信息,但当前未实现。

以上是已确认方向,不代表已经实现,不保证全部进入第一版,也不自动成为下一个 change。任何实现仍须单独提出 OpenSpec change 并由用户确认。

永久 AI 边界

AI 永远不能插入、追加、替换、改写、删除、移动、拆分、合并、就地分类或以其他方式整理用户文档中的任何字符。

AI 输出永远只是临时材料,不是作品事实。即使用户明确授权或确认,AI 也只能在用户文档之外提供候选。只有用户亲手复制、粘贴、编辑并保存后,文字才会进入作品,成为作品内容。AI 可以提供观察、问题和可能性,不能替创作者定义、解释、评价或决定故事。即使未来能力增加,这条边界也不会改变。

注:早期「草稿本 / 正文本」两个固定本子已由「作品内容树」取代,内容树自 2026-08 起是现行存储;旧「四级 AI 参考优先级」概念已撤销,不再使用。旧双本子作品打开时会自动迁移到内容树。详见 AGENTS.md。

数据保存在哪里

Next Story 把用户文本、项目元数据和 LLM 配置分开保存,避免系统配置混进作品文本。

数据 位置 说明
用户文本(每篇文档一个文件) <项目文件夹>/作品文本/documents/<稳定文档ID>.json 结构化文档正文,由手动保存写入;切换文档前也会先保存当前文档,保存失败则保留当前内容并提示,不切换。这不等于编辑时自动保存
内容树元数据 <项目文件夹>/next-story-system/content-tree.json 文件夹 / 文档节点、父子、排序与回收站信息,不含正文
项目元数据 <项目文件夹>/next-story-system/project.json 保存项目名、时间和结构版本,不包含任何文档正文
讨论档案 <项目文件夹>/next-story-system/conversations/ AI 讨论记录,由应用自动保存,保存失败会明确提示;与作品正文分开,可重开查看已保存内容
唯一 LLM 配置 Tauri 应用本地数据目录中的 llm-config.json 位于项目文件夹之外,不写入任何项目文件

旧版双本子文件(作品文本/草稿本.json 与 正文本.json)仅用于旧作品迁移读取,不再是当前存储格式。系统和 Tauri 会决定应用本地数据目录的实际位置,因此这里不虚构一个适用于所有电脑的绝对路径。

安全提醒: API Key 保存在操作系统的凭据存储(Windows 凭据管理器 / macOS 钥匙串 / Linux Secret Service)中,不会以明文写进 llm-config.json。点击“测试连接”时,API Key 会发送给配置的 API 服务用于身份验证;HTTPS 可以保护传输过程,但目标服务仍会收到 API Key。只在可信设备上使用,只填写可信的 API 地址,也绝不要把真实 API Key 写进 README、源码或版本记录。

架构与数据流

Next Story 的界面用 HTML、CSS 和 TypeScript 编写,文件位于 src/。本地文件读写和模型连接由 Rust 处理,Tauri 把两部分装进同一个桌面应用。

  • 桥接层(bridge): src/project-api.ts 像总机,把前端动作翻译成后端能接收的调用。
  • Tauri 桌面命令(Tauri command): src-tauri/src/lib.rs 暴露一组窄入口,分别负责项目的新建、打开、保存,LLM 配置的加载、保存、测试,以及常驻 AI 会话(启动会话、增量发送、取消、结束、历史重放)。
  • 业务领域模块(domain): 两个 Rust 目录分别封装项目规则和 LLM 配置规则,真正执行校验、文件读写或网络测试;AI 思考生成在 src-tauri/src/llm_config/ 内由唯一保存配置驱动,常驻驱动进程管理器在 src-tauri/src/dsh_driver.rs。

一次请求的责任传递链是:

src/ 前端界面与状态
  → src/project-api.ts 桥接层
  → src-tauri/src/lib.rs 中的一组 Tauri 桌面命令
  → src-tauri/src/project/ 或 src-tauri/src/llm_config/ Rust 业务领域模块
  → src-tauri/src/dsh_driver.rs 常驻驱动管理器 → sidecar/driver/ 驱动进程

箭头表示一次请求怎样逐层交给下一层,不代表调用后没有回应。处理结果和错误会沿原路返回前端,再由界面显示给用户。

项目新建、打开、保存流程

  1. 用户在前端新建、打开或手动保存项目。
  2. src/project-api.ts 调用对应的 create_project、open_project 或 save_project Tauri 桌面命令。
  3. 桌面命令把任务交给 src-tauri/src/project/。
  4. 项目业务领域模块校验项目名、保存位置或项目结构,并创建、读取或保存项目目录。
  5. 路径、项目内容、成功结果或可读错误返回前端。

切换文档前,应用会先保存当前文档,并在切换过程中显示状态提示。保存失败时会提示「保存失败,未切换。当前内容已保留。」,不执行切换,避免丢下未保存的内容。这是切换前的保存步骤,不是编辑过程中的正文自动保存。

LLM 配置加载、保存、测试流程

  1. 用户在 LLM 配置页加载、填写、保存配置,或点击测试连接。
  2. src/project-api.ts 调用对应的 load_llm_config、save_llm_config 或 test_llm_connection Tauri 桌面命令。
  3. 桌面命令把任务交给 src-tauri/src/llm_config/。
  4. LLM 配置业务领域模块校验唯一配置。加载和保存会读写应用本地数据目录中的 llm-config.json,测试会使用当前表单配置发起真实的兼容 OpenAI 接口格式请求。
  5. 成功状态或可读错误返回配置页。

这层分工保护了用户正文的边界。在应用内部,前端不能绕过限定用途的桌面命令随意碰硬盘,用户正文只能经过项目业务领域模块的明确保存流程,LLM 配置和网络测试则留在独立的 LLM 配置业务领域模块,不会把 API Key 或 AI 输出写进用户文档或项目元数据。

AI 思考生成与追问流程

  1. 用户在 AI 面板直接输入问题(编辑器选区会作为可选重点提示自动附带)。前端为本次讨论分配讨论身份并启动常驻会话(每个讨论一个会话)。
  2. src/project-api.ts 调用 ai_start_session 与 ai_send_message Tauri 桌面命令:首轮消息由后端组装(固定系统提示词 + 用户问题 + 可选选区材料 + 自动附带的现场材料:关注文档最新内容、允许目录投影与跨文档检索片段),追问只发送新增问题并重新取得发送时刻的关注文档最新现场材料。
  3. 桌面命令把消息交给常驻驱动进程(sidecar/driver/),由它维护会话历史并发起真实流式 chat/completions 请求;流式增量经 ai-delta 事件逐字转发前端。DSH 运行期会话上下文在驱动进程内存中;讨论记录由应用保存到项目文件夹内 next-story-system/conversations/(与作品正文分开),可重开查看。
  4. 合法非空的 assistant 回复作为纯文本返回前端(完成全文为最终事实),显示在独立 AI 面板;失败返回稳定 code 与中文可读 message,不含 API Key、Authorization、请求正文或完整远端响应。
  5. 首次回应成功后,用户可在面板里继续追问、取消生成;新建对话或新召唤会开启新讨论并保留旧讨论;删除讨论或退出应用时结束对应会话。驱动进程意外退出时自动重启并重放显示历史恢复会话。AI 生成和追问会把上述创作内容与附带材料发送给用户配置的 API 服务;测试连接只发送固定测试语句和身份凭据,不发送用户剧本文字或讨论内容。
  6. 这条链路不持有任何写入作品文档的入口,AI 面板只显示临时材料。

Windows 开发准备

本项目使用 Tauri 2。按 2026 年 7 月核对的官方 Windows 前置条件,需要准备:

  1. Microsoft C++ Build Tools,安装时勾选 Desktop development with C++ 工作负载。
  2. Microsoft Edge WebView2。Windows 10 1803 及以后版本通常已经安装,缺失时再从微软安装。
  3. Rust,通过 rustup 安装,并使用稳定版 stable-msvc 工具链。
  4. Node.js 和 npm:DSH 要求 Node.js ≥ 22.19;CI 使用 Node.js 22 系列,开发时也可使用满足下限的 22 系列版本。打包另用脚本准备锁定为 24.15.0 的内置 Node,不依赖用户电脑上的 Node。

官方说明见 Tauri 2 Prerequisites。Node 须满足上述版本下限,内置 Node 须使用脚本锁定版本;其余开发工具按官方支持的稳定版本准备。

VBSCRIPT 不是一般开发的必装项。只有构建 MSI 安装包时报出相关错误时,才按 Tauri 官方故障排查说明启用它。

首次安装

打开 PowerShell 终端,进入仓库根目录。根目录与 sidecar 有各自的依赖,需分别安装;请逐条执行,上一条成功后再执行下一条:

npm install
npm ci --prefix sidecar

第一条安装前端和 Tauri CLI 依赖;第二条按 sidecar 的锁定清单安装 DSH 依赖。只做开发时,可以使用系统 PATH 中满足版本要求的 Node,无需准备内置 Node。

仅在 Windows 打包时,还需从仓库根目录运行以下脚本,准备锁定为 24.15.0 的内置 Node。脚本会下载 Windows 运行时、核验官方 SHA-256 校验和并确认版本,再供安装包使用:

powershell -ExecutionPolicy Bypass -File scripts\vendor-node.ps1

运行、检查与打包

命令分两类。第一类完成后会自己返回终端,第二类会持续运行,必须由用户停止。

会执行完并返回的命令

命令 用途
npm run check 标准总检查,依次执行下文列出的全部检查科目;CI 执行同一套
npm run typecheck 只检查 TypeScript 类型,不生成文件
npm run test:frontend 运行 tests/*.test.ts 前端状态测试
npm run build 执行 TypeScript 检查并构建前端产物
npm run test:rust 运行 src-tauri/Cargo.toml 对应的 Rust 测试
npm run tauri:build 构建桌面应用安装包,耗时通常比前端构建长

npm run check 按以下顺序执行,某一步失败就停止;修好后重新运行:

  1. typecheck:TypeScript 类型检查。
  2. lint:代码规范检查。
  3. test:frontend:前端测试。
  4. test:reliability:可靠性测试。
  5. test:driver:常驻驱动测试。
  6. test:validation:离线协议验证。
  7. build:前端构建。
  8. fmt:rust:Rust 格式检查(cargo fmt --check,只检查,不改文件)。
  9. clippy:rust:Rust 静态检查(clippy,-D warnings 表示警告也会让检查失败)。
  10. test:rust:Rust 测试。

CI(仓库的自动检查流程)在 Linux 与 Windows 两个平台都执行同一条 npm run check,不是各自维护另一份检查清单。CI 双平台检查不代表产品发行双平台安装包;当前只发行 Windows 版。

构建 Windows 安装包

先完成上面的开发准备与根目录依赖安装,再在仓库根目录逐条执行;每条成功后再执行下一条:

npm ci --prefix sidecar
powershell -ExecutionPolicy Bypass -File scripts\vendor-node.ps1
npm run tauri:build

这三步依次准备 sidecar 依赖、准备锁定版本的内置 Node、构建安装包。Tauri 构建前会自动运行资源校验(package:check),检查内置 Node、DSH 入口和常驻驱动脚本是否齐备。缺件会以中文报错并中止构建,提示补救步骤,不会继续产出缺少运行资源的安装包;发布产物不依赖用户电脑 PATH 中的 Node。

会持续运行的开发命令

命令 用途
npm run dev 只启动 Vite 前端开发服务器,不启动桌面外壳
npm run tauri:dev 启动完整 Tauri 桌面开发模式,可操作应用窗口

持续运行、不自动返回是正常行为。npm run dev 需要回到终端按 Ctrl+C 停止。npm run tauri:dev 可以关闭桌面应用窗口,也可以在终端按 Ctrl+C 停止。

第一次运行 npm run tauri:dev 时,Rust 需要编译依赖,可能等待几分钟。期间暂时没有新日志不一定表示卡住,只要没有明确报错,可以继续等待。

简明文件索引

责任 入口
页面骨架和前端启动 index.html、src/main.ts
页面元素和切换 src/dom.ts、src/views.ts
新建和打开项目界面逻辑 src/new-project-form.ts
文档编辑、切换与手动保存界面逻辑 src/editor.ts
富文本编辑器内核与坐标适配 src/rich-text-editor.ts
LLM 配置界面与异步状态 src/llm-config-form.ts、src/llm-config-state.ts
AI 选区快照与及时召唤入口 src/selection-adapter.ts、src/selection-entry.ts
常驻会话传输层与面板状态 src/ai-session-transport.ts、src/ai-request.ts、src/ai-request-scheduler.ts、src/ai-panel-state.ts、src/ai-window.ts、src/ai-dock.ts、src/ai-feature.ts
前端与 Rust 的桥接层 src/project-api.ts
Tauri 桌面命令注册与应用入口 src-tauri/src/lib.rs、src-tauri/src/main.rs
项目校验和文件读写 src-tauri/src/project/
LLM 配置校验、保存和连接测试 src-tauri/src/llm_config/
前端测试 tests/
Rust 测试 src-tauri/tests/
npm 命令与前端依赖 package.json
TypeScript、Vite 与 Tauri 配置 tsconfig.json、vite.config.ts、src-tauri/tauri.conf.json
Rust 包与依赖 src-tauri/Cargo.toml

文档权威地图

位置 该信什么
方向/核心方向宪章.md 长期使命、永久架构原则和产品立场的完整真相源
方向/第一版方向共识-2026-07-01.md 详细确认方向、范围、统一词汇和当前/未来状态区分,不代表全部已经实现
AGENTS.md 项目级可执行红线和协作规则
openspec/specs/ 当前已经实现的真相源。README 说“已实现”时,应当能在这里找到正式依据
openspec/changes/ 正在提议或实现中的 change,内容可能尚未进入当前实现真相
openspec/changes/archive/ 已完成 change 的实现历史,记录当时为什么改、怎么改

归档 change 负责回答“过去发生了什么”,主规格 openspec/specs/ 负责回答“现在已经做成什么”。两者冲突或表述不同的时候,以当前主规格描述已实现状态。

About

一个提问式剧本创作辅助工具

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages