@dsh-agentic-roleplay/state 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -66,7 +66,7 @@ The package owns how a story is remembered, not only where it is stored:
66
66
  - `session.records(scope)` reads the records back in the same wire format.
67
67
  - `session.recall({ characterId, situation, turn, policy })` is what a character is reminded of: events it took in and things it believes, by who the situation mentions, shared words and tags, importance and story-time recency; with `policy.flaky` the older and less important are told as faded or vague, or are gone. Age is elapsed story time from `session.clock`, never turn count; an unimportant event has a six-story-day half-life. It counts what it brings back as recalled, which makes it last longer.
68
68
  - `session.recallStored(query, { queryVector? })` adds the session's search index to the cues: texts that match the situation by words and, with the vector of the situation, by meaning. `session.searchEvents({ text, vector?, fromTurn, toTurn, minImportance, limit })` finds what happened by the same two searches, merged by reciprocal rank.
69
- - `session.recallRanked(query, signal, { queryVector? })` is the call for anything that reminds a character of something: `recall`, ranked by meaning when a plugin has registered a ranker with `roleplayState.rankMemories(ranker)` (an embedding model, a reranker; see `docs/capabilities.md`). `session.recallCandidates(query)` gives what could be recalled, with the text to match, for a ranker.
69
+ - `session.recallRanked(query, signal, { queryVector? })` is the call for anything that reminds a character of something: `recall`, ranked by meaning when a plugin has registered a ranker with `roleplayState.rankMemories(ranker)` (an embedding model, a reranker; see `docs/capabilities.md`). `session.recallCandidates(query)` gives what could be recalled, with the text to match, for a ranker. With `explain: true` in the query each recalled thing carries `why`: the cues of the moment (people named, words shared, place), what each search scored it, how much it matters, how long ago it was, how much of it is left in mind and what it was ranked by.
70
70
  - `session.knowledge` is the closed-world awareness graph for locations, items and directed exits (`learn`, `knows`, `get`, `list`, `forget`). Directional relationships are the corresponding character-to-character edges. Awareness grants identity only, not current state or whereabouts. `session.planKnownMove` plans through only a character's known places and exits; `planMove` remains the authoritative world planner.
71
71
  - `session.factions`, `factionStates`, `factionMemberships`, `factionRelationships` and `factionIntents` store persistent organisations separately from characters that act in scenes. Membership is many-to-many; relationships involving factions are directional and double as closed-world awareness edges.
72
72
  - `roleplayState.bind(resolver)` tells the tools which roleplay session an agent works in (the plugin that runs the agents supplies it, with the turn being played and the memory policy).
@@ -153,6 +153,12 @@ once released: a change is a new entry in `src/sqlite/schema.ts`, and a test
153
153
  pins the migrations of each release. A database from a newer version is refused
154
154
  rather than damaged.
155
155
 
156
+ Before a file that is behind the latest schema is upgraded, it must pass SQLite's
157
+ quick integrity check (a damaged file is refused with `CorruptDataError`, untouched)
158
+ and a copy of it as it was is written to `migration-backups/schema-<version>.sqlite`
159
+ beside the database, once per old version. `migrationBackupPath(location, version)`
160
+ says where.
161
+
156
162
  ## Errors
157
163
 
158
164
  | Error | When |
package/lib/index.d.ts CHANGED
@@ -1088,6 +1088,8 @@ interface TriggerAnnouncement {
1088
1088
  /** When it is to happen, a local time, as told with the announcement; the time the condition waits for when it is a plain one, if left out. */
1089
1089
  at?: string;
1090
1090
  }
1091
+ /** In a cue, the key of the character it is said to: in a `while` condition and in the words of the cue. */
1092
+ declare const SELF = "@self";
1091
1093
  /** What happens when a trigger fires. */
1092
1094
  type TriggerEffect =
1093
1095
  /** A checked change of the story's records, in the format of an edit (events, variable changes, exit and item changes, moves, goals, engagements). */
@@ -1095,16 +1097,22 @@ type TriggerEffect =
1095
1097
  type: 'edit';
1096
1098
  edit: Record<string, unknown>;
1097
1099
  } |
1098
- /** Something the game master is told to weave into the story, until it says it did or a few turns pass. */
1100
+ /**
1101
+ * Something the game master is told to weave into the story, until it says it did or a few turns pass. It is written when it is told, not when
1102
+ * the trigger fired: `text` may name things the story has by `{kind:key}` and so is said as the story stands then (see `TEMPLATE_KINDS`), and
1103
+ * `while` is a condition that must still hold then, or the beat is withdrawn instead.
1104
+ */
1099
1105
  {
1100
1106
  type: 'beat';
1101
1107
  text: string;
1108
+ while?: TriggerCondition;
1102
1109
  } |
1103
- /** Something the audience notices, said to each of them the next time they act. */
1110
+ /** Something the audience notices, said to each of them the next time they act; written, and withdrawn, as a beat is, for each of them (`SELF` is the one it is said to). */
1104
1111
  {
1105
1112
  type: 'cue';
1106
1113
  audience: TriggerAudience;
1107
1114
  text: string;
1115
+ while?: TriggerCondition;
1108
1116
  };
1109
1117
  declare const TRIGGER_STATUSES: readonly ["dormant", "fired", "failed", "expired"];
1110
1118
  type TriggerStatus = (typeof TRIGGER_STATUSES)[number];
@@ -2389,12 +2397,12 @@ declare function parseTriggerDefinition(value: unknown, path: string, checkEdit:
2389
2397
  } | {
2390
2398
  problems: string[];
2391
2399
  };
2392
- type Reading = Pick<RecordsTarget, 'characters' | 'locations' | 'items' | 'variables' | 'triggers'>;
2400
+ type Reading$1 = Pick<RecordsTarget, 'characters' | 'locations' | 'items' | 'variables' | 'triggers'>;
2393
2401
  /**
2394
2402
  * What in a trigger names something the story does not have: a character, place, item or variable in a condition, the characters of a cue,
2395
2403
  * a trigger it waits for. (What an edit effect touches is checked when it is applied.)
2396
2404
  */
2397
- declare function triggerReferenceProblems(target: Reading, definition: TriggerDefinition, otherKeys?: Iterable<string>): string[];
2405
+ declare function triggerReferenceProblems(target: Reading$1, definition: TriggerDefinition, otherKeys?: Iterable<string>): string[];
2398
2406
  interface TriggerClock {
2399
2407
  now: number;
2400
2408
  zone: string;
@@ -2461,6 +2469,30 @@ declare function lapseNotes(target: RecordsTarget, turn: number, kept: {
2461
2469
  cues: number;
2462
2470
  }): TriggerNote[];
2463
2471
  //#endregion
2472
+ //#region src/records/deferred.d.ts
2473
+ type Reading = RecordsTarget;
2474
+ /** The words cannot be written as the story stands: something they name is not there. */
2475
+ declare class UnwritableError extends Error {}
2476
+ /** Words as the story stands now. @throws {UnwritableError} when something they name is not there. */
2477
+ declare function renderWords(target: Reading, text: string, clock: TriggerClock, self?: string): string;
2478
+ interface Delivery {
2479
+ /** What is to be told now, in words as the story stands. */
2480
+ shown: {
2481
+ note: TriggerNote;
2482
+ text: string;
2483
+ }[];
2484
+ /** What is not to be told, and why: the beat or cue no longer applies, or cannot be written. */
2485
+ withdrawn: {
2486
+ note: TriggerNote;
2487
+ reason: string;
2488
+ }[];
2489
+ }
2490
+ /**
2491
+ * Decides, at the moment notes are about to be told, what is still to be told and in what words. A note whose effect says something must
2492
+ * still hold and does not hold any more is withdrawn; so is one whose words name something that is not there. Nothing is changed.
2493
+ */
2494
+ declare function deliverNotes(target: Reading, notes: readonly TriggerNote[], clock: TriggerClock): Delivery;
2495
+ //#endregion
2464
2496
  //#region src/records/movement.d.ts
2465
2497
  interface MoveContext {
2466
2498
  locations: Pick<LocationRepository, 'get' | 'allExits'>;
@@ -2502,6 +2534,16 @@ interface MemoryPolicy {
2502
2534
  * reranker judges, and it also gives importance and recency something to choose between. At least 1.
2503
2535
  */
2504
2536
  overRetrieve?: number;
2537
+ /**
2538
+ * How many more things come to mind because they are strongly tied to what the moment recalled (the same people together with the same
2539
+ * place or tags) and matter enough. 0 or absent: none.
2540
+ */
2541
+ associate?: number;
2542
+ /**
2543
+ * How much a memory that says what one already chosen says counts against it, from 0 (the best by score, repeats
2544
+ * included) to 1 (only what adds something new): maximal marginal relevance over the pool. 0 or absent: none.
2545
+ */
2546
+ diversity?: number;
2505
2547
  }
2506
2548
  declare const DEFAULT_MEMORY_POLICY: MemoryPolicy;
2507
2549
  /** How much of a memory is left: what the character is told of it. */
@@ -2519,6 +2561,38 @@ interface Recalled {
2519
2561
  kind: 'perception' | 'memory';
2520
2562
  id: number;
2521
2563
  };
2564
+ /** It did not match the moment itself: it came to mind with something that did ({@link MemoryPolicy.associate}). */
2565
+ linked?: true;
2566
+ /** Why it came back, when the query asked to be told ({@link RecallQuery.explain}). */
2567
+ why?: RecallWhy;
2568
+ }
2569
+ /** What made one thing come back, for finding out why a character was or was not reminded of something. */
2570
+ interface RecallWhy {
2571
+ /** What the cues of the moment gave, in the units of a cue: people named (a name counts 3, more for social weight), words and tags shared (at most 6), being where it happened. */
2572
+ cues: {
2573
+ people: number;
2574
+ words: number;
2575
+ place: number;
2576
+ };
2577
+ /** What each search scored it, from 0 to 1; absent when that search did not run or did not find it. */
2578
+ lexical?: number;
2579
+ dense?: number;
2580
+ rerank?: number;
2581
+ /** What it counted for in the end: the fused retrieval score, blended with the reranker's when there was one. */
2582
+ relevance: number;
2583
+ importance: number;
2584
+ /** How long ago it was in story days; 0 when the story has no clock. */
2585
+ ageDays: number;
2586
+ /** How much of it is left in mind, from 1 to 0, when memories fade. */
2587
+ retention?: number;
2588
+ /** What it was ranked by, together with how much it matters and how recent it is. */
2589
+ score: number;
2590
+ /** For something that came to mind with another: what it shares with the closest of the things recalled for the moment. */
2591
+ linked?: {
2592
+ people: number;
2593
+ tags: number;
2594
+ place: boolean;
2595
+ };
2522
2596
  }
2523
2597
  interface RecallQuery {
2524
2598
  characterId: CharacterId;
@@ -2530,6 +2604,10 @@ interface RecallQuery {
2530
2604
  locationId?: number;
2531
2605
  turn: number;
2532
2606
  policy: MemoryPolicy;
2607
+ /** Say why each thing came back ({@link Recalled.why}). */
2608
+ explain?: boolean;
2609
+ /** Only what involves or is about one of these people comes back: "what do I know about her", which a name in the words would not reliably find. */
2610
+ about?: readonly CharacterId[];
2533
2611
  }
2534
2612
  /** What recall reads: the events a character took in and what it believes. */
2535
2613
  interface RecallSource {
@@ -2556,14 +2634,22 @@ declare function clarityAt(value: number, importance: number): Clarity | undefin
2556
2634
  declare function tokens(text: string): Set<string>;
2557
2635
  /** The characters a text mentions by name or alias. */
2558
2636
  declare function mentioned(text: string, characters: readonly Character[]): Set<number>;
2637
+ /** What ties a candidate to others: the people it involves (other than the one remembering), its tags and where it happened. */
2638
+ interface Links {
2639
+ people: readonly number[];
2640
+ tags: readonly string[];
2641
+ place?: number;
2642
+ }
2559
2643
  interface Candidate {
2560
2644
  key: string;
2561
- recalled: Omit<Recalled, 'clarity' | 'text'> & {
2645
+ links: Links;
2646
+ recalled: Omit<Recalled, 'clarity' | 'text' | 'why'> & {
2562
2647
  clear: string;
2563
2648
  faded: string;
2564
2649
  vague: string;
2565
2650
  };
2566
2651
  relevance: number;
2652
+ cues: RecallWhy['cues'];
2567
2653
  importance: number;
2568
2654
  ageDays: number;
2569
2655
  recalls: number;
@@ -2592,7 +2678,7 @@ interface RecallEvidence {
2592
2678
  rerank?: ReadonlyMap<string, number>;
2593
2679
  }
2594
2680
  /** Everything the character could be reminded of, for a caller that ranks by meaning (an embedding, a reranker) before asking for the recall. */
2595
- declare function recallCandidates(source: RecallSource, query: Pick<RecallQuery, 'characterId' | 'characters' | 'situation' | 'turn' | 'locationId'>): RecallCandidate[];
2681
+ declare function recallCandidates(source: RecallSource, query: Pick<RecallQuery, 'characterId' | 'characters' | 'situation' | 'turn' | 'locationId' | 'about'>): RecallCandidate[];
2596
2682
  /** Fuse scores from 0 to 1 into one, per key: the weighted average over the searches that ran (those with any score above 0). */
2597
2683
  declare function fuseScores(searches: readonly {
2598
2684
  weight: number;
@@ -2602,11 +2688,18 @@ interface PoolEntry {
2602
2688
  candidate: Candidate;
2603
2689
  /** How well retrieval alone matches the moment, from 0 to 1. */
2604
2690
  fused: number;
2691
+ /** What each search scored it, when it was found by it. */
2692
+ found: {
2693
+ lexical?: number;
2694
+ dense?: number;
2695
+ };
2605
2696
  }
2606
2697
  /** What retrieval over-retrieved for one recall, waiting for a reranker's judgement and the final choice. */
2607
2698
  interface RecallPool {
2608
2699
  entries: readonly PoolEntry[];
2609
- query: Pick<RecallQuery, 'policy'>;
2700
+ /** What retrieval left out, which an association may still bring to mind. */
2701
+ others: readonly Candidate[];
2702
+ query: Pick<RecallQuery, 'policy' | 'explain'>;
2610
2703
  }
2611
2704
  /**
2612
2705
  * The first stage of reminding a character of what the moment calls to mind: retrieve, by the cues
@@ -2619,7 +2712,7 @@ declare function recallPool(source: RecallSource, query: RecallQuery, evidence?:
2619
2712
  /** What a reranker is asked to judge: every candidate of the pool, with the text it would be recalled by. */
2620
2713
  declare function poolCandidates(pool: RecallPool): RecallCandidate[];
2621
2714
  /**
2622
- * The last stage: choose the `policy.recall` best of the pool. With a reranker's judgement each
2715
+ * The last stage: choose the `policy.recall` best of the pool, spread by `policy.diversity`. With a reranker's judgement each
2623
2716
  * candidate's relevance is mostly that (a candidate it left out counts as 0), and the rest is what
2624
2717
  * retrieval found; without, it is what retrieval found.
2625
2718
  */
@@ -2947,6 +3040,8 @@ interface SessionStore {
2947
3040
  beats: number;
2948
3041
  cues: number;
2949
3042
  }): TriggerNote[];
3043
+ /** Which of these notes are still to be told, and in what words as the story stands now; the others are withdrawn, with the reason. Nothing is changed. */
3044
+ deliverNotes(notes: readonly TriggerNote[], clock: TriggerClock): Delivery;
2950
3045
  /** Write a consistent copy of the whole database to `path`, which must not exist. */
2951
3046
  snapshotTo(path: string): void;
2952
3047
  close(): void;
@@ -2963,6 +3058,10 @@ declare function createSessionStore(location: string, session: NewSession, optio
2963
3058
  * @throws {SchemaError} when the file is not a session database, or is from a newer version.
2964
3059
  */
2965
3060
  declare function openSessionStore(location: string, options?: StoreOptions): SessionStore;
3061
+ /** Folder, beside the database, holding the copies made before a schema upgrade. */
3062
+ declare const MIGRATION_BACKUP_FOLDER = "migration-backups";
3063
+ /** Where the copy of a database as it was at schema `version` is kept. */
3064
+ declare function migrationBackupPath(location: string, version: number): string;
2966
3065
  //#endregion
2967
3066
  //#region src/sessions.d.ts
2968
3067
  declare const SESSION_DATABASE_FILE = "session.sqlite";
@@ -3288,6 +3387,60 @@ declare function addLocalDays(instant: number, zone: string, days: number): {
3288
3387
  weekday: number;
3289
3388
  };
3290
3389
  //#endregion
3390
+ //#region src/records/template.d.ts
3391
+ /**
3392
+ * What the words of a cue or a beat may name by `{kind:key}`, filled in from the story when they are told. The key is how the world's files
3393
+ * name the thing (`@self` in a cue is the character it is said to), and a name follows the story: a renamed character is renamed in the words.
3394
+ */
3395
+ declare const TEMPLATE_KINDS: {
3396
+ /** The name of a character. */
3397
+ readonly character: {
3398
+ readonly args: 1;
3399
+ readonly about: "a character";
3400
+ };
3401
+ /** The name of a place. */
3402
+ readonly place: {
3403
+ readonly args: 1;
3404
+ readonly about: "a place";
3405
+ };
3406
+ /** The name of an item. */
3407
+ readonly item: {
3408
+ readonly args: 1;
3409
+ readonly about: "an item";
3410
+ };
3411
+ /** The name of the place a character is in now. */
3412
+ readonly where: {
3413
+ readonly args: 1;
3414
+ readonly about: "a character";
3415
+ };
3416
+ /** Who holds an item now, or the place it lies in. */
3417
+ readonly holder: {
3418
+ readonly args: 1;
3419
+ readonly about: "an item";
3420
+ };
3421
+ /** What a variable is now, in words: `{value:key}` for a world variable, `{value:key:subject}` for the character, item or place it is about. */
3422
+ readonly value: {
3423
+ readonly args: 2;
3424
+ readonly about: "a variable";
3425
+ };
3426
+ /** The time of day in the story, as `19:30`. */
3427
+ readonly time: {
3428
+ readonly args: 0;
3429
+ readonly about: "";
3430
+ };
3431
+ };
3432
+ type TemplateKind = keyof typeof TEMPLATE_KINDS;
3433
+ interface Placeholder {
3434
+ raw: string;
3435
+ kind: TemplateKind;
3436
+ args: string[];
3437
+ }
3438
+ /** The placeholders in some words, and what is wrong with any that is not one. Anything that does not look like `{word}` or `{word:key}` is plain text. */
3439
+ declare function placeholdersOf(text: string): {
3440
+ found: Placeholder[];
3441
+ problems: string[];
3442
+ };
3443
+ //#endregion
3291
3444
  //#region src/records/lint.d.ts
3292
3445
  type LintSeverity = 'error' | 'warning' | 'info';
3293
3446
  interface LintFinding {
@@ -3308,5 +3461,5 @@ type LintTarget = Pick<RecordsTarget, 'characters' | 'locations' | 'placements'
3308
3461
  */
3309
3462
  declare function lintWorld(target: LintTarget): LintFinding[];
3310
3463
  //#endregion
3311
- export { ACCURACIES, Accuracy, type Agenda, type AgendaEngagement, type AgendaOptions, type AgentLink, type AgentResolver, type Announcement, type BeliefEdit, CHARACTER_CONTROLS, CHARACTER_KINDS, CHARACTER_ROLES, CHARACTER_TIERS, CLOCK_MODES, COMPARISONS, CONSOLIDATION_KINDS, CONTAINER_STATES, Character, CharacterControl, CharacterDefinition, CharacterFilter, CharacterId, CharacterIntent, CharacterKind, CharacterMemory, CharacterMemoryPatch, type CharacterMove, CharacterPatch, type CharacterRepository, CharacterRole, CharacterSpeech, CharacterStart, CharacterState, CharacterStatePatch, type CharacterStateRepository, CharacterTier, type Clarity, type Clock, ClockMode, ClockState, Comparison, Config, ConflictError, ConsolidationItem, ConsolidationItemId, ConsolidationKind, type ConsolidationRepository, ContainerSpec, ContainerState, CorruptDataError, DAY, DAY_PARTS, DEFAULT_MEMORY_POLICY, DEFAULT_SLOTS, type DayPart, EMOTION_VARIABLES, ENGAGEMENT_GRACE, ENGAGEMENT_STATUSES, EXIT_STATES, type EditChecker, type EditResult, EmbeddingIndexInfo, EmotionStart, EmotionVector, Engagement, EngagementFilter, EngagementId, EngagementPatch, EngagementStatus, EntityKnowledge, type EventEdit, EventId, type EventRepository, Exit, type ExitChange, ExitDefinition, ExitId, ExitOpener, ExitPatch, ExitState, Faction, FactionDefinition, FactionId, FactionIntent, type FactionIntentRepository, FactionMembership, FactionMembershipDefinition, type FactionMembershipRepository, FactionPatch, FactionRelationship, FactionRelationshipDefinition, type FactionRelationshipRepository, type FactionRepository, FactionState, FactionStatePatch, type FactionStateRepository, type FiredTrigger, HOUR, Holder, Holding, IMPORTANCE_MAX, IMPORTANCE_MIN, INTENT_HORIZONS, INTENT_STATUSES, INTENT_TYPES, ITEM_ACTIONS, Intent, IntentFilter, IntentHorizon, IntentId, IntentPatch, type IntentRepository, IntentStatus, IntentType, InvalidEditError, InvalidMoveError, InvalidValueError, Item, type ItemAction, type ItemChange, type ItemChangeSpec, type ItemContext, ItemDefinition, type ItemEditSpec, type ItemEffect, ItemId, ItemPatch, type ItemPlan, type ItemRepository, JsonValue, KNOWLEDGE_KINDS, KnowledgeDefinition, KnowledgeKind, type KnowledgeRepository, type KnownMoveContext, LORE_KINDS, LORE_SUBJECT_KINDS, type LintFinding, type LintSeverity, type LintTarget, type LocalTime, Location, LocationDefinition, LocationFeature, LocationId, LocationPatch, type LocationRepository, Lore, LoreDefinition, LoreId, LoreKind, LorePatch, LoreSubject, LoreSubjectDefinition, LoreSubjectKind, MAX_LOCATION_FEATURES, MAX_ROUTINE_WINDOWS, MAX_SHOWN, MAX_TRIGGERS, MAX_VARIABLES, MEMBERSHIP_STATUSES, MEMORY_KINDS, MINUTE, MembershipPatch, MembershipStatus, MemoryId, MemoryKind, type MemoryPolicy, type MemoryRepository, type MetadataRepository, Move, type MoveContext, MovePlan, type NewBelief, NewCharacter, NewCharacterMemory, type NewCharacterSpec, NewCharacterState, NewEngagement, type NewEvent, NewExit, type NewExitBetween, type NewExit$1 as NewExitEdit, NewFaction, NewFactionState, NewItem, type NewItemSpec, NewLocation, NewLore, NewPerception, type NewPlace, NewPlacement, NewRelationship, NewSession, NewStoryEvent, NewSummary, NewTriggerNote, NotFoundError, type Occurrence, type OpenOptions, PERCEPTION_MODES, PLACEABLE_KINDS, PLOT_NUDGE_MODES, PLOT_STATUSES, PendingCommit, type PendingCommitRepository, PendingEmbedding, type PerceivedBy, PerceivedEvent, Perception, type PerceptionAddition, type PerceptionEdit, PerceptionId, PerceptionMode, PerceptionPatch, type PlaceEdit, PlaceableKind, Placement, type PlacementRepository, PlotDefinition, PlotDevelopment, PlotNudgeMode, PlotProgress, PlotStatus, RECALL_ITEM_KINDS, type RankedGoal, type RecallCandidate, type RecallEvidence, RecallHit, type RecallIndexRepository, RecallItemKind, type RecallPool, type RecallQuery, type RecallSearch, type RecallSource, type Recalled, type RecordsEdit, type RecordsScope, type RecordsTarget, type RecordsView, Relationship, RelationshipDefinition, RelationshipId, RelationshipPatch, type RelationshipRepository, type RelationshipRetraction, type RelationshipSet, RoleplayState, RoutineDefinition, RoutineWindow, type RunResult, LATEST_VERSION as SCHEMA_VERSION, SECOND, SESSION_DATABASE_FILE, SLOT_ID, SUMMARY_LEVELS, SchemaError, type SemanticRanker, type Session, type SessionInit, type SessionListing, SessionMetadata, type SessionStore, type ShownVariable, Slot, type SlotRepository, SocialSubjectKind, type SqlDatabase, type SqlDriver, type SqlValue, StateError, type StatePatch, type StoreOptions, StoredRoutineWindow, StoredVariable, StoryEvent, StoryEventFilter, StoryEventPatch, StoryThread, Summary, SummaryId, SummaryLevel, type SummaryRepository, THREAD_STATUSES, TIME_CHANGE_KINDS, TRIGGER_NOTE_KINDS, TRIGGER_STATUSES, ThreadId, type ThreadRepository, ThreadStatus, TimeChange, TimeChangeFilter, TimeChangeKind, Trigger, TriggerAnnouncement, TriggerAudience, type TriggerClock, TriggerCondition, TriggerDefinition, TriggerEffect, TriggerId, TriggerNote, TriggerNoteKind, type TriggerRun, type TriggerRunOptions, TriggerStatus, VARIABLE_KEY, VARIABLE_KINDS, VARIABLE_SUBJECTS, VARIABLE_VISIBILITIES, VISUAL_SUBJECT_KINDS, type VariableAudience, VariableBand, type VariableChangeSpec, type VariableContext, VariableDefinition, VariableDefinitionInput, type VariableEffect, VariableKind, type VariablePlan, VariableSubject, VariableValue, VariableVisibility, type VectorSearch, type VectorSupport, VisualIdentity, VisualIdentityInput, VisualIdentityPatch, type VisualIdentityRepository, VisualSubjectKind, WEEKDAY_NAMES, WorldReference, addLocalDays, agendaAt, announcements, apply, applyItemPlan, applyRecordsEdit, audienceIds, catchUpPlan, changeItem, changeVariable, characterKey, clarityAt, clockTime, conditionHolds, createCharacterTools, createSession, createSessionStore, createTools, dayPart, deleteSession, denseScore, describeDuration, describeHolder, describeInstant, describeValue, finishRecall, fuseScores, inAudience, inWindow, isSessionId, isTimeZone, itemKey, jitter, judgedStatements, lapseNotes, lintWorld, listSessions, localIso, localTime, locationKey, mentioned, moveCharacter, name, nextOccurrence, nextTimeOfDay, nodeSqliteDriver, occurrenceAt, openSession, openSessionStore, overlap, parseInstant, parseRecordsEdit, parseTimeOfDay, parseTriggerDefinition, planItemChange, planKnownMove, planMove, planVariableChange, poolCandidates, rankGoals, readRecords, readTriggerDefinition, recall, recallCandidates, recallPool, recordsEditSchema, retention, runTriggers, seededRoll, sessionDatabase, sessionFolder, shownVariables, subjectOf, systemClock, systemTimeZone, tokens, triggerReferenceProblems, valueIssue, zonedInstant };
3464
+ export { ACCURACIES, Accuracy, type Agenda, type AgendaEngagement, type AgendaOptions, type AgentLink, type AgentResolver, type Announcement, type BeliefEdit, CHARACTER_CONTROLS, CHARACTER_KINDS, CHARACTER_ROLES, CHARACTER_TIERS, CLOCK_MODES, COMPARISONS, CONSOLIDATION_KINDS, CONTAINER_STATES, Character, CharacterControl, CharacterDefinition, CharacterFilter, CharacterId, CharacterIntent, CharacterKind, CharacterMemory, CharacterMemoryPatch, type CharacterMove, CharacterPatch, type CharacterRepository, CharacterRole, CharacterSpeech, CharacterStart, CharacterState, CharacterStatePatch, type CharacterStateRepository, CharacterTier, type Clarity, type Clock, ClockMode, ClockState, Comparison, Config, ConflictError, ConsolidationItem, ConsolidationItemId, ConsolidationKind, type ConsolidationRepository, ContainerSpec, ContainerState, CorruptDataError, DAY, DAY_PARTS, DEFAULT_MEMORY_POLICY, DEFAULT_SLOTS, type DayPart, type Delivery, EMOTION_VARIABLES, ENGAGEMENT_GRACE, ENGAGEMENT_STATUSES, EXIT_STATES, type EditChecker, type EditResult, EmbeddingIndexInfo, EmotionStart, EmotionVector, Engagement, EngagementFilter, EngagementId, EngagementPatch, EngagementStatus, EntityKnowledge, type EventEdit, EventId, type EventRepository, Exit, type ExitChange, ExitDefinition, ExitId, ExitOpener, ExitPatch, ExitState, Faction, FactionDefinition, FactionId, FactionIntent, type FactionIntentRepository, FactionMembership, FactionMembershipDefinition, type FactionMembershipRepository, FactionPatch, FactionRelationship, FactionRelationshipDefinition, type FactionRelationshipRepository, type FactionRepository, FactionState, FactionStatePatch, type FactionStateRepository, type FiredTrigger, HOUR, Holder, Holding, IMPORTANCE_MAX, IMPORTANCE_MIN, INTENT_HORIZONS, INTENT_STATUSES, INTENT_TYPES, ITEM_ACTIONS, Intent, IntentFilter, IntentHorizon, IntentId, IntentPatch, type IntentRepository, IntentStatus, IntentType, InvalidEditError, InvalidMoveError, InvalidValueError, Item, type ItemAction, type ItemChange, type ItemChangeSpec, type ItemContext, ItemDefinition, type ItemEditSpec, type ItemEffect, ItemId, ItemPatch, type ItemPlan, type ItemRepository, JsonValue, KNOWLEDGE_KINDS, KnowledgeDefinition, KnowledgeKind, type KnowledgeRepository, type KnownMoveContext, LORE_KINDS, LORE_SUBJECT_KINDS, type LintFinding, type LintSeverity, type LintTarget, type LocalTime, Location, LocationDefinition, LocationFeature, LocationId, LocationPatch, type LocationRepository, Lore, LoreDefinition, LoreId, LoreKind, LorePatch, LoreSubject, LoreSubjectDefinition, LoreSubjectKind, MAX_LOCATION_FEATURES, MAX_ROUTINE_WINDOWS, MAX_SHOWN, MAX_TRIGGERS, MAX_VARIABLES, MEMBERSHIP_STATUSES, MEMORY_KINDS, MIGRATION_BACKUP_FOLDER, MINUTE, MembershipPatch, MembershipStatus, MemoryId, MemoryKind, type MemoryPolicy, type MemoryRepository, type MetadataRepository, Move, type MoveContext, MovePlan, type NewBelief, NewCharacter, NewCharacterMemory, type NewCharacterSpec, NewCharacterState, NewEngagement, type NewEvent, NewExit, type NewExitBetween, type NewExit$1 as NewExitEdit, NewFaction, NewFactionState, NewItem, type NewItemSpec, NewLocation, NewLore, NewPerception, type NewPlace, NewPlacement, NewRelationship, NewSession, NewStoryEvent, NewSummary, NewTriggerNote, NotFoundError, type Occurrence, type OpenOptions, PERCEPTION_MODES, PLACEABLE_KINDS, PLOT_NUDGE_MODES, PLOT_STATUSES, PendingCommit, type PendingCommitRepository, PendingEmbedding, type PerceivedBy, PerceivedEvent, Perception, type PerceptionAddition, type PerceptionEdit, PerceptionId, PerceptionMode, PerceptionPatch, type PlaceEdit, PlaceableKind, type Placeholder, Placement, type PlacementRepository, PlotDefinition, PlotDevelopment, PlotNudgeMode, PlotProgress, PlotStatus, RECALL_ITEM_KINDS, type RankedGoal, type RecallCandidate, type RecallEvidence, RecallHit, type RecallIndexRepository, RecallItemKind, type RecallPool, type RecallQuery, type RecallSearch, type RecallSource, type RecallWhy, type Recalled, type RecordsEdit, type RecordsScope, type RecordsTarget, type RecordsView, Relationship, RelationshipDefinition, RelationshipId, RelationshipPatch, type RelationshipRepository, type RelationshipRetraction, type RelationshipSet, RoleplayState, RoutineDefinition, RoutineWindow, type RunResult, LATEST_VERSION as SCHEMA_VERSION, SECOND, SELF, SESSION_DATABASE_FILE, SLOT_ID, SUMMARY_LEVELS, SchemaError, type SemanticRanker, type Session, type SessionInit, type SessionListing, SessionMetadata, type SessionStore, type ShownVariable, Slot, type SlotRepository, SocialSubjectKind, type SqlDatabase, type SqlDriver, type SqlValue, StateError, type StatePatch, type StoreOptions, StoredRoutineWindow, StoredVariable, StoryEvent, StoryEventFilter, StoryEventPatch, StoryThread, Summary, SummaryId, SummaryLevel, type SummaryRepository, TEMPLATE_KINDS, THREAD_STATUSES, TIME_CHANGE_KINDS, TRIGGER_NOTE_KINDS, TRIGGER_STATUSES, type TemplateKind, ThreadId, type ThreadRepository, ThreadStatus, TimeChange, TimeChangeFilter, TimeChangeKind, Trigger, TriggerAnnouncement, TriggerAudience, type TriggerClock, TriggerCondition, TriggerDefinition, TriggerEffect, TriggerId, TriggerNote, TriggerNoteKind, type TriggerRun, type TriggerRunOptions, TriggerStatus, UnwritableError, VARIABLE_KEY, VARIABLE_KINDS, VARIABLE_SUBJECTS, VARIABLE_VISIBILITIES, VISUAL_SUBJECT_KINDS, type VariableAudience, VariableBand, type VariableChangeSpec, type VariableContext, VariableDefinition, VariableDefinitionInput, type VariableEffect, VariableKind, type VariablePlan, VariableSubject, VariableValue, VariableVisibility, type VectorSearch, type VectorSupport, VisualIdentity, VisualIdentityInput, VisualIdentityPatch, type VisualIdentityRepository, VisualSubjectKind, WEEKDAY_NAMES, WorldReference, addLocalDays, agendaAt, announcements, apply, applyItemPlan, applyRecordsEdit, audienceIds, catchUpPlan, changeItem, changeVariable, characterKey, clarityAt, clockTime, conditionHolds, createCharacterTools, createSession, createSessionStore, createTools, dayPart, deleteSession, deliverNotes, denseScore, describeDuration, describeHolder, describeInstant, describeValue, finishRecall, fuseScores, inAudience, inWindow, isSessionId, isTimeZone, itemKey, jitter, judgedStatements, lapseNotes, lintWorld, listSessions, localIso, localTime, locationKey, mentioned, migrationBackupPath, moveCharacter, name, nextOccurrence, nextTimeOfDay, nodeSqliteDriver, occurrenceAt, openSession, openSessionStore, overlap, parseInstant, parseRecordsEdit, parseTimeOfDay, parseTriggerDefinition, placeholdersOf, planItemChange, planKnownMove, planMove, planVariableChange, poolCandidates, rankGoals, readRecords, readTriggerDefinition, recall, recallCandidates, recallPool, recordsEditSchema, renderWords, retention, runTriggers, seededRoll, sessionDatabase, sessionFolder, shownVariables, subjectOf, systemClock, systemTimeZone, tokens, triggerReferenceProblems, valueIssue, zonedInstant };
3312
3465
  //# sourceMappingURL=index.d.ts.map