@zooique/memora 4.0.0 → 5.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.
- package/CHANGELOG.md +165 -1743
- package/README.en.md +43 -36
- package/README.md +308 -303
- package/dist/agent/agent.d.ts +46 -82
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.js +153 -220
- package/dist/agent/agent.js.map +1 -1
- package/dist/agent/assembler.d.ts +3 -16
- package/dist/agent/assembler.d.ts.map +1 -1
- package/dist/agent/assembler.js +46 -35
- package/dist/agent/assembler.js.map +1 -1
- package/dist/agent/backgroundTasks.d.ts +8 -1
- package/dist/agent/backgroundTasks.d.ts.map +1 -1
- package/dist/agent/backgroundTasks.js +8 -1
- package/dist/agent/backgroundTasks.js.map +1 -1
- package/dist/agent/budget.d.ts +23 -5
- package/dist/agent/budget.d.ts.map +1 -1
- package/dist/agent/budget.js +8 -2
- package/dist/agent/budget.js.map +1 -1
- package/dist/agent/builtinToolHandlers.d.ts +27 -8
- package/dist/agent/builtinToolHandlers.d.ts.map +1 -1
- package/dist/agent/builtinToolHandlers.js +45 -9
- package/dist/agent/builtinToolHandlers.js.map +1 -1
- package/dist/agent/builtinTools.d.ts.map +1 -1
- package/dist/agent/builtinTools.js +4 -3
- package/dist/agent/builtinTools.js.map +1 -1
- package/dist/agent/constants.d.ts +0 -6
- package/dist/agent/constants.d.ts.map +1 -1
- package/dist/agent/constants.js +7 -8
- package/dist/agent/constants.js.map +1 -1
- package/dist/agent/contextManager.d.ts +8 -0
- package/dist/agent/contextManager.d.ts.map +1 -1
- package/dist/agent/contextManager.js +45 -3
- package/dist/agent/contextManager.js.map +1 -1
- package/dist/agent/contextPreparer.d.ts +1 -1
- package/dist/agent/contextPreparer.d.ts.map +1 -1
- package/dist/agent/contextPreparer.js +15 -10
- package/dist/agent/contextPreparer.js.map +1 -1
- package/dist/agent/guardRail.d.ts +1 -1
- package/dist/agent/guardRail.d.ts.map +1 -1
- package/dist/agent/guardRail.js +1 -1
- package/dist/agent/guardRail.js.map +1 -1
- package/dist/agent/loop.d.ts +46 -13
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +128 -25
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/managers/archiveCoordinator.d.ts +15 -3
- package/dist/agent/managers/archiveCoordinator.d.ts.map +1 -1
- package/dist/agent/managers/archiveCoordinator.js +13 -7
- package/dist/agent/managers/archiveCoordinator.js.map +1 -1
- package/dist/agent/managers/chatLockManager.d.ts +3 -9
- package/dist/agent/managers/chatLockManager.d.ts.map +1 -1
- package/dist/agent/managers/chatLockManager.js +7 -25
- package/dist/agent/managers/chatLockManager.js.map +1 -1
- package/dist/agent/managers/llmCaller.d.ts.map +1 -1
- package/dist/agent/managers/llmCaller.js +27 -1
- package/dist/agent/managers/llmCaller.js.map +1 -1
- package/dist/agent/managers/memoryInspector.d.ts +12 -7
- package/dist/agent/managers/memoryInspector.d.ts.map +1 -1
- package/dist/agent/managers/memoryInspector.js +32 -19
- package/dist/agent/managers/memoryInspector.js.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts +3 -1
- package/dist/agent/managers/roundSummaryGenerator.d.ts.map +1 -1
- package/dist/agent/managers/roundSummaryGenerator.js +14 -4
- package/dist/agent/managers/roundSummaryGenerator.js.map +1 -1
- package/dist/agent/managers/sessionArchiver.d.ts +20 -6
- package/dist/agent/managers/sessionArchiver.d.ts.map +1 -1
- package/dist/agent/managers/sessionArchiver.js +19 -5
- package/dist/agent/managers/sessionArchiver.js.map +1 -1
- package/dist/agent/managers/sessionManager.d.ts +21 -88
- package/dist/agent/managers/sessionManager.d.ts.map +1 -1
- package/dist/agent/managers/sessionManager.js +77 -278
- package/dist/agent/managers/sessionManager.js.map +1 -1
- package/dist/agent/seed/orchestrator.d.ts.map +1 -1
- package/dist/agent/seed/orchestrator.js +3 -3
- package/dist/agent/seed/orchestrator.js.map +1 -1
- package/dist/agent/seed/prepare.d.ts.map +1 -1
- package/dist/agent/seed/prepare.js +9 -4
- package/dist/agent/seed/prepare.js.map +1 -1
- package/dist/agent/seed/types.d.ts +11 -4
- package/dist/agent/seed/types.d.ts.map +1 -1
- package/dist/agent/seed/types.js +2 -2
- package/dist/agent/toolExecutor.d.ts +51 -6
- package/dist/agent/toolExecutor.d.ts.map +1 -1
- package/dist/agent/toolExecutor.js +74 -9
- package/dist/agent/toolExecutor.js.map +1 -1
- package/dist/agent/toolResultCache.js +1 -1
- package/dist/agent/toolRunner.d.ts +4 -2
- package/dist/agent/toolRunner.d.ts.map +1 -1
- package/dist/agent/toolRunner.js +7 -4
- package/dist/agent/toolRunner.js.map +1 -1
- package/dist/agent/types.d.ts +8 -25
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/index.d.ts +9 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -32
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts +4 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +5 -2
- package/dist/logging/logger.js.map +1 -1
- package/dist/memory/gcService.d.ts.map +1 -1
- package/dist/memory/gcService.js +3 -5
- package/dist/memory/gcService.js.map +1 -1
- package/dist/memory/inMemorySessionStore.d.ts +2 -2
- package/dist/memory/inMemorySessionStore.js +2 -2
- package/dist/memory/inMemoryStorage.d.ts +4 -3
- package/dist/memory/inMemoryStorage.d.ts.map +1 -1
- package/dist/memory/inMemoryStorage.js +2 -2
- package/dist/memory/inMemoryStorage.js.map +1 -1
- package/dist/memory/nodeSqliteStorage.d.ts +17 -0
- package/dist/memory/nodeSqliteStorage.d.ts.map +1 -0
- package/dist/memory/nodeSqliteStorage.js +393 -0
- package/dist/memory/nodeSqliteStorage.js.map +1 -0
- package/dist/memory/projectManager.d.ts +10 -20
- package/dist/memory/projectManager.d.ts.map +1 -1
- package/dist/memory/projectManager.js +27 -41
- package/dist/memory/projectManager.js.map +1 -1
- package/dist/memory/roundStore.d.ts +76 -1
- package/dist/memory/roundStore.d.ts.map +1 -1
- package/dist/memory/roundStore.js.map +1 -1
- package/dist/memory/roundSummaryLookup.d.ts +26 -0
- package/dist/memory/roundSummaryLookup.d.ts.map +1 -0
- package/dist/memory/roundSummaryLookup.js +19 -0
- package/dist/memory/roundSummaryLookup.js.map +1 -0
- package/dist/memory/sessionStore.d.ts +19 -2
- package/dist/memory/sessionStore.d.ts.map +1 -1
- package/dist/memory/sessionStore.js.map +1 -1
- package/dist/memory/sourceValidation.d.ts +2 -13
- package/dist/memory/sourceValidation.d.ts.map +1 -1
- package/dist/memory/sourceValidation.js +5 -16
- package/dist/memory/sourceValidation.js.map +1 -1
- package/dist/memory/storageInterface.d.ts +26 -16
- package/dist/memory/storageInterface.d.ts.map +1 -1
- package/dist/memory/supersedeResolve.d.ts +39 -0
- package/dist/memory/supersedeResolve.d.ts.map +1 -0
- package/dist/memory/supersedeResolve.js +16 -0
- package/dist/memory/supersedeResolve.js.map +1 -0
- package/dist/memory/types.d.ts +3 -2
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/memory/types.js +2 -1
- package/dist/memory/types.js.map +1 -1
- package/dist/role-pack/rolePackManager.d.ts +33 -24
- package/dist/role-pack/rolePackManager.d.ts.map +1 -1
- package/dist/role-pack/rolePackManager.js +48 -42
- package/dist/role-pack/rolePackManager.js.map +1 -1
- package/dist/role-pack/strategyKeys.d.ts +8 -0
- package/dist/role-pack/strategyKeys.d.ts.map +1 -1
- package/dist/role-pack/strategyKeys.js +10 -0
- package/dist/role-pack/strategyKeys.js.map +1 -1
- package/dist/role-pack/strategyResolver.d.ts +6 -1
- package/dist/role-pack/strategyResolver.d.ts.map +1 -1
- package/dist/role-pack/strategyResolver.js +20 -2
- package/dist/role-pack/strategyResolver.js.map +1 -1
- package/dist/role-pack/types.d.ts +5 -1
- package/dist/role-pack/types.d.ts.map +1 -1
- package/dist/security/pathGuard.d.ts +1 -1
- package/dist/security/pathGuard.d.ts.map +1 -1
- package/dist/security/pathGuard.js +1 -1
- package/dist/security/pathGuard.js.map +1 -1
- package/dist/utils/backgroundTask.d.ts +56 -34
- package/dist/utils/backgroundTask.d.ts.map +1 -1
- package/dist/utils/backgroundTask.js +130 -99
- package/dist/utils/backgroundTask.js.map +1 -1
- package/dist/utils/errors.d.ts +3 -2
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +3 -2
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/eventEmitter.d.ts +20 -22
- package/dist/utils/eventEmitter.d.ts.map +1 -1
- package/dist/utils/eventEmitter.js +0 -3
- package/dist/utils/eventEmitter.js.map +1 -1
- package/dist/utils/time.d.ts +3 -3
- package/dist/utils/time.d.ts.map +1 -1
- package/dist/utils/time.js +3 -3
- package/dist/utils/time.js.map +1 -1
- package/dist/utils/toError.d.ts +1 -1
- package/dist/utils/toError.js +1 -1
- package/dist/web-fetch/loginWall.d.ts +39 -0
- package/dist/web-fetch/loginWall.d.ts.map +1 -0
- package/dist/web-fetch/loginWall.js +78 -0
- package/dist/web-fetch/loginWall.js.map +1 -0
- package/dist/web-fetch/types.d.ts +8 -0
- package/dist/web-fetch/types.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.d.ts.map +1 -1
- package/dist/web-fetch/webFetchProvider.js +3 -1
- package/dist/web-fetch/webFetchProvider.js.map +1 -1
- package/dist/web-search/fetchWebSearchProvider.js +28 -23
- package/dist/web-search/fetchWebSearchProvider.js.map +1 -1
- package/docs/architecture/role-pack-authoring-guide.md +3 -1
- package/docs/architecture/role-pack-spec.md +2 -1
- package/docs/memora-api-reference.md +1349 -1276
- package/docs/memora-/345/215/207/347/272/247/346/214/207/345/215/227-4.x-/345/210/260-5.0.0.md +385 -0
- package/docs/memora-/346/216/245/345/205/245/346/214/207/345/215/227.md +87 -49
- package/docs/role-pack-/345/274/200/346/224/276/351/224/256/346/214/207/345/215/227.md +148 -148
- package/package.json +9 -4
- package/role-packs/README.md +41 -40
- package/role-packs/memora/345/212/251/346/211/213/rules.md +4 -4
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/manifest.json +1 -0
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/persona.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/rules.md +16 -16
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/emotion-wave.md +46 -46
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/foreshadow.md +29 -29
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/outline-expand.md +73 -48
- 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 +445 -441
- package/role-packs//345/205/261/351/270/243/345/260/217/350/257/264/345/256/266/skills/story-bible.md +62 -62
- 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 +1 -0
- package/dist/agent/managers/dedupManager.d.ts +0 -85
- package/dist/agent/managers/dedupManager.d.ts.map +0 -1
- package/dist/agent/managers/dedupManager.js +0 -248
- package/dist/agent/managers/dedupManager.js.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.d.ts +0 -42
- package/dist/agent/managers/goalConsistencyChecker.d.ts.map +0 -1
- package/dist/agent/managers/goalConsistencyChecker.js +0 -178
- package/dist/agent/managers/goalConsistencyChecker.js.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.d.ts +0 -21
- package/dist/agent/managers/llmJudgeHelper.d.ts.map +0 -1
- package/dist/agent/managers/llmJudgeHelper.js +0 -32
- package/dist/agent/managers/llmJudgeHelper.js.map +0 -1
- package/dist/agent/managers/memoryAdvisor.d.ts +0 -105
- package/dist/agent/managers/memoryAdvisor.d.ts.map +0 -1
- package/dist/agent/managers/memoryAdvisor.js +0 -322
- package/dist/agent/managers/memoryAdvisor.js.map +0 -1
- package/dist/agent/managers/memoryGovernance.d.ts +0 -24
- package/dist/agent/managers/memoryGovernance.d.ts.map +0 -1
- package/dist/agent/managers/memoryGovernance.js +0 -46
- package/dist/agent/managers/memoryGovernance.js.map +0 -1
- package/dist/memory/governance.d.ts +0 -17
- package/dist/memory/governance.d.ts.map +0 -1
- package/dist/memory/governance.js +0 -17
- package/dist/memory/governance.js.map +0 -1
- package/dist/memory/projectRegistry.d.ts +0 -47
- package/dist/memory/projectRegistry.d.ts.map +0 -1
- package/dist/memory/projectRegistry.js +0 -151
- package/dist/memory/projectRegistry.js.map +0 -1
- package/dist/utils/recallDefaults.d.ts +0 -16
- package/dist/utils/recallDefaults.d.ts.map +0 -1
- package/dist/utils/recallDefaults.js +0 -16
- package/dist/utils/recallDefaults.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectManager.js","sourceRoot":"","sources":["../../src/memory/projectManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"projectManager.js","sourceRoot":"","sources":["../../src/memory/projectManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;AAC9C,CAAC;AAsCD,2DAA2D;AAE3D;;;;GAIG;AACH,MAAM,OAAO,cAAc;IACzB,qCAAqC;IACpB,YAAY,CAAS;IACtC,oCAAoC;IAC5B,UAAU,GAA0B,IAAI,CAAC;IACjD,gBAAgB;IACR,kBAAkB,GAAkB,IAAI,CAAC;IACjD,yCAAyC;IACjC,eAAe,CAAwB;IAC/C,oCAAoC;IACnB,mBAAmB,CAKjB;IACnB,+BAA+B;IACd,WAAW,CAAc;IAE1C,YAAY,OAA8B;QACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;QAC1D,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,OAAO,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACvC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CACT,EAAE,UAAU,EAAE,KAAK,EAAE,EACrB,+CAA+C,CAChD,CAAC;gBACF,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CACf,WAAmB,EACnB,WAAoB,EACpB,SAAkB;QAElB,wCAAwC;QACxC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QACD,2CAA2C;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC;QAEtC,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACpD,gBAAgB;YAChB,OAAO,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QACzF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,qBAAqB;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,UAAmB,EAAE,EAAE;gBAC7D,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YAC/B,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,WAAmB,EACnB,WAA+B,EAC/B,SAAiB,EACjB,KAAqB,EACrB,SAA6B;QAE7B,0CAA0C;QAC1C,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB;YACvC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC;YAChF,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,IAAI,GAAG,WAAW,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE1D,MAAM,CAAC,IAAI,CACT;YACE,WAAW;YACX,WAAW,EAAE,IAAI;YACjB,SAAS;YACT,cAAc,EAAE,iBAAiB,CAAC,MAAM;SACzC,EACD,SAAS,CACV,CAAC;QAEF,OAAO;YACL,WAAW;YACX,WAAW,EAAE,IAAI;YACjB,SAAS;YACT,KAAK;YACL,QAAQ;YACR,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,8CAA8C;IACtC,gBAAgB,CAAC,WAAmB;QAC1C,OAAO,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -204,6 +204,7 @@ export type ProcessEvent = {
|
|
|
204
204
|
id: string;
|
|
205
205
|
name: string;
|
|
206
206
|
source: string;
|
|
207
|
+
/** 正文(5.0.0 起可选:老数据无) */ content?: string;
|
|
207
208
|
};
|
|
208
209
|
}
|
|
209
210
|
/**
|
|
@@ -351,7 +352,7 @@ export type ProcessEvent = {
|
|
|
351
352
|
* 裁决证据事件(悬案取证轨,Round.evidence 元素)
|
|
352
353
|
*
|
|
353
354
|
* 定位:给「带伤悬案」提供跨会话可回溯的个案证据(回显命中 = 模型规避还是防重误拦、
|
|
354
|
-
*
|
|
355
|
+
* 空响应是否偏爱会议轮、搜索 query 与结果面的归因对齐),消费方是人工/抽样裁决,不是 UI 重放——
|
|
355
356
|
* 故不进 processEvents(宿主 UI 过程轨),由内核单点追加到在途 Round,
|
|
356
357
|
* 宿主整对象 JSON 持久化天然携带。
|
|
357
358
|
*
|
|
@@ -426,6 +427,80 @@ export type RoundEvidenceEvent = {
|
|
|
426
427
|
*/
|
|
427
428
|
[dedupField: string]: string | number | undefined;
|
|
428
429
|
};
|
|
430
|
+
} | {
|
|
431
|
+
/**
|
|
432
|
+
* web_search 执行结果留痕(SEARCH-QUALITY-1 P1-1:「搜不准」归因取证)
|
|
433
|
+
*
|
|
434
|
+
* 定位:结果质量争议的第一现场不在结果页,在 **query 本身**——旧台账只留「搜到什么」,
|
|
435
|
+
* 没留「搜的是什么」,归因只能猜。本变体把 query/endpoint/count/titles 落进取证轨,
|
|
436
|
+
* 复现争议时可直接对齐「模型问了什么 ⇄ 引擎回了什么」,裁决软引导/端点选择/解析缺陷。
|
|
437
|
+
* 零结果(count=0)同样留痕——「没搜到」与「搜到了但不对」是同级的归因现场。
|
|
438
|
+
*/
|
|
439
|
+
type: 'web_search_result';
|
|
440
|
+
/** 事件时刻(ISO 8601) */
|
|
441
|
+
ts: string;
|
|
442
|
+
/** 事件时刻是否会议轮(判据见类型注释) */
|
|
443
|
+
meetingRound: boolean;
|
|
444
|
+
payload: {
|
|
445
|
+
/**
|
|
446
|
+
* 本次搜索的工具调用唯一 ID(= tool_start.payload.toolCallId)。
|
|
447
|
+
*
|
|
448
|
+
* 宿主渲染重放时据此把证据**唯一配对**回对应的 web_search 工具行,
|
|
449
|
+
* 替代旧的「按 query 文本猜 + 行序消费」启发式(同 query 多次搜索 / 被硬拦
|
|
450
|
+
* 的搜索会张冠李戴)。**可选**:旧持久化轮次的证据无此字段,缺失时宿主回退
|
|
451
|
+
* query 游标启发式(保不带伤——历史轮不因此丢证据渲染)。
|
|
452
|
+
*/
|
|
453
|
+
toolCallId?: string;
|
|
454
|
+
/** LLM 实际发出的查询串(归因第一现场) */
|
|
455
|
+
query: string;
|
|
456
|
+
/** 实际服务的搜索后端(降级分型证据;提供方未打标时缺省) */
|
|
457
|
+
endpoint?: string;
|
|
458
|
+
/** 结果条数(0 = 零结果搜索) */
|
|
459
|
+
count: number;
|
|
460
|
+
/** 结果标题(净化 + 截断后):定位「搜到了什么」的最小证据面(全量计数看 count) */
|
|
461
|
+
titles: string[];
|
|
462
|
+
};
|
|
463
|
+
} | {
|
|
464
|
+
/**
|
|
465
|
+
* search_memories 命中明细留痕(MEM-EVENT-3:重放可重建的落盘副本)
|
|
466
|
+
*
|
|
467
|
+
* 定位:`memoryRecalled` 是**实时专属**事件(不进 processEvents),宿主重放历史轮时无数据源,
|
|
468
|
+
* 命中明细整块消失——用户回看时「这次到底参考了哪几条记忆」永久不可考。本变体把
|
|
469
|
+
* 同一份明细写进取证轨(Round.evidence 随轮落盘),与 web_search_result 同一条通道、
|
|
470
|
+
* 同一处置:**实时面照旧走事件(即时可见),落盘面走证据(可回看)**,二者同源一次发射。
|
|
471
|
+
*
|
|
472
|
+
* 与 `memoryRecalled` 载荷的差异(刻意,不是漏项):`count` 保留原值(发射时命中条数),
|
|
473
|
+
* `hits` 全量(不截断——条数上限真源仍是 parseLimit 的 50,不另立证据侧常量)。
|
|
474
|
+
*
|
|
475
|
+
* ⚠ 未命中(hits 为空)不进本轨:内核 `memoryRecalled` 本身只在有命中时发射,
|
|
476
|
+
* 证据轨不为「查了但没查到」造第二条路径(查询行为已在 tool_start/tool_result 可见)。
|
|
477
|
+
*/
|
|
478
|
+
type: 'memory_hits';
|
|
479
|
+
/** 事件时刻(ISO 8601) */
|
|
480
|
+
ts: string;
|
|
481
|
+
/** 事件时刻是否会议轮(判据见类型注释) */
|
|
482
|
+
meetingRound: boolean;
|
|
483
|
+
payload: {
|
|
484
|
+
/**
|
|
485
|
+
* 本次召回的 tool_call 唯一 ID(= tool_start.payload.toolCallId)。
|
|
486
|
+
*
|
|
487
|
+
* 宿主重放时据此把命中明细**唯一配对**回对应的 search_memories 工具行。
|
|
488
|
+
* **可选**:旧内核(4.1.x 首版)不发该字段,缺失时宿主走轮次级兜底落位
|
|
489
|
+
* (保不带伤——历史轮不因缺配对键而丢明细)。
|
|
490
|
+
*/
|
|
491
|
+
toolCallId?: string;
|
|
492
|
+
/** LLM 实际发出的检索词(与 web_search 的 query 同语义:归因第一现场) */
|
|
493
|
+
query: string;
|
|
494
|
+
/** 发射时命中条数(= hits.length,保留原字段供纯计数消费方) */
|
|
495
|
+
count: number;
|
|
496
|
+
/** 命中明细(记忆 id 全局唯一,兼宿主反馈寻址键);contentPreview 可选 = 跨 dist 契约(4.x 载荷无) */
|
|
497
|
+
hits: {
|
|
498
|
+
id: string;
|
|
499
|
+
name: string;
|
|
500
|
+
source: string;
|
|
501
|
+
contentPreview?: string;
|
|
502
|
+
}[];
|
|
503
|
+
};
|
|
429
504
|
};
|
|
430
505
|
/**
|
|
431
506
|
* 问答闭环(Round)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundStore.d.ts","sourceRoot":"","sources":["../../src/memory/roundStore.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"roundStore.d.ts","sourceRoot":"","sources":["../../src/memory/roundStore.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roundStore.js","sourceRoot":"","sources":["../../src/memory/roundStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoGH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa,CAAC;AAC3D,CAAC;
|
|
1
|
+
{"version":3,"file":"roundStore.js","sourceRoot":"","sources":["../../src/memory/roundStore.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoGH;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,KAAK,aAAa,CAAC;AAC3D,CAAC;AA6gBD,uDAAuD;AAEvD,mCAAmC;AACnC,MAAM,UAAU,eAAe;IAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,SAAS,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACxC,CAAC;IACD,iBAAiB;IACjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,SAAS,SAAS,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,OAAO,OAAO,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACtC,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,OAAO,SAAS,GAAG,MAAM,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IACpD,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,EAAE;QACF,WAAW,EAAE;YACX,EAAE,EAAE,iBAAiB,EAAE;YACvB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,GAAG;SACf;QACD,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,CAAC;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAY,EACZ,gBAAwB,EACxB,UAA8C;IAE9C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO;QACL,GAAG,KAAK;QACR,gBAAgB,EAAE;YAChB,EAAE,EAAE,iBAAiB,EAAE;YACvB,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,gBAAgB;YACzB,SAAS,EAAE,GAAG;YACd,UAAU;SACX;QACD,MAAM,EAAE,UAAU;QAClB,WAAW,EAAE,GAAG;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* round-summary 派生寻址 —— 按 roundId 反查派生摘要(单一真理源)
|
|
3
|
+
*
|
|
4
|
+
* 定案(memory-as-summary.md §5.1):Round 是物理唯一真理源,round-summary 按
|
|
5
|
+
* `roundId` 顶层字段溯源,Round 侧不持有反向指针 ⇒「Round 退出 → 派生摘要处置」
|
|
6
|
+
* 的**选择集**只在本文件定义一次,两条消费路径共用:
|
|
7
|
+
* - 宿主联动(删会话/回溯截断/孤儿清扫)→ MemoryInspector.softDeleteRoundSummaries(软删 + 脱钩溯源,可恢复)
|
|
8
|
+
* - 内核 GC(孤儿轮引用归零)→ GCService.cleanUpRoundSummary(物理 purge,系统治理决定)
|
|
9
|
+
* ⚠️ 只共用「选哪些」;「怎么处置」(软删 vs purge)分叉是有意语义,勿折叠(见 §5.1 删除规则表)。
|
|
10
|
+
*
|
|
11
|
+
* 依赖方向:本文件在 memory/ 层,仅类型 import,agent/managers 与 memory 内部均可单向消费。
|
|
12
|
+
*/
|
|
13
|
+
import type { IMemoryStorage } from '../memory/storageInterface.js';
|
|
14
|
+
import type { Memory } from '../memory/types.js';
|
|
15
|
+
/**
|
|
16
|
+
* 按 roundId 集合反查活跃 round-summary(覆盖全部会话命名空间的两段式 ID)
|
|
17
|
+
*
|
|
18
|
+
* 两段式摘要 ID `round-summary:{sessionName}:{roundId}` 含会话段,同轮可能被多会话
|
|
19
|
+
* 引用 —— 故按顶层 roundId 字段寻址,不解析 ID 字符串。
|
|
20
|
+
*
|
|
21
|
+
* @param storage 记忆库(两条路径各自持有,本函数只读不写)
|
|
22
|
+
* @param roundIds 目标轮次 ID 集合(单轮场景传单元素集合)
|
|
23
|
+
* @returns 命中的活跃摘要(仅内存活跃面;软删摘要不在其中,语义见 IMemoryStorage.getBySource)
|
|
24
|
+
*/
|
|
25
|
+
export declare function findRoundSummaries(storage: IMemoryStorage, roundIds: ReadonlySet<string>): Memory[];
|
|
26
|
+
//# sourceMappingURL=roundSummaryLookup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roundSummaryLookup.d.ts","sourceRoot":"","sources":["../../src/memory/roundSummaryLookup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAC5B,MAAM,EAAE,CAKV"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { SOURCE_LABELS } from '../memory/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* 按 roundId 集合反查活跃 round-summary(覆盖全部会话命名空间的两段式 ID)
|
|
4
|
+
*
|
|
5
|
+
* 两段式摘要 ID `round-summary:{sessionName}:{roundId}` 含会话段,同轮可能被多会话
|
|
6
|
+
* 引用 —— 故按顶层 roundId 字段寻址,不解析 ID 字符串。
|
|
7
|
+
*
|
|
8
|
+
* @param storage 记忆库(两条路径各自持有,本函数只读不写)
|
|
9
|
+
* @param roundIds 目标轮次 ID 集合(单轮场景传单元素集合)
|
|
10
|
+
* @returns 命中的活跃摘要(仅内存活跃面;软删摘要不在其中,语义见 IMemoryStorage.getBySource)
|
|
11
|
+
*/
|
|
12
|
+
export function findRoundSummaries(storage, roundIds) {
|
|
13
|
+
if (roundIds.size === 0)
|
|
14
|
+
return [];
|
|
15
|
+
return storage
|
|
16
|
+
.getBySource(SOURCE_LABELS.ROUND_SUMMARY)
|
|
17
|
+
.filter((m) => m.roundId !== undefined && roundIds.has(m.roundId));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=roundSummaryLookup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roundSummaryLookup.js","sourceRoot":"","sources":["../../src/memory/roundSummaryLookup.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAuB,EACvB,QAA6B;IAE7B,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,OAAO;SACX,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC;SACxC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -32,8 +32,8 @@ export interface ISessionStore {
|
|
|
32
32
|
/**
|
|
33
33
|
* 列出全部会话标题元数据,**必须按 updatedAt 降序**(最近活跃在前)。
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
35
|
+
* 排序方向是本接口契约的一部分,不是各实现自由:宿主(chatPanel 构造器)视 `[0]` 为
|
|
36
|
+
* 「最近活跃会话」的唯一真理源(打开面板时定位初始会话);升序实现会让初始定位落到最旧会话。
|
|
37
37
|
*/
|
|
38
38
|
listSessionMetas(): SessionMeta[];
|
|
39
39
|
/** 追加 Round ID 到会话 */
|
|
@@ -68,6 +68,23 @@ export interface SessionMeta {
|
|
|
68
68
|
updatedAt: string;
|
|
69
69
|
/** 会话消息条数(命名信号与列表展示) */
|
|
70
70
|
messageCount: number;
|
|
71
|
+
/**
|
|
72
|
+
* 上次**实际完成归档**时的消息数快照(防重判据的落盘副本,2026-10-19 起)。
|
|
73
|
+
*
|
|
74
|
+
* ⚠️ 与上方 `messageCount` **语义不同、不可复用**:
|
|
75
|
+
* - `messageCount` = 会话**当前**消息总数(列表展示 / 命名信号,随对话增长);
|
|
76
|
+
* - 本字段 = **上次归档那一刻**的消息数(防重用,只在归档写入成功后更新)。
|
|
77
|
+
*
|
|
78
|
+
* 为何要落盘:`SessionArchiver` 的内存快照(`Map`)随进程销毁清零,重启后首次触发会
|
|
79
|
+
* 对「内容未变、早归档过」的会话**重复烧一次 LLM**——手动归档入口(manual 模式「移入
|
|
80
|
+
* 留存区」)落地后这条路径变成用户可见的重复开销,故判据须跨进程存活。
|
|
81
|
+
*
|
|
82
|
+
* 判据可靠性:对话记录 append-only(单条消息不删)⇒ 本值等于当前消息数 = 内容未变。
|
|
83
|
+
* 缺省 `undefined`(老数据 / 从未归档)= 无归档记录 ⇒ **不跳过**(自然降级,不多不少一次)。
|
|
84
|
+
*
|
|
85
|
+
* 单点:`SessionArchiver` 唯一写入与读取(`getSessionMeta` 读、`updateSessionMeta` 写)。
|
|
86
|
+
*/
|
|
87
|
+
archivedMessageCount?: number;
|
|
71
88
|
/** 创建时间(ISO 8601) */
|
|
72
89
|
createdAt?: string;
|
|
73
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../src/memory/sessionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAE5B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;IAG9D,mCAAmC;IACnC,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,gCAAgC;IAChC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3D,oEAAoE;IACpE,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,oDAAoD;IACpD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACvE;;;;;OAKG;IACH,gBAAgB,IAAI,WAAW,EAAE,CAAC;IAGlC,sBAAsB;IACtB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,+BAA+B;IAC/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5D,wBAAwB;IACxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzC,qCAAqC;IACrC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzD,eAAe;IACf,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,6BAA6B;IAC7B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAGlB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"sessionStore.d.ts","sourceRoot":"","sources":["../../src/memory/sessionStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAE5B;;;;;;;;;;;OAWG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;IAG9D,mCAAmC;IACnC,YAAY,IAAI,MAAM,EAAE,CAAC;IACzB,gCAAgC;IAChC,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3D,oEAAoE;IACpE,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,oDAAoD;IACpD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IACvE;;;;;OAKG;IACH,gBAAgB,IAAI,WAAW,EAAE,CAAC;IAGlC,sBAAsB;IACtB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACxD,+BAA+B;IAC/B,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5D,wBAAwB;IACxB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzC,qCAAqC;IACrC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACzD,eAAe;IACf,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;IACvC,6BAA6B;IAC7B,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAGlB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IAGjB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IAGrB;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAS3E;AAED,gCAAgC;AAChC,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAIxE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionStore.js","sourceRoot":"","sources":["../../src/memory/sessionStore.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessionStore.js","sourceRoot":"","sources":["../../src/memory/sessionStore.ts"],"names":[],"mappings":"AA2GA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAA6B;IACjE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,wBAAwB;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IAC7C,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,wBAAwB;IACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,kBAAkB,CAAC,IAA6B;IAC9D,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvC,OAAO,QAAQ,IAAI,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -18,18 +18,6 @@ export type SourceValidationSeverity = 'block' | 'warn';
|
|
|
18
18
|
* @returns 转义后的字符串
|
|
19
19
|
*/
|
|
20
20
|
export declare function escapeLike(str: string): string;
|
|
21
|
-
/**
|
|
22
|
-
* 截取字符串前 maxLen 字符后转义 LIKE 通配符
|
|
23
|
-
*
|
|
24
|
-
* 用于将用户输入 / round-summary 记忆文本作为关键词搜索 SQL LIKE 查询的输入。
|
|
25
|
-
* 截断避免超长输入导致 LIKE 解析性能问题,转义防止通配符被当作模式符。
|
|
26
|
-
* 同 `escapeLike`:SQL 侧必须写 `LIKE ? ESCAPE '\'`,否则转义后的模式查不到字面值。
|
|
27
|
-
*
|
|
28
|
-
* @param text - 原始文本(用户输入 / round-summary 内容)
|
|
29
|
-
* @param maxLen - 最大截取长度,默认 50
|
|
30
|
-
* @returns 截断 + 转义后的字符串
|
|
31
|
-
*/
|
|
32
|
-
export declare function escapeLikeSnippet(text: string, maxLen?: number): string;
|
|
33
21
|
/**
|
|
34
22
|
* 校验 source 字段是否为已知标签
|
|
35
23
|
*
|
|
@@ -52,7 +40,8 @@ export declare function validateSource(source: string): {
|
|
|
52
40
|
/**
|
|
53
41
|
* 简单 Levenshtein 距离计算(仅用于短字符串,不做优化)
|
|
54
42
|
*
|
|
55
|
-
*
|
|
43
|
+
* 供本文件 `validateSource` 的标签 typo 检测使用(同文件上方)。历史上另供 `DedupManager`
|
|
44
|
+
* 做名称相似度复用,该类已随 GOVERNANCE-SRC-1(2026-10-18)整链退役。
|
|
56
45
|
*/
|
|
57
46
|
export declare function levenshtein(a: string, b: string): number;
|
|
58
47
|
//# sourceMappingURL=sourceValidation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceValidation.d.ts","sourceRoot":"","sources":["../../src/memory/sourceValidation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sourceValidation.d.ts","sourceRoot":"","sources":["../../src/memory/sourceValidation.ts"],"names":[],"mappings":"AAiBA;;;;;;GAMG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,CAAC;AAUxD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAC9C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CA0DA;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BxD"}
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
* 职责:
|
|
5
5
|
* - escapeLike:转义 SQL LIKE 通配符(须配套 SQL 的 `ESCAPE '\'` 子句,否则转义失效)
|
|
6
6
|
* - validateSource:校验 source 字段安全性和拼写
|
|
7
|
-
* - levenshtein
|
|
7
|
+
* - levenshtein:简单编辑距离计算(输入限短字符串;供本文件 `validateSource` 做标签 typo 检测)。
|
|
8
|
+
* 曾另供 `DedupManager`(名称相似度)复用,该类已随 GOVERNANCE-SRC-1(2026-10-18)整链退役,
|
|
9
|
+
* 现仅余 `validateSource` 一个生产消费方 + 自身单测。
|
|
8
10
|
*
|
|
9
11
|
* 设计原则:
|
|
10
12
|
* - source 是开放字符串,新增来源无需改代码
|
|
@@ -33,20 +35,6 @@ const KNOWN_SOURCES = new Set(Object.values(SOURCE_LABELS));
|
|
|
33
35
|
export function escapeLike(str) {
|
|
34
36
|
return str.replace(/[%_]/g, '\\$&');
|
|
35
37
|
}
|
|
36
|
-
/**
|
|
37
|
-
* 截取字符串前 maxLen 字符后转义 LIKE 通配符
|
|
38
|
-
*
|
|
39
|
-
* 用于将用户输入 / round-summary 记忆文本作为关键词搜索 SQL LIKE 查询的输入。
|
|
40
|
-
* 截断避免超长输入导致 LIKE 解析性能问题,转义防止通配符被当作模式符。
|
|
41
|
-
* 同 `escapeLike`:SQL 侧必须写 `LIKE ? ESCAPE '\'`,否则转义后的模式查不到字面值。
|
|
42
|
-
*
|
|
43
|
-
* @param text - 原始文本(用户输入 / round-summary 内容)
|
|
44
|
-
* @param maxLen - 最大截取长度,默认 50
|
|
45
|
-
* @returns 截断 + 转义后的字符串
|
|
46
|
-
*/
|
|
47
|
-
export function escapeLikeSnippet(text, maxLen = 50) {
|
|
48
|
-
return escapeLike(text.slice(0, maxLen));
|
|
49
|
-
}
|
|
50
38
|
/**
|
|
51
39
|
* 校验 source 字段是否为已知标签
|
|
52
40
|
*
|
|
@@ -115,7 +103,8 @@ export function validateSource(source) {
|
|
|
115
103
|
/**
|
|
116
104
|
* 简单 Levenshtein 距离计算(仅用于短字符串,不做优化)
|
|
117
105
|
*
|
|
118
|
-
*
|
|
106
|
+
* 供本文件 `validateSource` 的标签 typo 检测使用(同文件上方)。历史上另供 `DedupManager`
|
|
107
|
+
* 做名称相似度复用,该类已随 GOVERNANCE-SRC-1(2026-10-18)整链退役。
|
|
119
108
|
*/
|
|
120
109
|
export function levenshtein(a, b) {
|
|
121
110
|
if (a.length === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceValidation.js","sourceRoot":"","sources":["../../src/memory/sourceValidation.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sourceValidation.js","sourceRoot":"","sources":["../../src/memory/sourceValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,34 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 记忆存储接口 — Memora 内核与具体数据库实现的解耦边界
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* 内核业务模块不依赖具体数据库:宿主实现此接口注入 Agent(vscode 宿主默认直接用内核
|
|
5
|
+
* `createNodeSqliteStorage()`;SQLite 不可用时**仅当尚未迁移**才降级旧 JSON,已有 `.db`
|
|
6
|
+
* 则响亮失败——见宿主 `memoryStorage.ts`「禁数据分叉」);测试用 InMemoryStorage;
|
|
7
|
+
* 不注入时 Agent 内部用 InMemoryStorage 作 fallback(重启后数据丢失)。方法保持同步语义,
|
|
8
|
+
* 调用方已有 await 调用仍安全。软删除语义:delete 写入 deletedAt,查询类方法自动过滤已删除记忆,
|
|
8
9
|
* restore 恢复,purge 物理删,listDeleted/purgeExpired 管理回收站。
|
|
9
10
|
*/
|
|
10
11
|
import type { Memory } from '../memory/types.js';
|
|
11
12
|
/**
|
|
12
|
-
* 记忆存储接口 — 所有方法同步(对齐
|
|
13
|
+
* 记忆存储接口 — 所有方法同步(对齐 node:sqlite 同步 API),可后续新增 IAsyncMemoryStorage 支持异步后端。
|
|
13
14
|
*
|
|
14
|
-
* ⚠️ 契约隐含假设(宿主实现须知):同步语义要求单次调用低延迟。
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
15
|
+
* ⚠️ 契约隐含假设(宿主实现须知):同步语义要求单次调用低延迟。5.0.0 起内核自带
|
|
16
|
+
* `createNodeSqliteStorage()`(node:sqlite 内建模块延迟加载,零三方依赖,WAL)——宿主优先用它,
|
|
17
|
+
* 不必自引三方驱动。JSON 全量重写实现(记忆量增长时 upsert 触发全量 `JSON.stringify`,1 万条
|
|
18
|
+
* 规模即达 MB 级单次同步 I/O,会阻塞事件循环)自 5.0.0 起降为「环境不支持 SQLite **且
|
|
19
|
+
* 尚未迁移**」时的降级档,不再是默认形态(已迁移后不可用 = 响亮失败,禁真源分叉)。
|
|
19
20
|
*/
|
|
20
21
|
export interface IMemoryStorage {
|
|
21
22
|
/**
|
|
22
23
|
* 插入或更新记忆;source 为开放字符串可自定义,但写入须经 validateSource 统一校验
|
|
23
|
-
*(内核 inMemoryStorage 与宿主
|
|
24
|
+
*(内核 inMemoryStorage 与宿主 JSON 降级实现 WorkspaceStorage 均接入 block/warn 分级拦截)。
|
|
24
25
|
* 契约:整对象覆盖、无 CAS 乐观锁——单 Agent 设计假设;
|
|
25
26
|
* 多 Agent 并发写同会话需扩展版本字段/条件更新,内核当前不承诺并发一致性。
|
|
26
27
|
*/
|
|
27
28
|
upsert(memory: Memory): void;
|
|
28
29
|
/**
|
|
29
30
|
* 软删除(移入回收站):写入 deletedAt,不物理移除;对已软删除的记忆为 no-op。
|
|
30
|
-
* 召回/搜索/列表/统计自动过滤,可 restore
|
|
31
|
+
* 召回/搜索/列表/统计自动过滤,可 restore 恢复;回收站保留期归宿主策略,物理清理由宿主入口显式触发(purgeExpired)
|
|
31
32
|
*/
|
|
32
33
|
delete(id: string): void;
|
|
33
34
|
/** 恢复软删除记忆(清除 deletedAt);对活跃记忆为 no-op */
|
|
@@ -60,9 +61,10 @@ export interface IMemoryStorage {
|
|
|
60
61
|
/**
|
|
61
62
|
* 关键词搜索活跃记忆。宿主实现:Intl.Segmenter 分词 + 停用词过滤,
|
|
62
63
|
* LIKE 匹配 content/name,按 accessedAt 降序(最近使用优先)返回 top N。
|
|
63
|
-
* SQL
|
|
64
|
-
*
|
|
65
|
-
*
|
|
64
|
+
* SQL 后端须自行转义 LIKE 通配符(`%` → `\%`、`_` → `\_`)后写成
|
|
65
|
+
* `LIKE ? ESCAPE '\'`——缺 ESCAPE 子句则转义后的模式匹配不到含 `%`/`_` 的字面值,
|
|
66
|
+
* 查询静默返回空(内核自带 SQLite 实现即按此规则,见 nodeSqliteStorage)。
|
|
67
|
+
* InMemoryStorage 用分词 + includes 匹配(无 SQL 转义语义)
|
|
66
68
|
* @param limit - 返回上限(默认 10)
|
|
67
69
|
*/
|
|
68
70
|
search(query: string, limit?: number): Memory[];
|
|
@@ -79,7 +81,7 @@ export interface IMemoryStorage {
|
|
|
79
81
|
*/
|
|
80
82
|
touch(id: string, now: string): boolean;
|
|
81
83
|
/**
|
|
82
|
-
* 获取所有 source
|
|
84
|
+
* 获取所有 source 标签及活跃记忆数量;供 MemoryInspector.stats() 一次取来源分布,
|
|
83
85
|
* 宿主用 SQL GROUP BY source,InMemoryStorage 维护增量 source→count 缓存
|
|
84
86
|
*/
|
|
85
87
|
getAllSources(): Map<string, number>;
|
|
@@ -90,4 +92,12 @@ export interface IMemoryStorage {
|
|
|
90
92
|
*/
|
|
91
93
|
close?(): void;
|
|
92
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* 只读存储视图 —— `IMemoryStorage` 的**读方法子集**(`Pick` 派生,与接口同步、不会漂移)。
|
|
97
|
+
*
|
|
98
|
+
* 用途:只读宿主(如 memora-mcp 的 `readOnlyFileStore`)需要「读记忆」但不该有能力写——把只读保证
|
|
99
|
+
* **由结构表达**(外部拿不到写方法),而不是靠「约定不乱调」。
|
|
100
|
+
* 实现侧(`createNodeSqliteStorage(path, { readOnly: true })`)返回的正是本视图对应的对象。
|
|
101
|
+
*/
|
|
102
|
+
export type ReadOnlyMemoryStorage = Pick<IMemoryStorage, 'getById' | 'getBySource' | 'search' | 'count' | 'countBySource' | 'getAllSources' | 'listDeleted' | 'getDeletedById' | 'close'>;
|
|
93
103
|
//# sourceMappingURL=storageInterface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageInterface.d.ts","sourceRoot":"","sources":["../../src/memory/storageInterface.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"storageInterface.d.ts","sourceRoot":"","sources":["../../src/memory/storageInterface.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,yCAAyC;IACzC,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,iCAAiC;IACjC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;OAIG;IACH,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEtC;;;;OAIG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC;IAEnC,qDAAqD;IACrD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAEnC,6BAA6B;IAC7B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEtC;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEhD;;OAEG;IACH,KAAK,IAAI,MAAM,CAAC;IAEhB,6CAA6C;IAC7C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtC;;;;OAIG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC;;;OAGG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAErC;;;;OAIG;IACH,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,cAAc,EACZ,SAAS,GACT,aAAa,GACb,QAAQ,GACR,OAAO,GACP,eAAe,GACf,eAAe,GACf,aAAa,GACb,gBAAgB,GAChB,OAAO,CACV,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 取代状态判定 —— supersede 悬空指针的消费侧单一判据。
|
|
3
|
+
*
|
|
4
|
+
* 背景(写时取代模型,见 roundSummaryGenerator / ADR-021):
|
|
5
|
+
* - 同 session 内新摘要生成时,若与近窗口旧摘要主题重叠(加权 Jaccard ≥ 阈值),
|
|
6
|
+
* 给旧摘要打 `supersededBy = 新摘要.id`(软指针,非删除,保留可回溯)。
|
|
7
|
+
* - 消费侧(内核召回过滤 searchByKeyword、取代候选 getSessionCandidates、宿主治理展示)
|
|
8
|
+
* 据此把「被取代者」视为非当前版本。
|
|
9
|
+
*
|
|
10
|
+
* 缺口(设计边界):`supersededBy` 指向的「替代物摘要」可能被移除——GC purge、宿主软删/
|
|
11
|
+
* 物理删/过期清理、去重降级,任一路径都会使旧摘要的指针悬空。此时旧摘要既被消费侧过滤、
|
|
12
|
+
* 又无「当前版本」可取 → 有效记忆静默不可召回。
|
|
13
|
+
*
|
|
14
|
+
* 修法(SSOT):悬空指针的本质是「指向不存在/非活跃的记忆」。把这一判定收口成单一判据,
|
|
15
|
+
* 所有消费 supersededBy 的位置统一经此判定——与「谁、用哪条路径移除了替代物」完全解耦:
|
|
16
|
+
* 任一移除入口(含未来的新入口)都自动覆盖,无需在每个移除点补收敛逻辑(避免「漏接一处
|
|
17
|
+
* 即漏一类」)。判据语义:
|
|
18
|
+
* - 指针指向现存且活跃的记忆 → 真取代(隐藏旧、显新)。
|
|
19
|
+
* - 指针悬空(目标被移除或软删) → 视为未取代(旧摘要回退为当前版本,可召回、可再被取代)。
|
|
20
|
+
*
|
|
21
|
+
* 单端口原则:只读经 `getById` 契约暴露的存在性(不写入、不引入新机制)。
|
|
22
|
+
*/
|
|
23
|
+
import type { Memory } from '../memory/types.js';
|
|
24
|
+
/**
|
|
25
|
+
* 记忆是否被「现存且活跃」的摘要取代。
|
|
26
|
+
*
|
|
27
|
+
* 仅当 `supersededBy` 非空且其目标当前存在且活跃时返回 `true`;指针悬空(目标已移除/软删)
|
|
28
|
+
* 返回 `false`(该记忆回退为当前版本)。
|
|
29
|
+
*
|
|
30
|
+
* @param memory 待判定的记忆(只需 `supersededBy` 字段,兼容内核 `Memory` 与宿主 DTO 输入)
|
|
31
|
+
* @param lookup 存在性查询(`IMemoryStorage` 与内核 `MemoryInspector` 均满足 `{ getById }`)
|
|
32
|
+
* @returns 是否被现存活跃摘要取代
|
|
33
|
+
*/
|
|
34
|
+
export declare function hasActiveSuperseder(memory: {
|
|
35
|
+
supersededBy?: string;
|
|
36
|
+
}, lookup: {
|
|
37
|
+
getById(id: string): Memory | null;
|
|
38
|
+
}): boolean;
|
|
39
|
+
//# sourceMappingURL=supersedeResolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supersedeResolve.d.ts","sourceRoot":"","sources":["../../src/memory/supersedeResolve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACjC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7C,OAAO,CAGT"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 记忆是否被「现存且活跃」的摘要取代。
|
|
3
|
+
*
|
|
4
|
+
* 仅当 `supersededBy` 非空且其目标当前存在且活跃时返回 `true`;指针悬空(目标已移除/软删)
|
|
5
|
+
* 返回 `false`(该记忆回退为当前版本)。
|
|
6
|
+
*
|
|
7
|
+
* @param memory 待判定的记忆(只需 `supersededBy` 字段,兼容内核 `Memory` 与宿主 DTO 输入)
|
|
8
|
+
* @param lookup 存在性查询(`IMemoryStorage` 与内核 `MemoryInspector` 均满足 `{ getById }`)
|
|
9
|
+
* @returns 是否被现存活跃摘要取代
|
|
10
|
+
*/
|
|
11
|
+
export function hasActiveSuperseder(memory, lookup) {
|
|
12
|
+
if (memory.supersededBy === undefined)
|
|
13
|
+
return false;
|
|
14
|
+
return lookup.getById(memory.supersededBy) !== null;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=supersedeResolve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supersedeResolve.js","sourceRoot":"","sources":["../../src/memory/supersedeResolve.ts"],"names":[],"mappings":"AAwBA;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAiC,EACjC,MAA8C;IAE9C,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACpD,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;AACtD,CAAC"}
|
package/dist/memory/types.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export interface Memory {
|
|
|
24
24
|
createdAt: string;
|
|
25
25
|
/** 最后访问时间(每次召回时刷新) */
|
|
26
26
|
accessedAt: string;
|
|
27
|
-
/** 软删除时间;非 undefined
|
|
27
|
+
/** 软删除时间;非 undefined 表示已删除。回收站**不自动清理**:保留期由宿主策略决定(当前宿主为 30 天),物理清理须显式调用 `purgeExpired` */
|
|
28
28
|
deletedAt?: string;
|
|
29
29
|
/**
|
|
30
30
|
* 额外的键值对元数据(可选透传字段,内核侧无生产写入方)。
|
|
@@ -86,7 +86,8 @@ export declare function parseMemory(raw: unknown): Memory;
|
|
|
86
86
|
* persona / rule / skill / work-projection 为残留兼容标签:对应内容不归记忆库管理
|
|
87
87
|
* (角色包内容由角色包管理,作品投影落项目目录 projections/),标签保留用于
|
|
88
88
|
* typo 检测(sourceValidation.ts:KNOWN_SOURCES 集合)与存量行/外部导入识别;
|
|
89
|
-
*
|
|
89
|
+
* 它们不出现在「治理取样列表」中(治理系统只治理实际写入记忆库的 source)。原 `GOVERNANCE_SOURCES`
|
|
90
|
+
* 常量已随 GOVERNANCE-SRC-1(2026-10-18)整链退役;该约定仍成立——写时取代只对实际写入的记忆生效。
|
|
90
91
|
*/
|
|
91
92
|
export declare const SOURCE_LABELS: {
|
|
92
93
|
/** 角色人格(角色包 content/persona.md)— 残留兼容标签,不写入记忆库 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAInE;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAInE;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,kEAAmE,CAAC;AAE9F;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA2GhD;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IACxB,kDAAkD;;IAElD,qEAAqE;;IAErE,0CAA0C;;IAE1C,sDAAsD;;IAEtD,gCAAgC;;IAEhC,0BAA0B;;CAElB,CAAC;AAIX;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjF;AAED,oDAAoD;AACpD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE"}
|
package/dist/memory/types.js
CHANGED
|
@@ -105,7 +105,8 @@ export function parseMemory(raw) {
|
|
|
105
105
|
* persona / rule / skill / work-projection 为残留兼容标签:对应内容不归记忆库管理
|
|
106
106
|
* (角色包内容由角色包管理,作品投影落项目目录 projections/),标签保留用于
|
|
107
107
|
* typo 检测(sourceValidation.ts:KNOWN_SOURCES 集合)与存量行/外部导入识别;
|
|
108
|
-
*
|
|
108
|
+
* 它们不出现在「治理取样列表」中(治理系统只治理实际写入记忆库的 source)。原 `GOVERNANCE_SOURCES`
|
|
109
|
+
* 常量已随 GOVERNANCE-SRC-1(2026-10-18)整链退役;该约定仍成立——写时取代只对实际写入的记忆生效。
|
|
109
110
|
*/
|
|
110
111
|
export const SOURCE_LABELS = {
|
|
111
112
|
/** 角色人格(角色包 content/persona.md)— 残留兼容标签,不写入记忆库 */
|
package/dist/memory/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
|