Project Files
dist / context.js
"use strict";
/**
* @file context.ts
* @description Conversation context management for persona-manager.
* Tracks the active persona state, system prompt injection, and
* conversation history.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.initContext = initContext;
exports.switchPersona = switchPersona;
exports.getActivePersona = getActivePersona;
exports.getContext = getContext;
exports.incrementMessageCount = incrementMessageCount;
exports.resetContext = resetContext;
exports.getSystemPrompt = getSystemPrompt;
// ---------------------------------------------------------------------------
// Internal state
// ---------------------------------------------------------------------------
let _activePersona = null;
let _activePersonaId = null;
let _systemPrompt = "";
let _messageCount = 0;
// ---------------------------------------------------------------------------
// Public API
// ---------------------------------------------------------------------------
/**
* Initialise the context manager with an optional default persona.
*/
function initContext() {
_activePersona = null;
_activePersonaId = null;
_systemPrompt = "";
_messageCount = 0;
}
/**
* Switch the active persona to the given profile.
* Updates the system prompt and marks context as reset.
*
* Returns the previous persona ID (or null if none was set).
*/
function switchPersona(profile) {
const previous = _activePersonaId;
_activePersona = profile;
_activePersonaId = profile.id;
_systemPrompt = profile.systemPrompt;
_messageCount = 0;
return previous;
}
/**
* Get the current active persona profile.
* Returns null if no persona is active (default state).
*/
function getActivePersona() {
return _activePersona;
}
/**
* Get the current conversation context summary.
*/
function getContext() {
return {
activePersonaId: _activePersonaId,
activePersonaName: _activePersona?.name ?? "Default",
systemPrompt: _systemPrompt,
messageCount: _messageCount,
};
}
/**
* Increment the message counter (called when a new message is exchanged).
*/
function incrementMessageCount() {
_messageCount++;
}
/**
* Reset the conversation context (clears history, keeps active persona).
*/
function resetContext() {
_messageCount = 0;
}
/**
* Get the current system prompt.
*/
function getSystemPrompt() {
return _systemPrompt;
}
//# sourceMappingURL=context.js.map