Member Junction
    Preparing search index...

    Predictions — the business-user home for Predictive Studio (option-b-refined mockup). Reframes published ML models as plain-language "predictions" in a catalog, each with a trust badge; opening one goes to a workspace whose trust verdict GATES the actions (a Poor/unmeasured prediction can't be acted on). "+ New prediction" opens the Model Development Agent (the deterministic builder) as a docked co-pilot. Zero ML jargon — the analyst surfaces stay under the other nav items as "Advanced".

    Hierarchy

    • PSResourceBase
      • PSPredictionsResourceComponent
    Index

    Constructors

    Properties

    atRiskError: string | null = null

    Set when the at-risk load fails — the workspace shows a "couldn't load" banner with retry instead of the misleading no-results empty state.

    atRiskLoading: boolean = false

    Whether the at-risk list is loading for the open prediction.

    atRiskRows: AtRiskRow[] = []

    The ranked at-risk rows for the open prediction's latest run (empty until loaded / when no run yet).

    capabilityCards: readonly PSCapabilityCard[] = PS_CAPABILITY_CARDS

    Capability cards for the first-run intro (what PS can do), shown when the catalog is empty.

    cdr: ChangeDetectorRef = ...
    chatConversation: MJConversationEntity | null = null

    Embedded co-pilot conversation state. The chat-area starts in "new conversation" mode; on the first send it creates the conversation and emits conversationCreated, at which point we capture the live conversation and flip out of new-mode so subsequent sends append to the same thread. Without this wiring the suppressed empty-state input has no valid conversation to write into and the first send silently no-ops (matches the proven Form Builder co-pilot pattern).

    chatConversationId: string | null = null
    chatIsNewConversation: boolean = true
    chatOpen: boolean = false
    creatingList: boolean = false

    "Send to a list" in-flight guard + last-result message (P1 #4).

    destroy$: Subject<void>
    drivers: string[] = []

    Plain-language "what's driving this" drivers for the open prediction (global feature importance).

    engine: PredictiveStudioEngine = PredictiveStudioEngine.Instance

    Provider-scoped Predictive Studio engine. Resolved in loadSection via PredictiveStudioEngine.GetProviderInstance so a multi-provider client (or an embedded non-default provider) reads the right server's PS reference data. Bound into the hosted panel's [engine] input once loading completes.

    isLoading: boolean = true

    True until the engine resolves; gates the panel host so [engine] is never bound before it's ready.

    listResult: string | null = null
    loadError: string | null = null

    Set when loadSection fails to resolve the engine. The section templates render a "couldn't load" banner with a Try-again button (retryLoad) instead of silently showing empty panels, so a failed load is honest rather than indistinguishable from a genuinely-empty studio.

    navigationService: NavigationService
    ParentTabId: string | null

    Tab ID for query param notification scoping. Set by resource wrappers that render child dashboards, so the child knows which tab it belongs to. If not set, falls back to Data.Configuration.tabId.

    pendingPrompt: string | null = null
    Provider: IMetadataProvider | null

    If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.

    SectionIcon: "fa-solid fa-wand-magic-sparkles" = 'fa-solid fa-wand-magic-sparkles'

    Font Awesome icon for the section (chrome + shell tab).

    SectionKey: "predictions" = 'predictions'

    Stable section identifier for agent context + (subclass) titling.

    SectionLabel: "Predictions" = 'Predictions'

    Human-readable section label used in chrome + agent context.

    selected: BusinessPredictionCard | null = null
    view: "workspace" | "catalog" = 'catalog'

    catalog (the home grid) ↔ workspace (a selected prediction).

    "ɵdir": unknown
    "ɵfac": unknown

    Accessors

    • get Data(): ResourceData

      Returns ResourceData

    • set Data(value: ResourceData): void

      Parameters

      Returns void

    • get DisplayNameChangedEvent(): ((newName: string) => void) | null

      Returns ((newName: string) => void) | null

    • set DisplayNameChangedEvent(value: ((newName: string) => void) | null): void

      Parameters

      • value: ((newName: string) => void) | null

      Returns void

    • get LoadComplete(): boolean

      Returns boolean

    • get LoadCompleteEvent(): any

      Returns any

    • set LoadCompleteEvent(value: any): void

      Parameters

      • value: any

      Returns void

    • get LoadStarted(): boolean

      Returns boolean

    • get LoadStartedEvent(): any

      Returns any

    • set LoadStartedEvent(value: any): void

      Parameters

      • value: any

      Returns void

    • get ProviderToUse(): IMetadataProvider

      Returns either the default Metadata provider or the one specified in the Provider property, if it was specified

      Returns IMetadataProvider

    • get ResourceCloseRequestedEvent(): (() => void) | null

      Returns (() => void) | null

    • set ResourceCloseRequestedEvent(value: (() => void) | null): void

      Parameters

      • value: (() => void) | null

      Returns void

    • get ResourceRecordSavedEvent(): any

      Returns any

    • set ResourceRecordSavedEvent(value: any): void

      Parameters

      • value: any

      Returns void

    • get RunQueryToUse(): IRunQueryProvider

      Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified

      Returns IRunQueryProvider

    • get RunReportToUse(): IRunReportProvider

      Returns either the default RunReport provider or the one specified in the Provider property, if it was specified

      Returns IRunReportProvider

    • get RunViewToUse(): IRunViewProvider

      Returns either the default RunView provider or the one specified in the Provider property, if it was specified

      Returns IRunViewProvider

    Methods

    • Read current query params from tab configuration. Use in initDashboard() / ngOnInit() to get initial URL state.

      Returns Record<string, string>

    • Get this component's tab ID. Checks ParentTabId input first (set by resource wrappers for child dashboards), then falls back to Data.Configuration.tabId.

      Returns string

    • Ask the host shell to close/dismiss this resource (typically: close the tab). Called by subclasses that hosted a form that emitted a 'dismiss' navigation event — most often, a brand-new record where the user clicked Discard. The record was never saved, the form is empty, and leaving it open serves no purpose. The tab-container listens for this and closes the workspace tab.

      Returns void

    • Call this to notify the tab system that the resource's display name has changed. The tab container will update the tab title and browser title accordingly.

      Parameters

      • newName: string

      Returns void

    • Returns void

    • Returns void

    • Called by the framework when query params change from an external source (browser back/forward, deep link navigation). Override in subclasses to react to query param changes.

      Parameters

      • params: Record<string, string>

        The new query params from the URL

      • source: "popstate" | "deeplink"

        'popstate' for back/forward, 'deeplink' for external URL entry

      Returns void

    • Report the section's state to the AI agent (async chat + realtime co-agent share this snapshot). Subclasses may override extraAgentContext to add section-specific fields. No client tools are registered — Predictive Studio surfaces are read/navigate-only to the agent; model creation, training, and promotion run through PS's own dialogs and the Model Development Agent.

      Returns void

    • Marks this component's view (and its ancestors) as needing change detection and schedules a tick — the reliable way for a resource component to re-render after updating state from async work (RunView/RunQuery continuations, timers, websocket pushes, RxJS subscriptions).

      WHY THIS EXISTS: the Explorer shell hosts resource components dynamically — createComponent()

      • ApplicationRef.attachView() — because tab content mounts into Golden Layout / cached DOM containers, not into an Angular template. Since Angular 18's change-detection scheduler rework (Explorer is on Angular 21), ApplicationRef.tick() only refreshes attached views that are FLAGGED dirty; a root-level attached view whose component mutates plain fields from an async continuation is never flagged, so the view silently never re-renders — even though the component uses default (non-OnPush) change detection (issue #3106).

      The framework calls this automatically from NotifyLoadStarted() / NotifyLoadComplete(), so the standard load lifecycle re-renders without any subclass action. Call it yourself after any LATER async state change that must reach the DOM outside those signals.

      Returns void

    • 🔒 Read/navigate-only agent tools for the Predictions door: open a (trust-cleared) prediction, go back to the catalog, review the call list, export the at-risk list (CSV — read-only, mirrors Data Explorer's ExportView), and open the "+ New prediction" co-pilot. DELIBERATELY NOT exposed: "Save scores to records", "Send to a list" (both WRITE records), and any train/publish/delete — those stay behind the user's clicks and the approve-gated builder.

      Returns void

    • Parameters

      Returns void

    • Push query param changes to the URL. Creates a browser history entry. Safe to call during OnQueryParamsChanged — auto-suppressed to prevent loops.

      Parameters

      • params: Record<string, string | null>

      Returns void