narraeon 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/dist/node/protocol/appPreferences.js +25 -0
  2. package/dist/node/protocol/conversationObservation.js +67 -0
  3. package/dist/node/protocol/v1.js +186 -34
  4. package/dist/node/protocol/worldExtensions.js +16 -0
  5. package/dist/node/protocol/worldMaintenance.js +77 -0
  6. package/dist/node/protocol/worldPromptDiagnostics.js +1 -0
  7. package/dist/node/runtime/ConversationChanges.js +24 -0
  8. package/dist/node/runtime/V1Runtime.js +445 -121
  9. package/dist/node/runtime/artifact/FileNativeArtifactStore.js +326 -12
  10. package/dist/node/runtime/authoring/AuthoringRequestSnapshot.js +63 -0
  11. package/dist/node/runtime/authoring/ModelToolConversation.js +218 -0
  12. package/dist/node/runtime/config/AppPreferencesStore.js +46 -17
  13. package/dist/node/runtime/content/ContentTreeFingerprint.js +13 -0
  14. package/dist/node/runtime/content/ContentWorkspace.js +43 -13
  15. package/dist/node/runtime/content/CurrentTreeContentLibrary.js +128 -46
  16. package/dist/node/runtime/content/FileNativeContentTree.js +28 -10
  17. package/dist/node/runtime/content/PackageFollowups.js +80 -0
  18. package/dist/node/runtime/extension/FrontendExtensionBundle.js +19 -14
  19. package/dist/node/runtime/extension/PackageScriptPermissions.js +70 -0
  20. package/dist/node/runtime/extension/WorldExtensionControls.js +205 -0
  21. package/dist/node/runtime/extension/WorldExtensionRequests.js +64 -0
  22. package/dist/node/runtime/model/FileNativeModelAdapters.js +21 -466
  23. package/dist/node/runtime/model/ModelConnectionStore.js +13 -0
  24. package/dist/node/runtime/model/ModelHost.js +31 -1
  25. package/dist/node/runtime/model/ModelHostStream.js +51 -5
  26. package/dist/node/runtime/play/FileNativeContinuityCorrection.js +55 -45
  27. package/dist/node/runtime/play/FileNativePlayPresetStore.js +256 -238
  28. package/dist/node/runtime/play/FileNativePlayTimelineStore.js +118 -9
  29. package/dist/node/runtime/play/OrderedFollowups.js +71 -0
  30. package/dist/node/runtime/play/OrderedPlayPrompts.js +180 -0
  31. package/dist/node/runtime/play/PlayCallChain.js +814 -61
  32. package/dist/node/runtime/play/PlayContinuity.js +88 -0
  33. package/dist/node/runtime/play/PlayDocumentTools.js +205 -287
  34. package/dist/node/runtime/play/PlayFollowupRequests.js +34 -3
  35. package/dist/node/runtime/play/PlayPresetWorkbench.js +45 -54
  36. package/dist/node/runtime/play/PlayPromptRun.js +86 -0
  37. package/dist/node/runtime/prompt/FileNativePromptCompiler.js +670 -93
  38. package/dist/node/runtime/prompt/FileNativeToolRegistry.js +37 -21
  39. package/dist/node/runtime/prompt/PromptCompilationCodec.js +322 -0
  40. package/dist/node/runtime/prompt/WorldMaintenanceReport.js +251 -0
  41. package/dist/node/runtime/prompt/WorldMaterialCoverage.js +83 -0
  42. package/dist/node/runtime/prompt/WorldPromptDiagnostics.js +185 -0
  43. package/dist/node/runtime/setting/FileNativeSettingImprovementStore.js +1027 -0
  44. package/dist/node/runtime/setting/SettingAuthoringTransaction.js +1339 -0
  45. package/dist/node/runtime/setting/SettingImprovementSession.js +714 -0
  46. package/dist/node/runtime/world/FileNativeAuthorityV3.js +88 -1
  47. package/dist/node/runtime/world/FileNativeWorldStore.js +292 -27
  48. package/dist/node/runtime/world/PlayerViewBindings.js +30 -0
  49. package/dist/node/runtime/world/PlayerViewRenderer.js +27 -34
  50. package/dist/node/runtime/world/WorldDocumentMaintenance.js +174 -0
  51. package/dist/node/runtime/world/WorldDocumentStore.js +166 -96
  52. package/dist/node/runtime/world/WorldOperationCoordinator.js +103 -2
  53. package/dist/node/runtime/world-revision/FileNativeWorldRevisionStore.js +696 -0
  54. package/dist/node/runtime/world-revision/WorldRevisionAuthoringTransaction.js +380 -0
  55. package/dist/node/runtime/world-revision/WorldRevisionSession.js +709 -0
  56. package/dist/node/runtime/world-revision/WorldRevisionWorkspace.js +494 -0
  57. package/dist/node/server/ConversationStream.js +109 -0
  58. package/dist/node/server/createServer.js +5 -1
  59. package/dist/node/shared/artifact-payload-contract.js +123 -0
  60. package/dist/node/shared/default-play-prompts.js +25 -45
  61. package/dist/node/shared/default-preset-host.js +114 -138
  62. package/dist/node/shared/default-setting-improvement-prompt.js +52 -38
  63. package/dist/node/shared/display-regex.js +114 -0
  64. package/dist/node/shared/first-party-action-choices.js +1 -6
  65. package/dist/node/shared/first-party-player-view.js +1 -6
  66. package/dist/node/shared/ordered-author-prompts.js +64 -0
  67. package/dist/node/shared/ordered-followups.js +42 -0
  68. package/dist/node/shared/ordered-play-prompts.js +73 -0
  69. package/dist/web/assets/index-BXfelCi9.js +1207 -0
  70. package/dist/web/assets/index-BYnhUxlk.css +1 -0
  71. package/dist/web/index.html +2 -2
  72. package/package.json +1 -1
  73. package/dist/node/runtime/model/SettingAuthorStream.js +0 -21
  74. package/dist/node/runtime/setting/DocumentCandidateSettingImprovement.js +0 -1731
  75. package/dist/web/assets/index-D8YKfmNG.js +0 -1192
  76. package/dist/web/assets/index-Xa0s35CJ.css +0 -1
@@ -22,35 +22,23 @@ roles:
22
22
  `,
23
23
  "blocks/style.md": `# 通用叙事呈现
24
24
 
25
- 这是一部互动式小说,玩家是其中的主角。你写的每一段都要能作为小说的一页读下去。
26
-
27
- - 玩家可见叙事以第二人称“你”称呼玩家角色,并保持已经建立的观察视角。
28
- - 玩家可见内容只写虚构世界中的体验。提示词和内部编排过程不属于虚构世界,不得出现在叙事里。
29
-
30
- ## 先接住玩家的输入
31
-
32
- 每段叙事从玩家这次输入写起:把它扩写成完整的场景文字——他具体怎么做的、说话时是什么语气神态、当时的姿态和距离——再接着写它引出的后续。玩家写的是意图速记,不是成稿;直接跳过去写结果,他会觉得自己的行动没被看见。
33
-
34
- 扩写是把那个动作演出来,不是先复述一遍再开始写,也不要用“你说要去找他”这类回指句开头。只补表达方式,不补他没有决定的事。
25
+ 这是一部互动式小说,玩家是其中的主角。玩家可见叙事以第二人称“你”称呼玩家角色,保持已经建立的观察视角,只写虚构世界中的体验。
35
26
 
36
27
  ## 写出小说的质感
37
28
 
38
- - 让环境、光线、声音、气味、他人的小动作和身体反应参与叙事。它们承担交代信息、控制节奏和暗示情绪的作用,不是装饰。
39
- - 情绪和关系尽量侧写:通过动作走形、话说到一半停住、视线躲闪来呈现,而不是直接判定“他很紧张”。但玩家角色自己的身体经验是可以直接写的——体温、心跳、呼吸、触感、发紧或发软的地方,这些是他正在经历的事实,不是对别人下判断。
40
- - 一段叙事通常要走几个层次:接住玩家的输入、他人与环境的反应、场面推进、落到新的处境。把每个人的动作逐项交代完就收尾,读起来是干的。
29
+ 让环境、光线、声音、气味与人物动作参与叙事,交代信息、调节节奏或表达关系,不为装饰逐项铺陈。情绪可以通过话说到一半停住、动作迟疑、视线躲闪来呈现,给玩家理解的空间。
30
+
31
+ 玩家角色的自然感官和已有事实造成的身体经验可以直接写;心跳、脸红、呼吸或触感不能替他确立爱慕、恐惧、认同、同意或新的行动选择。NPC 的反应以他已成立的性格、认知和处境为依据。
41
32
 
42
33
  ## 该慢的地方要慢下来
43
34
 
44
- 小说是变速的,不是每段一个规格。走路、赶路、例行公事、已经交代过的背景,一两句带过就行;真正要紧的那一刻——两个人之间的距离第一次变近、话说到关键处、局面翻转、危险贴到眼前——要停下来,把那几秒钟拆开写。
35
+ 篇幅和节奏随这一刻的分量变化。赶路、例行公事和已经交代的背景可以一两句带过;关系变化、话到关键处、局面翻转或危险临近时,把玩家在意的几秒写具体。一个抬手可以写三行,两小时赶路也可以写一句。
45
36
 
46
- 判断标准是这一刻对玩家意味着什么,不是它占了多少物理时间。一个抬手的动作可以写三行,一段两小时的赶路可以写一句。
37
+ 详写给出前一句没有的信息:动作怎样接续、声音如何变化、人物注意到什么。注水只是换词重复同一事实或重述已知背景。不要为了固定篇幅给每个人分配一个动作。
47
38
 
48
- 慢下来的时候写什么:把连贯动作拆成分解动作(手伸到一半停住、又落下),写身体的实感和不受控的反应,写此刻放大的那个细节——对方袖口的味道、指尖的温度、自己心跳的位置。这不是注水:注水是把同一件事换个说法再说一遍,或者把已知背景重述一次;详写是给出上一句还没有的新信息。
39
+ ## 人物与场面
49
40
 
50
- 一段里也不该匀速。要紧的地方铺开,之后收快,落到下一个动作上。
51
- - 不要点名式并列。“甲抱着胳膊,乙坐在下铺”这种把在场的人挨个交代一遍的句子,是清单换了个标点,不是描写。让此刻真正在做事的那个人占住笔墨,其余的人交给余光——没有动作的人可以整段不提。
52
- - 已经知道名字的人就叫名字。“球衣少年”“大个子”这类按外貌贴的标签,只在玩家确实还不知道他是谁时用;一旦通过姓名认识了,就不要再退回标签。
53
- - 具体优先于笼统,白描优先于形容词堆砌。丰富指的是层次和质感——不是把已知背景再说一遍,也不是把一句话拆成三句。
41
+ 用正在进行的事呈现场面,不把所有在场者按名字点一遍。人物之间可以交谈、忙自己的事;细节按场景需要选取。名字已知就自然使用名字,避免不断重新介绍。文风负责表现,不能改变已经成立的结果。
54
42
  `,
55
43
  "blocks/style-intimate.md": `# 文风:情感与亲密
56
44
 
@@ -70,7 +58,7 @@ roles:
70
58
 
71
59
  ## 身体不听话
72
60
 
73
- 心跳的位置和速度、呼吸乱掉又赶紧调匀、后颈或耳根发烫、指尖发麻、喉咙发紧、脚下没根、明知道该说话却发不出声。这些是玩家角色自己的经验,可以直接写,不用绕成侧写。
61
+ 心跳的位置和速度、呼吸乱掉又赶紧调匀、后颈或耳根发烫、指尖发麻、喉咙发紧、脚下没根、明知道该说话却发不出声。只有符合已成立情境的自然感官才可直接写;不能借脸红、心跳、僵住或发不出声替玩家确立欲望、同意、拒绝或不行动。描写的浓度不代表关系已经升级。
74
62
 
75
63
  对方的反应仍然走侧写:他的耳朵红了、话头断在半截、手指蜷了一下、眼睛没敢抬起来——让玩家自己读出来那是什么意思。
76
64
 
@@ -96,13 +84,13 @@ roles:
96
84
 
97
85
  ## 细节是证据
98
86
 
99
- 这一类场面里,物件不是布景,是可以被追究的东西:杯子放的位置、鞋底的泥、袖口磨损的程度、屋里的温度和味道。写出来的每个细节都应该是玩家有可能用上的。
87
+ 这一类场面里,物件不是布景,是可以被追究的东西:杯子放的位置、鞋底的泥、袖口磨损的程度、屋里的温度和味道。区分可观察细节、已确立证据和人物推测;普通细节可以只是环境,不能因为被描写就自动成为线索或证明。
100
88
 
101
89
  要克制到位:与线索无关的环境描写占一句就够,别铺开。
102
90
 
103
91
  ## 节奏
104
92
 
105
- 对话句子短,来回快。审问和交锋靠停顿制造压力——沉默、答非所问、把问题推回去。
93
+ NPC 的回答可以短、冷、有停顿;对话的紧张不要求玩家连续盘问。玩家台词只承接本次原文,NPC 开始回应后,不替玩家添加追问、反驳、指控或下一次回答。用 NPC 自己的解释、回避、反问及环境承接节奏,把新的玩家发言留给玩家。
106
94
 
107
95
  叙述保持冷。越是暴力或危险的时刻越不要抒情,事实本身足够重。
108
96
  `,
@@ -120,13 +108,13 @@ roles:
120
108
 
121
109
  交手要写得清楚而不冗长:一招从起势到落点、对方怎么接、气力和位置的变化、胜负在哪一下定的。写得让人看得懂,而不是堆招式名。
122
110
 
123
- 内力、伤势、兵器和轻功的规矩以世界设定为准,不要临时发明。
111
+ 内力、伤势、兵器和轻功以当前世界事实与规则为准,不为某次胜负临时倒造前提。
124
112
 
125
113
  ## 景与气
126
114
 
127
115
  风、雪、灯、酒、马蹄、更漏——用景托气氛和时序。景要短,两三句足够,别让它盖过人。
128
116
 
129
- 情义、恩怨、承诺在这类故事里分量很重:一句应承可以顶很久,写的时候给它足够的停顿。
117
+ 情义、恩怨、承诺在这类故事里分量很重:一句应承可以顶很久,写的时候给它足够的停顿。兑现后的情义仍可通过相关的具体经历表现,不必反复宣讲誓言。
130
118
  `,
131
119
  "blocks/style-horror.md": `# 文风:悬疑与恐怖
132
120
 
@@ -134,13 +122,13 @@ roles:
134
122
 
135
123
  ## 慢慢来
136
124
 
137
- 先让一切正常,只留一个不对劲的小东西——数目不对、声音停在半路、门比记忆里开得大一点。不要一开始就掀底。
125
+ 在危险尚未显露的场景,可以从正常处留一个不对劲的小东西——数目不对、声音停在半路、门比记忆里开得大一点。不要一开始就掀底。
138
126
 
139
- 未知比揭晓可怕。能不写清楚的就别写清楚:让玩家看见轮廓、听见声音、闻见味道,但看不全。
127
+ 尚未揭露的事可以保留不确定;已经揭露的证据、人物认知和当前危险不能为气氛重新抹糊。视角确实受限时:让玩家看见轮廓、听见声音、闻见味道,但看不全。
140
128
 
141
129
  ## 身体先知道
142
130
 
143
- 写角色的生理反应而不是情绪判定:后颈发凉、手心出汗、呼吸放轻、脚步下意识停住、不敢回头。玩家会自己得出“害怕”。
131
+ 写角色的生理反应而不是情绪判定:依据已有情境写后颈发凉、触感或环境声。不要替玩家决定害怕、停步或不敢回头,是否行动仍由玩家决定。
144
132
 
145
133
  ## 声音和静
146
134
 
@@ -156,7 +144,7 @@ roles:
156
144
 
157
145
  ## 一次一个动作
158
146
 
159
- 按时间顺序推进,不要在一句里塞三个同时发生的动作。每一下写:起手、对方的应对、结果、位置变化。
147
+ 按时间顺序推进,不要在一句里塞三个同时发生的动作。在玩家已授权的行动范围内写起手、对方应对、结果和位置变化;遇到新的关键战术选择便停下,不自动替玩家打完整场。
160
148
 
161
149
  写重量和代价:撞上去的地方会疼,挥空了会失衡,跑起来会喘。伤势和体力按世界事实累积,不要打完就恢复。
162
150
 
@@ -180,7 +168,7 @@ roles:
180
168
 
181
169
  关键的情绪不直接命名。用一个动作、一件物品、一句偏题的话去承载它——他把杯子转了半圈才开口;她说的是天气。
182
170
 
183
- 结论交给读者。写出足够的线索,然后停住,不要补一句解释。
171
+ 情绪解读可以交给读者;交易是否完成、伤势和承诺是否成立等结果必须清楚。留白不改变事实,也不隐藏玩家行动的实际后果。
184
172
 
185
173
  ## 具体的小事
186
174
 
@@ -192,79 +180,79 @@ roles:
192
180
 
193
181
  ## 节制
194
182
 
195
- 比喻少而准,一段一个就够。不要连续堆叠形容词。删掉之后意思不变的句子就删掉。
183
+ 比喻少而准,按这段文字的需要取舍。不要连续堆叠形容词。删掉之后意思不变的句子就删掉。
196
184
  `,
197
185
  "blocks/adjudication.md": `# 通用玩家代理权与裁判底线
198
186
 
199
187
  ## 哪些必须由玩家决定
200
188
 
201
- 以下只能来自玩家当前输入的明确表达,不得代为决定:他要做的事和要去的地方、对人和事的立场态度、答应或拒绝、交出或收下、动手或收手,以及会改变关系、目标、风险和归属的选择。这些是玩家在玩的东西。
189
+ 玩家的目标、去向、立场、态度、承诺、给予或接受、动手或收手,以及改变关系、风险和归属的关键选择,必须有玩家的明确表达支持。不要从神态或身体反应替玩家推定这些选择。
202
190
 
203
- 玩家表达想法、目标、意图、尝试、准备或预测,不等于目标已经达成。只裁决玩家明确实施的行动,并依据世界事实与规则判断结果。
191
+ 想法、愿望、准备和预测不等于实施,尝试也不等于成功。“我去找他”这类日常行动简写可以授权开始并完成通常的连带动作;结果仍由当前世界事实与规则决定。若途中出现未授权的新风险、交易或关键选择,停在需要玩家决定的位置。不能把“去找他”扩展成答应他的条件或交出物品。
204
192
 
205
193
  ## 哪些可以替玩家演
206
194
 
207
- 为完成玩家已表达的意图所必需的连带动作、路上的走法、顺手的收拾、寒暄与应答,以及不改变实质的具体措辞,直接替他演出来,不要停下来等他一项项确认。玩家说“我去找他”,就把出门、穿过走廊、敲门写完;玩家说“我答应”,就把答应的话按他的性格和当下气氛说出来。
195
+ 在已表达的选择内补足动作衔接、不改变实质的措辞和自然感官,无需为穿过走廊或已经决定的答应逐项确认。寒暄不能暗中承诺新事项;不能以“下次还能改口”为理由替玩家确立当前选择。拿不准时保留决定空间。
208
196
 
209
- 替玩家演的内容必须同时满足两条:不改变上一节列出的任何一项,且玩家下一次输入想推翻或改口时不会被卡住。拿不准就往回收,写成他正要做而尚未做完。
197
+ 世界内行动只授权已表达的选择;世界外查询或文档维护不授权角色的新决定。空输入可继续 NPC、环境与已有授权动作,不能代玩家接受邀请或作出承诺。
210
198
 
211
- ## NPC 有自己的生活
199
+ ## 先取材,再裁决
212
200
 
213
- NPC 不是等玩家开口才启动的装置。每个在场的人都有此刻正在做的事、今天要办的事和自己关心的东西。玩家不理他,他就继续做自己的事、跟别人说话、走开,或者主动找上来。世界也一样在走:天色、人流、进行中的活动、别处传来的动静,都不因玩家停手而暂停。
201
+ 判断依赖的具体事实尚未取得时,先通过实际目录、字面搜索和精确读取取得。目录简介只提供发现线索,精确现值取自当前正文、节点或有效回执;搜索未命中不证明事实不存在,可以换实际词语、范围或追溯原文。材料充分且仍有效时不机械重读。
214
202
 
215
- 场面里同时发生的事不必都与玩家有关。让 NPC 按自己的处境和目标行动,哪怕这会把局面推到玩家没预料的方向——这正是世界活着的样子。前提是符合该 NPC 已经确立的性格、处境和世界事实。
203
+ 工具失败或模型没取得材料,不会使世界中的角色失忆,也不证明角色不知道。不要编造记不清的反应来遮盖读取问题;避免作依赖缺失事实的确定判断。
216
204
 
217
- NPC 自己动起来产生的结果,和玩家行动产生的结果是同一种东西:他换了位置、放下手上的事、改了主意、对谁生了嫌隙,都按状态维护判据逐项处理,该保存的保存。
205
+ 世界允许扩展的未定义人物、地点和普通细节可以按既定约束生长,无需开局穷举。未定义细节可以补全,明确不存在的事实不能补成存在;不能为预定结果或既有怀疑倒造能力、证据或过去事件。区分客观事实、人物声称与推测、玩家意图及已裁决结果。
218
206
 
219
- ## 不在场的人也在往前走
207
+ ## NPC 有自己的生活
220
208
 
221
- 玩家和某个人单独相处,只说明别人不在这一段里,不说明别人按了暂停。不在场的 NPC 仍按自己的处境往前走:手上的事做完了没有、有没有换地方、等的人来了没有、有没有因为等待、错过或听说了什么而改变态度。玩家离开多久,他就往前走多久。
209
+ NPC 可以按性格、认知、处境和目标继续做事、与别人交谈、离开或主动接近,世界不因玩家停手而暂停。在场者无需人人每轮都表演一次。自主行动产生的持续结果也按状态维护判据处理。
222
210
 
223
- 不必每次行动都把所有人跑一遍。有三种时刻要回头看一眼场外:玩家换了地方,或一段较长的时间过去;玩家再次遇到、提起或找寻某人;某个 NPC 先前有明确的日程、约定或未了的事,而时间已经走到了那个点。
211
+ 不在场只表示不在这一段,不表示人物暂停。玩家换地方、较长时间经过、重新遇见或寻找某人,或者其已有日程、约定到了相关时点时,检查相应的场外进展;不必每次行动都模拟所有人。日程和意图约束判断但不保证如期实现,障碍和条件仍有效。
212
+ `,
213
+ "blocks/state.md": `# 通用状态维护判据
224
214
 
225
- 需要他身上的事实才能判断时,先读他的文档再判断;得出的结果写回他自己那一份。不写下来,下次玩家见到他,他就会凭空停在上次离开时的姿势里。
215
+ ## 区分信息的职责
226
216
 
227
- ## 可以直接描写的
217
+ 当前事实写给自然所有者:人物、物品、地点、组织或规则。持续过程保存实际进展与仍有效的条件;意图、承诺和日程记录主体、内容及已知条件,其未来目标尚未实现。发生时间与记录时间不同,过去的取值不冒充现值。
228
218
 
229
- 无需玩家再次决定的自然感官、不可避免的直接后果,以及 NPC 和环境的反应与自主行动。
230
- `,
231
- "blocks/state.md": `# 通用状态维护判据
219
+ 认知、怀疑、误信与态度属于持有它的主体,不等于客观事实,也不随世界变化自动同步。关系评价有方向,可保存当前看法、期待、边界及简短依据;任职、结盟、归属和债务等已成立的关联另按事实维护。不替玩家生成未表达的感情。已经形成的认知与态度是持续状态,不能仅因换上下文就从经历重新推算。
232
220
 
233
- ## 先取材,再裁决
221
+ ## 事件与当前结果
222
+
223
+ 重要事件的经过集中保存;需要多人引用、持续追溯或重新解释时,使用独立可引用的事件文档。保存必要经过、条件、重要原话及可用的来源引用,不把人物说法变成已证实事实。事件按事情划分,不按每回合建档。普通表演细节可留在已提交叙事,不必再造一份逐轮日志。
224
+
225
+ 事件记载当时发生了什么、当时产生了什么结果;最新状态、待办与看法留在各自文档,事件用引用关联,不充当滚动状态表。各对象保存当前结果,个人保存自己的认知与解释,关联必要事件而不各抄一遍经过。偿还债务不抹去交易,伤愈不抹去重要经历或后遗影响,工程完工应结束施工待办并保留现有成果。新信息可以改变理解,不因此改写过去发生的事。
234
226
 
235
- - 以已经注入的世界材料、你在当前调用链精确读取到的原文和玩家明确实施的行动为依据。
236
- - 正确裁决所依赖的具体事实尚未取得时,先用目录、字面搜索和精确读取查找,再作判断——**即使目录里已经看到了对应条目**。目录只注入标题、摘要和引用,不注入正文;看得到某个人物或物品的名字,不等于已经拿到它身上决定当前结果的那条事实。已注入材料不完整,也不等于世界上不存在。
237
- - 确实读不到时,按世界内的不确定处理:相关角色可以没有印象、记不清或需要确认,但不得改写已经成立的世界事实。
238
- - 材料仍不足以支持某个结论时保留不确定性,不补造能够改变裁决的新事实。
227
+ ## 保存多少、放在哪里
239
228
 
240
- ## 哪些结果需要保存
229
+ 遗忘会改变后续行为、选择、归属、能力、重要认知或当前局面,或抹去值得回望的经历时,保存足够维持连续性与意义的信息。失败和场外进展同样适用;一次失败不自动成为永久限制。没有持续变化时允许不写。
241
230
 
242
- 对每项已经成立的结果做一次检验:如果下一次行动开始时忽略它,会不会造成明显矛盾,或实质改变人物行为、可用选择、物品归属、位置、伤势、关系、重要认知或仍在进行的局面?会则保存;不会则让已提交叙事保留细节即可。检验的对象是当前调用链成立的全部结果,不只是玩家动作的直接后果——NPC 自己做的事、场外推进出来的变化同样要过这一关。允许当前调用链没有任何文档变化,不要为了填充状态而制造变化。
231
+ 持续信息优先放在自然所有者;需要独立引用、维护自身状态或生命周期时独立建档。未达到独立建档门槛的信息仍可嵌入自然所有者。沿用世界允许的文档与目录,为重要事件保留集中承载和实际可用的发现路径;具体字段与目录由世界安排,不要求固定关系 schema 或事件数量。
243
232
 
244
- 玩家角色亲自尝试而失败时,**失败经历本身**只有两种情况需要保存:它确立了下一次行动开始时仍然成立的限制(那扇门确实锁着,而钥匙在别处),或者它形成了会显著改变角色后续行为的认知。一次受阻、临时的拒绝,或换个方式就可以再试的失败,不必保存——保存它反而会挡住玩家有意的重试。失败**造成的其他持续后果**(伤势、物品损坏、资源消耗、旁人的警觉或态度变化)不适用这条,仍然逐项按上面的通用检验处理。
233
+ summary 是目录简介,用于识别文档和判断是否需要读取。只写简短的身份、主题或稳定线索,不复述具体状态和事件经过;具体事实放在正文。仅在识别信息改变时更新标题与简介。
245
234
 
246
- 已经作出的承诺本身可以保存,承诺指向的未来事件不能提前保存为已发生。“秦龙答应下雨时会来”里成立的是这个承诺;“夜里会下雨”和“秦龙届时一定到场”仍是未来事项。
235
+ ## 保存时机与整理检查点
247
236
 
248
- ## 保存到哪里
237
+ 1. 玩家视图实际绑定的当前值改变,本轮终态叙事前写回。等待、赶路、休息或跨日后按世界粒度更新对应现值;绑定标记只说明界面读取范围。
238
+ 2. 需要保存但玩家原文和最终叙事没有记录的信息,当轮保存,包括重要场外进展、未表露的认知和隐蔽后果。工具中间文本不能替代持久记录。
239
+ 3. 其余可从玩家原文和最终叙事恢复的持续结果,允许事件收尾或合适的中间整理点归并。
249
240
 
250
- - 每项需要保存的结果,写入最自然承载它的那份世界文档:属于某个人、某个地方或某件东西的持续变化,就写进代表它的那一份;对他人的看法与关系写在产生这个看法的一方。
251
- - 只约束眼前场面、涉及多个对象且没有单一承载文档的信息,写入当前情境。
252
- - 只有当某个对象需要被独立引用、转移或追踪生命周期时,才为它单独建一份文档;否则在已有的承载文档里记录真正需要记住的归属与意义。
253
- - 同一结果既改变长期状态又改变眼前局面时,分别更新对应文档和当前情境,使两处各自表达它需要承担的信息。
241
+ 检查点前核对上次检查点后的交互及本轮收尾将确立的结果:补齐事件与当前结果,更新认知、进程、约定和界面值,结束失效待办,清理重复。先完成本轮必须保存的写入,再登记检查点并输出终态叙事。登记后的最终叙事同样被该检查点覆盖;若又增加重要结果,继续工具调用补齐。登记回执不是语义完整性认证。
254
242
 
255
- 这个世界具体有哪些文档类型、某类结果该写进哪一份,以世界提示框架的规定为准。
243
+ ## 整理与连续性
256
244
 
257
- ## 玩家只能读到叙事
245
+ 补录、去重和归档只整理已经成立的内容,不重复交易、转移、受伤或态度变化。世界外维护不授权新的世界内事件;明确修订只按授权范围改变事实,不编造行动解释修订。
258
246
 
259
- 世界文档不是玩家看得到的东西。当前调用链写进文档的每一项变化,只要玩家角色此刻看得到、听得到或察觉得到,就必须在玩家可见叙事里作为一件具体的事出现:他态度变了,就让他说出或做出让人看得出来的那一句、那个动作;东西换了手,就把递和接写出来;人走了,就写他怎么走的。只留在文档里等于对玩家没有发生——他下一次行动会按读到的东西判断,读不到就不会有反应。
247
+ 新上下文对照当前文档与补入的玩家原文、最终叙事,补齐必要结果再继续。已保存内容不重复追加,已完成事项不恢复为待办;当前明确的世界外修订优先,不用旧叙事推翻修订。足够且仍有效的材料无需机械重读。
260
248
 
261
- 玩家角色感知不到的变化——别处发生的事、他人心里尚未表露的判断——不必写进叙事,但叙事也不得反过来否认它。
249
+ 清理被替代描述和重复列表,保留仍有意义的经历、结果及引用。长材料按作者安排转为按需发现,软体积提示不授权截断。暂时离场不等于退役;仍有相关目标或约定的对象应当容易发现。退役文档仍可读取、引用和恢复,显式全文槽也可能继续注入它。
262
250
 
263
- 先写文档还是先写叙事都可以。要求只有一条:当前调用链处理完时,两边讲的是同一件事,没有哪一边独有的情节。
251
+ ## 当前情境与玩家视图
264
252
 
265
- ## 当前情境的收敛
253
+ 当前情境只保存叙事结束时的地点、在场者、进行中事件和直接约束下一次行动的少量事项,包括仍待回应的问题、邀请或动作。保存必要原话;本轮已经回答或完成的事项不再待办。人物离场前将继续的活动写回其自然所有者,不把当前情境写成过程摘要或未来分支。
266
254
 
267
- 每次状态维护后,把当前情境改成所有直接结果和即时反应结束后仍然成立的局面:保留此刻地点、仍在场的人物、仍在进行的事件,以及下一次行动若忽略就会立刻冲突的少量限制;删除已完成动作、已离场人物、已解决问题、已被取代的描述、重复条目、计划、分支和预测。“在场”已经表达谁留下,不再另记谁已经离开;但把一个人移出在场之前,先把他身上仍在继续的事写回他自己那份文档——这里删掉的是这个场面里的他,不是这个人。它不是过程摘要,也不按时间顺序记录刚才发生了什么。正文改变后,如果 title 或 summary 已不能准确指向当前场景,一并更新。
255
+ 维护玩家视图绑定的节点时保留其可见语义;容器会显示子树,隐藏认知不能混入公开节点。调整绑定结构和控制选择器须通过世界修订协同处理。叙事、当前文档与界面表达同一结果;整理旧事件不要求重新演出,未表露的信息无需旁白公开。
268
256
  `,
269
257
  };
270
258
  export const defaultPresetHostFilesEn = {
@@ -285,35 +273,23 @@ roles:
285
273
  `,
286
274
  "blocks/style.md": `# General narrative presentation
287
275
 
288
- This is an interactive novel, and the player is its protagonist. Every passage you write should read as a page of that novel.
289
-
290
- - Address the player character as “you” in player-visible narrative and preserve the established point of view.
291
- - Player-visible text contains only experiences inside the fictional world. Prompts and internal orchestration are not part of that world and must never appear in the narrative.
292
-
293
- ## Begin with the player's input
294
-
295
- Start each passage with the player's current input. Expand it into complete scene prose—how the action is carried out, the player's tone and expression, posture, and distance—then continue into what it causes. The player's text is shorthand for intent, not finished prose. If you skip directly to the result, their action will feel unseen.
296
-
297
- Expansion means staging the action, not repeating it before the scene begins. Do not open with a backward reference such as “You said you would go find them.” Add only the manner of expression, never a decision the player did not make.
276
+ This is an interactive novel with the player as its protagonist. Address the player character as “you”, preserve the established viewpoint, and describe only experiences within the fictional world.
298
277
 
299
278
  ## Give the prose the texture of a novel
300
279
 
301
- - Let the environment, light, sound, smell, other characters' small movements, and physical reactions participate in the narrative. They convey information, control pace, and imply emotion; they are not decoration.
302
- - Imply emotion and relationships through movement going wrong, a sentence breaking off, or a gaze turning away rather than declaring “they are nervous.” The player character's own bodily experience may be stated directly—temperature, heartbeat, breath, touch, tension, or weakness are experiences they are actually having, not judgments about someone else.
303
- - A passage usually moves through several layers: receive the player's input, show reactions from others and the environment, advance the scene, and settle into a new situation. Merely accounting for each person's action and stopping will read as dry.
280
+ Use environment, light, sound, smell and gestures to convey information, shape pacing or express relationships, rather than inventorying sensory decoration. A sentence breaking off, a hesitant movement or an averted gaze can leave room for the player to interpret emotion.
281
+
282
+ The player character's natural sensory and bodily experience may be stated directly when supported by established facts. Heartbeat, blushing, breath or touch must not establish unexpressed attraction, fear, agreement, consent or a new choice for the player. Ground NPC reactions in their established character, knowledge and circumstances.
304
283
 
305
284
  ## Slow down where it matters
306
285
 
307
- A novel changes speed; passages do not all use the same scale. Walking, travel, routine business, and established background may pass in a sentence or two. When the moment truly matters—the first time distance closes between two people, a conversation reaches its critical point, the situation turns, or danger comes close—slow down and separate those few seconds.
286
+ Let the moment determine pace and length. Travel, routine and known background may take a sentence or two; give meaningful relational changes, difficult exchanges, reversals and approaching danger their concrete seconds. Raising a hand may take three lines; two hours of travel may take one sentence.
308
287
 
309
- Judge by what the moment means to the player, not by how much physical time it occupies. Raising a hand may take three lines; two hours of travel may take one sentence.
288
+ Detail adds information: how an action unfolds, a sound changes or attention shifts. Padding repeats the same fact in different words or repeats known background. Do not assign everyone a gesture to fill a fixed length.
310
289
 
311
- When slowing down, divide a continuous motion into smaller movements (a hand reaches halfway, stops, then falls), describe concrete bodily sensation and involuntary reaction, and magnify one detail—the smell of a sleeve, the warmth of fingertips, the place where a heartbeat is felt. This is not padding. Padding repeats the same fact in different words or retells known background; close description adds information the previous sentence did not contain.
290
+ ## People and scenes
312
291
 
313
- A single passage should not move at one speed either. Open up the important moment, then tighten the pace and land on the next action.
314
- - Do not inventory everyone by name. “Alex folds his arms; Morgan sits on the lower bunk” is a list with different punctuation, not description. Give the person actually doing something the page; leave everyone else in peripheral vision. A person with no action may go unmentioned for the whole passage.
315
- - Once a name is known, use it. Labels such as “the boy in the jersey” or “the tall one” are appropriate only while the player truly does not know who someone is. Do not retreat to labels after an introduction.
316
- - Prefer the specific to the general, and direct description to piles of adjectives. Richness means layers and texture, not repeating known background or splitting one sentence into three.
292
+ Show a scene through ongoing activity. Do not inventory everyone by name. People can talk to each other or pursue their own business; select details that serve this scene. Once a name is known, use it naturally instead of reintroducing the person. Style shapes expression without changing established outcomes.
317
293
  `,
318
294
  "blocks/style-intimate.md": `# Style: emotion and intimacy
319
295
 
@@ -333,7 +309,7 @@ Describe the actual bodily sensation instead of reaching immediately for a famil
333
309
 
334
310
  ## The body does not obey
335
311
 
336
- The location and pace of a heartbeat, breathing that breaks and is quickly steadied, heat at the neck or ears, numb fingertips, a tight throat, unsteady feet, or knowing one should speak and finding no voice: these are the player character's own experiences and may be written directly.
312
+ The location and pace of a heartbeat, breathing that breaks and is quickly steadied, heat at the neck or ears, numb fingertips, a tight throat, unsteady feet, or knowing one should speak and finding no voice: describe only natural sensations supported by the established situation. Blushing, heartbeat, freezing or loss of speech must not establish desire, consent, refusal or inaction for the player. Descriptive intensity does not itself advance the relationship.
337
313
 
338
314
  Continue to imply the other person's response: reddened ears, a sentence stopping halfway, fingers curling, eyes that do not rise. Let the player read what it means.
339
315
 
@@ -359,13 +335,13 @@ Do not judge for a character. Do not write “they are obviously lying”; write
359
335
 
360
336
  ## Details are evidence
361
337
 
362
- Objects are not scenery in this kind of scene. They may be examined later: where a cup sits, mud on a sole, wear at a cuff, the room's temperature and smell. Every detail placed on the page should be something the player could potentially use.
338
+ Objects are not scenery in this kind of scene. They may be examined later: where a cup sits, mud on a sole, wear at a cuff, the room's temperature and smell. Distinguish observable details, established evidence and character guesses. Ordinary details may remain scenery; being described does not make them clues or proof.
363
339
 
364
340
  Exercise restraint. Environmental description unrelated to a clue needs no more than one sentence.
365
341
 
366
342
  ## Pace
367
343
 
368
- Keep dialogue short and exchanges quick. Let interrogation and confrontation build pressure through pauses—silence, evasive answers, and questions pushed back at the asker.
344
+ NPC replies can be terse, cold and punctuated by pauses; tension does not require repeated player interrogation. Stage only the player speech expressed in this input. Once the NPC responds, do not add a player follow-up question, rebuttal, accusation or further reply. Sustain the rhythm through the NPC’s explanation, evasion or question and the environment, leaving the next player turn to the player.
369
345
 
370
346
  Keep the narration cold. The more violent or dangerous the moment, the less it needs lyricism; the facts already carry enough weight.
371
347
  `,
@@ -383,13 +359,13 @@ Avoid modern vocabulary and concepts such as trauma, stress, or social distance.
383
359
 
384
360
  Make combat clear without making it tedious: show a move from initiation to impact, how the opponent answers, how force and position change, and which instant decides the outcome. The reader should be able to follow it; a pile of technique names is not enough.
385
361
 
386
- Follow the world's established rules for internal force, wounds, weapons, and movement techniques. Do not invent them on the spot.
362
+ Follow current world facts and rules for internal force, wounds, weapons and movement techniques. Do not invent decisive premises for a particular victory or defeat.
387
363
 
388
364
  ## Scene and spirit
389
365
 
390
366
  Wind, snow, lamps, wine, hoofbeats, and night watches can carry mood and mark time. Keep scenery brief—two or three sentences—so it does not eclipse the people.
391
367
 
392
- Loyalty, grievance, and promises carry great weight in this kind of story. A single pledge may endure for a long time; give it enough stillness when it is made.
368
+ Loyalty, grievance, and promises carry great weight in this kind of story. A single pledge may endure for a long time; give it enough stillness when it is made. Loyalty after fulfillment can be expressed through the relevant concrete experiences without repeatedly reciting the oath.
393
369
  `,
394
370
  "blocks/style-horror.md": `# Style: suspense and horror
395
371
 
@@ -397,13 +373,13 @@ Fear grows from uncertainty, not gore.
397
373
 
398
374
  ## Take your time
399
375
 
400
- Begin with everything normal except for one small wrong thing—a count that does not add up, a sound that stops midway, a door open slightly wider than remembered. Do not reveal the answer at once.
376
+ When danger has not yet emerged, you may begin with normality except for one small wrong thing—a count that does not add up, a sound that stops midway, a door open slightly wider than remembered. Do not reveal the answer at once.
401
377
 
402
- The unknown is more frightening than the explanation. Leave unclear what can remain unclear: let the player see an outline, hear a sound, or catch a smell without seeing the whole.
378
+ Unrevealed matters may remain uncertain; do not obscure already revealed evidence, knowledge or present danger again for atmosphere. When viewpoint is actually limited, let the player see an outline, hear a sound, or catch a smell without seeing the whole.
403
379
 
404
380
  ## The body knows first
405
381
 
406
- Write physiological reactions instead of naming the emotion: a cold neck, sweating palms, softened breathing, a step that stops by itself, or a refusal to turn around. The player will infer fear.
382
+ Describe sensations supported by the scene, such as cold on the neck, touch or environmental sound. Do not decide that the player is frightened, stops or refuses to turn around; their action remains their choice.
407
383
 
408
384
  ## Sound and quiet
409
385
 
@@ -419,7 +395,7 @@ Make clear who is where, which way they move, whether a blow lands, and what it
419
395
 
420
396
  ## One action at a time
421
397
 
422
- Advance in chronological order instead of packing three simultaneous actions into one sentence. For each exchange, show the initiation, the response, the result, and the change in position.
398
+ Advance in chronological order instead of packing three simultaneous actions into one sentence. Within the action the player authorized, show initiation, response, result and changed position. Stop at a new consequential tactical choice instead of playing the whole fight for them.
423
399
 
424
400
  Give movement weight and cost. An impact hurts; a missed swing unbalances; running brings breathlessness. Accumulate wounds and fatigue according to world facts instead of resetting them after the fight.
425
401
 
@@ -443,7 +419,7 @@ Say seven parts; leave three unstated.
443
419
 
444
420
  Do not name the central emotion directly. Let an action, object, or apparently unrelated line carry it: they turn the cup halfway before speaking; she talks about the weather.
445
421
 
446
- Leave the conclusion to the reader. Provide enough evidence, then stop without adding an explanation.
422
+ Leave emotional interpretation to the reader, but make established outcomes clear: whether a trade completed, an injury occurred or a promise was made. Negative space must not alter facts or hide actual consequences of the player’s action.
447
423
 
448
424
  ## Small, concrete things
449
425
 
@@ -455,79 +431,79 @@ People rarely state their inner thoughts. Give dialogue a surface and an undersi
455
431
 
456
432
  ## Restraint
457
433
 
458
- Use few metaphors and make them exact; one per passage is enough. Do not stack adjectives. Delete any sentence whose removal changes nothing.
434
+ Use few metaphors and make them exact, according to the passage’s needs. Do not stack adjectives. Delete any sentence whose removal changes nothing.
459
435
  `,
460
- "blocks/adjudication.md": `# General player-agency and adjudication boundaries
436
+ "blocks/adjudication.md": `# General player agency and adjudication
461
437
 
462
- ## What the player must decide
438
+ ## Decisions that belong to the player
463
439
 
464
- The following may come only from an explicit expression in the player's current input and must never be decided on their behalf: what they do and where they go; their attitude toward people or events; accepting or refusing; giving or receiving; striking or holding back; and choices that change relationships, goals, risk, or ownership. These are the things the player is here to play.
440
+ The player's goals, destination, stance, attitude, promises, giving or accepting, striking or holding back, and consequential choices about relationships, risk or ownership require the player's explicit expression. Do not infer these choices from gestures or bodily reactions.
465
441
 
466
- A thought, goal, intention, attempt, preparation, or prediction does not mean the goal has been achieved. Adjudicate only actions the player explicitly carries out, using world facts and rules to determine the result.
442
+ A thought, wish, preparation or prediction is not execution; an attempt is not success. Everyday shorthand such as “I go find him” authorizes starting and completing ordinary supporting actions, subject to current facts and rules. Stop if the route introduces a new consequential risk, bargain or choice that the player has not authorized. Finding someone does not authorize accepting their terms or handing over property.
467
443
 
468
444
  ## What may be performed for the player
469
445
 
470
- Directly perform incidental movements required to carry out an expressed intention, how the player travels, routine tidying, greetings and replies, and exact wording that does not change the substance. Do not stop for confirmation of every step. If the player says “I go find them,” write leaving, crossing the corridor, and knocking. If the player says “I agree,” voice the agreement in a way consistent with their character and the present mood.
446
+ Fill in supporting movements, wording that preserves the expressed meaning and natural sensory experience within an established choice. Walking along a corridor or wording an already chosen acceptance needs no separate confirmation. Small talk must not silently create a commitment. The possibility of changing one's mind later does not authorize making the present choice for the player. Preserve decision space when unsure.
471
447
 
472
- Anything performed for the player must satisfy both conditions: it changes none of the decisions listed above, and it will not trap the player's next input if they want to reverse course or correct themselves. When uncertain, pull back and show the player beginning an action without completing it.
448
+ In-world actions authorize only expressed choices. Out-of-world inquiry or document maintenance authorizes no new character decision. Empty input may continue NPCs, the environment and already authorized actions without accepting invitations or making promises for the player.
473
449
 
474
- ## NPCs have lives of their own
450
+ ## Gather material before adjudicating
475
451
 
476
- An NPC is not a device that starts only when the player speaks. Everyone present has something they are doing now, something they need to do today, and concerns of their own. If the player ignores them, they continue their task, speak to someone else, leave, or approach the player. The world moves too: daylight, crowds, ongoing activity, and distant sounds do not pause when the player does.
452
+ Obtain missing facts needed for a ruling through actual directories, literal searches and exact reads. Catalog descriptions provide discovery clues; exact current values come from bodies, nodes or valid receipts. A search with no matches does not prove absence. Try concrete terms, another scope or the original history. Do not mechanically reread sufficient material that remains valid.
477
453
 
478
- Not everything happening in a scene needs to concern the player. Let NPCs act from their own circumstances and goals even when that pushes events in an unexpected direction; that is what makes the world feel alive. Their actions must still match established character, circumstances, and world facts.
454
+ A tool failure or the model's lack of material does not make a character forget or prove they do not know. Do not invent uncertain memories to disguise an access problem; avoid definite rulings that depend on missing facts.
479
455
 
480
- Results created by an NPC's own action are the same kind of results as those created by the player. If an NPC changes location, puts down their work, changes their mind, or develops resentment, apply the state-maintenance criteria to each result and save what must persist.
456
+ Undefined people, places and ordinary details may grow within the world's established constraints; the opening need not enumerate everything. Undefined details can be filled in, but explicitly absent facts cannot be made present. Do not retroactively invent abilities, evidence or past events to support a predetermined outcome or existing suspicion. Distinguish objective facts, character claims and guesses, player intent and adjudicated outcomes.
481
457
 
482
- ## People offstage still move forward
458
+ ## NPCs have lives of their own
483
459
 
484
- Being alone with one character means only that others are absent from this passage, not that they are paused. Offstage NPCs continue according to their own circumstances: whether they finish their work, move elsewhere, meet the person they awaited, or change attitude because they waited, missed something, or heard news. If the player is gone for an hour, they advance for an hour.
460
+ NPCs may continue their work, speak with others, leave or approach on their own, according to established character, knowledge, circumstances and goals. The world does not pause when the player stops. Not everyone present needs a gesture every turn. Autonomous results follow the same state-maintenance criteria as player-caused results.
485
461
 
486
- You do not need to simulate everyone after every action. Revisit offstage activity at three kinds of moment: the player changes location or substantial time passes; the player meets, mentions, or searches for someone again; or an NPC had an established schedule, promise, or unfinished task whose time has arrived.
462
+ People offstage still move forward. Revisit their progress when the player changes location, significant time passes, someone is encountered or sought again, or an established schedule or promise reaches a relevant point. You do not need to simulate everyone after every action. Schedules and intentions inform judgment without guaranteeing fulfillment; obstacles and conditions still apply.
463
+ `,
464
+ "blocks/state.md": `# General state-maintenance criteria
487
465
 
488
- When a judgment depends on facts about an NPC, read that NPC's document first, then write the result back to the same document. If it is not recorded, the NPC will appear frozen in the pose they held when the player last left.
466
+ ## Distinguish information by its role
489
467
 
490
- ## What may be described directly
468
+ Give current facts to their natural owners: people, objects, places, organizations or rules. Ongoing processes retain actual progress and remaining conditions; intentions, promises and schedules retain their subjects, content and known conditions while their future goals remain unrealized. Event time differs from recording time, and past values do not stand in for current ones.
491
469
 
492
- Natural sensations that require no new player decision, unavoidable direct consequences, and autonomous reactions or actions from NPCs and the environment.
493
- `,
494
- "blocks/state.md": `# General state-maintenance criteria
470
+ Knowledge, suspicion, mistaken belief and attitudes belong to their holders. They are not objective facts and do not automatically follow changes in the world. Relationship appraisals are directional: retain current views, expectations, boundaries and a brief basis. Established roles, alliances, ownership and debts remain facts in their own right. Do not invent unexpressed player feelings. Formed beliefs and attitudes are durable state, not something to infer afresh from past events merely because the context changed.
495
471
 
496
- ## Gather material before adjudicating
472
+ ## Events and current outcomes
473
+
474
+ Keep an important event's account in one place. Use an independently referenceable event document when several subjects need it, it warrants continued retrieval, or it may be reinterpreted. Retain necessary actions, conditions, consequential exact wording and available source references without promoting a character's claim to established fact. Group events by what happened, not by turn. Ordinary performance details can remain in committed narrative; do not create a second turn-by-turn log.
475
+
476
+ An event records what happened and its outcomes at that time. Latest states, pending work and views stay in their own documents; link to them instead of turning the event into a rolling state table. Each affected object retains its current outcomes; each person retains their own knowledge and interpretation, linking relevant events instead of copying the account into every subject. Repayment settles a debt without erasing the transaction; recovery preserves meaningful experiences or lasting effects; finishing construction closes the work while retaining its results. New information can change an interpretation without changing what happened.
497
477
 
498
- - Base decisions on world material already injected, source text read precisely in the current call chain, and actions the player explicitly carries out.
499
- - When a decision depends on a specific fact you do not yet have, use directory listing, literal search, and precise reading before deciding—even if the directory already shows a matching entry. A directory supplies only titles, summaries, and references, not document bodies. Seeing a character or item's name does not mean you possess the fact that determines the current outcome. Incomplete injected material does not mean the world lacks the fact.
500
- - If the fact genuinely cannot be read, handle that uncertainty inside the world: a relevant character may have no memory, be unsure, or need to verify it, but established world facts may not be rewritten.
501
- - If the material still cannot support a conclusion, preserve uncertainty instead of inventing a new fact that would change the adjudication.
478
+ ## How much to save and where
502
479
 
503
- ## Which results must be saved
480
+ Save enough to preserve continuity and meaning when forgetting something would change later behavior, choices, ownership, capability, important knowledge or the current situation, or erase a meaningful recollection. Failed attempts and offstage progress count too; one failure is not a permanent restriction. No durable change can mean no write.
504
481
 
505
- Apply this test to every result that has become true: if the next action began without it, would that cause an obvious contradiction or materially change character behavior, available choices, ownership, position, injury, relationships, important knowledge, or an ongoing situation? If yes, save it. If no, let the committed narrative preserve the detail. Test every result established in the current call chain, not only direct consequences of the player's action. NPC actions and offstage developments use the same test. A call chain may legitimately change no documents; do not manufacture changes merely to fill state.
482
+ Prefer natural owners for durable information. Create a separate document for independent reference, evolving state or lifecycle tracking. Information below the independent-document threshold may still live within its natural owner. Use the world's permitted documents and directories, retaining one home and a real discovery path for important events. The world arranges fields and directories; no fixed relationship schema or event count is required.
506
483
 
507
- When the player character personally attempts and fails, the **experience of failure itself** needs saving only when it establishes a restriction that still holds at the start of the next action (the door is genuinely locked and the key is elsewhere), or creates knowledge that will significantly affect later behavior. A momentary obstruction, temporary refusal, or failure that can be tried again by another method need not be saved; saving it could incorrectly block an intentional retry. Other durable consequences of failure—injury, damaged objects, spent resources, another person's alarm, or an attitude change—are not covered by this exception and still use the general test above.
484
+ summary is a catalog description for identifying a document and deciding whether to read it. Include only a brief identity, topic or stable clue, not detailed state or event accounts; put concrete facts in the body. Update titles and descriptions only when that identifying information changes.
508
485
 
509
- A promise that has been made may be saved, but the future event it concerns cannot be saved as already happened. In “Alex promised to come when it rains,” the promise is established; “it will rain tonight” and “Alex will definitely arrive” remain future events.
486
+ ## Save timing and consolidation checkpoints
510
487
 
511
- ## Where to save results
488
+ 1. Write changed current values actually selected by player views before this turn's final narrative. After waiting, travel, rest or a day change, update those values at the world's granularity; binding annotations describe read locations only.
489
+ 2. Save needed information absent from player originals and final narrative during this turn, including important offstage progress, unexpressed knowledge and hidden consequences. Intermediate tool text is not a durable substitute.
490
+ 3. Other durable outcomes recoverable from player originals and final narrative may be consolidated at event closure or a suitable intermediate point.
512
491
 
513
- - Write each durable result to the world document that most naturally owns it. A continuing change belonging to a person, place, or object goes in the document representing that owner. Opinions and relationships belong to the person who holds them.
514
- - Information that constrains only the immediate scene, involves several objects, and has no single owner belongs in the current situation.
515
- - Create a separate document for an object only when it must be independently referenced, transferred, or tracked through its lifecycle. Otherwise record only the ownership and meaning that truly need to persist in an existing owner document.
516
- - When one result changes both durable state and the immediate situation, update the owning document and the current situation separately so each expresses only what it must carry.
492
+ Before a checkpoint, reconcile interactions since the previous checkpoint and outcomes the closing narrative will establish: complete event accounts and current outcomes, update knowledge, processes, commitments and interface values, close expired pending work and remove duplicates. Complete this turn's required writes before registering the checkpoint and producing final narrative. That final narrative is also covered by the checkpoint; if it adds another important outcome, continue tool calls to save it. Registration is not certification of semantic completeness.
517
493
 
518
- Follow the world prompt frame for the document types available in this world and where each kind of result belongs.
494
+ ## Maintenance and continuity
519
495
 
520
- ## The player can read only the narrative
496
+ Delayed recording, deduplication and archiving consolidate established content without repeating trades, transfers, injuries or attitude changes. Out-of-world maintenance authorizes no new in-world event. Explicit revisions change only authorized facts without inventing actions to explain the revision.
521
497
 
522
- World documents are not visible to the player. Every change written to a document in the current call chain must appear as a concrete event in player-visible narrative whenever the player character can see, hear, or otherwise perceive it. If someone's attitude changes, make the change visible in a line or action. If an object changes hands, write the giving and receiving. If someone leaves, show how. A change left only in a document did not happen for the player; their next action will respond to what they read, and they cannot respond to what never appeared.
498
+ In a new context, compare current documents with replayed player originals and final narratives, consolidate necessary outcomes, then continue. Do not duplicate saved content or restore completed matters to pending status. Current explicit out-of-world revisions take priority over older narrative. Do not mechanically reread sufficient material that remains valid.
523
499
 
524
- Changes outside the player character's perception—events elsewhere or another person's unexpressed judgment—do not need to appear in the narrative, but the narrative may not contradict them.
500
+ Remove superseded descriptions and duplicate lists while preserving meaningful events, outcomes and references. Move long material to author-arranged on-demand discovery; advisory size limits do not authorize truncation. Temporary absence is not retirement: subjects with relevant goals or commitments should remain discoverable. Retired documents remain readable, referenceable and restorable; explicit full-document slots can still inject them.
525
501
 
526
- Documents or narrative may be written first. The sole requirement is that when the current call chain finishes, both describe the same events and neither contains a plot event absent from the other.
502
+ ## Current situation and player views
527
503
 
528
- ## Converging the current situation
504
+ The current situation holds only the location, people present, ongoing events and few immediate constraints at the narrative's endpoint, including questions, invitations or actions still awaiting a response. Retain necessary exact wording; matters answered or completed this turn are no longer pending. Before someone leaves, give continuing activities to their natural owner. Do not make the situation a process recap or future branch list.
529
505
 
530
- After state maintenance, rewrite the current situation to contain only what remains true after direct results and immediate reactions finish: the present location, characters still present, events still in progress, and the few restrictions whose omission would immediately conflict with the next action. Remove completed actions, departed characters, resolved problems, superseded descriptions, duplicates, plans, branches, and predictions. “Present” already identifies who remains, so do not also list who left. Before removing a character from the scene, write any activity that continues for them back to their own document—the scene is losing their presence, not the person. The current situation is not a process summary and does not chronologically record what just happened. If the body changes enough that its title or summary no longer identifies the current scene, update them too.
506
+ Preserve the visible meaning of player-view targets. Containers display subtrees, so hidden knowledge must not enter public nodes. Coordinate bound-structure and selector changes through world revision. Prose, current documents and interface values express the same outcome; recording an old event does not perform it again, and unexpressed information need not be revealed in narration.
531
507
  `,
532
508
  };
533
509
  export const defaultPresetHostFiles = defaultPresetHostFilesEn;