@ai-rpg-engine/modules 2.0.2 → 2.0.4

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
@@ -32,4 +32,8 @@ export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescrip
32
32
  export type { Stance, ReputationConsequence, TitleEvolution, } from './social-consequence.js';
33
33
  export { spawnPlayerRumor, spawnReputationRumor, propagateRumor, shouldMutate, mutateRumorClaim, deriveRumorValence, getRumorsKnownToFaction, getRumorsInDistrict, formatRumorForDirector, } from './player-rumor.js';
34
34
  export type { PlayerRumor, RumorValence, RumorMutation, MilestoneHint, } from './player-rumor.js';
35
+ export { evaluatePressures, tickPressures, getPressuresForFaction, getVisiblePressures, formatPressureForDirector, formatPressureForNarrator, formatPressureForDialogue, makePressure, } from './pressure-system.js';
36
+ export type { PressureKind, PressureVisibility, WorldPressure, PressureInputs, PressureSpawnResult, PressureTickResult, } from './pressure-system.js';
37
+ export { computeFallout, formatFalloutForDirector, formatFalloutForNarrator, } from './pressure-resolution.js';
38
+ export type { ResolutionType, PressureResolution, FalloutEffect, PressureFallout, FalloutContext, } from './pressure-resolution.js';
35
39
  //# 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
@@ -17,4 +17,6 @@ export { createObserverPresentation, presentForObserver, presentForAllObservers,
17
17
  export { createSimulationInspector, inspectEntity, inspectAllEntities, inspectFaction, inspectAllFactions, inspectZone, inspectAllZones, inspectDistrict, inspectAllDistricts, createSnapshot, formatEntityInspection, formatFactionInspection, formatDistrictInspection, } from './simulation-inspector.js';
18
18
  export { deriveStance, getReputationConsequence, evolveTitle, buildPlayerDescriptor, } from './social-consequence.js';
19
19
  export { spawnPlayerRumor, spawnReputationRumor, propagateRumor, shouldMutate, mutateRumorClaim, deriveRumorValence, getRumorsKnownToFaction, getRumorsInDistrict, formatRumorForDirector, } from './player-rumor.js';
20
+ export { evaluatePressures, tickPressures, getPressuresForFaction, getVisiblePressures, formatPressureForDirector, formatPressureForNarrator, formatPressureForDialogue, makePressure, } from './pressure-system.js';
21
+ export { computeFallout, formatFalloutForDirector, formatFalloutForNarrator, } from './pressure-resolution.js';
20
22
  //# 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;AAQnC,OAAO,EACL,YAAY,EACZ,wBAAwB,EACxB,WAAW,EACX,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import type { PressureKind, PressureVisibility, WorldPressure } from './pressure-system.js';
2
+ import type { RumorValence } from './player-rumor.js';
3
+ export type ResolutionType = 'resolved-by-player' | 'resolved-by-faction' | 'escalated' | 'failed' | 'transformed' | 'superseded' | 'expired-ignored';
4
+ export type PressureResolution = {
5
+ pressureId: string;
6
+ pressureKind: PressureKind;
7
+ resolutionType: ResolutionType;
8
+ /** 'player' | factionId | 'expiry' */
9
+ resolvedBy: string;
10
+ resolvedAtTick: number;
11
+ /** How widely the resolution is known */
12
+ resolutionVisibility: PressureVisibility;
13
+ };
14
+ export type FalloutEffect = {
15
+ type: 'reputation';
16
+ factionId: string;
17
+ delta: number;
18
+ } | {
19
+ type: 'alert';
20
+ factionId: string;
21
+ delta: number;
22
+ } | {
23
+ type: 'district';
24
+ districtId: string;
25
+ metric: string;
26
+ delta: number;
27
+ } | {
28
+ type: 'rumor';
29
+ claim: string;
30
+ valence: RumorValence;
31
+ spreadTo: string[];
32
+ } | {
33
+ type: 'spawn-pressure';
34
+ kind: PressureKind;
35
+ sourceFactionId: string;
36
+ description: string;
37
+ urgency: number;
38
+ tags: string[];
39
+ } | {
40
+ type: 'milestone-tag';
41
+ tag: string;
42
+ } | {
43
+ type: 'title-trigger';
44
+ tag: string;
45
+ };
46
+ export type PressureFallout = {
47
+ resolution: PressureResolution;
48
+ effects: FalloutEffect[];
49
+ /** One-line summary for director mode */
50
+ summary: string;
51
+ };
52
+ export type FalloutContext = {
53
+ resolvedBy: string;
54
+ currentTick: number;
55
+ playerDistrictId?: string;
56
+ resolutionVisibility?: PressureVisibility;
57
+ };
58
+ /**
59
+ * Compute structured fallout from a resolved pressure.
60
+ * Pure function — returns effects for the product layer to apply.
61
+ */
62
+ export declare function computeFallout(pressure: WorldPressure, resolutionType: ResolutionType, genre: string, ctx: FalloutContext): PressureFallout;
63
+ /** Format a single fallout record for the director /world view. */
64
+ export declare function formatFalloutForDirector(fallout: PressureFallout): string;
65
+ /** Compact summary for narrator prompt injection (~20 tokens). */
66
+ export declare function formatFalloutForNarrator(fallout: PressureFallout): string;
67
+ //# sourceMappingURL=pressure-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pressure-resolution.d.ts","sourceRoot":"","sources":["../src/pressure-resolution.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,MAAM,MAAM,cAAc,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,WAAW,GACX,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,iBAAiB,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,oBAAoB,EAAE,kBAAkB,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAC3E;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GACxD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;CAC3C,CAAC;AAIF;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,cAAc,GAClB,eAAe,CAmBjB;AA2ZD,mEAAmE;AACnE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAiBzE;AAED,kEAAkE;AAClE,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,445 @@
1
+ // pressure-resolution — structured pressure resolution + fallout generation
2
+ // Pure functions + types. No module registration.
3
+ // When a pressure resolves (player action, expiry, faction action),
4
+ // computeFallout() returns structured effects: rep changes, rumors, chain pressures.
5
+ // Product layer applies effects. Claude narrates from the structure.
6
+ // --- Main Entry ---
7
+ /**
8
+ * Compute structured fallout from a resolved pressure.
9
+ * Pure function — returns effects for the product layer to apply.
10
+ */
11
+ export function computeFallout(pressure, resolutionType, genre, ctx) {
12
+ const resolution = {
13
+ pressureId: pressure.id,
14
+ pressureKind: pressure.kind,
15
+ resolutionType,
16
+ resolvedBy: ctx.resolvedBy,
17
+ resolvedAtTick: ctx.currentTick,
18
+ resolutionVisibility: ctx.resolutionVisibility ?? pressure.visibility,
19
+ };
20
+ // Collect effects from universal + genre tables
21
+ const effects = [
22
+ ...getUniversalFallout(pressure, resolutionType, ctx),
23
+ ...getGenreFallout(pressure, resolutionType, genre, ctx),
24
+ ];
25
+ const summary = buildFalloutSummary(pressure, resolutionType);
26
+ return { resolution, effects, summary };
27
+ }
28
+ // --- Universal Fallout ---
29
+ function getUniversalFallout(pressure, resolutionType, ctx) {
30
+ const effects = [];
31
+ const faction = pressure.sourceFactionId;
32
+ switch (pressure.kind) {
33
+ case 'bounty-issued':
34
+ switch (resolutionType) {
35
+ case 'resolved-by-player':
36
+ effects.push({ type: 'reputation', factionId: faction, delta: 20 });
37
+ effects.push({
38
+ type: 'rumor', claim: 'cleared the bounty',
39
+ valence: 'heroic', spreadTo: [faction],
40
+ });
41
+ effects.push({ type: 'title-trigger', tag: 'bounty-survivor' });
42
+ break;
43
+ case 'expired-ignored':
44
+ effects.push({ type: 'reputation', factionId: faction, delta: -10 });
45
+ effects.push({ type: 'alert', factionId: faction, delta: 10 });
46
+ effects.push({
47
+ type: 'spawn-pressure', kind: 'revenge-attempt',
48
+ sourceFactionId: faction,
49
+ description: `${faction} sends hunters after the player`,
50
+ urgency: 0.6, tags: ['hostile', 'chain'],
51
+ });
52
+ break;
53
+ case 'failed':
54
+ effects.push({ type: 'reputation', factionId: faction, delta: -5 });
55
+ effects.push({
56
+ type: 'rumor', claim: 'escaped the hunters',
57
+ valence: 'fearsome', spreadTo: [faction],
58
+ });
59
+ break;
60
+ case 'resolved-by-faction':
61
+ effects.push({ type: 'alert', factionId: faction, delta: -10 });
62
+ break;
63
+ }
64
+ break;
65
+ case 'investigation-opened':
66
+ switch (resolutionType) {
67
+ case 'resolved-by-player':
68
+ effects.push({ type: 'reputation', factionId: faction, delta: 10 });
69
+ effects.push({ type: 'alert', factionId: faction, delta: -20 });
70
+ break;
71
+ case 'expired-ignored':
72
+ effects.push({
73
+ type: 'spawn-pressure', kind: 'bounty-issued',
74
+ sourceFactionId: faction,
75
+ description: `${faction} issues a bounty after inconclusive investigation`,
76
+ urgency: 0.7, tags: ['hostile', 'chain', 'escalation'],
77
+ });
78
+ break;
79
+ case 'escalated':
80
+ effects.push({
81
+ type: 'spawn-pressure', kind: 'bounty-issued',
82
+ sourceFactionId: faction,
83
+ description: `${faction} escalates investigation to active bounty`,
84
+ urgency: 0.7, tags: ['hostile', 'chain', 'escalation'],
85
+ });
86
+ effects.push({ type: 'alert', factionId: faction, delta: 15 });
87
+ break;
88
+ case 'failed':
89
+ effects.push({ type: 'reputation', factionId: faction, delta: -10 });
90
+ effects.push({
91
+ type: 'rumor', claim: 'fled from investigation',
92
+ valence: 'fearsome', spreadTo: [faction],
93
+ });
94
+ break;
95
+ }
96
+ break;
97
+ case 'merchant-blacklist':
98
+ switch (resolutionType) {
99
+ case 'resolved-by-player':
100
+ effects.push({ type: 'reputation', factionId: faction, delta: 15 });
101
+ effects.push({
102
+ type: 'rumor', claim: 'made amends with the merchants',
103
+ valence: 'heroic', spreadTo: [faction],
104
+ });
105
+ break;
106
+ case 'expired-ignored':
107
+ if (ctx.playerDistrictId) {
108
+ effects.push({
109
+ type: 'district', districtId: ctx.playerDistrictId,
110
+ metric: 'stability', delta: -10,
111
+ });
112
+ }
113
+ break;
114
+ }
115
+ break;
116
+ case 'faction-summons':
117
+ switch (resolutionType) {
118
+ case 'resolved-by-player':
119
+ effects.push({ type: 'reputation', factionId: faction, delta: 10 });
120
+ break;
121
+ case 'expired-ignored':
122
+ effects.push({ type: 'reputation', factionId: faction, delta: -20 });
123
+ effects.push({
124
+ type: 'rumor', claim: `ignored summons from ${faction}`,
125
+ valence: 'fearsome', spreadTo: [faction],
126
+ });
127
+ break;
128
+ }
129
+ break;
130
+ case 'revenge-attempt':
131
+ switch (resolutionType) {
132
+ case 'resolved-by-player':
133
+ effects.push({ type: 'reputation', factionId: faction, delta: -10 });
134
+ effects.push({
135
+ type: 'rumor', claim: 'fought off the avengers',
136
+ valence: 'fearsome', spreadTo: [faction],
137
+ });
138
+ effects.push({ type: 'milestone-tag', tag: 'survival' });
139
+ break;
140
+ case 'failed':
141
+ effects.push({ type: 'milestone-tag', tag: 'defeat' });
142
+ effects.push({
143
+ type: 'rumor', claim: 'was bested by avengers',
144
+ valence: 'tragic', spreadTo: [faction],
145
+ });
146
+ break;
147
+ case 'expired-ignored':
148
+ effects.push({ type: 'alert', factionId: faction, delta: -5 });
149
+ break;
150
+ }
151
+ break;
152
+ }
153
+ return effects;
154
+ }
155
+ // --- Genre Fallout ---
156
+ function getGenreFallout(pressure, resolutionType, genre, ctx) {
157
+ switch (genre) {
158
+ case 'fantasy':
159
+ return getFantasyFallout(pressure, resolutionType, ctx);
160
+ case 'mystery':
161
+ return getMysteryFallout(pressure, resolutionType, ctx);
162
+ case 'pirate':
163
+ return getPirateFallout(pressure, resolutionType, ctx);
164
+ case 'horror':
165
+ case 'post-apocalyptic':
166
+ return getHorrorFallout(pressure, resolutionType, ctx);
167
+ case 'cyberpunk':
168
+ return getCyberpunkFallout(pressure, resolutionType, ctx);
169
+ default:
170
+ return [];
171
+ }
172
+ }
173
+ function getFantasyFallout(pressure, resolutionType, _ctx) {
174
+ const effects = [];
175
+ const faction = pressure.sourceFactionId;
176
+ switch (pressure.kind) {
177
+ case 'heresy-whisper':
178
+ if (resolutionType === 'expired-ignored') {
179
+ effects.push({
180
+ type: 'spawn-pressure', kind: 'chapel-sanction',
181
+ sourceFactionId: faction,
182
+ description: `the ${faction} formally sanctions the player for unanswered heresy`,
183
+ urgency: 0.7, tags: ['religious', 'fantasy', 'chain', 'escalation'],
184
+ });
185
+ }
186
+ else if (resolutionType === 'resolved-by-player') {
187
+ effects.push({ type: 'reputation', factionId: faction, delta: 10 });
188
+ effects.push({
189
+ type: 'rumor', claim: 'answered the whispers of heresy',
190
+ valence: 'heroic', spreadTo: [faction],
191
+ });
192
+ }
193
+ break;
194
+ case 'chapel-sanction':
195
+ if (resolutionType === 'resolved-by-player') {
196
+ effects.push({
197
+ type: 'rumor', claim: 'vindicated before the chapel',
198
+ valence: 'heroic', spreadTo: [faction],
199
+ });
200
+ effects.push({ type: 'title-trigger', tag: 'faith-tested' });
201
+ effects.push({ type: 'reputation', factionId: faction, delta: 15 });
202
+ }
203
+ else if (resolutionType === 'expired-ignored') {
204
+ effects.push({ type: 'reputation', factionId: faction, delta: -15 });
205
+ effects.push({
206
+ type: 'rumor', claim: 'stands condemned by the chapel',
207
+ valence: 'fearsome', spreadTo: [faction],
208
+ });
209
+ }
210
+ break;
211
+ }
212
+ return effects;
213
+ }
214
+ function getMysteryFallout(pressure, resolutionType, _ctx) {
215
+ const effects = [];
216
+ const faction = pressure.sourceFactionId;
217
+ switch (pressure.kind) {
218
+ case 'case-opened':
219
+ if (resolutionType === 'expired-ignored') {
220
+ effects.push({
221
+ type: 'spawn-pressure', kind: 'witness-vanished',
222
+ sourceFactionId: faction,
223
+ description: `a key witness disappears as the case goes cold`,
224
+ urgency: 0.7, tags: ['investigation', 'mystery', 'chain', 'escalation'],
225
+ });
226
+ }
227
+ else if (resolutionType === 'resolved-by-player') {
228
+ effects.push({ type: 'alert', factionId: faction, delta: -15 });
229
+ effects.push({ type: 'milestone-tag', tag: 'case-closed' });
230
+ }
231
+ break;
232
+ case 'witness-vanished':
233
+ if (resolutionType === 'resolved-by-player') {
234
+ effects.push({ type: 'milestone-tag', tag: 'detective' });
235
+ effects.push({
236
+ type: 'rumor', claim: 'found the vanished witness',
237
+ valence: 'heroic', spreadTo: [faction],
238
+ });
239
+ effects.push({ type: 'reputation', factionId: faction, delta: 15 });
240
+ }
241
+ else if (resolutionType === 'expired-ignored') {
242
+ effects.push({ type: 'alert', factionId: faction, delta: 10 });
243
+ effects.push({
244
+ type: 'rumor', claim: 'the witness was never found',
245
+ valence: 'tragic', spreadTo: [faction],
246
+ });
247
+ }
248
+ break;
249
+ }
250
+ return effects;
251
+ }
252
+ function getPirateFallout(pressure, resolutionType, _ctx) {
253
+ const effects = [];
254
+ const faction = pressure.sourceFactionId;
255
+ switch (pressure.kind) {
256
+ case 'mutiny-brewing':
257
+ if (resolutionType === 'expired-ignored') {
258
+ effects.push({
259
+ type: 'spawn-pressure', kind: 'merchant-blacklist',
260
+ sourceFactionId: faction,
261
+ description: `the mutinous crew has deposed the player from command`,
262
+ urgency: 0.6, tags: ['social', 'pirate', 'chain'],
263
+ });
264
+ effects.push({
265
+ type: 'rumor', claim: 'lost command of their crew',
266
+ valence: 'tragic', spreadTo: [faction],
267
+ });
268
+ }
269
+ else if (resolutionType === 'resolved-by-player') {
270
+ effects.push({ type: 'reputation', factionId: faction, delta: 15 });
271
+ effects.push({
272
+ type: 'rumor', claim: 'crushed the mutiny',
273
+ valence: 'fearsome', spreadTo: [faction],
274
+ });
275
+ effects.push({ type: 'title-trigger', tag: 'iron-captain' });
276
+ }
277
+ break;
278
+ case 'navy-bounty':
279
+ if (resolutionType === 'resolved-by-player') {
280
+ effects.push({
281
+ type: 'rumor', claim: 'evaded the fleet',
282
+ valence: 'fearsome', spreadTo: [faction],
283
+ });
284
+ effects.push({ type: 'milestone-tag', tag: 'seafarer' });
285
+ }
286
+ else if (resolutionType === 'expired-ignored') {
287
+ effects.push({ type: 'alert', factionId: faction, delta: -10 });
288
+ }
289
+ break;
290
+ }
291
+ return effects;
292
+ }
293
+ function getHorrorFallout(pressure, resolutionType, ctx) {
294
+ const effects = [];
295
+ const faction = pressure.sourceFactionId;
296
+ switch (pressure.kind) {
297
+ case 'infection-suspicion':
298
+ if (resolutionType === 'expired-ignored') {
299
+ if (ctx.playerDistrictId) {
300
+ effects.push({
301
+ type: 'district', districtId: ctx.playerDistrictId,
302
+ metric: 'stability', delta: -15,
303
+ });
304
+ }
305
+ effects.push({
306
+ type: 'spawn-pressure', kind: 'camp-panic',
307
+ sourceFactionId: faction,
308
+ description: `fear of infection spreads unchecked through the settlement`,
309
+ urgency: 0.6, tags: ['social', 'horror', 'chain', 'panic'],
310
+ });
311
+ }
312
+ else if (resolutionType === 'resolved-by-player') {
313
+ effects.push({ type: 'reputation', factionId: faction, delta: 10 });
314
+ effects.push({
315
+ type: 'rumor', claim: 'proved they were clean',
316
+ valence: 'heroic', spreadTo: [faction],
317
+ });
318
+ }
319
+ break;
320
+ case 'camp-panic':
321
+ if (resolutionType === 'resolved-by-player') {
322
+ effects.push({ type: 'milestone-tag', tag: 'leader' });
323
+ effects.push({ type: 'reputation', factionId: faction, delta: 15 });
324
+ effects.push({
325
+ type: 'rumor', claim: 'calmed the settlement',
326
+ valence: 'heroic', spreadTo: [faction],
327
+ });
328
+ effects.push({ type: 'title-trigger', tag: 'steadfast' });
329
+ }
330
+ else if (resolutionType === 'expired-ignored') {
331
+ if (ctx.playerDistrictId) {
332
+ effects.push({
333
+ type: 'district', districtId: ctx.playerDistrictId,
334
+ metric: 'stability', delta: -20,
335
+ });
336
+ }
337
+ effects.push({
338
+ type: 'rumor', claim: 'did nothing while the camp fell apart',
339
+ valence: 'tragic', spreadTo: [faction],
340
+ });
341
+ }
342
+ break;
343
+ }
344
+ return effects;
345
+ }
346
+ function getCyberpunkFallout(pressure, resolutionType, _ctx) {
347
+ const effects = [];
348
+ const faction = pressure.sourceFactionId;
349
+ switch (pressure.kind) {
350
+ case 'corp-manhunt':
351
+ if (resolutionType === 'expired-ignored') {
352
+ effects.push({
353
+ type: 'spawn-pressure', kind: 'ice-escalation',
354
+ sourceFactionId: faction,
355
+ description: `${faction} upgrades defenses after failed manhunt`,
356
+ urgency: 0.5, tags: ['digital', 'cyberpunk', 'chain', 'escalation'],
357
+ });
358
+ }
359
+ else if (resolutionType === 'resolved-by-player') {
360
+ effects.push({
361
+ type: 'rumor', claim: 'survived the corporate manhunt',
362
+ valence: 'fearsome', spreadTo: [faction],
363
+ });
364
+ effects.push({ type: 'alert', factionId: faction, delta: -15 });
365
+ effects.push({ type: 'title-trigger', tag: 'ghost' });
366
+ }
367
+ break;
368
+ case 'ice-escalation':
369
+ if (resolutionType === 'resolved-by-player') {
370
+ effects.push({
371
+ type: 'rumor', claim: 'cracked the ICE',
372
+ valence: 'heroic', spreadTo: [faction],
373
+ });
374
+ effects.push({ type: 'milestone-tag', tag: 'netrunner' });
375
+ effects.push({ type: 'reputation', factionId: faction, delta: -5 });
376
+ }
377
+ else if (resolutionType === 'expired-ignored') {
378
+ effects.push({ type: 'alert', factionId: faction, delta: 5 });
379
+ }
380
+ break;
381
+ }
382
+ return effects;
383
+ }
384
+ // --- Formatting ---
385
+ const DIVIDER = '─'.repeat(60);
386
+ /** Format a single fallout record for the director /world view. */
387
+ export function formatFalloutForDirector(fallout) {
388
+ const r = fallout.resolution;
389
+ const parts = [
390
+ ` [${r.pressureKind}] → ${r.resolutionType}`,
391
+ ` Resolved by: ${r.resolvedBy} at tick ${r.resolvedAtTick}`,
392
+ ` Visibility: ${r.resolutionVisibility}`,
393
+ ` Summary: ${fallout.summary}`,
394
+ ];
395
+ if (fallout.effects.length > 0) {
396
+ parts.push(' Effects:');
397
+ for (const e of fallout.effects) {
398
+ parts.push(` - ${formatEffectBrief(e)}`);
399
+ }
400
+ }
401
+ return parts.join('\n');
402
+ }
403
+ /** Compact summary for narrator prompt injection (~20 tokens). */
404
+ export function formatFalloutForNarrator(fallout) {
405
+ return `${fallout.resolution.pressureKind} ${fallout.resolution.resolutionType}: ${fallout.summary}`;
406
+ }
407
+ function formatEffectBrief(effect) {
408
+ switch (effect.type) {
409
+ case 'reputation':
410
+ return `rep ${effect.delta > 0 ? '+' : ''}${effect.delta} with ${effect.factionId}`;
411
+ case 'alert':
412
+ return `alert ${effect.delta > 0 ? '+' : ''}${effect.delta} for ${effect.factionId}`;
413
+ case 'district':
414
+ return `${effect.metric} ${effect.delta > 0 ? '+' : ''}${effect.delta} in ${effect.districtId}`;
415
+ case 'rumor':
416
+ return `rumor: "${effect.claim}" (${effect.valence})`;
417
+ case 'spawn-pressure':
418
+ return `chain: ${effect.kind} from ${effect.sourceFactionId}`;
419
+ case 'milestone-tag':
420
+ return `milestone tag: ${effect.tag}`;
421
+ case 'title-trigger':
422
+ return `title trigger: ${effect.tag}`;
423
+ }
424
+ }
425
+ // --- Helpers ---
426
+ function buildFalloutSummary(pressure, resolutionType) {
427
+ const kindLabel = pressure.kind.replace(/-/g, ' ');
428
+ switch (resolutionType) {
429
+ case 'resolved-by-player':
430
+ return `${kindLabel} resolved by the player`;
431
+ case 'resolved-by-faction':
432
+ return `${kindLabel} resolved by ${pressure.sourceFactionId}`;
433
+ case 'escalated':
434
+ return `${kindLabel} escalated`;
435
+ case 'failed':
436
+ return `${kindLabel} — player failed to resolve`;
437
+ case 'transformed':
438
+ return `${kindLabel} transformed into something new`;
439
+ case 'superseded':
440
+ return `${kindLabel} superseded by larger events`;
441
+ case 'expired-ignored':
442
+ return `${kindLabel} expired without resolution`;
443
+ }
444
+ }
445
+ //# sourceMappingURL=pressure-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pressure-resolution.js","sourceRoot":"","sources":["../src/pressure-resolution.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,kDAAkD;AAClD,oEAAoE;AACpE,qFAAqF;AACrF,qEAAqE;AAmDrE,qBAAqB;AAErB;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,QAAuB,EACvB,cAA8B,EAC9B,KAAa,EACb,GAAmB;IAEnB,MAAM,UAAU,GAAuB;QACrC,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,YAAY,EAAE,QAAQ,CAAC,IAAI;QAC3B,cAAc;QACd,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,cAAc,EAAE,GAAG,CAAC,WAAW;QAC/B,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,QAAQ,CAAC,UAAU;KACtE,CAAC;IAEF,gDAAgD;IAChD,MAAM,OAAO,GAAoB;QAC/B,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC;QACrD,GAAG,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,CAAC;KACzD,CAAC;IAEF,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IAE9D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,4BAA4B;AAE5B,SAAS,mBAAmB,CAC1B,QAAuB,EACvB,cAA8B,EAC9B,GAAmB;IAEnB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,eAAe;YAClB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB;wBAC1C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACvC,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;oBAChE,MAAM;gBACR,KAAK,iBAAiB;oBACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB;wBAC/C,eAAe,EAAE,OAAO;wBACxB,WAAW,EAAE,GAAG,OAAO,iCAAiC;wBACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB;wBAC3C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,qBAAqB;oBACxB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChE,MAAM;YACV,CAAC;YACD,MAAM;QAER,KAAK,sBAAsB;YACzB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBAChE,MAAM;gBACR,KAAK,iBAAiB;oBACpB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe;wBAC7C,eAAe,EAAE,OAAO;wBACxB,WAAW,EAAE,GAAG,OAAO,mDAAmD;wBAC1E,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;qBACvD,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,WAAW;oBACd,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,eAAe;wBAC7C,eAAe,EAAE,OAAO;wBACxB,WAAW,EAAE,GAAG,OAAO,2CAA2C;wBAClE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;qBACvD,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBAC/D,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB;wBAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;YACV,CAAC;YACD,MAAM;QAER,KAAK,oBAAoB;YACvB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC;wBACtD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACvC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,iBAAiB;oBACpB,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;wBACzB,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,gBAAgB;4BAClD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;yBAChC,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM;YACV,CAAC;YACD,MAAM;QAER,KAAK,iBAAiB;YACpB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;oBACpE,MAAM;gBACR,KAAK,iBAAiB;oBACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB,OAAO,EAAE;wBACvD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,MAAM;YACV,CAAC;YACD,MAAM;QAER,KAAK,iBAAiB;YACpB,QAAQ,cAAc,EAAE,CAAC;gBACvB,KAAK,oBAAoB;oBACvB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACrE,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB;wBAC/C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACzC,CAAC,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;oBACzD,MAAM;gBACR,KAAK,QAAQ;oBACX,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACvD,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB;wBAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;qBACvC,CAAC,CAAC;oBACH,MAAM;gBACR,KAAK,iBAAiB;oBACpB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC/D,MAAM;YACV,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wBAAwB;AAExB,SAAS,eAAe,CACtB,QAAuB,EACvB,cAA8B,EAC9B,KAAa,EACb,GAAmB;IAEnB,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QAC1D,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QAC1D,KAAK,QAAQ;YACX,OAAO,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,QAAQ,CAAC;QACd,KAAK,kBAAkB;YACrB,OAAO,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QACzD,KAAK,WAAW;YACd,OAAO,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;QAC5D;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAuB,EACvB,cAA8B,EAC9B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,gBAAgB;YACnB,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,iBAAiB;oBAC/C,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,OAAO,OAAO,sDAAsD;oBACjF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;iBACpE,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iCAAiC;oBACvD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QAER,KAAK,iBAAiB;YACpB,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,8BAA8B;oBACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC;oBACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACzC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAuB,EACvB,cAA8B,EAC9B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,aAAa;YAChB,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB;oBAChD,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,gDAAgD;oBAC7D,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC;iBACxE,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM;QAER,KAAK,kBAAkB;YACrB,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,4BAA4B;oBAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,6BAA6B;oBACnD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAuB,EACvB,cAA8B,EAC9B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,gBAAgB;YACnB,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,oBAAoB;oBAClD,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,uDAAuD;oBACpE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC;iBAClD,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,4BAA4B;oBAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB;oBAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACzC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;QAER,KAAK,aAAa;YAChB,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB;oBACxC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACzC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3D,CAAC;iBAAM,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAuB,EACvB,cAA8B,EAC9B,GAAmB;IAEnB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,qBAAqB;YACxB,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,gBAAgB;wBAClD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;qBAChC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY;oBAC1C,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,4DAA4D;oBACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;iBAC3D,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,wBAAwB;oBAC9C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;QAER,KAAK,YAAY;YACf,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpE,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB;oBAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBAChD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;oBACzB,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,gBAAgB;wBAClD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;qBAChC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,uCAAuC;oBAC7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAuB,EACvB,cAA8B,EAC9B,IAAoB;IAEpB,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC;IAEzC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,cAAc;YACjB,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;oBAC9C,eAAe,EAAE,OAAO;oBACxB,WAAW,EAAE,GAAG,OAAO,yCAAyC;oBAChE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC;iBACpE,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC;oBACtD,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACzC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,MAAM;QAER,KAAK,gBAAgB;YACnB,IAAI,cAAc,KAAK,oBAAoB,EAAE,CAAC;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB;oBACvC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACvC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;iBAAM,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,CAAC;YACD,MAAM;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,qBAAqB;AAErB,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE/B,mEAAmE;AACnE,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC/D,MAAM,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAC7B,MAAM,KAAK,GAAa;QACtB,MAAM,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,cAAc,EAAE;QAC7C,oBAAoB,CAAC,CAAC,UAAU,YAAY,CAAC,CAAC,cAAc,EAAE;QAC9D,mBAAmB,CAAC,CAAC,oBAAoB,EAAE;QAC3C,gBAAgB,OAAO,CAAC,OAAO,EAAE;KAClC,CAAC;IAEF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,WAAW,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,wBAAwB,CAAC,OAAwB;IAC/D,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;AACvG,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAqB;IAC9C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,SAAS,EAAE,CAAC;QACtF,KAAK,OAAO;YACV,OAAO,SAAS,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,SAAS,EAAE,CAAC;QACvF,KAAK,UAAU;YACb,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;QAClG,KAAK,OAAO;YACV,OAAO,WAAW,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,OAAO,GAAG,CAAC;QACxD,KAAK,gBAAgB;YACnB,OAAO,UAAU,MAAM,CAAC,IAAI,SAAS,MAAM,CAAC,eAAe,EAAE,CAAC;QAChE,KAAK,eAAe;YAClB,OAAO,kBAAkB,MAAM,CAAC,GAAG,EAAE,CAAC;QACxC,KAAK,eAAe;YAClB,OAAO,kBAAkB,MAAM,CAAC,GAAG,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,kBAAkB;AAElB,SAAS,mBAAmB,CAAC,QAAuB,EAAE,cAA8B;IAClF,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnD,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,oBAAoB;YACvB,OAAO,GAAG,SAAS,yBAAyB,CAAC;QAC/C,KAAK,qBAAqB;YACxB,OAAO,GAAG,SAAS,gBAAgB,QAAQ,CAAC,eAAe,EAAE,CAAC;QAChE,KAAK,WAAW;YACd,OAAO,GAAG,SAAS,YAAY,CAAC;QAClC,KAAK,QAAQ;YACX,OAAO,GAAG,SAAS,6BAA6B,CAAC;QACnD,KAAK,aAAa;YAChB,OAAO,GAAG,SAAS,iCAAiC,CAAC;QACvD,KAAK,YAAY;YACf,OAAO,GAAG,SAAS,8BAA8B,CAAC;QACpD,KAAK,iBAAiB;YACpB,OAAO,GAAG,SAAS,6BAA6B,CAAC;IACrD,CAAC;AACH,CAAC"}