Member Junction
    Preparing search index...

    Module @memberjunction/ai-core-plus - v5.49.0

    @memberjunction/ai-core-plus

    Shared type definitions and extended entity classes for the MemberJunction AI Framework. This package bridges the gap between the standalone @memberjunction/ai core and the full MJ entity system, providing types that are usable on both server and client. It defines prompt execution result types, agent execution types, system placeholder management, conversation utilities, and extended entity classes with additional computed properties.

    graph TD
        AI["@memberjunction/ai"]
        style AI fill:#2d6a9f,stroke:#1a4971,color:#fff
    
        CORE["@memberjunction/core"]
        style CORE fill:#2d6a9f,stroke:#1a4971,color:#fff
    
        CE["@memberjunction/core-entities"]
        style CE fill:#2d6a9f,stroke:#1a4971,color:#fff
    
        ACP["@memberjunction/ai-core-plus"]
        style ACP fill:#2d8659,stroke:#1a5c3a,color:#fff
    
        subgraph "ai-core-plus Modules"
            PT["Prompt Types
    AIPromptParams, AIPromptRunResult"] style PT fill:#7c5295,stroke:#563a6b,color:#fff AT["Agent Types
    ExecuteAgentParams, ExecuteAgentResult"] style AT fill:#7c5295,stroke:#563a6b,color:#fff SP["System Placeholders
    Date/Time, User Context"] style SP fill:#b8762f,stroke:#8a5722,color:#fff EXT["Extended Entities
    AIPrompt, AIModel, AIAgent"] style EXT fill:#2d6a9f,stroke:#1a4971,color:#fff CU["ConversationUtility"] style CU fill:#b8762f,stroke:#8a5722,color:#fff RF["Response Forms
    & UI Commands"] style RF fill:#7c5295,stroke:#563a6b,color:#fff end AI --> ACP CORE --> ACP CE --> ACP ACP --> PT ACP --> AT ACP --> SP ACP --> EXT ACP --> CU ACP --> RF
    npm install @memberjunction/ai-core-plus
    
    Type / Class Purpose
    AIPromptParams Full parameter set for prompt execution: prompt reference, data context, configuration, child prompts, streaming callbacks, cancellation, credential overrides, effort level, and more
    AIPromptRunResult<T> Generic result from prompt execution including raw/parsed output, token usage, cost, validation attempts, model selection info, and media references
    ChildPromptParam Links a child prompt to a placeholder in a parent template for hierarchical composition
    AIModelSelectionInfo Debugging info about which models were considered and why one was selected
    ExecutionProgressCallback Callback for real-time execution progress (template rendering, model selection, execution, validation)
    ExecutionStreamingCallback Callback for streaming content chunks during execution
    ValidationAttempt Detailed record of each validation attempt with attempt number, errors, and raw/parsed output
    PromptRunMediaReference Reference to generated media (image, audio, video) with metadata
    ExecutionStatus Status enum: 'Pending', 'Running', 'Completed', 'Failed', 'Cancelled'
    Type / Class Purpose
    ExecuteAgentParams Parameters for agent execution: agent reference, messages, conversation context, user scope, configuration presets, effort level, action changes, and callbacks
    ExecuteAgentResult Agent execution result with success status, output messages, actions performed, sub-agent requests, and model selection info
    AgentContextData Contextual data injected into agent prompts (notes, examples, data sources)
    AgentConfiguration Runtime configuration for an agent run (model overrides, effort level, max iterations)
    UserScope Multi-tenant scoping for agent memory with primary/secondary dimensions
    AgentAction Description of an action an agent wants to execute
    AgentSubAgentRequest Request from one agent to delegate work to a sub-agent
    AgentChatMessage / AgentChatMessageMetadata Chat messages with lifecycle metadata (expiration, compaction)
    MediaOutput Media generated by an agent (modality, MIME type, data)
    ActionChange / ActionChangeScope Runtime action customization for multi-tenant scenarios

    ExecuteAgentResult surfaces the agent run's step list. As of v5.30.x, MemoryManagerAgent runs emit two new step types when its consolidation pipeline executes:

    Step name Cardinality Notable payload fields
    Process Consolidation Cluster One per cluster identified clusterSize, noteIds, shouldConsolidate, consolidatedNoteId, sourceNotesArchived, verificationPassed, entitiesChecked, entitiesMissing
    Verify Consolidation Output One per maintenance run Phase-level summary of post-consolidation entity coverage check

    Run-level payload additions include scoreDistribution, entityTriplesExtracted, decayScoreDistribution, protectedPreserved, ephemeralAccelerated, and triggerType ('forced' / 'time' / 'event' / 'count'). These flow through unchanged via ExecuteAgentResult.steps[*].outputData — consumers that already deserialize step output data will pick them up without code changes.

    For pipeline mechanics, see @memberjunction/ai-agents.

    The SystemPlaceholderManager automatically injects common values into all prompt templates:

    • {{CurrentDate}}, {{CurrentTime}}, {{CurrentDateTime}} -- Current date/time in user's timezone
    • {{CurrentTimezone}} -- User's timezone identifier
    • {{UserName}}, {{UserEmail}}, {{UserFirstName}}, {{UserLastName}} -- User context
    • Custom placeholders can be registered at runtime
    Class Extends Additional Properties
    AIPromptEntityExtended AIPromptEntity Prompt category associations, template relationships
    AIPromptCategoryEntityExtended AIPromptCategoryEntity Prompts array of child prompts
    AIModelEntityExtended AIModelEntity ModelVendors array, vendor association helpers
    AIAgentEntityExtended AIAgentEntity Actions, Notes arrays, agent relationships
    AIAgentRunEntityExtended AIAgentRunEntity Extended run tracking
    AIAgentRunStepEntityExtended AIAgentRunStepEntity Extended step tracking
    AIPromptRunEntityExtended AIPromptRunEntity Extended prompt run tracking
    Export Purpose
    ConversationUtility Helper for creating, loading, and managing conversation records
    AgentResponseForm Structured response format definitions for agent outputs
    ActionableCommand / AutomaticCommand UI command types for agent-driven interfaces
    AgentPayloadChangeRequest Request to modify agent payload data during execution
    ForEachOperation / WhileOperation Loop operation definitions for flow-based agents
    import { AIPromptParams, ChildPromptParam } from '@memberjunction/ai-core-plus';

    const params = new AIPromptParams();
    params.prompt = myPromptEntity;
    params.data = { customerName: 'Acme Corp', orderCount: 42 };
    params.contextUser = currentUser;
    params.effortLevel = 75;

    // Hierarchical prompt composition
    params.childPrompts = [
    new ChildPromptParam(analysisParams, 'analysis'),
    new ChildPromptParam(summaryParams, 'summary')
    ];

    // Model override at runtime
    params.override = {
    modelId: 'specific-model-id',
    vendorId: 'specific-vendor-id'
    };

    // Force the runner to credential-check EVERY candidate model-vendor combination
    // instead of short-circuiting at the first usable one. Default false — only enable
    // for diagnostics that need a complete per-candidate availability report, since it
    // runs a credential lookup for every configured model on the run.
    params.forceFullModelEvaluation = true;
    Field Type Purpose
    prompt MJAIPromptEntityExtended Required. The prompt to execute.
    data Record<string, unknown> Data context merged into the template (user data overrides system placeholders).
    templateData Record<string, unknown> Highest-priority template data (overrides data).
    contextUser UserInfo Required server-side. The user the run executes as (security/audit).
    configurationId string AI Configuration scoping model selection (supports inheritance chains).
    conversationMessages ChatMessage[] Prior conversation turns appended after the rendered prompt.
    templateMessageRole 'system' | 'user' | 'none' Where the rendered prompt lands in the message array.
    override { modelId?, vendorId? } Runtime model/vendor override (highest selection precedence).
    modelSelectionPrompt MJAIPromptEntityExtended Use a different prompt's model config for selection.
    forceFullModelEvaluation boolean Probe credentials for every candidate instead of short-circuiting (default false).
    childPrompts ChildPromptParam[] Hierarchical template composition (children render first).
    parentPromptRunId / agentRunId string Link this run to a parent prompt run / agent run.
    rerunFromPromptRunID string Mark this run as a re-run of a prior one.
    effortLevel number Reasoning effort override (highest precedence — see Effort Level Control).
    additionalParameters Record<string, any> Override inference params (temperature/topP/seed/stopSequences/…) per request.
    systemPromptOverride string Bypass template rendering and use this system prompt verbatim.
    skipValidation boolean Skip output validation/parsing.
    cleanValidationSyntax boolean Strip ?/*/:type markers from result keys (auto-on when OutputExample set).
    attemptJSONRepair boolean Repair malformed JSON object output via JSON5 then LLM repair.
    credentialId string Per-request credential override (highest credential precedence).
    apiKeys AIAPIKey[] Legacy per-request API keys (used only if no credential bindings resolve).
    nativeFileInputs NativeFileInput[] Files attached natively when the driver supports the modality (else text fallback).
    cancellationToken AbortSignal Cooperative cancellation, checked at each phase.
    onProgress / onStreaming callbacks Progress updates / streamed output chunks.
    onPromptRunCreated (promptRunId) => void Fired with the AIPromptRun.ID as soon as the record is created (ID available immediately; the save is fire-and-forget).
    verbose boolean Verbose status logging for this run.
    maxErrorLength number Truncate long error messages (e.g. provider failed-generation dumps).
    provider IMetadataProvider Metadata provider for multi-provider scenarios.
    import { ExecuteAgentParams, UserScope } from '@memberjunction/ai-core-plus';

    const params: ExecuteAgentParams = {
    agent: myAgent,
    conversationMessages: [{ role: 'user', content: 'Analyze this data' }],
    contextUser: currentUser,
    userScope: {
    primaryEntityName: 'Organizations',
    primaryRecordId: orgId,
    secondary: { TeamID: teamId }
    },
    onProgress: (step) => console.log(`${step.step}: ${step.message}`)
    };
    import { ExecuteAgentParams, ActionChange } from '@memberjunction/ai-core-plus';

    const params: ExecuteAgentParams = {
    agent: myAgent,
    conversationMessages: messages,
    actionChanges: [
    { scope: 'global', mode: 'add', actionIds: ['crm-action-id'] },
    { scope: 'all-subagents', mode: 'remove', actionIds: ['dangerous-action-id'] }
    ]
    };
    import { ExecuteAgentParams, MessageLifecycleEvent } from '@memberjunction/ai-core-plus';

    const params: ExecuteAgentParams = {
    agent: myAgent,
    conversationMessages: messages,
    messageExpirationOverride: {
    expirationTurns: 2,
    expirationMode: 'Compact',
    compactMode: 'First N Chars',
    compactLength: 500
    },
    onMessageLifecycle: (event: MessageLifecycleEvent) => {
    console.log(`[Turn ${event.turn}] ${event.type}: ${event.reason}`);
    }
    };

    MemberJunction supports a 1-100 scale for AI model reasoning effort. The resolution precedence is:

    1. ExecuteAgentParams.effortLevel (runtime override, highest priority)
    2. AIAgent.DefaultPromptEffortLevel (agent default)
    3. AIPrompt.EffortLevel (prompt default)
    4. Provider default behavior (lowest priority)

    Provider mappings:

    • OpenAI: 1-33 = low, 34-66 = medium, 67-100 = high
    • Anthropic: Thinking mode with 25K-2M token budgets
    • Groq: Experimental reasoning_effort parameter
    • Gemini: Reasoning mode intensity
    • @memberjunction/ai -- Core AI abstractions
    • @memberjunction/core -- MJ framework core (Metadata, RunView, UserInfo)
    • @memberjunction/core-entities -- Generated entity classes
    • @memberjunction/global -- Class factory and global utilities
    • @memberjunction/actions-base -- Action framework base types
    • @memberjunction/templates-base-types -- Template engine base types
    • date-fns / date-fns-tz -- Date/time formatting and timezone support

    Classes

    AgentRunStepSaveQueue
    AIModelSelectionInfo
    AIPromptParams
    BaseArtifactToolLibrary
    ChildPromptParam
    ConversationUtility
    MJAIAgentEntityExtended
    MJAIAgentRunEntityExtended
    MJAIAgentRunStepEntityExtended
    MJAIModelEntityExtended
    MJAIPromptCategoryEntityExtended
    MJAIPromptEntityExtended
    MJAIPromptRunEntityExtended
    MJEntityDocumentEntityExtended
    SystemPlaceholderManager

    Interfaces

    ActionChange
    AgentActionSpec
    AgentInfo
    AgentPipelineRequest
    AgentPipelineStage
    AgentPromptSpec
    AgentRequestAssignmentStrategy
    AgentResponseForm
    AgentRunStepFlushResult
    AgentScratchpad
    AgentSpec
    AgentStep
    AgentStepPath
    AgentTask
    AIPromptRunResult
    AppContextAgentRef
    AppContextSnapshot
    AppContextSnapshotInputs
    ArtifactToolDefinition
    ArtifactToolResult
    AttachmentContent
    AttachmentData
    AttachmentDefaults
    AttachmentLimits
    AttachmentValidationResult
    CaptureDataSnapshotCommand
    ChoiceQuestionType
    ClientToolMetadata
    ClientToolResponse
    ClientToolResultSummary
    DateQuestionType
    DateRangeQuestionType
    ExpandMessageRequest
    FileOutputRef
    FinalizeAgentRunStepOptions
    ForEachOperation
    FormOption
    FormQuestion
    FormResponseContent
    IClientToolSource
    InitAgentRunStepOptions
    InputArtifact
    JSONRepairInfo
    JudgeMetadata
    MediaOutput
    MentionContent
    ModelInfo
    NativeFileInput
    NumberQuestionType
    OpenResourceCommand
    OpenURLCommand
    PromptRunMediaReference
    RefreshDataCommand
    ResolveClientToolsInput
    ScratchpadSnapshot
    SecondaryDimension
    SecondaryScopeConfig
    ShowNotificationCommand
    SliderQuestionType
    SpecialContentToken
    SubAgentChange
    SubAgentSpec
    SystemPlaceholder
    SystemPlaceholderCategory
    TaskListChanges
    TextQuestionType
    TimeQuestionType
    UserInfo
    ValidationAttempt
    WhileOperation

    Type Aliases

    ActionableCommand
    ActionChangeMode
    ActionChangeScope
    AgentAction
    AgentChatMessage
    AgentChatMessageMetadata
    AgentClientToolInvocation
    AgentConfiguration
    AgentContextData
    AgentExecutionProgressCallback
    AgentExecutionStreamingCallback
    AgentPayloadChangeRequest
    AgentRunStepType
    AgentSkillActivationRequest
    AgentSkillInvocation
    AgentSkillInvocationProvenance
    AgentSubAgentRequest
    AgentTaskStatus
    AttachmentType
    AutomaticCommand
    BaseAgentNextStep
    CacheName
    CancellationReason
    ExecuteAgentParams
    ExecuteAgentResult
    ExecutionProgressCallback
    ExecutionStatus
    ExecutionStreamingCallback
    FormQuestionType
    ListAssignmentMode
    MediaModality
    MessageExpirationOverride
    MessageLifecycleCallback
    MessageLifecycleEvent
    MessageLifecycleEventType
    NextStepDecision
    NextStepDetails
    ResourceType
    SecondaryScopeValue
    SpecialContent
    SystemPlaceholderFunction
    TemplateMessageRole

    Variables

    DEFAULT_ATTACHMENT_LIMITS
    DEFAULT_INLINE_STORAGE_THRESHOLD_BYTES
    DEFAULT_SYSTEM_PLACEHOLDERS
    SYSTEM_PLACEHOLDER_CATEGORIES

    Functions

    BuildAppContextSnapshot
    ExtractPromptResultText
    finalizeAgentRunStep
    FormatAppContextNote
    FormatClientToolsForPrompt
    initAgentRunStep
    mergeAssignmentStrategies
    parseAssignmentStrategy
    ParseFileOutputRef
    ResolveClientTools