@its-not-rocket-science/ananke 0.1.11 → 0.1.12

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 CHANGED
@@ -10,6 +10,24 @@ Versioning follows [Semantic Versioning](https://semver.org/).
10
10
 
11
11
  ### Added
12
12
 
13
+ - **Option B · Tier 2 subpath exports** — eight new named import subpaths for all
14
+ Tier 2 module groupings; deep imports remain supported as a fallback:
15
+ - `ananke/character` → aging, sleep, disease, wound-aging, thermoregulation, nutrition,
16
+ medical, toxicology, progression
17
+ - `ananke/combat` → ranged, grapple, formation-combat, mount, hazard, morale, sensory,
18
+ sensory-extended, weather, terrain, skills, biome
19
+ - `ananke/campaign` → campaign, downtime, collective-activities, settlement,
20
+ settlement-services, inventory, item-durability, world-generation, inheritance,
21
+ economy, polity (campaign layer barrel)
22
+ - `ananke/social` → dialogue, faction, relationships, relationships-effects, party,
23
+ quest, quest-generators
24
+ - `ananke/narrative` → chronicle, story-arcs, narrative-render, legend, mythology,
25
+ narrative, narrative-stress, metrics, arena
26
+ - `ananke/anatomy` → existing `src/anatomy/index.ts` barrel
27
+ - `ananke/crafting` → existing `src/crafting/index.ts` barrel
28
+ - `ananke/competence` → existing `src/competence/index.ts` barrel
29
+ - `STABLE_API.md` updated to document preferred subpath import patterns.
30
+
13
31
  - **CE-16 · Modding Support** (`src/modding.ts`)
14
32
  - Layer 1 — `hashMod(json)`: deterministic FNV-1a fingerprint (8-char hex) for any
15
33
  parsed JSON mod file; canonical key-sorted serialisation ensures order-independence.
package/STABLE_API.md CHANGED
@@ -185,21 +185,124 @@ version bump; renames require a major bump and migration guide.
185
185
  These exports are usable and tested but may change across minor versions.
186
186
  A `CHANGELOG.md` entry will document any breaking change.
187
187
 
188
+ Tier 2 modules are accessible via **named subpath exports** (preferred) or deep imports:
189
+
190
+ ```typescript
191
+ // Preferred — named subpath (stable grouping, no internal path coupling)
192
+ import { stepAging, applyAgingToAttributes } from "@its-not-rocket-science/ananke/character";
193
+ import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat";
194
+ import { stepCampaignDay, createSettlement } from "@its-not-rocket-science/ananke/campaign";
195
+ import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social";
196
+ import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative";
197
+ import { compileAnatomyDefinition } from "@its-not-rocket-science/ananke/anatomy";
198
+ import { craftItem, getAvailableRecipes } from "@its-not-rocket-science/ananke/crafting";
199
+ import { resolveCompetence } from "@its-not-rocket-science/ananke/competence";
200
+
201
+ // Deep import (fallback — internal paths may change)
202
+ import { stepAging } from "@its-not-rocket-science/ananke/dist/src/sim/aging.js";
203
+ ```
204
+
205
+ ### AI command system
206
+
207
+ | Module | Key exports |
208
+ |--------|------------|
209
+ | `src/sim/ai/system.ts` | `buildAICommands(world, ctx)` — build a `CommandMap` for all AI-controlled entities |
210
+
211
+ ### Character lifecycle
212
+
188
213
  | Module | Key exports |
189
214
  |--------|------------|
190
- | `src/mythology.ts` | `compressMythsFromHistory`, `stepMythologyYear`, `aggregateFactionMythEffect`, `scaledMythEffect` |
191
- | `src/narrative-stress.ts` | `runNarrativeStressTest`, `scoreNarrativePush` |
192
- | `src/campaign.ts` | `Campaign`, `stepCampaignDay`, `advanceCampaignClock`, `serializeCampaign`, `deserializeCampaign` |
193
- | `src/arena.ts` | Arena scenario DSL, `runArenaTrial`, `runArenaScenario` |
194
215
  | `src/sim/aging.ts` | `applyAgingToAttributes`, `stepAging`, `deriveAgeMultipliers`, `getAgePhase` |
195
216
  | `src/sim/sleep.ts` | `applySleepToAttributes`, `stepSleep`, `deriveSleepDeprivationMuls`, `circadianAlertness` |
196
217
  | `src/sim/disease.ts` | `exposeToDisease`, `stepDiseaseForEntity`, `spreadDisease`, `computeTransmissionRisk` |
218
+ | `src/sim/wound-aging.ts` | `stepWoundAging`, `recordTraumaEvent`, `deriveFearThresholdMul`, `deriveSepsisRisk` |
219
+ | `src/sim/thermoregulation.ts` | `stepThermoregulation`, `deriveThermalComfort`, `computeMetabolicRate` |
220
+ | `src/sim/nutrition.ts` | `stepNutrition`, `computeHungerEffect`, food catalogue constants |
221
+ | `src/sim/medical.ts` | `resolveTreatment`, `computeTreatmentEffect`, medical tier definitions |
222
+ | `src/sim/toxicology.ts` | `applyVenom`, `stepActiveVenoms`, `resolveIngestedToxin` |
223
+ | `src/progression.ts` | `applyXP`, `applyTrainingDrift`, `computeMilestones` |
224
+
225
+ ### Combat extensions
226
+
227
+ | Module | Key exports |
228
+ |--------|------------|
197
229
  | `src/sim/mount.ts` | `checkMountStep`, `computeChargeBonus`, `deriveRiderHeightBonus` |
198
230
  | `src/sim/hazard.ts` | `deriveHazardEffect`, `computeHazardExposure`, `stepHazardZone` |
231
+ | `src/sim/ranged.ts` | `resolveRangedAttack`, `computeRangedAccuracy`, `computeProjectileEnergy` |
232
+ | `src/sim/grapple.ts` | `resolveGrappleContest`, `computeGrappleStrength`, `stepGrapple` |
233
+ | `src/sim/formation.ts` | `FormationConfig`, `computeFormationBonus`, `resolveFormationStep` |
234
+ | `src/sim/morale.ts` | `computeMoraleEffect`, `stepMorale`, `applyRoutEffect` |
235
+ | `src/sim/sensory.ts` | `computeVisibility`, `computeHearingRange`, `stepSensoryState` |
236
+ | `src/sim/sensory-extended.ts` | `computeEcholocationRange`, `computeOlfactionRange` — non-human senses |
237
+ | `src/sim/weather.ts` | `WeatherState`, `stepWeather`, `computeWeatherEffect` |
238
+ | `src/sim/terrain.ts` | `TerrainType`, `TERRAIN_PROFILES`, `computeTerrainTraction` |
239
+ | `src/sim/skills.ts` | `SkillId`, `SkillLevel`, `SKILL_LEVEL_MULS`, `buildSkillMap`, `getSkillMul` |
240
+ | `src/sim/biome.ts` | `BiomeType`, `BIOME_PROFILES`, `deriveBiomeEnvironment` |
241
+
242
+ ### Social and economic systems
243
+
244
+ | Module | Key exports |
245
+ |--------|------------|
199
246
  | `src/dialogue.ts` | `resolveIntimidation`, `resolvePersuasion`, `resolveDeception`, `resolveTradeNegotiation` |
200
247
  | `src/faction.ts` | `FactionRegistry`, `updateStanding`, `getFactionStanding` |
201
248
  | `src/economy.ts` | `computeItemValue`, `applyWear`, `resolveDrops`, `evaluateTradeOffer` |
202
- | `src/progression.ts` | `applyXP`, `applyTrainingDrift`, `computeMilestones` |
249
+ | `src/relationships.ts` | `createRelationshipGraph`, `establishRelationship`, `recordEvent`, `getRelationshipAffinity` |
250
+ | `src/relationships-effects.ts` | Relationship modifiers applied to dialogue, teaching, morale contexts |
251
+ | `src/party.ts` | `createPartyRegistry`, `createParty`, `addPartyMember`, `setPartyStanding` |
252
+
253
+ ### Campaign and world management
254
+
255
+ | Module | Key exports |
256
+ |--------|------------|
257
+ | `src/campaign.ts` | `Campaign`, `stepCampaignDay`, `advanceCampaignClock`, `serializeCampaign`, `deserializeCampaign` |
258
+ | `src/downtime.ts` | `stepDowntime`, `TreatmentSchedule`, `EntityRecoveryReport` |
259
+ | `src/collective-activities.ts` | `createCollectiveProject`, `contributeToCollectiveProject`, `stepRitual`, `planCaravanRoute` |
260
+ | `src/inventory.ts` | `createInventory`, `addItemToInventory`, `consumeItemsByTemplateId`, `getEncumbrancePenalty` |
261
+ | `src/item-durability.ts` | `stepWear`, `applyWearPenalty` |
262
+ | `src/settlement.ts` | `createSettlement`, `upgradeSettlement`, `getServiceBonus` |
263
+ | `src/settlement-services.ts` | Service definitions (forge, medical, market, barracks, temple) |
264
+ | `src/inheritance.ts` | `transferEquipment`, `transferRelationships`, `transferInventory` — character death succession |
265
+ | `src/world-generation.ts` | `generateWorld`, `deriveStartingRelationships`, `deriveStartingConflicts` |
266
+
267
+ ### Quest and narrative layer
268
+
269
+ | Module | Key exports |
270
+ |--------|------------|
271
+ | `src/quest.ts` | `questFactory`, `updateQuestState`, `resolveObjective`, `Quest`, `QuestObjective` |
272
+ | `src/quest-generators.ts` | `generateBountyQuest`, `generateEscortQuest`, `generateRetrievalQuest` |
273
+ | `src/chronicle.ts` | `createChronicle`, `addChronicleEntry`, `getEntriesForEntity`, `ChronicleEntry` |
274
+ | `src/story-arcs.ts` | `detectStoryArcs`, `updateDetectedArcs` — pattern detection across chronicle entries |
275
+ | `src/narrative-render.ts` | `renderEntry`, `renderArcSummary` — template-based prose from chronicle entries |
276
+ | `src/legend.ts` | `createLegendRegistry`, `createLegendFromChronicle`, `applyLegendToDialogueContext` |
277
+ | `src/mythology.ts` | `compressMythsFromHistory`, `stepMythologyYear`, `aggregateFactionMythEffect`, `scaledMythEffect` |
278
+ | `src/narrative.ts` | `narrateCombatTick`, `narrateInjury` — human-readable combat event strings |
279
+ | `src/narrative-stress.ts` | `runNarrativeStressTest`, `scoreNarrativePush` |
280
+ | `src/metrics.ts` | `extractCombatMetrics`, `summariseBattle` — analytics from trace events |
281
+ | `src/arena.ts` | Arena scenario DSL, `runArenaTrial`, `runArenaScenario` |
282
+
283
+ ### Anatomy subsystem
284
+
285
+ | Module | Key exports |
286
+ |--------|------------|
287
+ | `src/anatomy/index.ts` | Re-export barrel for the full anatomy API |
288
+ | `src/anatomy/anatomy-contracts.ts` | `CompiledAnatomyModel`, `AnatomyContracts`, `AnatomyCapabilities` — core anatomy types |
289
+ | `src/anatomy/anatomy-schema.ts` | `validateExtendedBodyPlan`, `ValidationResult` — validate JSON body plan definitions |
290
+ | `src/anatomy/anatomy-compiler.ts` | `compileAnatomyDefinition`, `compileAnatomyDefinitionOrThrow` — compile a body plan to indexed model |
291
+ | `src/anatomy/anatomy-helpers.ts` | `createAnatomyHelpers`, `summarizeFunctionalHealth`, `sampleProfile` — query compiled anatomy |
292
+
293
+ ### Competence framework
294
+
295
+ | Module | Key exports |
296
+ |--------|------------|
297
+ | `src/competence/index.ts` | Re-export barrel for the full competence API |
298
+ | `src/competence/framework.ts` | `resolveCompetence(entity, action, ctx)` — unified competence resolution dispatcher |
299
+ | `src/competence/catalogue.ts` | `CompetenceDomain`, `CompetenceTask`, predefined task catalogue entries |
300
+
301
+ ### Crafting subsystem
302
+
303
+ | Module | Key exports |
304
+ |--------|------------|
305
+ | `src/crafting/index.ts` | `craftItem`, `startManufacturing`, `advanceManufacturing`, `getAvailableRecipes` — main crafting API |
203
306
 
204
307
  ---
205
308
 
@@ -207,16 +310,72 @@ A `CHANGELOG.md` entry will document any breaking change.
207
310
 
208
311
  These are implementation details. Do not import them directly; they may change at any time.
209
312
 
313
+ ### Kernel internals
314
+
210
315
  | Module | Why internal |
211
316
  |--------|-------------|
212
317
  | `src/rng.ts` | `makeRng`, `eventSeed`, `hashString` — RNG contract is internal; seed structure may change |
318
+ | `src/sim/seeds.ts` | Seed derivation utilities |
213
319
  | `src/sim/push.ts` | Pair-based resolution internals |
214
320
  | `src/sim/kernel.ts` (non-exported functions) | Step sub-phases, internal accumulators |
215
- | `src/sim/seeds.ts` | Seed derivation utilities |
216
- | `src/sim/ai/` | AI decision internals; host applications should use `buildAICommands()` via `src/sim/ai/system.ts` |
321
+ | `src/sim/tick.ts` | Single-tick orchestration called by `stepWorld` |
322
+ | `src/sim/action.ts` | Attack cooldown and swing-momentum state machine |
323
+ | `src/sim/intent.ts` | Movement and defence intent processing |
324
+ | `src/sim/combat.ts` | Hit resolution and skill-contest internals |
325
+ | `src/sim/step/` | All sub-step modules (`push`, `energy`, `injury`, `movement`, etc.) |
326
+ | `src/sim/context.ts` | `KernelContext` type definition (re-exported via `sim/world.ts`) |
327
+ | `src/sim/events.ts` | Internal event emission — consumed by trace and bridge |
328
+ | `src/sim/indexing.ts` | Spatial index internals used by `stepWorld` |
329
+ | `src/sim/tuning.ts` | Physics constant tables — may be retuned in patch releases |
330
+ | `src/sim/impairment.ts` | Functional damage accumulator — called by the kernel step |
331
+ | `src/sim/occlusion.ts` | Internal visibility occlusion used by sensory |
332
+ | `src/sim/systemic-toxicology.ts` | Multi-substance pharmacokinetics internals |
333
+ | `src/sim/formation-unit.ts` | Squad-level unit structure used by `formation-combat.ts` |
334
+ | `src/sim/commandBuilders.ts` | Low-level command construction helpers — prefer `noMove()` from `commands.ts` |
335
+ | `src/sim/team.ts` | Team/side definitions used internally by AI and morale |
336
+ | `src/derive.ts` | Movement-force and geometry derivations used by the kernel |
337
+ | `src/lod.ts` | Level-of-detail helpers for large simulations |
338
+ | `src/debug.ts` | Visual debug extraction (motion vectors, hit traces) |
339
+
340
+ ### AI decision internals
217
341
 
218
- > `buildAICommands()` from `src/sim/ai/system.ts` is Experimental (Tier 2).
219
- > The individual sub-modules (`decide.ts`, `perception.ts`, `targeting.ts`) are Tier 3.
342
+ | Module | Why internal |
343
+ |--------|-------------|
344
+ | `src/sim/ai/decide.ts` | Decision-tree evaluation — called by `buildAICommands` |
345
+ | `src/sim/ai/perception.ts` | AI sensory processing — called by `buildAICommands` |
346
+ | `src/sim/ai/targeting.ts` | Target selection heuristics — called by `buildAICommands` |
347
+ | `src/sim/ai/personality.ts` | Personality trait modifiers on AI decisions |
348
+ | `src/sim/ai/types.ts` | AI policy and state types used only within `src/sim/ai/` |
349
+
350
+ > Use `buildAICommands(world, ctx)` from `src/sim/ai/system.ts` (Tier 2) rather than importing AI sub-modules directly.
351
+
352
+ ### Competence domain resolvers
353
+
354
+ These are called by `resolveCompetence()` and should not be imported directly.
355
+
356
+ | Module | Domain |
357
+ |--------|--------|
358
+ | `src/competence/crafting.ts` | Crafting and tool use |
359
+ | `src/competence/navigation.ts` | Wayfinding and cartography |
360
+ | `src/competence/naturalist.ts` | Tracking, foraging, taming |
361
+ | `src/competence/interspecies.ts` | Cross-species communication |
362
+ | `src/competence/language.ts` | Linguistics and translation |
363
+ | `src/competence/teaching.ts` | Knowledge transfer |
364
+ | `src/competence/willpower.ts` | Endurance and mental fortitude |
365
+ | `src/competence/engineering.ts` | Siege and structural engineering |
366
+ | `src/competence/performance.ts` | Entertainment and oratory |
367
+ | `src/competence/acoustic.ts` | Formation signalling (drums, horns) |
368
+
369
+ ### Crafting internals
370
+
371
+ These are called by `craftItem()` / `startManufacturing()` and should not be imported directly.
372
+
373
+ | Module | Role |
374
+ |--------|------|
375
+ | `src/crafting/materials.ts` | Material definitions and property calculations |
376
+ | `src/crafting/recipes.ts` | Recipe validation and feasibility |
377
+ | `src/crafting/manufacturing.ts` | Batch production mechanics |
378
+ | `src/crafting/workshops.ts` | Workshop facility definitions and output bonuses |
220
379
 
221
380
  ---
222
381
 
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module ananke/campaign
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Campaign and world management: downtime activities, collective projects,
6
+ * settlements, inventory, item durability, world generation, inheritance,
7
+ * economy, and polity/socio-economic systems.
8
+ *
9
+ * Import via subpath:
10
+ * import { stepDowntime, createSettlement } from "@its-not-rocket-science/ananke/campaign"
11
+ */
12
+ export * from "./campaign.js";
13
+ export * from "./downtime.js";
14
+ export * from "./collective-activities.js";
15
+ export * from "./settlement.js";
16
+ export * from "./settlement-services.js";
17
+ export * from "./inventory.js";
18
+ export * from "./item-durability.js";
19
+ export * from "./world-generation.js";
20
+ export * from "./inheritance.js";
21
+ export * from "./economy.js";
22
+ export * from "./polity.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @module ananke/campaign
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Campaign and world management: downtime activities, collective projects,
6
+ * settlements, inventory, item durability, world generation, inheritance,
7
+ * economy, and polity/socio-economic systems.
8
+ *
9
+ * Import via subpath:
10
+ * import { stepDowntime, createSettlement } from "@its-not-rocket-science/ananke/campaign"
11
+ */
12
+ export * from "./campaign.js";
13
+ export * from "./downtime.js";
14
+ export * from "./collective-activities.js";
15
+ export * from "./settlement.js";
16
+ export * from "./settlement-services.js";
17
+ export * from "./inventory.js";
18
+ export * from "./item-durability.js";
19
+ export * from "./world-generation.js";
20
+ export * from "./inheritance.js";
21
+ export * from "./economy.js";
22
+ export * from "./polity.js";
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module ananke/character
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Character lifecycle: aging, sleep, disease, wound healing, thermoregulation,
6
+ * nutrition, medical treatment, toxicology, and skill progression.
7
+ *
8
+ * Import via subpath:
9
+ * import { stepAging, stepSleep } from "@its-not-rocket-science/ananke/character"
10
+ */
11
+ export * from "./sim/aging.js";
12
+ export * from "./sim/sleep.js";
13
+ export * from "./sim/disease.js";
14
+ export * from "./sim/wound-aging.js";
15
+ export * from "./sim/thermoregulation.js";
16
+ export * from "./sim/nutrition.js";
17
+ export * from "./sim/medical.js";
18
+ export * from "./sim/toxicology.js";
19
+ export * from "./progression.js";
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @module ananke/character
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Character lifecycle: aging, sleep, disease, wound healing, thermoregulation,
6
+ * nutrition, medical treatment, toxicology, and skill progression.
7
+ *
8
+ * Import via subpath:
9
+ * import { stepAging, stepSleep } from "@its-not-rocket-science/ananke/character"
10
+ */
11
+ export * from "./sim/aging.js";
12
+ export * from "./sim/sleep.js";
13
+ export * from "./sim/disease.js";
14
+ export * from "./sim/wound-aging.js";
15
+ export * from "./sim/thermoregulation.js";
16
+ export * from "./sim/nutrition.js";
17
+ export * from "./sim/medical.js";
18
+ export * from "./sim/toxicology.js";
19
+ export * from "./progression.js";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module ananke/combat
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Combat extensions: ranged weapons, grappling, formation tactics, mounted
6
+ * combat, environmental hazards, morale, sensory systems, weather, terrain,
7
+ * skills, and biome effects.
8
+ *
9
+ * Import via subpath:
10
+ * import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat"
11
+ */
12
+ export * from "./sim/ranged.js";
13
+ export * from "./sim/grapple.js";
14
+ export * from "./sim/formation-combat.js";
15
+ export * from "./sim/mount.js";
16
+ export * from "./sim/hazard.js";
17
+ export * from "./sim/morale.js";
18
+ export * from "./sim/sensory.js";
19
+ export * from "./sim/sensory-extended.js";
20
+ export * from "./sim/weather.js";
21
+ export * from "./sim/terrain.js";
22
+ export * from "./sim/skills.js";
23
+ export * from "./sim/biome.js";
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @module ananke/combat
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Combat extensions: ranged weapons, grappling, formation tactics, mounted
6
+ * combat, environmental hazards, morale, sensory systems, weather, terrain,
7
+ * skills, and biome effects.
8
+ *
9
+ * Import via subpath:
10
+ * import { resolveRangedAttack, stepGrapple } from "@its-not-rocket-science/ananke/combat"
11
+ */
12
+ export * from "./sim/ranged.js";
13
+ export * from "./sim/grapple.js";
14
+ export * from "./sim/formation-combat.js";
15
+ export * from "./sim/mount.js";
16
+ export * from "./sim/hazard.js";
17
+ export * from "./sim/morale.js";
18
+ export * from "./sim/sensory.js";
19
+ export * from "./sim/sensory-extended.js";
20
+ export * from "./sim/weather.js";
21
+ export * from "./sim/terrain.js";
22
+ export * from "./sim/skills.js";
23
+ export * from "./sim/biome.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module ananke/narrative
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Narrative and chronicle systems: event chronicles, story arc detection,
6
+ * narrative rendering, legends, mythology, stress testing, combat metrics,
7
+ * and arena scenarios.
8
+ *
9
+ * Import via subpath:
10
+ * import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative"
11
+ */
12
+ export * from "./chronicle.js";
13
+ export * from "./story-arcs.js";
14
+ export * from "./narrative-render.js";
15
+ export * from "./legend.js";
16
+ export * from "./mythology.js";
17
+ export * from "./narrative.js";
18
+ export * from "./narrative-stress.js";
19
+ export * from "./metrics.js";
20
+ export * from "./arena.js";
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @module ananke/narrative
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Narrative and chronicle systems: event chronicles, story arc detection,
6
+ * narrative rendering, legends, mythology, stress testing, combat metrics,
7
+ * and arena scenarios.
8
+ *
9
+ * Import via subpath:
10
+ * import { addChronicleEntry, detectStoryArcs } from "@its-not-rocket-science/ananke/narrative"
11
+ */
12
+ export * from "./chronicle.js";
13
+ export * from "./story-arcs.js";
14
+ export * from "./narrative-render.js";
15
+ export * from "./legend.js";
16
+ export * from "./mythology.js";
17
+ export * from "./narrative.js";
18
+ export * from "./narrative-stress.js";
19
+ export * from "./metrics.js";
20
+ export * from "./arena.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module ananke/social
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Social systems: dialogue, factions, relationships, party management,
6
+ * quests, and quest generation.
7
+ *
8
+ * Import via subpath:
9
+ * import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social"
10
+ */
11
+ export * from "./dialogue.js";
12
+ export * from "./faction.js";
13
+ export * from "./relationships.js";
14
+ export * from "./relationships-effects.js";
15
+ export * from "./party.js";
16
+ export * from "./quest.js";
17
+ export * from "./quest-generators.js";
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @module ananke/social
3
+ * @tier2 Experimental — breaking changes get a CHANGELOG entry.
4
+ *
5
+ * Social systems: dialogue, factions, relationships, party management,
6
+ * quests, and quest generation.
7
+ *
8
+ * Import via subpath:
9
+ * import { dialogueProbability, effectiveStanding } from "@its-not-rocket-science/ananke/social"
10
+ */
11
+ export * from "./dialogue.js";
12
+ export * from "./faction.js";
13
+ export * from "./relationships.js";
14
+ export * from "./relationships-effects.js";
15
+ export * from "./party.js";
16
+ export * from "./quest.js";
17
+ export * from "./quest-generators.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@its-not-rocket-science/ananke",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "type": "module",
5
5
  "description": "Deterministic lockstep-friendly SI-units RPG/physics core (fixed-point TS)",
6
6
  "license": "MIT",
@@ -22,6 +22,38 @@
22
22
  "./catalog": {
23
23
  "import": "./dist/src/catalog.js",
24
24
  "types": "./dist/src/catalog.d.ts"
25
+ },
26
+ "./character": {
27
+ "import": "./dist/src/character.js",
28
+ "types": "./dist/src/character.d.ts"
29
+ },
30
+ "./combat": {
31
+ "import": "./dist/src/combat.js",
32
+ "types": "./dist/src/combat.d.ts"
33
+ },
34
+ "./campaign": {
35
+ "import": "./dist/src/campaign-layer.js",
36
+ "types": "./dist/src/campaign-layer.d.ts"
37
+ },
38
+ "./social": {
39
+ "import": "./dist/src/social.js",
40
+ "types": "./dist/src/social.d.ts"
41
+ },
42
+ "./narrative": {
43
+ "import": "./dist/src/narrative-layer.js",
44
+ "types": "./dist/src/narrative-layer.d.ts"
45
+ },
46
+ "./anatomy": {
47
+ "import": "./dist/src/anatomy/index.js",
48
+ "types": "./dist/src/anatomy/index.d.ts"
49
+ },
50
+ "./crafting": {
51
+ "import": "./dist/src/crafting/index.js",
52
+ "types": "./dist/src/crafting/index.d.ts"
53
+ },
54
+ "./competence": {
55
+ "import": "./dist/src/competence/index.js",
56
+ "types": "./dist/src/competence/index.d.ts"
25
57
  }
26
58
  },
27
59
  "files": [