@zooique/memora 3.0.1 → 4.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 (154) hide show
  1. package/CHANGELOG.md +720 -14
  2. package/README.en.md +4 -4
  3. package/README.md +303 -303
  4. package/config.example.json +1 -8
  5. package/dist/agent/agent.d.ts +48 -4
  6. package/dist/agent/agent.d.ts.map +1 -1
  7. package/dist/agent/agent.js +130 -12
  8. package/dist/agent/agent.js.map +1 -1
  9. package/dist/agent/assembler.d.ts +19 -5
  10. package/dist/agent/assembler.d.ts.map +1 -1
  11. package/dist/agent/assembler.js +76 -13
  12. package/dist/agent/assembler.js.map +1 -1
  13. package/dist/agent/backgroundTasks.d.ts +187 -0
  14. package/dist/agent/backgroundTasks.d.ts.map +1 -0
  15. package/dist/agent/backgroundTasks.js +307 -0
  16. package/dist/agent/backgroundTasks.js.map +1 -0
  17. package/dist/agent/builtinToolHandlers.d.ts +2 -1
  18. package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
  19. package/dist/agent/builtinToolHandlers.js +8 -4
  20. package/dist/agent/builtinToolHandlers.js.map +1 -1
  21. package/dist/agent/builtinTools.d.ts +15 -1
  22. package/dist/agent/builtinTools.d.ts.map +1 -1
  23. package/dist/agent/builtinTools.js +107 -27
  24. package/dist/agent/builtinTools.js.map +1 -1
  25. package/dist/agent/constants.d.ts +31 -0
  26. package/dist/agent/constants.d.ts.map +1 -1
  27. package/dist/agent/constants.js +31 -0
  28. package/dist/agent/constants.js.map +1 -1
  29. package/dist/agent/guardRail.d.ts +11 -0
  30. package/dist/agent/guardRail.d.ts.map +1 -1
  31. package/dist/agent/guardRail.js +36 -1
  32. package/dist/agent/guardRail.js.map +1 -1
  33. package/dist/agent/loop.d.ts +274 -22
  34. package/dist/agent/loop.d.ts.map +1 -1
  35. package/dist/agent/loop.js +587 -87
  36. package/dist/agent/loop.js.map +1 -1
  37. package/dist/agent/managers/archiveCoordinator.d.ts +5 -2
  38. package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
  39. package/dist/agent/managers/archiveCoordinator.js +17 -2
  40. package/dist/agent/managers/archiveCoordinator.js.map +1 -1
  41. package/dist/agent/managers/loopMetrics.d.ts +14 -0
  42. package/dist/agent/managers/loopMetrics.d.ts.map +1 -1
  43. package/dist/agent/managers/loopMetrics.js +15 -0
  44. package/dist/agent/managers/loopMetrics.js.map +1 -1
  45. package/dist/agent/managers/memoryInspector.d.ts +1 -8
  46. package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
  47. package/dist/agent/managers/memoryInspector.js +6 -30
  48. package/dist/agent/managers/memoryInspector.js.map +1 -1
  49. package/dist/agent/managers/roundSummaryGenerator.d.ts +28 -0
  50. package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -1
  51. package/dist/agent/managers/roundSummaryGenerator.js +67 -2
  52. package/dist/agent/managers/roundSummaryGenerator.js.map +1 -1
  53. package/dist/agent/managers/sessionArchiver.d.ts +21 -3
  54. package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
  55. package/dist/agent/managers/sessionArchiver.js +20 -3
  56. package/dist/agent/managers/sessionArchiver.js.map +1 -1
  57. package/dist/agent/managers/sessionManager.d.ts.map +1 -1
  58. package/dist/agent/managers/sessionManager.js +17 -0
  59. package/dist/agent/managers/sessionManager.js.map +1 -1
  60. package/dist/agent/managers/toolCallHelpers.d.ts +109 -28
  61. package/dist/agent/managers/toolCallHelpers.d.ts.map +1 -1
  62. package/dist/agent/managers/toolCallHelpers.js +93 -37
  63. package/dist/agent/managers/toolCallHelpers.js.map +1 -1
  64. package/dist/agent/messageHistory.d.ts.map +1 -1
  65. package/dist/agent/messageHistory.js +9 -5
  66. package/dist/agent/messageHistory.js.map +1 -1
  67. package/dist/agent/seed/orchestrator.d.ts +12 -1
  68. package/dist/agent/seed/orchestrator.d.ts.map +1 -1
  69. package/dist/agent/seed/orchestrator.js +12 -1
  70. package/dist/agent/seed/orchestrator.js.map +1 -1
  71. package/dist/agent/textSanitize.d.ts +36 -0
  72. package/dist/agent/textSanitize.d.ts.map +1 -0
  73. package/dist/agent/textSanitize.js +55 -0
  74. package/dist/agent/textSanitize.js.map +1 -0
  75. package/dist/agent/toolExecutor.d.ts +48 -22
  76. package/dist/agent/toolExecutor.d.ts.map +1 -1
  77. package/dist/agent/toolExecutor.js +372 -71
  78. package/dist/agent/toolExecutor.js.map +1 -1
  79. package/dist/agent/toolLedger.d.ts +93 -41
  80. package/dist/agent/toolLedger.d.ts.map +1 -1
  81. package/dist/agent/toolLedger.js +114 -42
  82. package/dist/agent/toolLedger.js.map +1 -1
  83. package/dist/agent/toolResultOffload.d.ts +8 -0
  84. package/dist/agent/toolResultOffload.d.ts.map +1 -1
  85. package/dist/agent/toolResultOffload.js +10 -3
  86. package/dist/agent/toolResultOffload.js.map +1 -1
  87. package/dist/agent/toolRunner.d.ts +14 -7
  88. package/dist/agent/toolRunner.d.ts.map +1 -1
  89. package/dist/agent/toolRunner.js +71 -29
  90. package/dist/agent/toolRunner.js.map +1 -1
  91. package/dist/agent/tracer.d.ts +13 -1
  92. package/dist/agent/tracer.d.ts.map +1 -1
  93. package/dist/agent/types.d.ts +66 -5
  94. package/dist/agent/types.d.ts.map +1 -1
  95. package/dist/code-exec/types.d.ts +9 -0
  96. package/dist/code-exec/types.d.ts.map +1 -1
  97. package/dist/index.d.ts +21 -23
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +36 -28
  100. package/dist/index.js.map +1 -1
  101. package/dist/memory/roundStore.d.ts +67 -81
  102. package/dist/memory/roundStore.d.ts.map +1 -1
  103. package/dist/memory/roundStore.js +4 -15
  104. package/dist/memory/roundStore.js.map +1 -1
  105. package/dist/memory/types.d.ts +7 -0
  106. package/dist/memory/types.d.ts.map +1 -1
  107. package/dist/memory/types.js +4 -0
  108. package/dist/memory/types.js.map +1 -1
  109. package/dist/role-pack/rolePackManager.d.ts +42 -10
  110. package/dist/role-pack/rolePackManager.d.ts.map +1 -1
  111. package/dist/role-pack/rolePackManager.js +65 -12
  112. package/dist/role-pack/rolePackManager.js.map +1 -1
  113. package/dist/role-pack/strategyKeys.d.ts +36 -0
  114. package/dist/role-pack/strategyKeys.d.ts.map +1 -1
  115. package/dist/role-pack/strategyKeys.js +45 -0
  116. package/dist/role-pack/strategyKeys.js.map +1 -1
  117. package/dist/security/confirmEntries.d.ts +44 -0
  118. package/dist/security/confirmEntries.d.ts.map +1 -0
  119. package/dist/security/confirmEntries.js +59 -0
  120. package/dist/security/confirmEntries.js.map +1 -0
  121. package/dist/security/pathGuard.d.ts +41 -5
  122. package/dist/security/pathGuard.d.ts.map +1 -1
  123. package/dist/security/pathGuard.js +125 -4
  124. package/dist/security/pathGuard.js.map +1 -1
  125. package/dist/skill/skillScriptRunner.d.ts +147 -15
  126. package/dist/skill/skillScriptRunner.d.ts.map +1 -1
  127. package/dist/skill/skillScriptRunner.js +479 -68
  128. package/dist/skill/skillScriptRunner.js.map +1 -1
  129. package/dist/utils/configResourceManager.d.ts +6 -2
  130. package/dist/utils/configResourceManager.d.ts.map +1 -1
  131. package/dist/utils/configResourceManager.js +8 -2
  132. package/dist/utils/configResourceManager.js.map +1 -1
  133. package/dist/utils/errors.d.ts +9 -0
  134. package/dist/utils/errors.d.ts.map +1 -1
  135. package/dist/utils/errors.js +9 -0
  136. package/dist/utils/errors.js.map +1 -1
  137. package/dist/utils/eventEmitter.d.ts +57 -2
  138. package/dist/utils/eventEmitter.d.ts.map +1 -1
  139. package/dist/utils/eventEmitter.js +23 -0
  140. package/dist/utils/eventEmitter.js.map +1 -1
  141. package/dist/utils/time.d.ts +5 -2
  142. package/dist/utils/time.d.ts.map +1 -1
  143. package/dist/utils/time.js +5 -2
  144. package/dist/utils/time.js.map +1 -1
  145. package/docs/memora-api-reference.md +121 -20
  146. package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +6 -5
  147. package/package.json +1 -1
  148. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -46
  149. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +16 -15
  150. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -46
  151. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -29
  152. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +48 -46
  153. 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 -441
  154. package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +62 -60
@@ -1 +1 @@
1
- {"version":3,"file":"strategyKeys.js","sourceRoot":"","sources":["../../src/role-pack/strategyKeys.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAeH,+DAA+D;AAC/D,kDAAkD;AAClD,+CAA+C;AAC/C,EAAE;AACF,mBAAmB;AACnB,sFAAsF;AACtF,yEAAyE;AACzE,qEAAqE;AACrE,+DAA+D;AAE/D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,qDAAqD;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC;AACtC,iCAAiC;AACjC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAC3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,OAAO,CAAC;AACzC,sEAAsE;AACtE,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,qDAAqD;AACrD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACH,SAAS,QAAQ,CAAC,GAAW,EAAE,GAAW;IACxC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG;QACtF,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE;KACpB,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,wBAAwB,CACjG,CAAC;AACJ,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,CAAU,CAAC;AAE1F,iDAAiD;AACjD,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;AAEnE,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjE,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,MAAM,GAAG,CAAC;QAChB,6CAA6C;QAC7C,KAAK,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,kEAAkE;AAClE,sDAAsD;AACtD,uDAAuD;AACvD,+DAA+D;AAE/D,gEAAgE;AAChE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,CAAU,CAAC;AACtD,wEAAwE;AACxE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AACjE,qFAAqF;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAU,CAAC;AAC5D,oFAAoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAU,CAAC;AACjE,kEAAkE;AAClE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;AACpD,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAU,CAAC;AACzD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgE;IAC7F,OAAO,EAAE;QACP,iDAAiD;QACjD,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE;SACjD;KACF;IACD,GAAG,EAAE;QACH,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE;QAC9C,sDAAsD;QACtD,WAAW,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC/E,8DAA8D;QAC9D,mEAAmE;QACnE,wEAAwE;QACxE,wEAAwE;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBACvB,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,gBAAgB,CAAC,CAAC;YAC5D,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE;SACzC;QACD,sCAAsC;QACtC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE,mBAAmB,CAAC;QAC/C,eAAe,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE;QAC5D,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE;QACnE,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE;KAC5D;IACD,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE;QAChD,0EAA0E;QAC1E,UAAU,EAAE,QAAQ,CAAC,CAAC,EAAE,sBAAsB,CAAC;QAC/C,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE;KACvD;IACD,MAAM,EAAE;QACN,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QACxC,4BAA4B;QAC5B,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,aAAa,CAAC;QACpC,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE;QACxD,+EAA+E;QAC/E,gEAAgE;QAChE,qEAAqE;QACrE,YAAY,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBACvB,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,iBAAiB,IAAI,KAAK,IAAI,iBAAiB,CAAC,CAAC;YAC7E,KAAK,EAAE,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,EAAE;SAC1D;QACD,gGAAgG;QAChG,qDAAqD;QACrD,UAAU,EAAE;YACV,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;gBACvB,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,eAAe,IAAI,KAAK,IAAI,eAAe,CAAC,CAAC;YACzE,KAAK,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,eAAe,EAAE;SACtD;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"strategyKeys.js","sourceRoot":"","sources":["../../src/role-pack/strategyKeys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 执行面 → 确认入口 登记表(CMD-1-BYPASS,2026-10-03)
3
+ *
4
+ * 背景(实锤):`classifyCommand`(deny / always-ask)的唯一调用点是 `SecurityGuard.confirmCommandRun`,
5
+ * 而 `confirmCommandRun` 的唯一调用点又是 `toolExecutor` 的 `run_command` 分支 ⇒ 命令内容裁决只锁
6
+ * **一个**执行面。其余执行面(run_code / run_project_script / run_skill_script)走 `confirmScriptRun`,
7
+ * **只判权限档位、不看执行内容**。
8
+ *
9
+ * 登记表 = 把「每个执行面走哪个确认入口」从「散在四个 case 分支里的隐式默认值」变成**显式单一真源**:
10
+ * 新增执行面时**必须**在此登记,否则守卫测试(confirmEntry.test.ts 的穷举性断言)即红。
11
+ *
12
+ * 真源关系(禁再独立枚举工具名):「哪些工具是执行面」由 `builtinTools` 的 `diskWrite === 'opaque'`
13
+ * 派生(`OPAQUE_WRITE_TOOL_NAMES`)⇒ 本表**只登记入口**,不复制第二份工具清单。
14
+ *
15
+ * - `command`:走 `confirmCommandRun`(内容裁决 DENY/always-ask + 确认档位)
16
+ * - `script` :走 `confirmScriptRun`(仅权限档位,不看执行内容)
17
+ * - `none` :**内核不经任何确认闸**——非执行面(`register_work` 只往 `memoraDir` 写作品索引 JSON,
18
+ * 既不执行也不碰项目文件,实锤:kernel 侧 `registerWork` 回调链零 `confirm*` 调用)。
19
+ * 登记它是为了让「opaque 面一个都不漏」可机器核对;它**不是**确认入口,禁被路由进确认闸。
20
+ */
21
+ /** 确认入口档位(`none` = 非确认入口,仅作「已核对」登记) */
22
+ export type ConfirmEntry = 'command' | 'script' | 'none';
23
+ /** 真正构成确认闸的档位(`none` 排除在外)——路由函数入参类型,编译期挡住非确认面被路由进来 */
24
+ export type ConfirmingEntry = Exclude<ConfirmEntry, 'none'>;
25
+ /** 执行面 → 确认入口(SSOT;键集必须与 opaque 派生集双向相等,由守卫测试钉死) */
26
+ export declare const CONFIRM_ENTRY_BY_TOOL: Readonly<Record<string, ConfirmEntry>>;
27
+ /**
28
+ * 取某工具的确认入口;未登记即抛错(fail-closed:漏登记比登记错更危险,因为它不显眼)。
29
+ *
30
+ * @param tool 工具名
31
+ * @returns 该工具的确认入口
32
+ */
33
+ export declare function requireConfirmEntry(tool: string): ConfirmEntry;
34
+ /**
35
+ * 取某工具的**确认**入口;登记为 `none` 的非执行面在此抛错(fail-closed)。
36
+ *
37
+ * 抛错发生在**取登记处**而非路由处 ⇒ 路由函数保持穷尽分支(无僵尸分支),
38
+ * 且「非执行面被误接进确认闸」在编译期(入参类型)+ 运行期(此处)双重拦死。
39
+ *
40
+ * @param tool 工具名
41
+ * @returns 该工具的确认入口(不含 `none`)
42
+ */
43
+ export declare function requireConfirmingEntry(tool: string): ConfirmingEntry;
44
+ //# sourceMappingURL=confirmEntries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmEntries.d.ts","sourceRoot":"","sources":["../../src/security/confirmEntries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,uCAAuC;AACvC,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE5D,oDAAoD;AACpD,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAOxE,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAQ9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAQpE"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * 执行面 → 确认入口 登记表(CMD-1-BYPASS,2026-10-03)
3
+ *
4
+ * 背景(实锤):`classifyCommand`(deny / always-ask)的唯一调用点是 `SecurityGuard.confirmCommandRun`,
5
+ * 而 `confirmCommandRun` 的唯一调用点又是 `toolExecutor` 的 `run_command` 分支 ⇒ 命令内容裁决只锁
6
+ * **一个**执行面。其余执行面(run_code / run_project_script / run_skill_script)走 `confirmScriptRun`,
7
+ * **只判权限档位、不看执行内容**。
8
+ *
9
+ * 登记表 = 把「每个执行面走哪个确认入口」从「散在四个 case 分支里的隐式默认值」变成**显式单一真源**:
10
+ * 新增执行面时**必须**在此登记,否则守卫测试(confirmEntry.test.ts 的穷举性断言)即红。
11
+ *
12
+ * 真源关系(禁再独立枚举工具名):「哪些工具是执行面」由 `builtinTools` 的 `diskWrite === 'opaque'`
13
+ * 派生(`OPAQUE_WRITE_TOOL_NAMES`)⇒ 本表**只登记入口**,不复制第二份工具清单。
14
+ *
15
+ * - `command`:走 `confirmCommandRun`(内容裁决 DENY/always-ask + 确认档位)
16
+ * - `script` :走 `confirmScriptRun`(仅权限档位,不看执行内容)
17
+ * - `none` :**内核不经任何确认闸**——非执行面(`register_work` 只往 `memoraDir` 写作品索引 JSON,
18
+ * 既不执行也不碰项目文件,实锤:kernel 侧 `registerWork` 回调链零 `confirm*` 调用)。
19
+ * 登记它是为了让「opaque 面一个都不漏」可机器核对;它**不是**确认入口,禁被路由进确认闸。
20
+ */
21
+ /** 执行面 → 确认入口(SSOT;键集必须与 opaque 派生集双向相等,由守卫测试钉死) */
22
+ export const CONFIRM_ENTRY_BY_TOOL = {
23
+ run_command: 'command',
24
+ run_code: 'script',
25
+ run_project_script: 'script',
26
+ run_skill_script: 'script',
27
+ /** 作品投影登记:只写 memoraDir 内索引 JSON,内核零确认(非执行面) */
28
+ register_work: 'none',
29
+ };
30
+ /**
31
+ * 取某工具的确认入口;未登记即抛错(fail-closed:漏登记比登记错更危险,因为它不显眼)。
32
+ *
33
+ * @param tool 工具名
34
+ * @returns 该工具的确认入口
35
+ */
36
+ export function requireConfirmEntry(tool) {
37
+ const entry = CONFIRM_ENTRY_BY_TOOL[tool];
38
+ if (!entry) {
39
+ throw new Error(`工具「${tool}」未登记确认入口(CONFIRM_ENTRY_BY_TOOL)——新增执行面须在此登记,见 confirmEntries.ts 头注释`);
40
+ }
41
+ return entry;
42
+ }
43
+ /**
44
+ * 取某工具的**确认**入口;登记为 `none` 的非执行面在此抛错(fail-closed)。
45
+ *
46
+ * 抛错发生在**取登记处**而非路由处 ⇒ 路由函数保持穷尽分支(无僵尸分支),
47
+ * 且「非执行面被误接进确认闸」在编译期(入参类型)+ 运行期(此处)双重拦死。
48
+ *
49
+ * @param tool 工具名
50
+ * @returns 该工具的确认入口(不含 `none`)
51
+ */
52
+ export function requireConfirmingEntry(tool) {
53
+ const entry = requireConfirmEntry(tool);
54
+ if (entry === 'none') {
55
+ throw new Error(`工具「${tool}」登记为 none(非确认入口),不得经内核确认闸路由——如需确认,请先改登记口径`);
56
+ }
57
+ return entry;
58
+ }
59
+ //# sourceMappingURL=confirmEntries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmEntries.js","sourceRoot":"","sources":["../../src/security/confirmEntries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAA2C;IAC3E,WAAW,EAAE,SAAS;IACtB,QAAQ,EAAE,QAAQ;IAClB,kBAAkB,EAAE,QAAQ;IAC5B,gBAAgB,EAAE,QAAQ;IAC1B,+CAA+C;IAC/C,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,MAAM,IAAI,qEAAqE,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,MAAM,IAAI,2CAA2C,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +1,18 @@
1
+ /** 命令裁决三档 */
2
+ export type CommandVerdict =
3
+ /** 恒拦:无正当 agent 场景的破坏性命令 */
4
+ 'deny'
5
+ /** 恒弹确认:正当但不可逆(git 写操作、发布类),不可被豁免 */
6
+ | 'always-ask'
7
+ /** 普通:走常规确认判据(guest / confirmScripts) */
8
+ | 'normal';
9
+ /**
10
+ * 命令裁决(纯函数,命令安全边界的**唯一判据**;§13.2)
11
+ *
12
+ * 顺序不可颠倒:deny 优先于 always-ask(一条命令同时命中时以最严为准)。
13
+ * NFKC 规范化与路径黑名单同款,防全角字符绕过正则。
14
+ */
15
+ export declare function classifyCommand(command: string): CommandVerdict;
1
16
  export type Permission = 'owner' | 'guest';
2
17
  export type WriteDecision = 'confirmed' | 'declined' | 'auto-approved' | 'auto-denied';
3
18
  export interface AuditEvent {
@@ -19,8 +34,12 @@ export interface AuditEvent {
19
34
  /** 审计日志订阅器:默认经内核 logger 单例输出,可被业务层重定向到独立审计文件 */
20
35
  export type AuditListener = (event: AuditEvent) => void;
21
36
  /**
22
- * 写入确认请求:宿主在非交互式环境(WebUI/桌宠/无终端)注入自定义确认 UI,
37
+ * 确认请求:宿主在非交互式环境(WebUI/桌宠/无终端)注入自定义确认 UI,
23
38
  * 走此回调而非直接读 stdin。返回 true 确认 / false 拒绝;抛错视为拒绝(fail-closed)。
39
+ *
40
+ * ⚠️ 类型名 `WriteConfirmation*` 是**历史命名**:该回调承载全部四类确认
41
+ * (写入 / 命令 / 代码 / 脚本执行),非写入类请求同样走它(见 `confirmGate`)。
42
+ * 改名 = 破坏性公共面变更,收益仅为命名纯度 ⇒ 保留旧名 + 此注释说明。
24
43
  */
25
44
  export type WriteConfirmationRequest = (info: WriteConfirmationInfo) => Promise<boolean>;
26
45
  /** 写入确认请求的载荷 */
@@ -39,6 +58,12 @@ export interface WriteConfirmationInfo {
39
58
  beforeContent?: string | null;
40
59
  /** 写入后内容预览(截断到 10KB)——供宿主 UI 展示 diff */
41
60
  afterContent?: string;
61
+ /**
62
+ * 本确认卡是否有 diff 对比域(判据归内核,宿主不猜——2026-10-03 实锤:宿主用
63
+ * truthy 判据猜「diff 域空不空」属措辞折叠型带伤,判据归位内核单点)。
64
+ * true 仅写入场景(confirmGate 的 diff 参数唯一传入点);命令/代码/脚本执行三类恒 false。
65
+ */
66
+ hasDiff: boolean;
42
67
  }
43
68
  /** diff 内容最大长度(10KB),防大文件撑爆 IPC 传输和 UI 渲染。宿主 UI 展示上限从本常量 import 对齐(唯一真源) */
44
69
  export declare const MAX_DIFF_CONTENT_LENGTH = 10240;
@@ -122,16 +147,27 @@ export declare class SecurityGuard {
122
147
  */
123
148
  confirmScriptRun(targetPath: string, tool: string, description?: string): Promise<boolean>;
124
149
  /**
125
- * 确认闸公共核心(SSOT:写入确认与脚本执行确认的唯一执行路径)
150
+ * 命令执行确认(run_command 的执行闸,§13.2)
151
+ *
152
+ * 三档判据,与 `confirmScriptRun` **共用同一个 `confirmGate`**(不新造第二套确认路径):
153
+ * 1. deny 命中 → **恒拒**(不入确认流程,任何档位/权限都拦);
154
+ * 2. ALWAYS_ASK 命中 → **恒弹确认**(即使 owner + confirmScripts=false 也弹;
155
+ * 将来的 allow 白名单对它无效——不可豁免,§13.2 定案);
156
+ * 3. 其余 → 与脚本执行同判据(guest 或 confirmScripts),未注入 handler 时 fail-closed。
157
+ */
158
+ confirmCommandRun(command: string, tool: string, description?: string): Promise<boolean>;
159
+ /**
160
+ * 确认闸公共核心(SSOT:**全部四类**确认——写入 / 命令 / 代码 / 脚本执行——的唯一执行路径)
126
161
  *
127
162
  * needConfirm=false → 自动批准(审计 write-auto);为 true 且未注入 confirmationHandler
128
163
  * → fail-closed 拒绝(审计 write-decline);否则经 confirmViaHandler 走宿主确认 UI。
129
- * diff 仅写入场景有,脚本执行不传(域留空)。
164
+ * diff 仅写入场景有(`requestWriteConfirmation` 唯一传 diff),其余三类不传(域留空),
165
+ * 宿主据此判「本卡无 diff 域」并跳过写入前后对比渲染。
130
166
  */
131
167
  private confirmGate;
132
168
  /**
133
- * 通过宿主注入的 confirmationHandler 执行写入确认(唯一确认执行路径)。
134
- * 抛错视为拒绝(fail-closed 安全优先)。
169
+ * 通过宿主注入的 confirmationHandler 执行确认(**全部四类**确认的唯一执行路径:
170
+ * 写入 / 命令 / 代码 / 脚本执行)。抛错视为拒绝(fail-closed 安全优先)。
135
171
  */
136
172
  private confirmViaHandler;
137
173
  /** 触发审计事件:写日志 + 通知订阅者 */
@@ -1 +1 @@
1
- {"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathGuard.d.ts","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
@@ -76,6 +76,100 @@ const BLOCKED_PATTERNS = [
76
76
  ];
77
77
  /** 运行时动态白名单(setAllowedPaths)最大条数,与 config/loader.ts 同值,防白名单膨胀 */
78
78
  const MAX_EXTRA_ALLOWED_PATHS = 50;
79
+ /**
80
+ * 命令黑名单(**恒拦**,不进确认流程)
81
+ *
82
+ * 收录标准:不存在「agent 正当使用」场景的破坏性命令——拦掉不影响任何合理任务,
83
+ * 漏掉则不可逆(数据/系统级)。可逆或有正当场景的写操作走 ALWAYS_ASK,不在此列。
84
+ *
85
+ * 匹配形态:**全文 test**(不锚定开头)——shell 复合命令(`echo hi && rm -rf /`)
86
+ * 里真正执行的是后半段,锚定开头等于给绕过送路。
87
+ */
88
+ const BLOCKED_COMMAND_PATTERNS = [
89
+ // 递归强删根目录 / 家目录 / 通配符(项目内受限删除由用户自行确认,不在此列)
90
+ /rm\s+(-[a-z]*r[a-z]*f|-[a-z]*f[a-z]*r)\s+(\/|\*|~|~\/)/i,
91
+ /rm\s+-rf\s+(\/|\*|~)/i,
92
+ // PowerShell 递归强删。两个前瞻断言**顺序无关**——写成
93
+ // `-Recurse.*-Force` 会漏掉 `-Force -Recurse`(选项顺序由用户决定,不由我们决定)
94
+ /Remove-Item(?=[^;&|]*-Recurse)(?=[^;&|]*-Force)/i,
95
+ // 磁盘格式化 / 覆写
96
+ /format\s+[a-z]:/i,
97
+ /mkfs(\.[a-z0-9]+)?\b/i,
98
+ /dd\s+if=/i,
99
+ // fork bomb(:(){ :|:& };:)
100
+ /:\(\)\s*\{\s*:\|:&\s*\}\s*;:/,
101
+ ];
102
+ /**
103
+ * 恒询问前缀(ALWAYS_ASK):正当但不可逆
104
+ *
105
+ * 定案理由(§13.2):deny 会让 agent 从此无法 `git commit`(高频正当操作);
106
+ * 本仓血训(Windows git 写操作污染索引)的正确对策是**每次都问且不可豁免**,
107
+ * 不是永远禁跑。故这类进 ALWAYS_ASK 而非 deny。
108
+ *
109
+ * ⚠️ 清单**只增不减**(回归测试锁定内容)。
110
+ */
111
+ const ALWAYS_ASK_COMMAND_PREFIXES = [
112
+ 'git commit',
113
+ 'git push',
114
+ 'git reset',
115
+ 'git rebase',
116
+ 'git merge',
117
+ 'git checkout --',
118
+ 'npm publish',
119
+ ];
120
+ /**
121
+ * 命令分隔符边界(shell 复合命令的切分点)
122
+ *
123
+ * 用途:把「命令是否**以** X 开头」升级为「命令**是否包含** X」——判据本身没变
124
+ * (这条命令会不会做 git 写操作),变的是**匹配形态**。前缀锚定在复合命令下形同虚设:
125
+ * `echo hi && git push` / `cd /tmp && git reset --hard` 会整条落到 normal 档直接放行。
126
+ *
127
+ * ⚠️ 不做完整 shell 词法解析(引号 / 转义 / 变量展开):那会把裁决链变成半个 shell 解释器,
128
+ * 复杂度和出错面都不可控。此处只做**保守匹配**——宁可多弹一次确认(偏保守方向),
129
+ * 也不可漏判。已知代价:`echo "git push"` 会被多问一次(误报方向安全)。
130
+ */
131
+ const COMMAND_SEGMENT_BOUNDARY = String.raw `(?:^|[\n;&|]|\(|\)|\{|\})`;
132
+ /**
133
+ * 恒询问清单 → 判据用模式(**构造级派生**,唯一匹配点)
134
+ *
135
+ * 由 `ALWAYS_ASK_COMMAND_PREFIXES` 派生而非另写一张正则表:两份清单必然漂移
136
+ * (改一处忘另一处 = 安全边界出现静默缺口,且没有任何测试会红)。
137
+ * 构造期一次性生成,运行时零成本。清单**只增不减**由回归测试锁定。
138
+ *
139
+ * **两段式条目允许插入全局选项**(`git -C /other/repo push`):git 的 `-C <path>` /
140
+ * `-c k=v` / `--git-dir=<p>` 插在子命令前是常规用法,不留这个口子等于本仓血训
141
+ * (Windows git 写操作)照旧可绕。三段式及以上(`git checkout --`)原样匹配——
142
+ * 其尾部 token(`--`)本身是语义标记,插 gap 会让模式失真。
143
+ */
144
+ const ALWAYS_ASK_COMMAND_PATTERNS = ALWAYS_ASK_COMMAND_PREFIXES.map((prefix) => {
145
+ const escape = (token) => token.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
146
+ const [program, ...rest] = prefix.split(' ');
147
+ const allowGlobalOptions = rest.length === 1;
148
+ // 全局选项段:`-{1,2}<flag>` 后可跟一个独立参数(`-C <path>`)或 `=` 值(`--git-dir=<p>`)
149
+ const gap = allowGlobalOptions ? String.raw `(?:\s+-{1,2}\S+(?:=\S+|\s+\S+)?)*` : '';
150
+ const body = allowGlobalOptions
151
+ ? String.raw `\s+${escape(rest[0])}`
152
+ : String.raw `\s+${rest.map(escape).join(String.raw `\s+`)}`;
153
+ return new RegExp(String.raw `${COMMAND_SEGMENT_BOUNDARY}\s*${escape(program)}${gap}${body}(?![A-Za-z0-9_-])`, 'i');
154
+ });
155
+ /**
156
+ * 命令裁决(纯函数,命令安全边界的**唯一判据**;§13.2)
157
+ *
158
+ * 顺序不可颠倒:deny 优先于 always-ask(一条命令同时命中时以最严为准)。
159
+ * NFKC 规范化与路径黑名单同款,防全角字符绕过正则。
160
+ */
161
+ export function classifyCommand(command) {
162
+ const normalized = command.normalize('NFKC').trim();
163
+ for (const pattern of BLOCKED_COMMAND_PATTERNS) {
164
+ if (pattern.test(normalized))
165
+ return 'deny';
166
+ }
167
+ for (const pattern of ALWAYS_ASK_COMMAND_PATTERNS) {
168
+ if (pattern.test(normalized))
169
+ return 'always-ask';
170
+ }
171
+ return 'normal';
172
+ }
79
173
  /** diff 内容最大长度(10KB),防大文件撑爆 IPC 传输和 UI 渲染。宿主 UI 展示上限从本常量 import 对齐(唯一真源) */
80
174
  export const MAX_DIFF_CONTENT_LENGTH = 10240;
81
175
  function truncateForDiff(content) {
@@ -269,11 +363,36 @@ export class SecurityGuard {
269
363
  this.permission === 'guest' || this.confirmScripts);
270
364
  }
271
365
  /**
272
- * 确认闸公共核心(SSOT:写入确认与脚本执行确认的唯一执行路径)
366
+ * 命令执行确认(run_command 的执行闸,§13.2)
367
+ *
368
+ * 三档判据,与 `confirmScriptRun` **共用同一个 `confirmGate`**(不新造第二套确认路径):
369
+ * 1. deny 命中 → **恒拒**(不入确认流程,任何档位/权限都拦);
370
+ * 2. ALWAYS_ASK 命中 → **恒弹确认**(即使 owner + confirmScripts=false 也弹;
371
+ * 将来的 allow 白名单对它无效——不可豁免,§13.2 定案);
372
+ * 3. 其余 → 与脚本执行同判据(guest 或 confirmScripts),未注入 handler 时 fail-closed。
373
+ */
374
+ async confirmCommandRun(command, tool, description) {
375
+ const verdict = classifyCommand(command);
376
+ if (verdict === 'deny') {
377
+ this.emitAudit({
378
+ type: 'write-decline',
379
+ path: command,
380
+ tool,
381
+ decision: 'auto-denied',
382
+ reason: '命令命中黑名单(恒拦,不进确认流程)',
383
+ timestamp: nowIso(),
384
+ });
385
+ return false;
386
+ }
387
+ return this.confirmGate(command, tool, description, verdict === 'always-ask' || this.permission === 'guest' || this.confirmScripts);
388
+ }
389
+ /**
390
+ * 确认闸公共核心(SSOT:**全部四类**确认——写入 / 命令 / 代码 / 脚本执行——的唯一执行路径)
273
391
  *
274
392
  * needConfirm=false → 自动批准(审计 write-auto);为 true 且未注入 confirmationHandler
275
393
  * → fail-closed 拒绝(审计 write-decline);否则经 confirmViaHandler 走宿主确认 UI。
276
- * diff 仅写入场景有,脚本执行不传(域留空)。
394
+ * diff 仅写入场景有(`requestWriteConfirmation` 唯一传 diff),其余三类不传(域留空),
395
+ * 宿主据此判「本卡无 diff 域」并跳过写入前后对比渲染。
277
396
  */
278
397
  async confirmGate(targetPath, tool, description, needConfirm, diff) {
279
398
  // 无需确认:直接放行并记录审计
@@ -296,6 +415,8 @@ export class SecurityGuard {
296
415
  needsConfirm: needConfirm,
297
416
  beforeContent: diff?.beforeContent,
298
417
  afterContent: diff?.afterContent,
418
+ // diff 域语义判定单点:写入场景传了 diff 参数 → 有域;命令/代码/脚本三类不传 → 无域
419
+ hasDiff: diff !== undefined,
299
420
  };
300
421
  // 未注入 confirmationHandler 时 fail-closed 拒绝
301
422
  if (!this.confirmationHandler) {
@@ -314,8 +435,8 @@ export class SecurityGuard {
314
435
  return this.confirmViaHandler(info, targetPath, tool);
315
436
  }
316
437
  /**
317
- * 通过宿主注入的 confirmationHandler 执行写入确认(唯一确认执行路径)。
318
- * 抛错视为拒绝(fail-closed 安全优先)。
438
+ * 通过宿主注入的 confirmationHandler 执行确认(**全部四类**确认的唯一执行路径:
439
+ * 写入 / 命令 / 代码 / 脚本执行)。抛错视为拒绝(fail-closed 安全优先)。
319
440
  */
320
441
  async confirmViaHandler(info, targetPath, tool) {
321
442
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pathGuard.js","sourceRoot":"","sources":["../../src/security/pathGuard.ts"],"names":[],"mappings":"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"}