@ai-rpg-engine/modules 1.0.1 → 2.0.1

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/dist/index.d.ts CHANGED
@@ -28,4 +28,6 @@ export { createObserverPresentation, presentForObserver, presentForAllObservers,
28
28
  export type { ObserverContext, PresentationRule, ObserverPresentedEvent, ObserverPresentationConfig, DivergenceRecord, } from './observer-presentation.js';
29
29
  export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
30
30
  export type { EntityInspection, FactionInspection, ZoneInspection, DistrictInspection, SimulationSnapshot, } from './simulation-inspector.js';
31
+ export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescriptor, } from './social-consequence.js';
32
+ export type { Stance, ReputationConsequence, TitleEvolution, } from './social-consequence.js';
31
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,4 +15,5 @@ export { createDistrictCore, getDistrictForZone, getDistrictState, getDistrictDe
15
15
  export { createBeliefProvenance, traceEntityBelief, traceFactionBelief, traceSubject, formatBeliefTrace, } from './belief-provenance.js';
16
16
  export { createObserverPresentation, presentForObserver, presentForAllObservers, getDivergences, getEventDivergences, } from './observer-presentation.js';
17
17
  export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
18
+ export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescriptor, } from './social-consequence.js';
18
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +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"}
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;AAQnC,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,43 @@
1
+ export type Stance = 'hostile' | 'fearful' | 'awed' | 'pitying' | 'opportunistic' | 'kinship' | 'neutral';
2
+ export type ReputationConsequence = {
3
+ /** Price multiplier: < 1 = discount, > 1 = markup */
4
+ priceModifier: number;
5
+ /** Access level granted by the faction */
6
+ accessLevel: 'denied' | 'restricted' | 'normal' | 'privileged';
7
+ /** One-liner for prompt injection describing faction attitude */
8
+ dialogueBias: string;
9
+ };
10
+ export type TitleEvolution = {
11
+ /** Prepend to current title */
12
+ prefix?: string;
13
+ /** Append to current title */
14
+ suffix?: string;
15
+ /** Full replacement (overrides prefix/suffix) */
16
+ replace?: string;
17
+ /** All of these milestone tags must be present */
18
+ requiredTags: string[];
19
+ /** Minimum count of each required tag (default: 1) */
20
+ minCount?: number;
21
+ };
22
+ /**
23
+ * Derive an NPC's social stance toward the player.
24
+ * Priority cascade — first matching condition wins.
25
+ */
26
+ export declare function deriveStance(reputationValue: number, cognition: {
27
+ morale: number;
28
+ suspicion: number;
29
+ }, alertLevel: number): Stance;
30
+ /**
31
+ * Map a reputation value to mechanical consequences.
32
+ */
33
+ export declare function getReputationConsequence(reputationValue: number): ReputationConsequence;
34
+ /**
35
+ * Check if milestone tags qualify for a title evolution.
36
+ * Returns the evolved title, or the current title if no evolution matches.
37
+ */
38
+ export declare function evolveTitle(currentTitle: string | undefined, milestoneTags: string[], evolutions: TitleEvolution[]): string | undefined;
39
+ /**
40
+ * Build a rumorized identity string for how NPCs describe the player.
41
+ */
42
+ export declare function buildPlayerDescriptor(name: string, archetypeId: string, level: number, injuryNames: string[], titleStr?: string): string;
43
+ //# sourceMappingURL=social-consequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-consequence.d.ts","sourceRoot":"","sources":["../src/social-consequence.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,MAAM,GACd,SAAS,GACT,SAAS,GACT,MAAM,GACN,SAAS,GACT,eAAe,GACf,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,MAAM,qBAAqB,GAAG;IAClC,qDAAqD;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,0CAA0C;IAC1C,WAAW,EAAE,QAAQ,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC/D,iEAAiE;IACjE,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,MAAM,EACvB,SAAS,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAChD,UAAU,EAAE,MAAM,GACjB,MAAM,CAQR;AAID;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,qBAAqB,CAcvF;AAID;;;GAGG;AACH,wBAAgB,WAAW,CACzB,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,EAAE,cAAc,EAAE,GAC3B,MAAM,GAAG,SAAS,CAqBpB;AAID;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAgBR"}
@@ -0,0 +1,87 @@
1
+ // social-consequence — pure helpers for deriving social reactions
2
+ // No module registration; operates on existing cognition/faction/reputation data.
3
+ // --- Stance Derivation ---
4
+ /**
5
+ * Derive an NPC's social stance toward the player.
6
+ * Priority cascade — first matching condition wins.
7
+ */
8
+ export function deriveStance(reputationValue, cognition, alertLevel) {
9
+ if (reputationValue <= -60)
10
+ return 'hostile';
11
+ if (cognition.suspicion >= 80)
12
+ return 'fearful';
13
+ if (reputationValue >= 60)
14
+ return 'awed';
15
+ if (cognition.morale <= 20)
16
+ return 'pitying';
17
+ if (alertLevel >= 50 && reputationValue < 0)
18
+ return 'opportunistic';
19
+ if (reputationValue >= 30)
20
+ return 'kinship';
21
+ return 'neutral';
22
+ }
23
+ // --- Reputation Consequences ---
24
+ /**
25
+ * Map a reputation value to mechanical consequences.
26
+ */
27
+ export function getReputationConsequence(reputationValue) {
28
+ if (reputationValue <= -60) {
29
+ return { priceModifier: 1.5, accessLevel: 'denied', dialogueBias: 'This one is not welcome here.' };
30
+ }
31
+ if (reputationValue <= -20) {
32
+ return { priceModifier: 1.3, accessLevel: 'restricted', dialogueBias: 'Watch this one carefully.' };
33
+ }
34
+ if (reputationValue >= 60) {
35
+ return { priceModifier: 0.7, accessLevel: 'privileged', dialogueBias: 'We are honored by your presence.' };
36
+ }
37
+ if (reputationValue >= 20) {
38
+ return { priceModifier: 0.9, accessLevel: 'normal', dialogueBias: 'A friend of the faction.' };
39
+ }
40
+ return { priceModifier: 1.0, accessLevel: 'normal', dialogueBias: '' };
41
+ }
42
+ // --- Title Evolution ---
43
+ /**
44
+ * Check if milestone tags qualify for a title evolution.
45
+ * Returns the evolved title, or the current title if no evolution matches.
46
+ */
47
+ export function evolveTitle(currentTitle, milestoneTags, evolutions) {
48
+ // Count tag occurrences
49
+ const tagCounts = new Map();
50
+ for (const tag of milestoneTags) {
51
+ tagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);
52
+ }
53
+ for (const evo of evolutions) {
54
+ const minCount = evo.minCount ?? 1;
55
+ const qualifies = evo.requiredTags.every((tag) => (tagCounts.get(tag) ?? 0) >= minCount);
56
+ if (!qualifies)
57
+ continue;
58
+ if (evo.replace)
59
+ return evo.replace;
60
+ if (!currentTitle)
61
+ continue;
62
+ if (evo.prefix)
63
+ return `${evo.prefix} ${currentTitle}`;
64
+ if (evo.suffix)
65
+ return `${currentTitle} ${evo.suffix}`;
66
+ }
67
+ return currentTitle;
68
+ }
69
+ // --- Player Descriptor (for rumors) ---
70
+ /**
71
+ * Build a rumorized identity string for how NPCs describe the player.
72
+ */
73
+ export function buildPlayerDescriptor(name, archetypeId, level, injuryNames, titleStr) {
74
+ const parts = [];
75
+ if (titleStr) {
76
+ parts.push(`${name} "${titleStr}"`);
77
+ }
78
+ else {
79
+ parts.push(name);
80
+ }
81
+ parts.push(`a level ${level} ${archetypeId}`);
82
+ if (injuryNames.length > 0) {
83
+ parts.push(`bearing ${injuryNames.join(' and ')}`);
84
+ }
85
+ return parts.join(', ');
86
+ }
87
+ //# sourceMappingURL=social-consequence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social-consequence.js","sourceRoot":"","sources":["../src/social-consequence.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-rpg-engine/modules",
3
- "version": "1.0.1",
3
+ "version": "2.0.1",
4
4
  "description": "AI RPG Engine built-in modules: combat, dialogue, inventory, traversal, status",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -11,7 +11,9 @@
11
11
  "import": "./dist/index.js"
12
12
  }
13
13
  },
14
- "files": ["dist"],
14
+ "files": [
15
+ "dist"
16
+ ],
15
17
  "scripts": {
16
18
  "build": "tsc",
17
19
  "test": "vitest run"
@@ -28,6 +30,18 @@
28
30
  "url": "https://github.com/mcp-tool-shop-org/ai-rpg-engine.git",
29
31
  "directory": "packages/modules"
30
32
  },
33
+ "keywords": [
34
+ "rpg",
35
+ "game-engine",
36
+ "simulation",
37
+ "combat",
38
+ "perception",
39
+ "cognition",
40
+ "factions"
41
+ ],
42
+ "bugs": {
43
+ "url": "https://github.com/mcp-tool-shop-org/ai-rpg-engine/issues"
44
+ },
31
45
  "engines": {
32
46
  "node": ">=20"
33
47
  }