@zooique/memora 2.0.0 → 3.0.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 (588) hide show
  1. package/CHANGELOG.md +1028 -0
  2. package/README.en.md +305 -0
  3. package/README.md +303 -148
  4. package/config.example.json +43 -0
  5. package/dist/agent/agent.d.ts +438 -295
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/agent.js +1368 -836
  8. package/dist/agent/agent.js.map +1 -1
  9. package/dist/agent/assembler.d.ts +117 -39
  10. package/dist/agent/assembler.d.ts.map +1 -1
  11. package/dist/agent/assembler.js +574 -71
  12. package/dist/agent/assembler.js.map +1 -1
  13. package/dist/agent/budget.d.ts +131 -0
  14. package/dist/agent/budget.d.ts.map +1 -0
  15. package/dist/agent/budget.js +128 -0
  16. package/dist/agent/budget.js.map +1 -0
  17. package/dist/agent/builtinToolHandlers.d.ts +229 -17
  18. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  19. package/dist/agent/builtinToolHandlers.js +758 -70
  20. package/dist/agent/builtinToolHandlers.js.map +1 -1
  21. package/dist/agent/builtinTools.d.ts +198 -7
  22. package/dist/agent/builtinTools.d.ts.map +1 -1
  23. package/dist/agent/builtinTools.js +646 -14
  24. package/dist/agent/builtinTools.js.map +1 -1
  25. package/dist/agent/compaction.d.ts +93 -0
  26. package/dist/agent/compaction.d.ts.map +1 -0
  27. package/dist/agent/compaction.js +192 -0
  28. package/dist/agent/compaction.js.map +1 -0
  29. package/dist/agent/constants.d.ts +139 -18
  30. package/dist/agent/constants.d.ts.map +1 -1
  31. package/dist/agent/constants.js +154 -18
  32. package/dist/agent/constants.js.map +1 -1
  33. package/dist/agent/contextManager.d.ts +126 -76
  34. package/dist/agent/contextManager.d.ts.map +1 -1
  35. package/dist/agent/contextManager.js +197 -135
  36. package/dist/agent/contextManager.js.map +1 -1
  37. package/dist/agent/contextPreparer.d.ts +78 -0
  38. package/dist/agent/contextPreparer.d.ts.map +1 -0
  39. package/dist/agent/contextPreparer.js +128 -0
  40. package/dist/agent/contextPreparer.js.map +1 -0
  41. package/dist/agent/duplicateInterceptor.d.ts +67 -0
  42. package/dist/agent/duplicateInterceptor.d.ts.map +1 -0
  43. package/dist/agent/duplicateInterceptor.js +82 -0
  44. package/dist/agent/duplicateInterceptor.js.map +1 -0
  45. package/dist/agent/guardRail.d.ts +166 -0
  46. package/dist/agent/guardRail.d.ts.map +1 -0
  47. package/dist/agent/guardRail.js +333 -0
  48. package/dist/agent/guardRail.js.map +1 -0
  49. package/dist/agent/loop.d.ts +718 -253
  50. package/dist/agent/loop.d.ts.map +1 -1
  51. package/dist/agent/loop.js +2215 -648
  52. package/dist/agent/loop.js.map +1 -1
  53. package/dist/agent/managers/archiveCoordinator.d.ts +21 -74
  54. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
  55. package/dist/agent/managers/archiveCoordinator.js +32 -105
  56. package/dist/agent/managers/archiveCoordinator.js.map +1 -1
  57. package/dist/agent/managers/chatLockManager.d.ts +20 -88
  58. package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
  59. package/dist/agent/managers/chatLockManager.js +31 -103
  60. package/dist/agent/managers/chatLockManager.js.map +1 -1
  61. package/dist/agent/managers/dedupManager.d.ts +85 -0
  62. package/dist/agent/managers/dedupManager.d.ts.map +1 -0
  63. package/dist/agent/managers/dedupManager.js +248 -0
  64. package/dist/agent/managers/dedupManager.js.map +1 -0
  65. package/dist/agent/managers/goalConsistencyChecker.d.ts +42 -0
  66. package/dist/agent/managers/goalConsistencyChecker.d.ts.map +1 -0
  67. package/dist/agent/managers/goalConsistencyChecker.js +178 -0
  68. package/dist/agent/managers/goalConsistencyChecker.js.map +1 -0
  69. package/dist/agent/managers/llmCaller.d.ts +124 -0
  70. package/dist/agent/managers/llmCaller.d.ts.map +1 -0
  71. package/dist/agent/managers/llmCaller.js +417 -0
  72. package/dist/agent/managers/llmCaller.js.map +1 -0
  73. package/dist/agent/managers/llmJudgeHelper.d.ts +21 -0
  74. package/dist/agent/managers/llmJudgeHelper.d.ts.map +1 -0
  75. package/dist/agent/managers/llmJudgeHelper.js +32 -0
  76. package/dist/agent/managers/llmJudgeHelper.js.map +1 -0
  77. package/dist/agent/managers/loopMetrics.d.ts +58 -0
  78. package/dist/agent/managers/loopMetrics.d.ts.map +1 -0
  79. package/dist/agent/managers/loopMetrics.js +68 -0
  80. package/dist/agent/managers/loopMetrics.js.map +1 -0
  81. package/dist/agent/managers/memoryAdvisor.d.ts +27 -120
  82. package/dist/agent/managers/memoryAdvisor.d.ts.map +1 -1
  83. package/dist/agent/managers/memoryAdvisor.js +56 -192
  84. package/dist/agent/managers/memoryAdvisor.js.map +1 -1
  85. package/dist/agent/managers/memoryGovernance.d.ts +24 -0
  86. package/dist/agent/managers/memoryGovernance.d.ts.map +1 -0
  87. package/dist/agent/managers/memoryGovernance.js +46 -0
  88. package/dist/agent/managers/memoryGovernance.js.map +1 -0
  89. package/dist/agent/managers/memoryInspector.d.ts +59 -393
  90. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  91. package/dist/agent/managers/memoryInspector.js +92 -736
  92. package/dist/agent/managers/memoryInspector.js.map +1 -1
  93. package/dist/agent/managers/roundSummaryGenerator.d.ts +56 -0
  94. package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -0
  95. package/dist/agent/managers/roundSummaryGenerator.js +201 -0
  96. package/dist/agent/managers/roundSummaryGenerator.js.map +1 -0
  97. package/dist/agent/managers/sessionArchiver.d.ts +19 -63
  98. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  99. package/dist/agent/managers/sessionArchiver.js +83 -157
  100. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  101. package/dist/agent/managers/sessionManager.d.ts +286 -57
  102. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  103. package/dist/agent/managers/sessionManager.js +846 -85
  104. package/dist/agent/managers/sessionManager.js.map +1 -1
  105. package/dist/agent/managers/sessionNamer.d.ts +35 -0
  106. package/dist/agent/managers/sessionNamer.d.ts.map +1 -0
  107. package/dist/agent/managers/sessionNamer.js +104 -0
  108. package/dist/agent/managers/sessionNamer.js.map +1 -0
  109. package/dist/agent/managers/streamAccumulator.d.ts +20 -0
  110. package/dist/agent/managers/streamAccumulator.d.ts.map +1 -0
  111. package/dist/agent/managers/streamAccumulator.js +15 -0
  112. package/dist/agent/managers/streamAccumulator.js.map +1 -0
  113. package/dist/agent/managers/textPolishManager.d.ts +8 -44
  114. package/dist/agent/managers/textPolishManager.d.ts.map +1 -1
  115. package/dist/agent/managers/textPolishManager.js +12 -47
  116. package/dist/agent/managers/textPolishManager.js.map +1 -1
  117. package/dist/agent/managers/toolCallHelpers.d.ts +105 -0
  118. package/dist/agent/managers/toolCallHelpers.d.ts.map +1 -0
  119. package/dist/agent/managers/toolCallHelpers.js +161 -0
  120. package/dist/agent/managers/toolCallHelpers.js.map +1 -0
  121. package/dist/agent/managers/workProjection.d.ts +57 -87
  122. package/dist/agent/managers/workProjection.d.ts.map +1 -1
  123. package/dist/agent/managers/workProjection.js +166 -246
  124. package/dist/agent/managers/workProjection.js.map +1 -1
  125. package/dist/agent/messageHistory.d.ts +134 -84
  126. package/dist/agent/messageHistory.d.ts.map +1 -1
  127. package/dist/agent/messageHistory.js +419 -133
  128. package/dist/agent/messageHistory.js.map +1 -1
  129. package/dist/agent/needsPlanning.d.ts +28 -0
  130. package/dist/agent/needsPlanning.d.ts.map +1 -0
  131. package/dist/agent/needsPlanning.js +68 -0
  132. package/dist/agent/needsPlanning.js.map +1 -0
  133. package/dist/agent/seed/index.d.ts +11 -0
  134. package/dist/agent/seed/index.d.ts.map +1 -0
  135. package/dist/agent/seed/index.js +10 -0
  136. package/dist/agent/seed/index.js.map +1 -0
  137. package/dist/agent/seed/orchestrator.d.ts +83 -0
  138. package/dist/agent/seed/orchestrator.d.ts.map +1 -0
  139. package/dist/agent/seed/orchestrator.js +260 -0
  140. package/dist/agent/seed/orchestrator.js.map +1 -0
  141. package/dist/agent/seed/prepare.d.ts +49 -0
  142. package/dist/agent/seed/prepare.d.ts.map +1 -0
  143. package/dist/agent/seed/prepare.js +107 -0
  144. package/dist/agent/seed/prepare.js.map +1 -0
  145. package/dist/agent/seed/types.d.ts +115 -0
  146. package/dist/agent/seed/types.d.ts.map +1 -0
  147. package/dist/agent/seed/types.js +15 -0
  148. package/dist/agent/seed/types.js.map +1 -0
  149. package/dist/agent/sessionStateMachine.d.ts +78 -0
  150. package/dist/agent/sessionStateMachine.d.ts.map +1 -0
  151. package/dist/agent/sessionStateMachine.js +182 -0
  152. package/dist/agent/sessionStateMachine.js.map +1 -0
  153. package/dist/agent/taskTableRenderer.d.ts +51 -0
  154. package/dist/agent/taskTableRenderer.d.ts.map +1 -0
  155. package/dist/agent/taskTableRenderer.js +115 -0
  156. package/dist/agent/taskTableRenderer.js.map +1 -0
  157. package/dist/agent/toolExecutor.d.ts +255 -9
  158. package/dist/agent/toolExecutor.d.ts.map +1 -1
  159. package/dist/agent/toolExecutor.js +956 -20
  160. package/dist/agent/toolExecutor.js.map +1 -1
  161. package/dist/agent/toolLedger.d.ts +120 -0
  162. package/dist/agent/toolLedger.d.ts.map +1 -0
  163. package/dist/agent/toolLedger.js +149 -0
  164. package/dist/agent/toolLedger.js.map +1 -0
  165. package/dist/agent/toolResultCache.d.ts +134 -0
  166. package/dist/agent/toolResultCache.d.ts.map +1 -0
  167. package/dist/agent/toolResultCache.js +243 -0
  168. package/dist/agent/toolResultCache.js.map +1 -0
  169. package/dist/agent/toolResultOffload.d.ts +59 -0
  170. package/dist/agent/toolResultOffload.d.ts.map +1 -0
  171. package/dist/agent/toolResultOffload.js +70 -0
  172. package/dist/agent/toolResultOffload.js.map +1 -0
  173. package/dist/agent/toolRunner.d.ts +59 -0
  174. package/dist/agent/toolRunner.d.ts.map +1 -0
  175. package/dist/agent/toolRunner.js +147 -0
  176. package/dist/agent/toolRunner.js.map +1 -0
  177. package/dist/agent/tracer.d.ts +99 -107
  178. package/dist/agent/tracer.d.ts.map +1 -1
  179. package/dist/agent/tracer.js +24 -69
  180. package/dist/agent/tracer.js.map +1 -1
  181. package/dist/agent/types.d.ts +512 -162
  182. package/dist/agent/types.d.ts.map +1 -1
  183. package/dist/agent/types.js +2 -51
  184. package/dist/agent/types.js.map +1 -1
  185. package/dist/code-exec/codeExecutionProvider.d.ts +16 -0
  186. package/dist/code-exec/codeExecutionProvider.d.ts.map +1 -0
  187. package/dist/code-exec/codeExecutionProvider.js +57 -0
  188. package/dist/code-exec/codeExecutionProvider.js.map +1 -0
  189. package/dist/code-exec/types.d.ts +37 -0
  190. package/dist/code-exec/types.d.ts.map +1 -0
  191. package/dist/code-exec/types.js +12 -0
  192. package/dist/code-exec/types.js.map +1 -0
  193. package/dist/config/expandEnvVars.d.ts +22 -0
  194. package/dist/config/expandEnvVars.d.ts.map +1 -0
  195. package/dist/config/expandEnvVars.js +38 -0
  196. package/dist/config/expandEnvVars.js.map +1 -0
  197. package/dist/config/loader.d.ts +59 -242
  198. package/dist/config/loader.d.ts.map +1 -1
  199. package/dist/config/loader.js +237 -194
  200. package/dist/config/loader.js.map +1 -1
  201. package/dist/index.d.ts +69 -74
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +93 -63
  204. package/dist/index.js.map +1 -1
  205. package/dist/llm/abortSignal.d.ts +2 -3
  206. package/dist/llm/abortSignal.d.ts.map +1 -1
  207. package/dist/llm/abortSignal.js +2 -3
  208. package/dist/llm/abortSignal.js.map +1 -1
  209. package/dist/llm/factory.d.ts +29 -25
  210. package/dist/llm/factory.d.ts.map +1 -1
  211. package/dist/llm/factory.js +34 -69
  212. package/dist/llm/factory.js.map +1 -1
  213. package/dist/llm/openaiCompatible.d.ts +25 -40
  214. package/dist/llm/openaiCompatible.d.ts.map +1 -1
  215. package/dist/llm/openaiCompatible.js +181 -129
  216. package/dist/llm/openaiCompatible.js.map +1 -1
  217. package/dist/llm/provider.d.ts +29 -42
  218. package/dist/llm/provider.d.ts.map +1 -1
  219. package/dist/llm/provider.js +11 -10
  220. package/dist/llm/provider.js.map +1 -1
  221. package/dist/llm/types.d.ts +54 -11
  222. package/dist/llm/types.d.ts.map +1 -1
  223. package/dist/llm/types.js +0 -5
  224. package/dist/llm/types.js.map +1 -1
  225. package/dist/logging/logger.d.ts +8 -29
  226. package/dist/logging/logger.d.ts.map +1 -1
  227. package/dist/logging/logger.js +43 -233
  228. package/dist/logging/logger.js.map +1 -1
  229. package/dist/logging/loggerInterface.d.ts +9 -8
  230. package/dist/logging/loggerInterface.d.ts.map +1 -1
  231. package/dist/memory/gcService.d.ts +164 -0
  232. package/dist/memory/gcService.d.ts.map +1 -0
  233. package/dist/memory/gcService.js +215 -0
  234. package/dist/memory/gcService.js.map +1 -0
  235. package/dist/memory/governance.d.ts +17 -0
  236. package/dist/memory/governance.d.ts.map +1 -0
  237. package/dist/memory/governance.js +17 -0
  238. package/dist/memory/governance.js.map +1 -0
  239. package/dist/memory/inMemoryRoundStore.d.ts +124 -0
  240. package/dist/memory/inMemoryRoundStore.d.ts.map +1 -0
  241. package/dist/memory/inMemoryRoundStore.js +216 -0
  242. package/dist/memory/inMemoryRoundStore.js.map +1 -0
  243. package/dist/memory/inMemorySessionStore.d.ts +92 -0
  244. package/dist/memory/inMemorySessionStore.d.ts.map +1 -0
  245. package/dist/memory/inMemorySessionStore.js +219 -0
  246. package/dist/memory/inMemorySessionStore.js.map +1 -0
  247. package/dist/memory/inMemorySessionViewLoader.d.ts +89 -0
  248. package/dist/memory/inMemorySessionViewLoader.d.ts.map +1 -0
  249. package/dist/memory/inMemorySessionViewLoader.js +183 -0
  250. package/dist/memory/inMemorySessionViewLoader.js.map +1 -0
  251. package/dist/memory/inMemoryStorage.d.ts +26 -141
  252. package/dist/memory/inMemoryStorage.d.ts.map +1 -1
  253. package/dist/memory/inMemoryStorage.js +48 -187
  254. package/dist/memory/inMemoryStorage.js.map +1 -1
  255. package/dist/memory/keywordsTouch.d.ts +20 -0
  256. package/dist/memory/keywordsTouch.d.ts.map +1 -0
  257. package/dist/memory/keywordsTouch.js +25 -0
  258. package/dist/memory/keywordsTouch.js.map +1 -0
  259. package/dist/memory/lockManager.d.ts +7 -2
  260. package/dist/memory/lockManager.d.ts.map +1 -1
  261. package/dist/memory/lockManager.js +35 -11
  262. package/dist/memory/lockManager.js.map +1 -1
  263. package/dist/memory/projectManager.d.ts +30 -128
  264. package/dist/memory/projectManager.d.ts.map +1 -1
  265. package/dist/memory/projectManager.js +39 -171
  266. package/dist/memory/projectManager.js.map +1 -1
  267. package/dist/memory/projectRegistry.d.ts +22 -37
  268. package/dist/memory/projectRegistry.d.ts.map +1 -1
  269. package/dist/memory/projectRegistry.js +78 -85
  270. package/dist/memory/projectRegistry.js.map +1 -1
  271. package/dist/memory/roundStore.d.ts +629 -0
  272. package/dist/memory/roundStore.d.ts.map +1 -0
  273. package/dist/memory/roundStore.js +116 -0
  274. package/dist/memory/roundStore.js.map +1 -0
  275. package/dist/memory/sessionStore.d.ts +70 -61
  276. package/dist/memory/sessionStore.d.ts.map +1 -1
  277. package/dist/memory/sessionStore.js +23 -1
  278. package/dist/memory/sessionStore.js.map +1 -1
  279. package/dist/memory/sessionViewLoader.d.ts +141 -0
  280. package/dist/memory/sessionViewLoader.d.ts.map +1 -0
  281. package/dist/memory/sessionViewLoader.js +65 -0
  282. package/dist/memory/sessionViewLoader.js.map +1 -0
  283. package/dist/memory/sourceValidation.d.ts +18 -9
  284. package/dist/memory/sourceValidation.d.ts.map +1 -1
  285. package/dist/memory/sourceValidation.js +35 -29
  286. package/dist/memory/sourceValidation.js.map +1 -1
  287. package/dist/memory/storageInterface.d.ts +45 -126
  288. package/dist/memory/storageInterface.d.ts.map +1 -1
  289. package/dist/memory/types.d.ts +82 -168
  290. package/dist/memory/types.d.ts.map +1 -1
  291. package/dist/memory/types.js +116 -79
  292. package/dist/memory/types.js.map +1 -1
  293. package/dist/project-search/projectSearchProvider.d.ts +29 -0
  294. package/dist/project-search/projectSearchProvider.d.ts.map +1 -0
  295. package/dist/project-search/projectSearchProvider.js +57 -0
  296. package/dist/project-search/projectSearchProvider.js.map +1 -0
  297. package/dist/project-search/terms.d.ts +14 -0
  298. package/dist/project-search/terms.d.ts.map +1 -0
  299. package/dist/project-search/terms.js +68 -0
  300. package/dist/project-search/terms.js.map +1 -0
  301. package/dist/project-search/types.d.ts +139 -0
  302. package/dist/project-search/types.d.ts.map +1 -0
  303. package/dist/project-search/types.js +8 -0
  304. package/dist/project-search/types.js.map +1 -0
  305. package/dist/role-pack/capabilityMap.d.ts +28 -0
  306. package/dist/role-pack/capabilityMap.d.ts.map +1 -0
  307. package/dist/role-pack/capabilityMap.js +56 -0
  308. package/dist/role-pack/capabilityMap.js.map +1 -0
  309. package/dist/role-pack/constants.d.ts +21 -0
  310. package/dist/role-pack/constants.d.ts.map +1 -0
  311. package/dist/role-pack/constants.js +21 -0
  312. package/dist/role-pack/constants.js.map +1 -0
  313. package/dist/role-pack/rolePackManager.d.ts +269 -0
  314. package/dist/role-pack/rolePackManager.d.ts.map +1 -0
  315. package/dist/role-pack/rolePackManager.js +1082 -0
  316. package/dist/role-pack/rolePackManager.js.map +1 -0
  317. package/dist/role-pack/strategyKeys.d.ts +100 -0
  318. package/dist/role-pack/strategyKeys.d.ts.map +1 -0
  319. package/dist/role-pack/strategyKeys.js +184 -0
  320. package/dist/role-pack/strategyKeys.js.map +1 -0
  321. package/dist/role-pack/strategyResolver.d.ts +109 -0
  322. package/dist/role-pack/strategyResolver.d.ts.map +1 -0
  323. package/dist/role-pack/strategyResolver.js +304 -0
  324. package/dist/role-pack/strategyResolver.js.map +1 -0
  325. package/dist/role-pack/types.d.ts +237 -0
  326. package/dist/role-pack/types.d.ts.map +1 -0
  327. package/dist/role-pack/types.js +8 -0
  328. package/dist/role-pack/types.js.map +1 -0
  329. package/dist/role-pack/validator.d.ts +38 -0
  330. package/dist/role-pack/validator.d.ts.map +1 -0
  331. package/dist/role-pack/validator.js +436 -0
  332. package/dist/role-pack/validator.js.map +1 -0
  333. package/dist/security/pathGuard.d.ts +69 -72
  334. package/dist/security/pathGuard.d.ts.map +1 -1
  335. package/dist/security/pathGuard.js +151 -131
  336. package/dist/security/pathGuard.js.map +1 -1
  337. package/dist/skill/skillLayer3.d.ts +91 -0
  338. package/dist/skill/skillLayer3.d.ts.map +1 -0
  339. package/dist/skill/skillLayer3.js +104 -0
  340. package/dist/skill/skillLayer3.js.map +1 -0
  341. package/dist/skill/skillManager.d.ts +127 -56
  342. package/dist/skill/skillManager.d.ts.map +1 -1
  343. package/dist/skill/skillManager.js +318 -163
  344. package/dist/skill/skillManager.js.map +1 -1
  345. package/dist/skill/skillScriptRunner.d.ts +97 -0
  346. package/dist/skill/skillScriptRunner.d.ts.map +1 -0
  347. package/dist/skill/skillScriptRunner.js +271 -0
  348. package/dist/skill/skillScriptRunner.js.map +1 -0
  349. package/dist/skill/types.d.ts +73 -17
  350. package/dist/skill/types.d.ts.map +1 -1
  351. package/dist/skill/types.js +5 -1
  352. package/dist/skill/types.js.map +1 -1
  353. package/dist/utils/array.d.ts +5 -6
  354. package/dist/utils/array.d.ts.map +1 -1
  355. package/dist/utils/array.js +6 -6
  356. package/dist/utils/array.js.map +1 -1
  357. package/dist/utils/atomicWrite.d.ts +8 -0
  358. package/dist/utils/atomicWrite.d.ts.map +1 -0
  359. package/dist/utils/atomicWrite.js +31 -0
  360. package/dist/utils/atomicWrite.js.map +1 -0
  361. package/dist/utils/backgroundTask.d.ts +38 -0
  362. package/dist/utils/backgroundTask.d.ts.map +1 -0
  363. package/dist/utils/backgroundTask.js +117 -0
  364. package/dist/utils/backgroundTask.js.map +1 -0
  365. package/dist/utils/configResourceManager.d.ts +79 -0
  366. package/dist/utils/configResourceManager.d.ts.map +1 -0
  367. package/dist/utils/configResourceManager.js +150 -0
  368. package/dist/utils/configResourceManager.js.map +1 -0
  369. package/dist/utils/errors.d.ts +48 -56
  370. package/dist/utils/errors.d.ts.map +1 -1
  371. package/dist/utils/errors.js +60 -58
  372. package/dist/utils/errors.js.map +1 -1
  373. package/dist/utils/eventEmitter.d.ts +141 -63
  374. package/dist/utils/eventEmitter.d.ts.map +1 -1
  375. package/dist/utils/eventEmitter.js +50 -35
  376. package/dist/utils/eventEmitter.js.map +1 -1
  377. package/dist/utils/fileSafe.d.ts +20 -0
  378. package/dist/utils/fileSafe.d.ts.map +1 -0
  379. package/dist/utils/fileSafe.js +56 -0
  380. package/dist/utils/fileSafe.js.map +1 -0
  381. package/dist/utils/frontmatter.d.ts +2 -3
  382. package/dist/utils/frontmatter.d.ts.map +1 -1
  383. package/dist/utils/frontmatter.js +6 -5
  384. package/dist/utils/frontmatter.js.map +1 -1
  385. package/dist/utils/hash.d.ts +12 -0
  386. package/dist/utils/hash.d.ts.map +1 -0
  387. package/dist/utils/hash.js +27 -0
  388. package/dist/utils/hash.js.map +1 -0
  389. package/dist/utils/http.d.ts +17 -0
  390. package/dist/utils/http.d.ts.map +1 -0
  391. package/dist/utils/http.js +29 -0
  392. package/dist/utils/http.js.map +1 -0
  393. package/dist/utils/json.d.ts +1 -1
  394. package/dist/utils/json.js +1 -1
  395. package/dist/utils/math.d.ts +34 -1
  396. package/dist/utils/math.d.ts.map +1 -1
  397. package/dist/utils/math.js +47 -14
  398. package/dist/utils/math.js.map +1 -1
  399. package/dist/utils/objects.d.ts +2 -3
  400. package/dist/utils/objects.d.ts.map +1 -1
  401. package/dist/utils/objects.js +2 -3
  402. package/dist/utils/objects.js.map +1 -1
  403. package/dist/utils/recallDefaults.d.ts +16 -0
  404. package/dist/utils/recallDefaults.d.ts.map +1 -0
  405. package/dist/utils/recallDefaults.js +16 -0
  406. package/dist/utils/recallDefaults.js.map +1 -0
  407. package/dist/utils/safeTimer.d.ts +8 -36
  408. package/dist/utils/safeTimer.d.ts.map +1 -1
  409. package/dist/utils/safeTimer.js +9 -37
  410. package/dist/utils/safeTimer.js.map +1 -1
  411. package/dist/utils/scanner.d.ts +97 -17
  412. package/dist/utils/scanner.d.ts.map +1 -1
  413. package/dist/utils/scanner.js +269 -47
  414. package/dist/utils/scanner.js.map +1 -1
  415. package/dist/utils/segmenter.d.ts +20 -29
  416. package/dist/utils/segmenter.d.ts.map +1 -1
  417. package/dist/utils/segmenter.js +230 -88
  418. package/dist/utils/segmenter.js.map +1 -1
  419. package/dist/utils/strings.d.ts +15 -32
  420. package/dist/utils/strings.d.ts.map +1 -1
  421. package/dist/utils/strings.js +25 -44
  422. package/dist/utils/strings.js.map +1 -1
  423. package/dist/utils/time.d.ts +37 -0
  424. package/dist/utils/time.d.ts.map +1 -1
  425. package/dist/utils/time.js +56 -0
  426. package/dist/utils/time.js.map +1 -1
  427. package/dist/utils/toError.d.ts +13 -1
  428. package/dist/utils/toError.d.ts.map +1 -1
  429. package/dist/utils/toError.js +18 -1
  430. package/dist/utils/toError.js.map +1 -1
  431. package/dist/web-fetch/fetchWebFetchProvider.d.ts +14 -0
  432. package/dist/web-fetch/fetchWebFetchProvider.d.ts.map +1 -0
  433. package/dist/web-fetch/fetchWebFetchProvider.js +69 -0
  434. package/dist/web-fetch/fetchWebFetchProvider.js.map +1 -0
  435. package/dist/web-fetch/types.d.ts +30 -0
  436. package/dist/web-fetch/types.d.ts.map +1 -0
  437. package/dist/web-fetch/types.js +7 -0
  438. package/dist/web-fetch/types.js.map +1 -0
  439. package/dist/web-fetch/webFetchProvider.d.ts +10 -0
  440. package/dist/web-fetch/webFetchProvider.d.ts.map +1 -0
  441. package/dist/web-fetch/webFetchProvider.js +28 -0
  442. package/dist/web-fetch/webFetchProvider.js.map +1 -0
  443. package/dist/web-search/fetchWebSearchProvider.d.ts +27 -0
  444. package/dist/web-search/fetchWebSearchProvider.d.ts.map +1 -0
  445. package/dist/web-search/fetchWebSearchProvider.js +199 -0
  446. package/dist/web-search/fetchWebSearchProvider.js.map +1 -0
  447. package/dist/web-search/types.d.ts +46 -0
  448. package/dist/web-search/types.d.ts.map +1 -0
  449. package/dist/web-search/types.js +2 -0
  450. package/dist/{persona → web-search}/types.js.map +1 -1
  451. package/dist/web-search/webSearchProvider.d.ts +10 -0
  452. package/dist/web-search/webSearchProvider.d.ts.map +1 -0
  453. package/dist/web-search/webSearchProvider.js +30 -0
  454. package/dist/web-search/webSearchProvider.js.map +1 -0
  455. package/docs/architecture/role-pack-authoring-guide.md +243 -0
  456. package/docs/architecture/role-pack-spec.md +767 -0
  457. package/docs/memora-api-reference.md +1175 -0
  458. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +843 -0
  459. package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -0
  460. package/package.json +105 -83
  461. package/role-packs/README.md +41 -0
  462. package/role-packs/memora/345/212/251/346/211/213/manifest.json +12 -0
  463. package/role-packs/memora/345/212/251/346/211/213/persona.md +12 -0
  464. package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -0
  465. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +44 -0
  466. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -0
  467. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +15 -0
  468. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/character-sheet.md +34 -0
  469. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/core-extractor.md +37 -0
  470. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/craft-review.md +69 -0
  471. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/dialogue-craft.md +45 -0
  472. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -0
  473. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/empathy-craft.md +79 -0
  474. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -0
  475. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/hotspot-mapping.md +121 -0
  476. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/idea-lever.md +42 -0
  477. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/logline-craft.md +47 -0
  478. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/longform-guard.md +64 -0
  479. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/need-finder.md +40 -0
  480. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +46 -0
  481. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pacing-hook.md +34 -0
  482. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/polish-method.md +113 -0
  483. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/pov-discipline.md +79 -0
  484. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/SKILL.md +112 -0
  485. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/project-init/scripts/init-novel-project.mjs +441 -0
  486. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/relationship-web.md +47 -0
  487. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/scene-craft.md +46 -0
  488. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +60 -0
  489. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-structure.md +36 -0
  490. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/style-weaver.md +109 -0
  491. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/three-layer-check.md +27 -0
  492. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/world-builder.md +41 -0
  493. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/manifest.json +48 -0
  494. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/persona.md +73 -0
  495. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/rules.md +19 -0
  496. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/api-doc-writer.md +40 -0
  497. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/doc-planner.md +42 -0
  498. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/nutrient-search.md +28 -0
  499. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/seed-finder.md +28 -0
  500. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/ssot-audit.md +34 -0
  501. package/role-packs//347/231/275/350/257/235/346/226/271/346/241/210/350/256/276/350/256/241/345/270/210/skills/style-guide.md +40 -0
  502. package/dist/agent/guardrail.d.ts +0 -47
  503. package/dist/agent/guardrail.d.ts.map +0 -1
  504. package/dist/agent/guardrail.js +0 -51
  505. package/dist/agent/guardrail.js.map +0 -1
  506. package/dist/agent/managers/autoConfigRefiner.d.ts +0 -39
  507. package/dist/agent/managers/autoConfigRefiner.d.ts.map +0 -1
  508. package/dist/agent/managers/autoConfigRefiner.js +0 -150
  509. package/dist/agent/managers/autoConfigRefiner.js.map +0 -1
  510. package/dist/agent/managers/configManager.d.ts +0 -125
  511. package/dist/agent/managers/configManager.d.ts.map +0 -1
  512. package/dist/agent/managers/configManager.js +0 -194
  513. package/dist/agent/managers/configManager.js.map +0 -1
  514. package/dist/agent/managers/insightExtractor.d.ts +0 -139
  515. package/dist/agent/managers/insightExtractor.d.ts.map +0 -1
  516. package/dist/agent/managers/insightExtractor.js +0 -401
  517. package/dist/agent/managers/insightExtractor.js.map +0 -1
  518. package/dist/agent/managers/memoryDecayScheduler.d.ts +0 -198
  519. package/dist/agent/managers/memoryDecayScheduler.d.ts.map +0 -1
  520. package/dist/agent/managers/memoryDecayScheduler.js +0 -349
  521. package/dist/agent/managers/memoryDecayScheduler.js.map +0 -1
  522. package/dist/agent/managers/relationBuilder.d.ts +0 -131
  523. package/dist/agent/managers/relationBuilder.d.ts.map +0 -1
  524. package/dist/agent/managers/relationBuilder.js +0 -192
  525. package/dist/agent/managers/relationBuilder.js.map +0 -1
  526. package/dist/agent/personaMatcher.d.ts +0 -29
  527. package/dist/agent/personaMatcher.d.ts.map +0 -1
  528. package/dist/agent/personaMatcher.js +0 -60
  529. package/dist/agent/personaMatcher.js.map +0 -1
  530. package/dist/agent/userFactExtractor.d.ts +0 -25
  531. package/dist/agent/userFactExtractor.d.ts.map +0 -1
  532. package/dist/agent/userFactExtractor.js +0 -81
  533. package/dist/agent/userFactExtractor.js.map +0 -1
  534. package/dist/eval/evalRunner.d.ts +0 -94
  535. package/dist/eval/evalRunner.d.ts.map +0 -1
  536. package/dist/eval/evalRunner.js +0 -141
  537. package/dist/eval/evalRunner.js.map +0 -1
  538. package/dist/eval/evalTypes.d.ts +0 -148
  539. package/dist/eval/evalTypes.d.ts.map +0 -1
  540. package/dist/eval/evalTypes.js +0 -118
  541. package/dist/eval/evalTypes.js.map +0 -1
  542. package/dist/eval/scenarios.d.ts +0 -33
  543. package/dist/eval/scenarios.d.ts.map +0 -1
  544. package/dist/eval/scenarios.js +0 -109
  545. package/dist/eval/scenarios.js.map +0 -1
  546. package/dist/llm/embedding.d.ts +0 -67
  547. package/dist/llm/embedding.d.ts.map +0 -1
  548. package/dist/llm/embedding.js +0 -184
  549. package/dist/llm/embedding.js.map +0 -1
  550. package/dist/memory/hybridMerge.d.ts +0 -54
  551. package/dist/memory/hybridMerge.d.ts.map +0 -1
  552. package/dist/memory/hybridMerge.js +0 -36
  553. package/dist/memory/hybridMerge.js.map +0 -1
  554. package/dist/memory/inMemoryRelationStore.d.ts +0 -51
  555. package/dist/memory/inMemoryRelationStore.d.ts.map +0 -1
  556. package/dist/memory/inMemoryRelationStore.js +0 -65
  557. package/dist/memory/inMemoryRelationStore.js.map +0 -1
  558. package/dist/memory/loader.d.ts +0 -49
  559. package/dist/memory/loader.d.ts.map +0 -1
  560. package/dist/memory/loader.js +0 -93
  561. package/dist/memory/loader.js.map +0 -1
  562. package/dist/memory/recall.d.ts +0 -66
  563. package/dist/memory/recall.d.ts.map +0 -1
  564. package/dist/memory/recall.js +0 -142
  565. package/dist/memory/recall.js.map +0 -1
  566. package/dist/memory/relationStore.d.ts +0 -78
  567. package/dist/memory/relationStore.d.ts.map +0 -1
  568. package/dist/memory/relationStore.js +0 -2
  569. package/dist/memory/relationStore.js.map +0 -1
  570. package/dist/memory/store.d.ts +0 -50
  571. package/dist/memory/store.d.ts.map +0 -1
  572. package/dist/memory/store.js +0 -161
  573. package/dist/memory/store.js.map +0 -1
  574. package/dist/memory/userProfile.d.ts +0 -156
  575. package/dist/memory/userProfile.d.ts.map +0 -1
  576. package/dist/memory/userProfile.js +0 -320
  577. package/dist/memory/userProfile.js.map +0 -1
  578. package/dist/memory/vectorStore.d.ts +0 -185
  579. package/dist/memory/vectorStore.d.ts.map +0 -1
  580. package/dist/memory/vectorStore.js +0 -257
  581. package/dist/memory/vectorStore.js.map +0 -1
  582. package/dist/persona/personaManager.d.ts +0 -160
  583. package/dist/persona/personaManager.d.ts.map +0 -1
  584. package/dist/persona/personaManager.js +0 -414
  585. package/dist/persona/personaManager.js.map +0 -1
  586. package/dist/persona/types.d.ts +0 -32
  587. package/dist/persona/types.d.ts.map +0 -1
  588. package/dist/persona/types.js +0 -5
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: pacing-hook
3
+ description: 节奏与钩子设计:开篇钩子、章末悬念、张弛节奏、平台分发适配
4
+ ---
5
+
6
+ # pacing-hook:节奏与钩子设计
7
+
8
+ ## 用途
9
+
10
+ 把"能读下去"落到执行层。故事内核再好,留不住读者就没有完成。节奏 = 读者的精力曲线,钩子 = 翻页动机。
11
+
12
+ ## 三层钩子系统
13
+
14
+ 1. **开篇钩子(前 3 章留人)**:开头不能铺垫——激励事件前置或紧随开场;主角目标在 1 章内清晰(他想要什么);用"异常时刻"开场(打破日常的那件事),不用环境描写开场;
15
+ 2. **章末悬念(每章留钩)**:每章结束留"价值转变未完成"或"新问题刚抛出"——读者合上这一章是被迫的;
16
+ 3. **卷/部钩子(长期留人)**:整卷结尾留"更大的代价或更高的目标"——驱动力跨卷延续。
17
+
18
+ ## 张弛节奏(情绪波浪线)
19
+
20
+ - 连续高压 = 疲劳:紧张场景后必须给喘息场景(对话/日常/伏笔回收),否则读者麻木;
21
+ - 一个完整的"升-放"周期通常 3-5 章;大高潮前有短暂加速段(短章快切);
22
+ - 节奏要与情绪价值匹配:解压型 = 快节奏打脸要密集;治愈型 = 慢节奏留白要够;共鸣型 = 在情绪落点停久一点。
23
+
24
+ ## 网文化节奏(2026 趋势)
25
+
26
+ - 短剧化:一章一个反转/钩子,前 10 页立人物;
27
+ - 平台分发适配:阅文系(编辑 PK,重设定与逻辑)、番茄系(算法留存,重完读率与章末钩子)——同一故事不同平台的节奏侧重点不同。
28
+
29
+ ## 校验清单
30
+
31
+ - [ ] 前 3 章有留人钩子(激励事件/异常开场)?
32
+ - [ ] 每章章末有"未完成的转变或新问题"?
33
+ - [ ] 紧张场景后有喘息?
34
+ - [ ] 节奏匹配情绪价值类型?
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: polish-method
3
+ description: 修改打磨方法论:删冗余、节奏收紧、文风润色、读者视角重读、三轮打磨
4
+ ---
5
+
6
+ # polish-method:修改打磨方法论
7
+
8
+ ## 用途
9
+
10
+ 初稿不是作品。打磨是把"写完的"变成"能交付的"——删掉作者舍不得但读者不买账的部分,让节奏、文风、情绪都到位。
11
+
12
+ ## 作者反馈 → 修订策略(先定位,再动手)
13
+
14
+ 作者给反馈时往往是一句模糊感受(「这段没感觉」「太拖了」「像 AI」)。**先把它翻译成问题类型,再决定动哪一轮**——拿到就改,多半在改错的地方。
15
+
16
+ | 作者说 | 大概率问题 | 定位与改法 |
17
+ | --- | --- | --- |
18
+ | 「没感觉 / 不够打动」 | 情绪没落进文字 | 查 `empathy-craft`:有情感锚点细节吗?反应是人物指纹还是通用件?再查叙述者是否留有犹豫(结论没给满) |
19
+ | 「像 AI / 太顺了」 | 机器签名 | 走本文「去AI味三阶段」+ `craft-review` 微层检测(过渡词 / 规整句式 / 形容词堆砌 / 对话标签) |
20
+ | 「太拖了 / 看不下去」 | 进入点太晚或密度不足 | 进入点砍前段铺垫 30%;查每 500 字是否「有件事发生了」;参照单章篇幅基线(见 `longform-guard`) |
21
+ | 「太快了 / 没反应过来」 | 铺垫不足或情绪没停 | 高潮前补蓄水;情绪落点停久一点(见 `emotion-wave`) |
22
+ | 「太假了 / 太刻意」 | 裸巧合或缺因果 | 补回溯锚定(前文埋因)或性格催化(是他这性格必然这么做) |
23
+ | 「主角不像他 / 配角像工具人」 | 行为脱离动机 | 回 `character-sheet` 核目标 / 需求 / 缺陷;给配角一个自己的小欲望 |
24
+ | 「看不懂 / 信息乱」 | 设定没随人走 | 删旁白式设定说明,改由人物遭遇 / 对话带出(见 `world-builder`) |
25
+ | 「对话分不清谁在说」 | 语言指纹缺失 | 回 `dialogue-craft`:遮住名字能认出吗?语气即身份 |
26
+ | 「视角乱 / 不知道谁在想」 | POV 失守 | 回 `pov-discipline`:一场景一视角,禁止 head-hopping |
27
+
28
+ **纪律**:一轮只改定位到的那一类问题,不混着改;改完回到「读者视角重读」验收。三轮仍不通过 → 问题多半在结构层,回大纲而非继续润色。
29
+
30
+ ## 反馈执行协议(作者说不好看时怎么走)
31
+
32
+ > 反馈是外部输入:作者的下一条消息触发新 turn,本协议是那个 turn 的既定开头步骤(不是系统自动监听)。判据以上文映射表为准,此处只编排不复制。
33
+
34
+ **输入**:反馈原文(保留原话,不转述)。
35
+
36
+ **步骤**:
37
+
38
+ 1. **映射**:反馈原话 → 上文映射表定位问题类型(9 类);
39
+ 2. **定位**:回跳对应技能读细则;一轮只改定位到的那一类(守上文纪律);
40
+ 3. **修改**:按技能方法改,改完回「读者视角重读」验收;
41
+ 4. **留痕**:产物写入 `<工程>/06-体检/02-修订记录.md`(反馈原文 / 分类 / 改了哪 / 回跳技能 / 验收结果),编号与 `pov-discipline` 产物同区顺延。
42
+
43
+ ## 三轮打磨法
44
+
45
+ ### 第一轮:删冗余(结构层)
46
+
47
+ - 删"无价值转变"的场景(见 scene-craft);
48
+ - 删重复信息(说过两次的设定/人物/情绪只留一次);
49
+ - 删解释腔("他其实很生气,因为他……" → 删,让行为说话);
50
+ - 删角色自言自语式心理独白,能靠动作表达的不写内心。
51
+
52
+ ### 第二轮:收紧节奏(张力层)
53
+
54
+ - 检查每个场景的**进入点**是否够晚(前段铺垫砍掉 30%);
55
+ - 检查章末钩子是否有效(价值转变未完成?);
56
+ - 高潮前有无拖沓(大高潮前 3 章开始加速);
57
+ - 句长检查:该紧张的地方是不是长句太多(该短没短)。
58
+
59
+ ### 第三轮:润色(文风层)
60
+
61
+ - 动词换准("走"→"踱/蹭/挪"按情绪);
62
+ - 删形容词堆叠(一个动词顶三个形容词);
63
+ - 对白顺口:读出声,不像人会说的改掉;
64
+ - 情绪落点检查:该停的地方有没有留白(见 emotion-wave)。
65
+
66
+ ## 去AI味三阶段(写后必过)
67
+
68
+ 第三轮润色偏向文风,这里单列 AI 专属的三道清除关——AI 文本有可枚举的"机器签名",读者一眼辨。逐段过:
69
+
70
+ ### 阶段一:删旁白式感知
71
+
72
+ 删掉"谁感知到了什么"的宣告词,直接写感知内容:
73
+
74
+ > 他感到 / 看见 / 听到 / 发现 / 意识到 / 注意到 / 觉得 / 认为 / 心想
75
+
76
+ - 改前:他感到一阵寒意从背后袭来。
77
+ - 改后:背后一阵寒意袭来。
78
+
79
+ ### 阶段二:删情绪形容词
80
+
81
+ 删"愤怒 / 悲伤 / 恐惧 / 绝望 / 狂喜 / 温柔 / 冷漠 / 震惊"等直接情绪词,用物象/动作承载(详见 empathy-craft 陈述→展示):
82
+
83
+ - 改前:他愤怒地握紧了拳头。
84
+ - 改后:拳头攥了一夜,指节青白。
85
+
86
+ ### 阶段三:检查以人带事
87
+
88
+ 逐段查:①连续 3 句以上世界观说明 → 改对话/行动带出;②抽象概念先于具体人物 → 调顺序,人物在前;③旁白式判断句("他是一个……""这个世界……")→ 删,让读者自己发现。
89
+
90
+ **自检**:全文无"他看见/感到/觉得"、无直接情绪形容词、无连续 3 句以上设定说明。
91
+
92
+ ## 读者视角重读
93
+
94
+ - 隔一天再读(或请 AI 以读者身份读);
95
+ - 标记"想放下的地方"——这些是节奏/信息密度的伤口;
96
+ - 标记"读不懂/信息过载处"——设定漏交代或堆砌;
97
+ - 标记"情绪没被触动处"——对照需求层的情绪承诺,缺的补落点。
98
+
99
+ ## 打磨纪律
100
+
101
+ - **删比改多**:初稿普遍偏肥,第一轮目标砍 10-20%;
102
+ - **一个场景一个作用**:保留最有价值转变的那个,其余并掉;
103
+ - **打磨不是重写**:结构问题回大纲层解决,不动文风层硬撑;
104
+ - **每轮只做一件事**:删冗余时不想润色,润色时不再删——分轮做,不混。
105
+
106
+ ## 校验清单
107
+
108
+ - [ ] 三轮各完成一遍(删/紧/润)?
109
+ - [ ] 初稿删减 10-20%?
110
+ - [ ] 无解释腔/无重复信息?
111
+ - [ ] 读者视角重读过,伤口已修?
112
+ - [ ] 情绪落点齐全(对照需求层承诺)?
113
+ - [ ] 去AI味三阶段过了(无旁白式感知 / 无直接情绪形容词 / 无以人带事问题)?
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: pov-discipline
3
+ description: 叙事视角纪律:人称与 POV 选择、一场景一视角、禁止视角乱跳(head-hopping)、切换边界与标记、POV 与信息不对称
4
+ ---
5
+
6
+ # pov-discipline:叙事视角纪律
7
+
8
+ ## 用途
9
+
10
+ 视角回答一个问题:**这一段,是谁在经历?** AI 写叙事最容易犯的硬伤不是文笔,是**同一段里跳进两个人的内心**——读者立刻出戏,且这种错很难靠润色发现(每句单看都对)。
11
+
12
+ 视角也是**信息不对称的总开关**:读者知道什么、不知道什么,全由「镜头装在谁身上」决定。`style-weaver` 的「悬疑冷硬 = 信息遮断」、`pacing-hook` 的「信息遮断」都依赖本纪律——**没有 POV 纪律,遮断就无从谈起**。
13
+
14
+ ## 三种基本选择
15
+
16
+ | 视角 | 读者能看到 | 适配 | 风险 |
17
+ | --- | --- | --- | --- |
18
+ | **第一人称** | 只有「我」的所见所想 | 强代入、强忏悔/回忆腔、悬疑(天然信息受限) | 无法写「我」不在场的戏;容易变成自说自话 |
19
+ | **第三人称限制** | 只进入当前 POV 人物一人的内心 | 大多数商业小说默认选项 | 换人必须换场景(见切换纪律) |
20
+ | **第三人称全知** | 可进入多人内心、可评论 | 史诗/群像/需要宏观俯瞰 | AI 用全知最容易滑向「说教 + 总结」,且削弱悬念 |
21
+
22
+ **默认推荐**:第三人称限制。**不要为了"方便"选全知**——全知是风格选择,不是偷懒通道。
23
+
24
+ ## 四条铁律
25
+
26
+ 1. **一场景一 POV**:一个场景(连续时空内的一段戏)只进入一个人的内心。想写另一个人的反应,用**外部可见的东西**——动作、表情、台词、沉默(这也正是 `empathy-craft` 的「陈述→展示」)。
27
+ 2. **禁止 head-hopping**:同一段/同一场戏里,不许「他觉得……而她其实在想……」。这是视角的头号事故。
28
+ - ✗ 「林峰盯着她,怀疑她已经知道真相。而她心里正盘算着怎么开口。」
29
+ - ✓ 「林峰盯着她。她端起茶杯,没喝,又放下。——她在盘算什么,他看不出来。」
30
+ 3. **切换只在边界**:POV 只在**场景切换或章节切换**时换人,不在段落中间换。切换后第一段必须让读者立刻知道换人了(用名字/称呼/重置环境锚点)。
31
+ 4. **切换要有标记**:换 POV 时给一个明确信号——空行 + 新场景的物象锚点,或(多 POV 长篇)章首标注 POV 人物名。别让读者猜。
32
+
33
+ ## POV 人物怎么选
34
+
35
+ 一场戏给谁当 POV,按这个顺序判断:
36
+
37
+ 1. **谁的经历张力最大**——不是谁最重要,是**谁在这场的得失最剧烈**(失去最多/赌注最大的那个);
38
+ 2. **谁知道得最少**——想制造悬念,就选知道得最少的那个人当 POV(读者跟他一起蒙在鼓里);
39
+ 3. **谁的变化最关键**——价值转变发生在谁身上,镜头就给谁(见 `scene-craft` 的价值转变)。
40
+
41
+ 反例:高潮戏给旁观者当 POV,等于把最激烈的内心戏推远——除非你要的就是「旁观者视角的无力感」。
42
+
43
+ ## POV 与信息不对称(悬疑/反转的地基)
44
+
45
+ - **读者知道 ≤ POV 人物知道**(限制视角下)。POV 不知道的,读者不许知道。
46
+ - **遮断靠选 POV,不靠藏文字**:很多"悬疑"写不出来,是因为 POV 选了知道内情的人 → 无悬疑可写。
47
+ - **反转的提前量**:想让读者最后才懂,就把线索放在 POV 人物**看见但没理解**的地方(读者也看见,但同样没往那想)——事后回想才成立的线索最有力。
48
+
49
+ ## 多 POV 长篇的额外纪律
50
+
51
+ - **一章一 POV 为默认**,需要同章双 POV 时必须有明确分隔与标记;
52
+ - **POV 人物数量收敛**:主 POV 不超过 3-4 个,其余用外部视角写(否则读者记不住谁是谁);
53
+ - **配角 POV 慎用**:给配角开 POV 必须有理由(提供主角看不到的关键信息),否则是稀释(见 `relationship-web`)。
54
+
55
+ ## 执行协议(谁 / 何时 / 产出什么)
56
+
57
+ > 本技能是成文环节的**既定步骤**(persona 阶段 6 点名),不是后台自动触发——每次 `scene-craft` 产出章节后、进入打磨阶段前执行一次。判据仍以本文四条铁律为准,此处只编排不复制。
58
+
59
+ **输入**:待检章节全文 + 本章 POV 人物名单(多 POV 长篇在章首标注)。
60
+
61
+ **执行步骤(确定性顺序)**:
62
+
63
+ 1. 标注本章 POV 人物;
64
+ 2. 逐场景过四条铁律(一场景一 POV → 无 head-hopping → 切换只在边界 → 切换有标记);
65
+ 3. head-hopping 检出 → 按「✗→✓」示例改写为外部可见行为(动作 / 表情 / 台词 / 沉默);
66
+ 4. 信息不对称复核:读者知道 ≤ POV 知道;遮断失效处反向验证 POV 人物选择。
67
+
68
+ **产物**:写入 `<工程>/06-体检/01-POV审计.md`(每章一条:POV 人物 / 违规 / 改前→改后 / 结论)。正文改动落 `05-正文`,审计留痕落 `06-体检`——产物与权威源分离,沿用 project-init 骨架;`06-体检/` 下产物按两位序号递增命名(本技能为 01),新增体检类产物顺延,不并列另起。
69
+
70
+ **回跳**:检出 ≥2 处 head-hopping → 回 `scene-craft` 补「外部可见行为」;POV 选择致悬念失效 → 回 `style-weaver` 换视角方案。
71
+
72
+ ## 校验清单
73
+
74
+ - [ ] 每个场景只进入一个人的内心(无 head-hopping)?
75
+ - [ ] POV 只在场景/章节边界切换,且切换有标记?
76
+ - [ ] POV 选的是「得失最剧烈 / 知道得最少 / 变化最关键」的人?
77
+ - [ ] 读者知道的不超过 POV 人物知道的(信息遮断成立)?
78
+ - [ ] 多 POV 时主 POV 数量收敛(≤3-4)?
79
+ - [ ] 换成全知视角是有意的风格选择,而非为省事?
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: project-init
3
+ description: 小说工程目录初始化:按七阶段流水线生成编号目录骨架 + 带字段模板(含设定圣经四卷),由内部 scripts/init-novel-project.mjs 执行
4
+ ---
5
+
6
+ # project-init:小说工程目录初始化
7
+
8
+ ## 用途
9
+
10
+ 开一本新书时,**先把工程目录搭起来再动笔**。目录不是收纳习惯,是给 AI 用的**外脑**:编号目录对应角色包七阶段流水线,模型按阶段定位文件,不靠对话记忆;设定权威源集中在 `03-组织/设定圣经/`,写完 50 章前文还对得上。
11
+
12
+ ## 目录规范
13
+
14
+ ```
15
+ <书名>/
16
+ ├── README.md # 门面:logline + 三层定位 + 七阶段进度
17
+ ├── 00-需求/ # 阶段1 need-finder + hotspot-mapping
18
+ │ ├── 热点与情绪内核.md
19
+ │ └── 读者画像.md
20
+ ├── 01-内核/ # 阶段2 core-extractor + 阶段3 闸门
21
+ │ ├── 人性内核卡.md
22
+ │ └── 三层一致性检查.md
23
+ ├── 02-概念/ # 阶段4 logline-craft + idea-lever
24
+ │ ├── logline.md
25
+ │ └── 创意杠杆候选.md
26
+ ├── 03-组织/ # 阶段5 结构 / 关系 / 人物 / 世界观
27
+ │ ├── 三幕骨架.md
28
+ │ ├── 人物关系网.md
29
+ │ ├── 世界观.md
30
+ │ ├── 人物卡/
31
+ │ └── 设定圣经/ # ← story-bible 四卷(一致性权威源)
32
+ │ ├── 卷1-人物档案.md
33
+ │ ├── 卷2-世界观设定.md
34
+ │ ├── 卷3-时间线.md
35
+ │ └── 卷4-伏笔台账.md
36
+ ├── 04-大纲/ # 阶段6 outline-expand
37
+ ├── 05-正文/ # 阶段6 成文产物
38
+ ├── 06-体检/ # 阶段7 craft-review / polish-method
39
+ └── 07-归档/ # 废稿 / 旧版本
40
+ ```
41
+
42
+ **规范真源**:`scripts/init-novel-project.mjs` 内的 `STRUCTURE` 常量(唯一可执行定义);本文件为其说明。改结构时两处一起改。
43
+
44
+ ## 设计稿 vs 权威源(防双份失配)
45
+
46
+ `03-组织/` 下有两套看似重叠的内容,分工如下——**正文一致性只以设定圣经为准,不以设计稿为准**:
47
+
48
+ | 位置 | 来源技能 | 性质 | 用途 |
49
+ | --- | --- | --- | --- |
50
+ | `世界观.md` | `world-builder` | 设计期工作稿 | 搭世界观(四维 / 规则 / 冲突),定稿后并入 卷2 |
51
+ | `人物卡/` | `character-sheet` | 设计期工作稿 | 深挖人物(目标 / 需求 / 缺陷 / 弧光),定稿后并入 卷1 |
52
+ | `设定圣经/卷1-人物档案.md` | `story-bible` | **运行期权威** | 人物当前状态、关系、逐章状态变化 |
53
+ | `设定圣经/卷2-世界观设定.md` | `story-bible` | **运行期权威** | 世界观规则 + 修订记录 |
54
+
55
+ **纪律**:写正文前读的是设定圣经,不是设计稿;新增 / 修改设定**先入册圣经再落笔**。设计稿可以粗,圣经必须准。
56
+
57
+ ## 五条设计原则
58
+
59
+ | 原则 | 理由 |
60
+ | --- | --- |
61
+ | **目录 = 流水线** | 编号对应角色包七阶段,AI 按阶段找文件,不靠记忆(呼应 story-bible「不靠模型记忆」) |
62
+ | **承接 story-bible 四卷** | 设定圣经已定义 人物档案/世界观/时间线/伏笔台账 且是「矛盾以圣经为准」的权威源 → 目录承接它,**不另起一套** |
63
+ | **中文路径一律无空格** | Windows + git 处理含空格中文路径会乱码(脚本强制校验并报错) |
64
+ | **正文与设定分离** | `05-正文` 是产物、`03-组织/设定圣经` 是权威 —— 对应「正文与圣经冲突时,正文是错的」 |
65
+ | **最小骨架** | 只建必要目录 + 带字段模板,不造空壳噪音;短篇用 `--minimal` |
66
+
67
+ ## 用法
68
+
69
+ 脚本位于本技能目录内(文件夹形态技能的 L3 scripts 归属)。
70
+
71
+ **AI 侧(推荐)**——内核内置 `run_skill_script` 工具可直接执行(脚本源码不进上下文,仅返回结果):
72
+
73
+ | 参数 | 值 |
74
+ | --- | --- |
75
+ | `skill_name` | `project-init` |
76
+ | `script_path` | `init-novel-project.mjs`(相对 `scripts/` 目录) |
77
+ | `args` | `["长夜将尽", "--dir", "./novels"]`(可选) |
78
+
79
+ **人工侧**——终端直接跑:
80
+
81
+ ```
82
+ node <角色包>/skills/project-init/scripts/init-novel-project.mjs <书名> [--dir <父目录>] [--minimal] [--force]
83
+ ```
84
+
85
+ | 参数 | 说明 |
86
+ | --- | --- |
87
+ | `<书名>` | 必填。项目目录名,**不得含空格**(含空格会被拒绝并给出替换建议) |
88
+ | `--dir` | 父目录,默认当前工作目录 |
89
+ | `--minimal` | 精简子集(短篇/中篇):README + 人物卡 + 设定圣经四卷 + 大纲 + 正文 |
90
+ | `--force` | 目标目录非空时仍继续(已存在文件跳过,不覆盖) |
91
+
92
+ 示例:
93
+
94
+ ```
95
+ node init-novel-project.mjs 长夜将尽 --dir ./novels
96
+ node init-novel-project.mjs 春雨 --minimal
97
+ ```
98
+
99
+ ## 开工纪律
100
+
101
+ 1. **先建目录再动笔**——空口写作,前文的设定/伏笔没有落点,长篇必崩;
102
+ 2. **每个模板都带字段**——照字段填,不空转;字段来自对应技能(如设定圣经四卷字段 = `story-bible`);
103
+ 3. **新增设定先入册再写**——正文写到新设定,先补进对应卷再落笔;
104
+ 4. **每 5 章复盘**——时间线 / 伏笔台账对一遍,防漂移。
105
+
106
+ ## 校验清单
107
+
108
+ - [ ] 目录已按七阶段生成(编号 00–07)?
109
+ - [ ] `03-组织/设定圣经/` 四卷齐全?
110
+ - [ ] README 的三层定位与七阶段进度已填?
111
+ - [ ] 路径无空格(未触发脚本报错)?
112
+ - [ ] 动笔前读过设定圣经(不靠对话记忆)?