@ai-rpg-engine/modules 1.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 (117) hide show
  1. package/dist/belief-provenance.d.ts +41 -0
  2. package/dist/belief-provenance.d.ts.map +1 -0
  3. package/dist/belief-provenance.js +254 -0
  4. package/dist/belief-provenance.js.map +1 -0
  5. package/dist/belief-provenance.test.d.ts +2 -0
  6. package/dist/belief-provenance.test.d.ts.map +1 -0
  7. package/dist/belief-provenance.test.js +139 -0
  8. package/dist/belief-provenance.test.js.map +1 -0
  9. package/dist/cognition-core.d.ts +89 -0
  10. package/dist/cognition-core.d.ts.map +1 -0
  11. package/dist/cognition-core.js +370 -0
  12. package/dist/cognition-core.js.map +1 -0
  13. package/dist/cognition-core.test.d.ts +2 -0
  14. package/dist/cognition-core.test.d.ts.map +1 -0
  15. package/dist/cognition-core.test.js +215 -0
  16. package/dist/cognition-core.test.js.map +1 -0
  17. package/dist/combat-core.d.ts +11 -0
  18. package/dist/combat-core.d.ts.map +1 -0
  19. package/dist/combat-core.js +152 -0
  20. package/dist/combat-core.js.map +1 -0
  21. package/dist/dialogue-core.d.ts +10 -0
  22. package/dist/dialogue-core.d.ts.map +1 -0
  23. package/dist/dialogue-core.js +172 -0
  24. package/dist/dialogue-core.js.map +1 -0
  25. package/dist/district-core.d.ts +59 -0
  26. package/dist/district-core.d.ts.map +1 -0
  27. package/dist/district-core.js +224 -0
  28. package/dist/district-core.js.map +1 -0
  29. package/dist/district-core.test.d.ts +2 -0
  30. package/dist/district-core.test.d.ts.map +1 -0
  31. package/dist/district-core.test.js +157 -0
  32. package/dist/district-core.test.js.map +1 -0
  33. package/dist/environment-core.d.ts +78 -0
  34. package/dist/environment-core.d.ts.map +1 -0
  35. package/dist/environment-core.js +229 -0
  36. package/dist/environment-core.js.map +1 -0
  37. package/dist/environment-core.test.d.ts +2 -0
  38. package/dist/environment-core.test.d.ts.map +1 -0
  39. package/dist/environment-core.test.js +252 -0
  40. package/dist/environment-core.test.js.map +1 -0
  41. package/dist/faction-cognition.d.ts +39 -0
  42. package/dist/faction-cognition.d.ts.map +1 -0
  43. package/dist/faction-cognition.js +139 -0
  44. package/dist/faction-cognition.js.map +1 -0
  45. package/dist/faction-cognition.test.d.ts +2 -0
  46. package/dist/faction-cognition.test.d.ts.map +1 -0
  47. package/dist/faction-cognition.test.js +166 -0
  48. package/dist/faction-cognition.test.js.map +1 -0
  49. package/dist/index.d.ts +31 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +18 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/inventory-core.d.ts +10 -0
  54. package/dist/inventory-core.d.ts.map +1 -0
  55. package/dist/inventory-core.js +69 -0
  56. package/dist/inventory-core.js.map +1 -0
  57. package/dist/knowledge-decay.test.d.ts +2 -0
  58. package/dist/knowledge-decay.test.d.ts.map +1 -0
  59. package/dist/knowledge-decay.test.js +143 -0
  60. package/dist/knowledge-decay.test.js.map +1 -0
  61. package/dist/narrative-authority.d.ts +40 -0
  62. package/dist/narrative-authority.d.ts.map +1 -0
  63. package/dist/narrative-authority.js +89 -0
  64. package/dist/narrative-authority.js.map +1 -0
  65. package/dist/narrative-authority.test.d.ts +2 -0
  66. package/dist/narrative-authority.test.d.ts.map +1 -0
  67. package/dist/narrative-authority.test.js +237 -0
  68. package/dist/narrative-authority.test.js.map +1 -0
  69. package/dist/observer-presentation.d.ts +74 -0
  70. package/dist/observer-presentation.d.ts.map +1 -0
  71. package/dist/observer-presentation.js +277 -0
  72. package/dist/observer-presentation.js.map +1 -0
  73. package/dist/observer-presentation.test.d.ts +2 -0
  74. package/dist/observer-presentation.test.d.ts.map +1 -0
  75. package/dist/observer-presentation.test.js +156 -0
  76. package/dist/observer-presentation.test.js.map +1 -0
  77. package/dist/perception-filter.d.ts +46 -0
  78. package/dist/perception-filter.d.ts.map +1 -0
  79. package/dist/perception-filter.js +281 -0
  80. package/dist/perception-filter.js.map +1 -0
  81. package/dist/perception-filter.test.d.ts +2 -0
  82. package/dist/perception-filter.test.d.ts.map +1 -0
  83. package/dist/perception-filter.test.js +308 -0
  84. package/dist/perception-filter.test.js.map +1 -0
  85. package/dist/progression-core.d.ts +63 -0
  86. package/dist/progression-core.d.ts.map +1 -0
  87. package/dist/progression-core.js +232 -0
  88. package/dist/progression-core.js.map +1 -0
  89. package/dist/progression-core.test.d.ts +2 -0
  90. package/dist/progression-core.test.d.ts.map +1 -0
  91. package/dist/progression-core.test.js +328 -0
  92. package/dist/progression-core.test.js.map +1 -0
  93. package/dist/rumor-propagation.d.ts +31 -0
  94. package/dist/rumor-propagation.d.ts.map +1 -0
  95. package/dist/rumor-propagation.js +180 -0
  96. package/dist/rumor-propagation.js.map +1 -0
  97. package/dist/rumor-propagation.test.d.ts +2 -0
  98. package/dist/rumor-propagation.test.d.ts.map +1 -0
  99. package/dist/rumor-propagation.test.js +176 -0
  100. package/dist/rumor-propagation.test.js.map +1 -0
  101. package/dist/simulation-inspector.d.ts +78 -0
  102. package/dist/simulation-inspector.d.ts.map +1 -0
  103. package/dist/simulation-inspector.js +263 -0
  104. package/dist/simulation-inspector.js.map +1 -0
  105. package/dist/simulation-inspector.test.d.ts +2 -0
  106. package/dist/simulation-inspector.test.d.ts.map +1 -0
  107. package/dist/simulation-inspector.test.js +152 -0
  108. package/dist/simulation-inspector.test.js.map +1 -0
  109. package/dist/status-core.d.ts +17 -0
  110. package/dist/status-core.d.ts.map +1 -0
  111. package/dist/status-core.js +106 -0
  112. package/dist/status-core.js.map +1 -0
  113. package/dist/traversal-core.d.ts +3 -0
  114. package/dist/traversal-core.d.ts.map +1 -0
  115. package/dist/traversal-core.js +93 -0
  116. package/dist/traversal-core.js.map +1 -0
  117. package/package.json +34 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faction-cognition.test.js","sourceRoot":"","sources":["../src/faction-cognition.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ export { traversalCore } from './traversal-core.js';
2
+ export { statusCore, applyStatus, removeStatus, hasStatus, getStatusStacks } from './status-core.js';
3
+ export { combatCore, createCombatCore } from './combat-core.js';
4
+ export type { CombatFormulas } from './combat-core.js';
5
+ export { inventoryCore, createInventoryCore, giveItem } from './inventory-core.js';
6
+ export type { ItemEffect } from './inventory-core.js';
7
+ export { createDialogueCore } from './dialogue-core.js';
8
+ export type { DialogueState, DialogueRegistry } from './dialogue-core.js';
9
+ export { createNarrativeAuthority, recordPresentation, revealTruth, getHiddenTruths, getRevealedTruths } from './narrative-authority.js';
10
+ export type { NarratorPersonality, NarrativeAuthorityState, Contradiction } from './narrative-authority.js';
11
+ export { createCognitionCore, getCognition, setBelief, getBelief, getBeliefValue, believes, addMemory, getMemories, getRecentMemories, checkPerception, selectIntent, reinforceBelief, processBeliefDecay, aggressiveProfile, cautiousProfile, } from './cognition-core.js';
12
+ export type { Belief, Memory, CognitionState, CognitionCoreConfig, BeliefDecayConfig, PerceptionCheck, PerceptionResult, IntentOption, IntentProfile, } from './cognition-core.js';
13
+ export { createPerceptionFilter, getPerceptionLog, getRecentPerceptions, didPerceive, whoPerceived, } from './perception-filter.js';
14
+ export type { SenseType, PerceivedEvent, PerceptionLayer, PerceptionFilterConfig, } from './perception-filter.js';
15
+ export { createProgressionCore, getCurrency, addCurrency, spendCurrency, getUnlockedNodes, isNodeUnlocked, canUnlock, unlockNode, getAvailableNodes, } from './progression-core.js';
16
+ export type { ProgressionState, ProgressionEvent, CurrencyReward, ProgressionCoreConfig, EffectHandler, UnlockResult, } from './progression-core.js';
17
+ export { createEnvironmentCore, getZoneProperty, setZoneProperty, modifyZoneProperty, getHazardLog, processEnvironmentDecays, zoneHasTag, entitiesInZone, } from './environment-core.js';
18
+ export type { EnvironmentRule, HazardDefinition, ZoneTickEffect, EnvironmentCoreConfig, EnvironmentState, HazardEvent, } from './environment-core.js';
19
+ export { createFactionCognition, getFactionCognition, getEntityFaction, getFactionMembers, setFactionBelief, getFactionBelief, factionBelieves, getFactionBeliefsAbout, } from './faction-cognition.js';
20
+ export type { FactionBelief, FactionCognitionState, FactionMembership, FactionCognitionConfig, } from './faction-cognition.js';
21
+ export { createRumorPropagation, getRumorsFrom, getRumorsToFaction, getRumorLog, } from './rumor-propagation.js';
22
+ export type { RumorRecord, RumorPropagationConfig, } from './rumor-propagation.js';
23
+ export { createDistrictCore, getDistrictForZone, getDistrictState, getDistrictDefinition, getAllDistrictIds, getDistrictMetric, modifyDistrictMetric, isDistrictOnAlert, getDistrictThreatLevel, } from './district-core.js';
24
+ export type { DistrictMetrics, DistrictDefinition, DistrictState, DistrictDecayConfig, DistrictCoreConfig, } from './district-core.js';
25
+ export { createBeliefProvenance, traceEntityBelief, traceFactionBelief, traceSubject, formatBeliefTrace, } from './belief-provenance.js';
26
+ export type { TraceStep, BeliefTrace, } from './belief-provenance.js';
27
+ export { createObserverPresentation, presentForObserver, presentForAllObservers, getDivergences, getEventDivergences, } from './observer-presentation.js';
28
+ export type { ObserverContext, PresentationRule, ObserverPresentedEvent, ObserverPresentationConfig, DivergenceRecord, } from './observer-presentation.js';
29
+ export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
30
+ export type { EntityInspection, FactionInspection, ZoneInspection, DistrictInspection, SimulationSnapshot, } from './simulation-inspector.js';
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ // @ai-rpg-engine/modules — built-in mechanical systems
2
+ export { traversalCore } from './traversal-core.js';
3
+ export { statusCore, applyStatus, removeStatus, hasStatus, getStatusStacks } from './status-core.js';
4
+ export { combatCore, createCombatCore } from './combat-core.js';
5
+ export { inventoryCore, createInventoryCore, giveItem } from './inventory-core.js';
6
+ export { createDialogueCore } from './dialogue-core.js';
7
+ export { createNarrativeAuthority, recordPresentation, revealTruth, getHiddenTruths, getRevealedTruths } from './narrative-authority.js';
8
+ export { createCognitionCore, getCognition, setBelief, getBelief, getBeliefValue, believes, addMemory, getMemories, getRecentMemories, checkPerception, selectIntent, reinforceBelief, processBeliefDecay, aggressiveProfile, cautiousProfile, } from './cognition-core.js';
9
+ export { createPerceptionFilter, getPerceptionLog, getRecentPerceptions, didPerceive, whoPerceived, } from './perception-filter.js';
10
+ export { createProgressionCore, getCurrency, addCurrency, spendCurrency, getUnlockedNodes, isNodeUnlocked, canUnlock, unlockNode, getAvailableNodes, } from './progression-core.js';
11
+ export { createEnvironmentCore, getZoneProperty, setZoneProperty, modifyZoneProperty, getHazardLog, processEnvironmentDecays, zoneHasTag, entitiesInZone, } from './environment-core.js';
12
+ export { createFactionCognition, getFactionCognition, getEntityFaction, getFactionMembers, setFactionBelief, getFactionBelief, factionBelieves, getFactionBeliefsAbout, } from './faction-cognition.js';
13
+ export { createRumorPropagation, getRumorsFrom, getRumorsToFaction, getRumorLog, } from './rumor-propagation.js';
14
+ export { createDistrictCore, getDistrictForZone, getDistrictState, getDistrictDefinition, getAllDistrictIds, getDistrictMetric, modifyDistrictMetric, isDistrictOnAlert, getDistrictThreatLevel, } from './district-core.js';
15
+ export { createBeliefProvenance, traceEntityBelief, traceFactionBelief, traceSubject, formatBeliefTrace, } from './belief-provenance.js';
16
+ export { createObserverPresentation, presentForObserver, presentForAllObservers, getDivergences, getEventDivergences, } from './observer-presentation.js';
17
+ export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEzI,OAAO,EACL,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,SAAS,EACT,cAAc,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,YAAY,GACb,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,UAAU,EACV,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,YAAY,EACZ,wBAAwB,EACxB,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAOhC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,kBAAkB,EAClB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GACzB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { EngineModule, ActionIntent, WorldState, ResolvedEvent } from '@ai-rpg-engine/core';
2
+ export type ItemEffect = {
3
+ itemId: string;
4
+ use: (action: ActionIntent, world: WorldState) => ResolvedEvent[];
5
+ };
6
+ export declare function createInventoryCore(itemEffects?: ItemEffect[]): EngineModule;
7
+ export declare const inventoryCore: EngineModule;
8
+ /** Helper: add an item to an entity's inventory */
9
+ export declare function giveItem(entity: import('@ai-rpg-engine/core').EntityState, itemId: string, tick: number): ResolvedEvent;
10
+ //# sourceMappingURL=inventory-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory-core.d.ts","sourceRoot":"","sources":["../src/inventory-core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACd,MAAM,qBAAqB,CAAC;AAG7B,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,KAAK,aAAa,EAAE,CAAC;CACnE,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,CAgB5E;AAED,eAAO,MAAM,aAAa,EAAE,YAAoC,CAAC;AAwCjE,mDAAmD;AACnD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,qBAAqB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAUvH"}
@@ -0,0 +1,69 @@
1
+ // inventory-core — item ownership, use, acquire
2
+ import { nextId } from '@ai-rpg-engine/core';
3
+ export function createInventoryCore(itemEffects) {
4
+ const effectMap = new Map();
5
+ if (itemEffects) {
6
+ for (const ie of itemEffects) {
7
+ effectMap.set(ie.itemId, ie.use);
8
+ }
9
+ }
10
+ return {
11
+ id: 'inventory-core',
12
+ version: '0.1.0',
13
+ register(ctx) {
14
+ ctx.actions.registerVerb('use', (action, world) => useHandler(action, world, effectMap));
15
+ },
16
+ };
17
+ }
18
+ export const inventoryCore = createInventoryCore();
19
+ function useHandler(action, world, effectMap) {
20
+ const actor = world.entities[action.actorId];
21
+ if (!actor) {
22
+ return [makeEvent(action, 'action.rejected', { reason: 'actor not found' })];
23
+ }
24
+ const itemId = action.toolId ?? action.targetIds?.[0];
25
+ if (!itemId) {
26
+ return [makeEvent(action, 'action.rejected', { reason: 'no item specified' })];
27
+ }
28
+ const inventory = actor.inventory ?? [];
29
+ const itemIndex = inventory.indexOf(itemId);
30
+ if (itemIndex === -1) {
31
+ return [makeEvent(action, 'action.rejected', { reason: `you don't have ${itemId}` })];
32
+ }
33
+ // Apply effect if registered
34
+ const effect = effectMap.get(itemId);
35
+ const effectEvents = effect ? effect(action, world) : [];
36
+ // Remove from inventory (consumable)
37
+ inventory.splice(itemIndex, 1);
38
+ return [
39
+ makeEvent(action, 'item.used', {
40
+ entityId: actor.id,
41
+ itemId,
42
+ consumed: true,
43
+ }),
44
+ ...effectEvents,
45
+ ];
46
+ }
47
+ /** Helper: add an item to an entity's inventory */
48
+ export function giveItem(entity, itemId, tick) {
49
+ if (!entity.inventory)
50
+ entity.inventory = [];
51
+ entity.inventory.push(itemId);
52
+ return {
53
+ id: nextId('evt'),
54
+ tick,
55
+ type: 'item.acquired',
56
+ actorId: entity.id,
57
+ payload: { itemId },
58
+ };
59
+ }
60
+ function makeEvent(action, type, payload) {
61
+ return {
62
+ id: nextId('evt'),
63
+ tick: action.issuedAtTick,
64
+ type,
65
+ actorId: action.actorId,
66
+ payload,
67
+ };
68
+ }
69
+ //# sourceMappingURL=inventory-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inventory-core.js","sourceRoot":"","sources":["../src/inventory-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=knowledge-decay.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-decay.test.d.ts","sourceRoot":"","sources":["../src/knowledge-decay.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ import { describe, test, expect } from 'vitest';
2
+ import { createTestEngine } from '@ai-rpg-engine/core';
3
+ import { createCognitionCore, getCognition, setBelief, getBelief, reinforceBelief, processBeliefDecay, } from './cognition-core.js';
4
+ import { createEnvironmentCore, setZoneProperty } from './environment-core.js';
5
+ const guard = {
6
+ id: 'guard_1',
7
+ blueprintId: 'guard',
8
+ type: 'npc',
9
+ name: 'Guard',
10
+ tags: ['enemy'],
11
+ stats: { vigor: 5, instinct: 6, will: 4 },
12
+ resources: { hp: 20 },
13
+ statuses: [],
14
+ zoneId: 'hall',
15
+ ai: { profileId: 'aggressive', goals: ['guard'], fears: [], alertLevel: 0, knowledge: {} },
16
+ };
17
+ const player = {
18
+ id: 'player',
19
+ blueprintId: 'player',
20
+ type: 'player',
21
+ name: 'Hero',
22
+ tags: ['player'],
23
+ stats: { vigor: 7, instinct: 5, will: 5 },
24
+ resources: { hp: 30 },
25
+ statuses: [],
26
+ zoneId: 'hall',
27
+ };
28
+ const zones = [
29
+ { id: 'hall', roomId: 'castle', name: 'Great Hall', tags: [], neighbors: [] },
30
+ ];
31
+ describe('knowledge-decay', () => {
32
+ function createEngine(decayConfig) {
33
+ return createTestEngine({
34
+ modules: [
35
+ createCognitionCore({ decay: decayConfig }),
36
+ createEnvironmentCore(),
37
+ ],
38
+ entities: [player, { ...guard }],
39
+ zones,
40
+ playerId: 'player',
41
+ startZone: 'hall',
42
+ });
43
+ }
44
+ test('beliefs decay over time on cognition-tick', () => {
45
+ const engine = createEngine({ baseRate: 0.1 });
46
+ const cog = getCognition(engine.world, 'guard_1');
47
+ setBelief(cog, 'player', 'hostile', true, 0.8, 'observed', 0);
48
+ // Advance many ticks so decay accumulates
49
+ for (let i = 0; i < 5; i++) {
50
+ engine.store.advanceTick();
51
+ }
52
+ engine.submitAction('cognition-tick');
53
+ const belief = getBelief(cog, 'player', 'hostile');
54
+ expect(belief).toBeDefined();
55
+ // confidence should have decayed: 0.8 - 0.1 * elapsed * modifier
56
+ expect(belief.confidence).toBeLessThan(0.8);
57
+ });
58
+ test('beliefs are pruned below threshold', () => {
59
+ const engine = createEngine({ baseRate: 0.5, pruneThreshold: 0.1 });
60
+ const cog = getCognition(engine.world, 'guard_1');
61
+ setBelief(cog, 'player', 'hostile', true, 0.3, 'observed', 0);
62
+ // Advance far enough for full decay
63
+ for (let i = 0; i < 10; i++) {
64
+ engine.store.advanceTick();
65
+ }
66
+ engine.submitAction('cognition-tick');
67
+ const belief = getBelief(cog, 'player', 'hostile');
68
+ expect(belief).toBeUndefined(); // Should have been pruned
69
+ });
70
+ test('reinforceBelief resets decay clock', () => {
71
+ const engine = createEngine({ baseRate: 0.1 });
72
+ const cog = getCognition(engine.world, 'guard_1');
73
+ setBelief(cog, 'player', 'hostile', true, 0.8, 'observed', 0);
74
+ // Advance 3 ticks
75
+ for (let i = 0; i < 3; i++) {
76
+ engine.store.advanceTick();
77
+ }
78
+ // Reinforce at current tick
79
+ reinforceBelief(cog, 'player', 'hostile', engine.world.meta.tick);
80
+ // Advance 1 more tick
81
+ engine.store.advanceTick();
82
+ engine.submitAction('cognition-tick');
83
+ const belief = getBelief(cog, 'player', 'hostile');
84
+ expect(belief).toBeDefined();
85
+ // Only 1 tick elapsed since reinforcement, so minimal decay
86
+ expect(belief.confidence).toBeGreaterThan(0.7);
87
+ });
88
+ test('reinforceBelief can boost confidence', () => {
89
+ const engine = createEngine();
90
+ const cog = getCognition(engine.world, 'guard_1');
91
+ setBelief(cog, 'player', 'hostile', true, 0.5, 'observed', 0);
92
+ reinforceBelief(cog, 'player', 'hostile', 1, 0.2);
93
+ const belief = getBelief(cog, 'player', 'hostile');
94
+ expect(belief.confidence).toBe(0.7);
95
+ });
96
+ test('environmental instability accelerates decay', () => {
97
+ const engine = createEngine({ baseRate: 0.05, instabilityFactor: 2.0 });
98
+ const cog = getCognition(engine.world, 'guard_1');
99
+ setBelief(cog, 'player', 'hostile', true, 0.8, 'observed', 0);
100
+ // Make the environment unstable (high noise, no stability set so defaults to 0)
101
+ setZoneProperty(engine.world, 'hall', 'noise', 8);
102
+ // Advance ticks
103
+ for (let i = 0; i < 3; i++) {
104
+ engine.store.advanceTick();
105
+ }
106
+ engine.submitAction('cognition-tick');
107
+ const belief = getBelief(cog, 'player', 'hostile');
108
+ // Should decay faster due to instability
109
+ expect(belief).toBeDefined();
110
+ expect(belief.confidence).toBeLessThan(0.6);
111
+ });
112
+ test('recent beliefs do not decay', () => {
113
+ const engine = createEngine({ baseRate: 0.1 });
114
+ const cog = getCognition(engine.world, 'guard_1');
115
+ // Set belief at current tick
116
+ const currentTick = engine.world.meta.tick;
117
+ setBelief(cog, 'player', 'hostile', true, 0.8, 'observed', currentTick);
118
+ engine.submitAction('cognition-tick');
119
+ const belief = getBelief(cog, 'player', 'hostile');
120
+ // No elapsed ticks since belief was formed, so no decay
121
+ expect(belief.confidence).toBe(0.8);
122
+ });
123
+ test('suspicion also decays on cognition-tick', () => {
124
+ const engine = createEngine();
125
+ const cog = getCognition(engine.world, 'guard_1');
126
+ cog.suspicion = 50;
127
+ engine.submitAction('cognition-tick');
128
+ expect(cog.suspicion).toBe(49);
129
+ });
130
+ test('processBeliefDecay can be called directly', () => {
131
+ const engine = createEngine();
132
+ const cog = getCognition(engine.world, 'guard_1');
133
+ setBelief(cog, 'player', 'hostile', true, 0.8, 'observed', 0);
134
+ // Advance ticks
135
+ for (let i = 0; i < 5; i++) {
136
+ engine.store.advanceTick();
137
+ }
138
+ processBeliefDecay(engine.world, { baseRate: 0.1, pruneThreshold: 0.05, instabilityFactor: 0.5 });
139
+ const belief = getBelief(cog, 'player', 'hostile');
140
+ expect(belief.confidence).toBeLessThan(0.8);
141
+ });
142
+ });
143
+ //# sourceMappingURL=knowledge-decay.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-decay.test.js","sourceRoot":"","sources":["../src/knowledge-decay.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { EngineModule, ResolvedEvent } from '@ai-rpg-engine/core';
2
+ import { PresentationChannels, type ChannelFilter, type PresentedEvent } from '@ai-rpg-engine/core';
3
+ export type NarratorPersonality = {
4
+ /** Narrator voice name */
5
+ voice: string;
6
+ /** Base distortion level 0-1. 0 = truthful, 1 = fully unreliable */
7
+ distortion: number;
8
+ /** Event types the narrator will try to conceal */
9
+ conceals?: string[];
10
+ /** Event types the narrator will distort */
11
+ distorts?: string[];
12
+ /** Custom filter for narrator channel */
13
+ filter?: ChannelFilter;
14
+ };
15
+ export type NarrativeAuthorityState = {
16
+ objectiveLog: ResolvedEvent[];
17
+ presentedLog: PresentedEvent[];
18
+ contradictions: Contradiction[];
19
+ revealedTruths: string[];
20
+ };
21
+ export type Contradiction = {
22
+ eventId: string;
23
+ objectiveType: string;
24
+ presentedType: string;
25
+ field?: string;
26
+ objectiveValue: unknown;
27
+ presentedValue: unknown;
28
+ discovered: boolean;
29
+ discoveredAtTick?: number;
30
+ };
31
+ export declare function createNarrativeAuthority(channels: PresentationChannels, personality?: NarratorPersonality): EngineModule;
32
+ /** Record what the player was shown vs what really happened */
33
+ export declare function recordPresentation(state: NarrativeAuthorityState, objective: ResolvedEvent, presented: PresentedEvent[]): void;
34
+ /** Reveal a truth — mark a contradiction as discovered */
35
+ export declare function revealTruth(state: NarrativeAuthorityState, eventId: string, tick: number): Contradiction | undefined;
36
+ /** Get all undiscovered contradictions */
37
+ export declare function getHiddenTruths(state: NarrativeAuthorityState): Contradiction[];
38
+ /** Get all discovered contradictions */
39
+ export declare function getRevealedTruths(state: NarrativeAuthorityState): Contradiction[];
40
+ //# sourceMappingURL=narrative-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrative-authority.d.ts","sourceRoot":"","sources":["../src/narrative-authority.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpG,MAAM,MAAM,mBAAmB,GAAG;IAChC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,aAAa,EAAE,CAAC;IAC9B,YAAY,EAAE,cAAc,EAAE,CAAC;IAC/B,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,CAAC,EAAE,mBAAmB,GAChC,YAAY,CAsDd;AAED,+DAA+D;AAC/D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,uBAAuB,EAC9B,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,cAAc,EAAE,GAC1B,IAAI,CAqBN;AAED,0DAA0D;AAC1D,wBAAgB,WAAW,CACzB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACX,aAAa,GAAG,SAAS,CAU3B;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,aAAa,EAAE,CAE/E;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,GAAG,aAAa,EAAE,CAEjF"}
@@ -0,0 +1,89 @@
1
+ // narrative-authority — the narrator can lie, conceal, and distort
2
+ export function createNarrativeAuthority(channels, personality) {
3
+ const state = {
4
+ objectiveLog: [],
5
+ presentedLog: [],
6
+ contradictions: [],
7
+ revealedTruths: [],
8
+ };
9
+ return {
10
+ id: 'narrative-authority',
11
+ version: '0.1.0',
12
+ register(ctx) {
13
+ ctx.persistence.registerNamespace('narrative-authority', state);
14
+ // Install narrator filter on the narrator channel
15
+ if (personality?.filter) {
16
+ channels.addFilter('narrator', personality.filter);
17
+ }
18
+ // Default concealment: suppress events the narrator wants hidden
19
+ if (personality?.conceals?.length) {
20
+ channels.addFilter('narrator', (event) => {
21
+ if (personality.conceals.includes(event.type)) {
22
+ return null; // Suppressed — the narrator hides this
23
+ }
24
+ return event;
25
+ });
26
+ }
27
+ // Default distortion: modify events the narrator wants to twist
28
+ if (personality?.distorts?.length) {
29
+ channels.addFilter('narrator', (event) => {
30
+ if (!personality.distorts.includes(event.type))
31
+ return event;
32
+ // Apply distortion: clone and mark as distorted
33
+ return {
34
+ ...event,
35
+ payload: { ...event.payload, _narratorDistorted: true },
36
+ tags: [...(event.tags ?? []), 'narrator-distorted'],
37
+ };
38
+ });
39
+ }
40
+ // Listen to all events and track objective truth
41
+ ctx.events.on('*', (event) => {
42
+ state.objectiveLog.push(event);
43
+ });
44
+ },
45
+ init() {
46
+ // After all modules registered, nothing extra needed
47
+ },
48
+ };
49
+ }
50
+ /** Record what the player was shown vs what really happened */
51
+ export function recordPresentation(state, objective, presented) {
52
+ state.presentedLog.push(...presented);
53
+ // Detect contradictions
54
+ for (const p of presented) {
55
+ if (p._filtered && p._channel === 'narrator') {
56
+ const contradiction = {
57
+ eventId: objective.id,
58
+ objectiveType: objective.type,
59
+ presentedType: p.type,
60
+ objectiveValue: objective.payload,
61
+ presentedValue: p.payload,
62
+ discovered: false,
63
+ };
64
+ // Check if payload was actually changed
65
+ if (JSON.stringify(objective.payload) !== JSON.stringify(p.payload)) {
66
+ state.contradictions.push(contradiction);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ /** Reveal a truth — mark a contradiction as discovered */
72
+ export function revealTruth(state, eventId, tick) {
73
+ const contradiction = state.contradictions.find((c) => c.eventId === eventId && !c.discovered);
74
+ if (contradiction) {
75
+ contradiction.discovered = true;
76
+ contradiction.discoveredAtTick = tick;
77
+ state.revealedTruths.push(eventId);
78
+ }
79
+ return contradiction;
80
+ }
81
+ /** Get all undiscovered contradictions */
82
+ export function getHiddenTruths(state) {
83
+ return state.contradictions.filter((c) => !c.discovered);
84
+ }
85
+ /** Get all discovered contradictions */
86
+ export function getRevealedTruths(state) {
87
+ return state.contradictions.filter((c) => c.discovered);
88
+ }
89
+ //# sourceMappingURL=narrative-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrative-authority.js","sourceRoot":"","sources":["../src/narrative-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=narrative-authority.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"narrative-authority.test.d.ts","sourceRoot":"","sources":["../src/narrative-authority.test.ts"],"names":[],"mappings":""}