@memberjunction/ng-core-entity-forms 6.2.0-edge.6 → 6.2.0-edge.8
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/dist/lib/custom/AIAgents/ai-agent-form.component.js +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/DiagnosticSenderRegistrations/sender-registration-toolbar-actions.d.ts +35 -0
- package/dist/lib/custom/DiagnosticSenderRegistrations/sender-registration-toolbar-actions.d.ts.map +1 -0
- package/dist/lib/custom/DiagnosticSenderRegistrations/sender-registration-toolbar-actions.js +155 -0
- package/dist/lib/custom/DiagnosticSenderRegistrations/sender-registration-toolbar-actions.js.map +1 -0
- package/dist/lib/custom/Entities/entity-form.component.js +3 -3
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +8 -0
- package/dist/lib/custom/Files/file-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Files/file-form.component.js +21 -5
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.logic.d.ts +7 -0
- package/dist/lib/custom/Files/file-form.logic.d.ts.map +1 -1
- package/dist/lib/custom/Files/file-form.logic.js +20 -0
- package/dist/lib/custom/Files/file-form.logic.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +5 -5
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-child-labels.d.ts +12 -0
- package/dist/lib/custom/Queries/query-child-labels.d.ts.map +1 -0
- package/dist/lib/custom/Queries/query-child-labels.js +28 -0
- package/dist/lib/custom/Queries/query-child-labels.js.map +1 -0
- package/dist/lib/custom/Queries/query-fields-grid.component.d.ts +37 -0
- package/dist/lib/custom/Queries/query-fields-grid.component.d.ts.map +1 -0
- package/dist/lib/custom/Queries/query-fields-grid.component.js +321 -0
- package/dist/lib/custom/Queries/query-fields-grid.component.js.map +1 -0
- package/dist/lib/custom/Queries/query-form-logic.d.ts +37 -0
- package/dist/lib/custom/Queries/query-form-logic.d.ts.map +1 -0
- package/dist/lib/custom/Queries/query-form-logic.js +48 -0
- package/dist/lib/custom/Queries/query-form-logic.js.map +1 -0
- package/dist/lib/custom/Queries/query-form.component.d.ts +76 -7
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +740 -688
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-parameters-grid.component.d.ts +31 -0
- package/dist/lib/custom/Queries/query-parameters-grid.component.d.ts.map +1 -0
- package/dist/lib/custom/Queries/query-parameters-grid.component.js +298 -0
- package/dist/lib/custom/Queries/query-parameters-grid.component.js.map +1 -0
- package/dist/lib/custom/Rubrics/record-forms.component.js +2 -2
- package/dist/lib/custom/Rubrics/record-forms.component.js.map +1 -1
- package/dist/lib/custom/Rubrics/scale-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Rubrics/scale-form.component.js +2 -1
- package/dist/lib/custom/Rubrics/scale-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +41 -35
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +36 -3
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +234 -226
- package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js +25 -6
- package/dist/lib/generated/Entities/MJAIAgentConfiguration/mjaiagentconfiguration.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js +13 -3
- package/dist/lib/generated/Entities/MJAIAgentRelationship/mjaiagentrelationship.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJBrandKit/mjbrandkit.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJBrandKit/mjbrandkit.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJBrandKit/mjbrandkit.form.component.js +91 -0
- package/dist/lib/generated/Entities/MJBrandKit/mjbrandkit.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJBrandKitAsset/mjbrandkitasset.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJBrandKitAsset/mjbrandkitasset.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJBrandKitAsset/mjbrandkitasset.form.component.js +72 -0
- package/dist/lib/generated/Entities/MJBrandKitAsset/mjbrandkitasset.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js +82 -10
- package/dist/lib/generated/Entities/MJCompany/mjcompany.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js +39 -31
- package/dist/lib/generated/Entities/MJContentSource/mjcontentsource.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js +90 -78
- package/dist/lib/generated/Entities/MJConversation/mjconversation.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJDiagnosticBundle/mjdiagnosticbundle.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJDiagnosticBundle/mjdiagnosticbundle.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticBundle/mjdiagnosticbundle.form.component.js +154 -0
- package/dist/lib/generated/Entities/MJDiagnosticBundle/mjdiagnosticbundle.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSenderRegistration/mjdiagnosticsenderregistration.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJDiagnosticSenderRegistration/mjdiagnosticsenderregistration.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSenderRegistration/mjdiagnosticsenderregistration.form.component.js +98 -0
- package/dist/lib/generated/Entities/MJDiagnosticSenderRegistration/mjdiagnosticsenderregistration.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSession/mjdiagnosticsession.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJDiagnosticSession/mjdiagnosticsession.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSession/mjdiagnosticsession.form.component.js +149 -0
- package/dist/lib/generated/Entities/MJDiagnosticSession/mjdiagnosticsession.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSessionChunk/mjdiagnosticsessionchunk.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJDiagnosticSessionChunk/mjdiagnosticsessionchunk.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJDiagnosticSessionChunk/mjdiagnosticsessionchunk.form.component.js +88 -0
- package/dist/lib/generated/Entities/MJDiagnosticSessionChunk/mjdiagnosticsessionchunk.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +513 -451
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +24 -6
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js +51 -15
- package/dist/lib/generated/Entities/MJFile/mjfile.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJGraph/mjgraph.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraph/mjgraph.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraph/mjgraph.form.component.js +155 -0
- package/dist/lib/generated/Entities/MJGraph/mjgraph.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphAuthorityTier/mjgraphauthoritytier.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphAuthorityTier/mjgraphauthoritytier.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphAuthorityTier/mjgraphauthoritytier.form.component.js +83 -0
- package/dist/lib/generated/Entities/MJGraphAuthorityTier/mjgraphauthoritytier.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphConcept/mjgraphconcept.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphConcept/mjgraphconcept.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphConcept/mjgraphconcept.form.component.js +91 -0
- package/dist/lib/generated/Entities/MJGraphConcept/mjgraphconcept.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphConceptType/mjgraphconcepttype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphConceptType/mjgraphconcepttype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphConceptType/mjgraphconcepttype.form.component.js +83 -0
- package/dist/lib/generated/Entities/MJGraphConceptType/mjgraphconcepttype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdge/mjgraphedge.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphEdge/mjgraphedge.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdge/mjgraphedge.form.component.js +78 -0
- package/dist/lib/generated/Entities/MJGraphEdge/mjgraphedge.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeProvider/mjgraphedgeprovider.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphEdgeProvider/mjgraphedgeprovider.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeProvider/mjgraphedgeprovider.form.component.js +68 -0
- package/dist/lib/generated/Entities/MJGraphEdgeProvider/mjgraphedgeprovider.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeType/mjgraphedgetype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphEdgeType/mjgraphedgetype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeType/mjgraphedgetype.form.component.js +105 -0
- package/dist/lib/generated/Entities/MJGraphEdgeType/mjgraphedgetype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeTypeEndpoint/mjgraphedgetypeendpoint.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphEdgeTypeEndpoint/mjgraphedgetypeendpoint.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphEdgeTypeEndpoint/mjgraphedgetypeendpoint.form.component.js +60 -0
- package/dist/lib/generated/Entities/MJGraphEdgeTypeEndpoint/mjgraphedgetypeendpoint.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJGraphType/mjgraphtype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJGraphType/mjgraphtype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJGraphType/mjgraphtype.form.component.js +85 -0
- package/dist/lib/generated/Entities/MJGraphType/mjgraphtype.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +67 -61
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js +15 -3
- package/dist/lib/generated/Entities/MJQueryField/mjqueryfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +207 -135
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJVideoArchetype/mjvideoarchetype.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJVideoArchetype/mjvideoarchetype.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJVideoArchetype/mjvideoarchetype.form.component.js +80 -0
- package/dist/lib/generated/Entities/MJVideoArchetype/mjvideoarchetype.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +478 -462
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +50 -2
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/brand-kits/brand-kit-assets.panel.d.ts +15 -0
- package/dist/lib/panels/brand-kits/brand-kit-assets.panel.d.ts.map +1 -0
- package/dist/lib/panels/brand-kits/brand-kit-assets.panel.js +52 -0
- package/dist/lib/panels/brand-kits/brand-kit-assets.panel.js.map +1 -0
- package/dist/lib/panels/brand-kits/brand-kit-generation-policy.panel.d.ts +15 -0
- package/dist/lib/panels/brand-kits/brand-kit-generation-policy.panel.d.ts.map +1 -0
- package/dist/lib/panels/brand-kits/brand-kit-generation-policy.panel.js +52 -0
- package/dist/lib/panels/brand-kits/brand-kit-generation-policy.panel.js.map +1 -0
- package/dist/public-api.d.ts +2 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +3 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +50 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchscope-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/SearchScopes/searchscope-form.component.ts","../../../../src/lib/custom/SearchScopes/searchscope-form.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * Custom SearchScope form (P2D.7 Angular half).\n *\n * Adds a \"Reranker\" custom section that:\n * - Renders a dropdown of registered rerankers — currently a hardcoded list\n * mirroring `BaseReRanker.GetAvailableRerankers()` server-side, with each\n * option's HasCost flag surfaced inline so authors can see at a glance\n * which options will incur API spend.\n * - Reads / writes the current selection from `record.ScopeConfig` JSON's\n * `reRanker.driverClass` key — same path the SearchEngine reads at runtime.\n *\n * **Discovery follow-up:** the canonical source of available rerankers is\n * `BaseReRanker.GetAvailableRerankers()` in `@memberjunction/search-engine`,\n * but that's a Node-only package and can't be imported in the browser.\n * A small GraphQL query (e.g. `AvailableRerankers`) on MJServer that calls\n * the helper server-side would let this dropdown auto-discover any\n * third-party reranker registered with ClassFactory. Tracked as a follow-up\n * — for now the hardcoded list covers the 5 rerankers shipped in Phase 2D.\n *\n * The CodeGen-generated `RerankerBudgetCents` numeric input is already on\n * the form (in the \"Details\" section); we don't need to recreate it.\n * The dropdown above + budget input below give scope authors the full\n * Phase 2D configuration surface.\n */\nimport { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LogError, RunView } from '@memberjunction/core';\nimport { MJSearchScopeEntity, MJSearchExecutionLogEntityType } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { SearchService, SearchResultItem, StreamingProviderStatus } from '@memberjunction/ng-search';\nimport { MJSearchScopeFormComponent } from '../../generated/Entities/MJSearchScope/mjsearchscope.form.component';\n\ninterface FusionWeightRow {\n /** Source-type key the SearchEngine matches against (e.g. 'vector', 'fulltext'). */\n Key: string;\n /** Friendly label for the slider — same value as Key today, kept separate for future i18n. */\n Label: string;\n /** Working value of the slider (1-decimal precision) — bound via two-way. */\n Weight: number;\n}\n\n/**\n * Built-in source types the SearchEngine ships. New 3rd-party provider\n * SourceTypes (e.g. external clusters) won't appear here unless the scope\n * author adds them via the JSON Scope Config block — by design, since the\n * fusion-weights UI is for the four canonical built-ins.\n */\nconst BUILT_IN_SOURCE_TYPES: string[] = ['vector', 'fulltext', 'entity', 'storage'];\n\ninterface RerankerOption {\n DriverClass: string;\n Name: string;\n HasCost: boolean;\n}\n\n/**\n * Hardcoded list mirroring the rerankers `@memberjunction/search-engine`\n * registers with ClassFactory. Update when adding a new built-in reranker\n * or when the GraphQL discovery query lands.\n */\nconst BUILT_IN_RERANKERS: RerankerOption[] = [\n { DriverClass: 'NoopReRanker', Name: 'NoopReRanker (pass-through)', HasCost: false },\n { DriverClass: 'CohereReRanker', Name: 'Cohere (rerank-v3.5)', HasCost: true },\n { DriverClass: 'VoyageReRanker', Name: 'Voyage (rerank-2)', HasCost: true },\n { DriverClass: 'OpenAIReRanker', Name: 'OpenAI (gpt-4o-mini judge)', HasCost: true },\n { DriverClass: 'BGEReRanker', Name: 'BGE (local, free)', HasCost: false },\n];\n\n@RegisterClass(BaseFormComponent, 'MJ: Search Scopes')\n@Component({\n standalone: false,\n selector: 'mj-searchscope-form-extended',\n templateUrl: './searchscope-form.component.html',\n styleUrls: ['./searchscope-form.component.css'],\n})\nexport class MJSearchScopeFormComponentExtended extends MJSearchScopeFormComponent implements OnDestroy {\n public override record!: MJSearchScopeEntity;\n\n public readonly AvailableRerankers: RerankerOption[] = BUILT_IN_RERANKERS;\n\n /** Live-preview state (P4.1). */\n public PreviewQuery = '';\n public PreviewIsRunning = false;\n public PreviewResults: SearchResultItem[] = [];\n public PreviewProviders: StreamingProviderStatus[] = [];\n public PreviewElapsedMs: number | null = null;\n public PreviewError: string | null = null;\n private previewSubscription: Subscription | null = null;\n private searchService = new SearchService();\n\n /**\n * P4.3 — A/B comparison via Kendall-tau between consecutive preview runs.\n * After RunPreview completes, the previous run's RecordIDs are diffed\n * against the current run and the rank-correlation similarity is shown\n * inline (\"82% similar to last run\"). Authors use this to immediately\n * see how much a reranker swap or fusion-weight tweak shifted the ranking.\n */\n private previousRunRecordIDs: string[] = [];\n public LastRunSimilarityPercent: number | null = null;\n\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.previewSubscription?.unsubscribe();\n this.previewSubscription = null;\n }\n\n /**\n * P4.1 — run a streaming preview against this scope. Uses the same\n * SearchService.StreamSearch path the production search UI uses, scoped\n * to just this scope's ID. Each provider's chip shows its count as it\n * reports back, so authors can see chip-by-chip what each tuning change\n * actually affects; the result rows arrive with the 'final' event.\n */\n public RunPreview(): void {\n if (!this.record?.ID || this.PreviewIsRunning) return;\n const query = this.PreviewQuery.trim();\n if (!query) return;\n\n // Tear down any previous run before starting a new one.\n this.previewSubscription?.unsubscribe();\n this.PreviewIsRunning = true;\n this.PreviewResults = [];\n this.PreviewProviders = [];\n this.PreviewElapsedMs = null;\n this.PreviewError = null;\n\n this.previewSubscription = this.searchService.StreamSearch({\n Query: query,\n MaxResults: 25,\n ActiveFilters: {},\n IncludeSources: ['vector', 'fulltext', 'entity', 'storage'],\n ScopeIDs: [this.record.ID],\n }).subscribe({\n next: (event) => {\n if (event.Phase === 'provider' && event.ProviderName) {\n // Progress only: the count, never the rows (they precede the permission pass).\n this.PreviewProviders = [\n ...this.PreviewProviders,\n {\n Name: event.ProviderName,\n Count: event.ResultCount ?? 0,\n ElapsedMs: event.ElapsedMs ?? 0,\n State: 'Completed',\n },\n ];\n } else if (event.Phase === 'final' && event.Results) {\n this.PreviewResults = [...event.Results].sort((a, b) => b.Score - a.Score);\n this.PreviewElapsedMs = event.ElapsedMs ?? null;\n }\n },\n error: (err: Error) => {\n this.PreviewError = err.message ?? String(err);\n this.PreviewIsRunning = false;\n },\n complete: () => {\n this.PreviewIsRunning = false;\n // Compute Kendall-tau against the prior run, then capture this\n // run's order as the next baseline.\n const currentIDs = this.PreviewResults.map(r => r.RecordID);\n if (this.previousRunRecordIDs.length > 0 && currentIDs.length > 0) {\n const tau = MJSearchScopeFormComponentExtended.kendallTauOnSharedItems(\n this.previousRunRecordIDs,\n currentIDs,\n );\n if (tau !== null) {\n // Map [-1, 1] tau onto a [0, 100] \"% similar\" gauge so non-stats\n // authors can read it. -1 (reverse) = 0%, 0 (uncorrelated) = 50%,\n // +1 (identical) = 100%.\n this.LastRunSimilarityPercent = Math.round((tau + 1) * 50);\n }\n }\n this.previousRunRecordIDs = currentIDs;\n },\n });\n }\n\n public CancelPreview(): void {\n this.previewSubscription?.unsubscribe();\n this.previewSubscription = null;\n this.PreviewIsRunning = false;\n }\n\n /**\n * Compute Kendall-tau rank correlation on the items present in both lists.\n * Items only in one list are ignored (partial-overlap handling). Returns\n * null when the shared overlap is too small (< 2 items) to be meaningful.\n *\n * Tau formula: (concordant - discordant) / (N * (N-1) / 2)\n * where concordant = pairs ranked in the same order in both lists,\n * discordant = pairs ranked in opposite order, N = shared item count.\n */\n private static kendallTauOnSharedItems(listA: string[], listB: string[]): number | null {\n const rankA = new Map(listA.map((id, i) => [id, i]));\n const rankB = new Map(listB.map((id, i) => [id, i]));\n const shared = listA.filter(id => rankB.has(id));\n const n = shared.length;\n if (n < 2) return null;\n let concordant = 0;\n let discordant = 0;\n for (let i = 0; i < n; i++) {\n for (let j = i + 1; j < n; j++) {\n const a = (rankA.get(shared[i])! - rankA.get(shared[j])!);\n const b = (rankB.get(shared[i])! - rankB.get(shared[j])!);\n const product = a * b;\n if (product > 0) concordant++;\n else if (product < 0) discordant++;\n // Ties (product === 0) ignored — items at same rank\n }\n }\n const totalPairs = (n * (n - 1)) / 2;\n if (totalPairs === 0) return null;\n return (concordant - discordant) / totalPairs;\n }\n\n /**\n * Override the section list to include the new \"Reranker\" section before\n * \"Details\". The generated `initSections()` doesn't know about our custom\n * section so we replace the list. Order matches the template's render order.\n */\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'scopeDefinition', sectionName: 'Scope Definition', isExpanded: true },\n { sectionKey: 'scopeConfiguration', sectionName: 'Scope Configuration', isExpanded: true },\n { sectionKey: 'accessControl', sectionName: 'Access Control', isExpanded: false },\n { sectionKey: 'lifecycleManagement', sectionName: 'Lifecycle Management', isExpanded: false },\n { sectionKey: 'technicalConfiguration', sectionName: 'Technical Configuration', isExpanded: false },\n { sectionKey: 'fusionWeights', sectionName: 'Fusion Weights', isExpanded: false },\n { sectionKey: 'reranker', sectionName: 'Reranker', isExpanded: false },\n { sectionKey: 'livePreview', sectionName: 'Live Preview', isExpanded: false },\n { sectionKey: 'details', sectionName: 'Details', isExpanded: false },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },\n { sectionKey: 'mJSearchScopeTestQueries', sectionName: 'Search Scope Test Queries', isExpanded: false },\n { sectionKey: 'mJSearchScopeStorageAccounts', sectionName: 'Search Scope Storage Accounts', isExpanded: false },\n { sectionKey: 'mJSearchScopeEntities', sectionName: 'Search Scope Entities', isExpanded: false },\n { sectionKey: 'mJSearchScopeExternalIndexes', sectionName: 'Search Scope External Indexes', isExpanded: false },\n { sectionKey: 'mJSearchScopeProviders', sectionName: 'Search Scope Providers', isExpanded: false },\n { sectionKey: 'mJAIAgentSearchScopes', sectionName: 'AI Agent Search Scopes', isExpanded: false },\n { sectionKey: 'mJSearchScopePermissions', sectionName: 'Search Scope Permissions', isExpanded: false },\n ]);\n }\n\n /**\n * Currently-selected reranker driver class, parsed from `record.ScopeConfig`.\n * Empty string means \"no reranker explicitly chosen\" — runtime defaults\n * to NoopReRanker. Stored as `ScopeConfig.reRanker.driverClass`.\n */\n public get SelectedRerankerDriverClass(): string {\n const cfg = this.parseScopeConfig();\n return (cfg?.['reRanker'] as { driverClass?: string } | undefined)?.driverClass ?? '';\n }\n\n public set SelectedRerankerDriverClass(value: string) {\n const cfg = this.parseScopeConfig() ?? {};\n const reRanker = (cfg['reRanker'] as Record<string, unknown> | undefined) ?? {};\n if (value && value.trim().length > 0) {\n reRanker['driverClass'] = value;\n } else {\n delete reRanker['driverClass'];\n }\n cfg['reRanker'] = reRanker;\n this.record.ScopeConfig = JSON.stringify(cfg, null, 2);\n }\n\n /**\n * Whether the currently-selected reranker incurs API cost — used to render\n * an inline cost-warning indicator next to the dropdown.\n */\n public get SelectedRerankerHasCost(): boolean {\n const driver = this.SelectedRerankerDriverClass;\n return BUILT_IN_RERANKERS.find(r => r.DriverClass === driver)?.HasCost ?? false;\n }\n\n /**\n * Whether the CSV export is currently running. Drives the button's disabled\n * state + spinner.\n */\n public IsExportingTuningCsv = false;\n\n /**\n * P4.2 — fusion weight sliders for each canonical SearchEngine source type.\n * Backed by `SearchScope.ScopeConfig.fusionWeights` JSON (the runtime path\n * — see plans/search-scopes-rag-plus/RAG_plan.md §8 Multi-Scope RRF Fusion). Plan task originally\n * proposed `SearchScopeProvider.Weight` but that column doesn't exist in\n * Phase 1; the JSON path is the actual contract the SearchEngine reads.\n */\n private _fusionWeights: FusionWeightRow[] | null = null;\n\n public get FusionWeights(): FusionWeightRow[] {\n if (!this._fusionWeights) {\n const cfg = this.parseScopeConfig();\n const stored = (cfg?.['fusionWeights'] as Record<string, unknown> | undefined) ?? {};\n this._fusionWeights = BUILT_IN_SOURCE_TYPES.map(key => {\n const value = stored[key];\n const weight = typeof value === 'number' && Number.isFinite(value) ? value : 1;\n return { Key: key, Label: key, Weight: weight };\n });\n }\n return this._fusionWeights;\n }\n\n /**\n * Persist a fusion weight change back to `ScopeConfig.fusionWeights`. The\n * caller is the slider's `(change)` event so writes happen only on\n * slide-end, not on every drag tick.\n */\n public OnFusionWeightChanged(row: FusionWeightRow, raw: number | string): void {\n const value = typeof raw === 'number' ? raw : Number(raw);\n if (!Number.isFinite(value)) return;\n row.Weight = value;\n\n const cfg = this.parseScopeConfig() ?? {};\n const weights = (cfg['fusionWeights'] as Record<string, unknown> | undefined) ?? {};\n if (Math.abs(value - 1) < 0.001) {\n // Default value — drop the explicit override so future engine-default\n // changes flow through naturally.\n delete weights[row.Key];\n } else {\n weights[row.Key] = +value.toFixed(2);\n }\n if (Object.keys(weights).length > 0) {\n cfg['fusionWeights'] = weights;\n } else {\n delete cfg['fusionWeights'];\n }\n this.record.ScopeConfig = JSON.stringify(cfg, null, 2);\n }\n\n /**\n * P3.4 — export the last 500 SearchExecutionLog rows for this scope as CSV.\n * Used by scope authors for offline tuning analysis (open in a spreadsheet,\n * pivot by reranker / status / latency, etc.). Filtered to this scope's ID\n * so multi-tenant deployments don't leak other scopes' query history.\n */\n public async ExportTuningCsv(): Promise<void> {\n if (!this.record?.ID || this.IsExportingTuningCsv) return;\n this.IsExportingTuningCsv = true;\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJSearchExecutionLogEntityType>({\n EntityName: 'MJ: Search Execution Logs',\n // Constrain to the columns the CSV writer actually emits — avoids\n // pulling the wider entity (per Section 6.8).\n Fields: [\n '__mj_CreatedAt', 'Status', 'Query', 'ResultCount', 'TotalDurationMs',\n 'RerankerName', 'RerankerCostCents', 'FailureReason', 'UserID', 'AIAgentID',\n ],\n ExtraFilter: `SearchScopeID='${this.record.ID.replace(/'/g, \"''\")}'`,\n OrderBy: '__mj_CreatedAt DESC',\n MaxRows: 500,\n ResultType: 'simple',\n });\n if (!result.Success) {\n LogError(`SearchScope CSV export failed: ${result.ErrorMessage ?? 'unknown error'}`);\n return;\n }\n const rows = (result.Results ?? []) as MJSearchExecutionLogEntityType[];\n this.downloadCsv(rows);\n } finally {\n this.IsExportingTuningCsv = false;\n }\n }\n\n private downloadCsv(rows: MJSearchExecutionLogEntityType[]): void {\n const headers = [\n 'CreatedAt', 'Status', 'Query', 'ResultCount', 'TotalDurationMs',\n 'RerankerName', 'RerankerCostCents', 'FailureReason', 'UserID', 'AIAgentID',\n ];\n const lines = [headers.join(',')];\n for (const r of rows) {\n const cells = [\n this.escapeCsv(String(r.__mj_CreatedAt ?? '')),\n this.escapeCsv(String(r.Status ?? '')),\n this.escapeCsv(String(r.Query ?? '')),\n String(r.ResultCount ?? 0),\n String(r.TotalDurationMs ?? 0),\n this.escapeCsv(String(r.RerankerName ?? '')),\n String(r.RerankerCostCents ?? ''),\n this.escapeCsv(String(r.FailureReason ?? '')),\n String(r.UserID ?? ''),\n String(r.AIAgentID ?? ''),\n ];\n lines.push(cells.join(','));\n }\n const blob = new Blob([lines.join('\\n')], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.setAttribute('href', url);\n const name = (this.record?.Name ?? 'scope').replace(/[^\\w\\-]+/g, '_');\n link.setAttribute('download', `searchscope-tuning-${name}-${new Date().toISOString().split('T')[0]}.csv`);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }\n\n private escapeCsv(value: string): string {\n if (value == null) return '';\n // Quote when the value contains a comma, quote, newline, or starts with\n // formula-injection characters. Inside a quoted value, escape inner\n // quotes by doubling.\n if (/[\",\\n\\r]/.test(value) || /^[=+\\-@]/.test(value)) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n }\n\n private parseScopeConfig(): Record<string, unknown> | null {\n if (!this.record?.ScopeConfig) return null;\n try {\n const parsed = JSON.parse(this.record.ScopeConfig);\n return (parsed && typeof parsed === 'object') ? parsed as Record<string, unknown> : null;\n } catch {\n return null;\n }\n }\n}\n\nexport function LoadMJSearchScopeFormComponentExtended(): void {\n // Tree-shake prevention; called from custom-forms.module's LoadCoreCustomForms()\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ref = MJSearchScopeFormComponentExtended;\n}\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Scope Definition Section -->\n <mj-collapsible-panel\n SectionKey=\"scopeDefinition\"\n SectionName=\"Scope Definition\"\n Icon=\"fa fa-info-circle\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Icon\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Scope Configuration Section -->\n <mj-collapsible-panel\n SectionKey=\"scopeConfiguration\"\n SectionName=\"Scope Configuration\"\n Icon=\"fa fa-sliders-h\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsGlobal\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsDefault\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Access Control Section -->\n <mj-collapsible-panel\n SectionKey=\"accessControl\"\n SectionName=\"Access Control\"\n Icon=\"fa fa-lock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"OwnerUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Lifecycle Management Section -->\n <mj-collapsible-panel\n SectionKey=\"lifecycleManagement\"\n SectionName=\"Lifecycle Management\"\n Icon=\"fa fa-clock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"StartAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"EndAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Technical Configuration Section -->\n <mj-collapsible-panel\n SectionKey=\"technicalConfiguration\"\n SectionName=\"Technical Configuration\"\n Icon=\"fa fa-code\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ScopeConfig\"\n Type=\"code\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"SearchContextConfig\"\n Type=\"code\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Fusion Weights Section (custom — P4.2).\n Sliders for each canonical SearchEngine source type, backed by\n SearchScope.ScopeConfig.fusionWeights JSON. Weights >1 amplify a\n provider's contribution; weights <1 dampen it. Default 1 = engine\n default (no override). Plan-doc estimated SearchScopeProvider.Weight\n but that column doesn't exist; the JSON path is the actual contract\n the SearchEngine reads. -->\n <mj-collapsible-panel\n SectionKey=\"fusionWeights\"\n SectionName=\"Fusion Weights\"\n Icon=\"fa fa-sliders-h\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"fusion-weights\">\n @for (row of FusionWeights; track row.Key) {\n <div class=\"fusion-weight-row\">\n <span class=\"fusion-weight-label\">{{ row.Label }}</span>\n <input\n class=\"fusion-weight-slider\"\n type=\"range\"\n min=\"0\"\n max=\"5\"\n step=\"0.1\"\n [disabled]=\"!EditMode\"\n [value]=\"row.Weight\"\n (change)=\"OnFusionWeightChanged(row, $any($event.target).valueAsNumber)\" />\n <span class=\"fusion-weight-value\">{{ row.Weight | number:'1.1-1' }}</span>\n </div>\n }\n <p class=\"fusion-weights-help\">\n Drag a slider to update <code>ScopeConfig.fusionWeights</code>. Default 1.0 means \"use engine default\";\n values are persisted on form save.\n </p>\n </div>\n </mj-collapsible-panel>\n\n <!-- Reranker Section (custom — P2D.7 Angular half).\n Dropdown writes the choice into ScopeConfig JSON's reRanker.driverClass —\n the same path SearchEngine reads at runtime via pickReRankerConfig().\n RerankerBudgetCents is rendered here too so the cost-cap input lives\n right next to the cost-incurring choice. -->\n <mj-collapsible-panel\n SectionKey=\"reranker\"\n SectionName=\"Reranker\"\n Icon=\"fa fa-sort-amount-down\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"reranker-config\">\n <label class=\"reranker-config-label\">Reranker driver class</label>\n <select\n class=\"mj-input reranker-driver-select\"\n [disabled]=\"!EditMode\"\n [ngModel]=\"SelectedRerankerDriverClass\"\n (ngModelChange)=\"SelectedRerankerDriverClass = $event\">\n <option value=\"\">— None (use NoopReRanker) —</option>\n @for (option of AvailableRerankers; track option.DriverClass) {\n <option [value]=\"option.DriverClass\">\n {{ option.Name }}{{ option.HasCost ? ' — paid' : ' — free' }}\n </option>\n }\n </select>\n @if (SelectedRerankerHasCost) {\n <p class=\"reranker-cost-hint\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n This reranker incurs API cost per search. Set\n <strong>RerankerBudgetCents</strong> below to cap spend per invocation.\n </p>\n }\n <p class=\"reranker-help-hint\">\n Stored on <code>ScopeConfig.reRanker.driverClass</code> — the SearchEngine reads this at runtime.\n Leave blank to use the pass-through default.\n </p>\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"RerankerBudgetCents\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n <!-- P3.4 — per-scope tuning CSV export.\n Pulls the last 500 rows from MJ: Search Execution Logs filtered\n to this scope's ID and downloads as CSV for offline analysis. -->\n <div class=\"reranker-export-row\">\n <button class=\"reranker-export-btn\"\n type=\"button\"\n [disabled]=\"!record?.ID || IsExportingTuningCsv\"\n (click)=\"ExportTuningCsv()\">\n @if (IsExportingTuningCsv) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Exporting…</span>\n } @else {\n <i class=\"fa-solid fa-download\"></i>\n <span>Export tuning data (CSV)</span>\n }\n </button>\n <span class=\"reranker-export-hint\">Last 500 search invocations against this scope.</span>\n </div>\n </div>\n </mj-collapsible-panel>\n\n <!-- Live Preview Section (custom — P4.1).\n Streaming search against this scope, rendered with chip-strip + result\n list so authors can see how each tuning change (reranker, fusion\n weights, scope template) affects the actual ranked output. -->\n <mj-collapsible-panel\n SectionKey=\"livePreview\"\n SectionName=\"Live Preview\"\n Icon=\"fa fa-flask\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"live-preview\">\n <div class=\"live-preview-input-row\">\n <input\n class=\"mj-input live-preview-input\"\n type=\"text\"\n placeholder=\"Type a sample query and press Run…\"\n [disabled]=\"!record?.ID || PreviewIsRunning\"\n [value]=\"PreviewQuery\"\n (input)=\"PreviewQuery = $any($event.target).value\"\n (keydown.enter)=\"RunPreview()\" />\n @if (!PreviewIsRunning) {\n <button class=\"live-preview-btn\"\n type=\"button\"\n [disabled]=\"!record?.ID || !PreviewQuery.trim()\"\n (click)=\"RunPreview()\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n } @else {\n <button class=\"live-preview-btn live-preview-btn-cancel\"\n type=\"button\"\n (click)=\"CancelPreview()\">\n <i class=\"fa-solid fa-stop\"></i> Cancel\n </button>\n }\n </div>\n\n @if (PreviewError) {\n <p class=\"live-preview-error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i> {{ PreviewError }}\n </p>\n }\n\n @if (PreviewIsRunning || PreviewProviders.length > 0) {\n <div class=\"live-preview-chips\">\n @if (PreviewIsRunning && PreviewProviders.length === 0) {\n <span class=\"live-preview-chip live-preview-chip-pending\">\n <i class=\"fa-solid fa-circle-notch fa-spin\"></i> Streaming…\n </span>\n }\n @for (p of PreviewProviders; track p.Name) {\n <span class=\"live-preview-chip live-preview-chip-completed\">\n <i class=\"fa-solid fa-check\"></i>\n <strong>{{ p.Name }}</strong>\n <span class=\"live-preview-chip-count\">{{ p.Count }}</span>\n <span class=\"live-preview-chip-time\">{{ p.ElapsedMs }}ms</span>\n </span>\n }\n </div>\n }\n\n @if (PreviewResults.length > 0) {\n <div class=\"live-preview-results\">\n <div class=\"live-preview-results-header\">\n {{ PreviewResults.length }} result(s)\n @if (PreviewElapsedMs !== null) { in {{ PreviewElapsedMs }}ms }\n @if (LastRunSimilarityPercent !== null) {\n <span class=\"live-preview-similarity\"\n [class.live-preview-similarity-low]=\"LastRunSimilarityPercent < 70\"\n title=\"Kendall-tau rank correlation against the previous run, mapped to [0%, 100%].\">\n · {{ LastRunSimilarityPercent }}% similar to last run\n </span>\n }\n </div>\n @for (r of PreviewResults; track r.ID; let i = $index) {\n @if (i < 10) {\n <div class=\"live-preview-result\">\n <span class=\"live-preview-result-score\">{{ (r.Score * 100) | number:'1.0-0' }}%</span>\n <span class=\"live-preview-result-title\">{{ r.Title }}</span>\n <span class=\"live-preview-result-entity\">{{ r.EntityName }}</span>\n </div>\n }\n }\n @if (PreviewResults.length > 10) {\n <p class=\"live-preview-truncated\">…and {{ PreviewResults.length - 10 }} more (preview shows top 10).</p>\n }\n </div>\n }\n </div>\n </mj-collapsible-panel>\n\n <!-- Details Section (kept empty — RerankerBudgetCents now lives in the\n Reranker section above where it semantically belongs) -->\n <mj-collapsible-panel\n SectionKey=\"details\"\n SectionName=\"Details\"\n Icon=\"fa fa-align-left\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Search Scope Test Queries Section (P4.4) — canonical test queries for\n offline tuning. Authors save representative queries here, re-run them\n after a config change, and compare results. -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeTestQueries\"\n SectionName=\"Search Scope Test Queries\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeTestQueries')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Test Queries','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Test Queries')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeTestQueries')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeTestQueries', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Storage Accounts Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeStorageAccounts\"\n SectionName=\"Search Scope Storage Accounts\"\n Icon=\"fa fa-folder-open\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeStorageAccounts')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Storage Accounts','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Storage Accounts')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeStorageAccounts')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeStorageAccounts', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Entities Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeEntities\"\n SectionName=\"Search Scope Entities\"\n Icon=\"fa fa-search\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeEntities')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Entities','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Entities')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeEntities')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeEntities', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope External Indexes Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeExternalIndexes\"\n SectionName=\"Search Scope External Indexes\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeExternalIndexes')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope External Indexes','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope External Indexes')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeExternalIndexes')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeExternalIndexes', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Providers Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeProviders\"\n SectionName=\"Search Scope Providers\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeProviders')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Providers','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Providers')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeProviders')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeProviders', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- AI Agent Search Scopes Section -->\n <mj-collapsible-panel\n SectionKey=\"mJAIAgentSearchScopes\"\n SectionName=\"AI Agent Search Scopes\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJAIAgentSearchScopes')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: AI Agent Search Scopes','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: AI Agent Search Scopes')\"\n [AllowLoad]=\"IsSectionExpanded('mJAIAgentSearchScopes')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJAIAgentSearchScopes', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Permissions Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopePermissions\"\n SectionName=\"Search Scope Permissions\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopePermissions')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Permissions','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Permissions')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopePermissions')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopePermissions', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Execution Logs Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchExecutionLogs\"\n SectionName=\"Search Execution Logs\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchExecutionLogs')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Execution Logs','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Execution Logs')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchExecutionLogs')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchExecutionLogs', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n</mj-record-form-container>\n "]}
|
|
1
|
+
{"version":3,"file":"searchscope-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/SearchScopes/searchscope-form.component.ts","../../../../src/lib/custom/SearchScopes/searchscope-form.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * Custom SearchScope form (P2D.7 Angular half).\n *\n * Adds a \"Reranker\" custom section that:\n * - Renders a dropdown of registered rerankers — currently a hardcoded list\n * mirroring `BaseReRanker.GetAvailableRerankers()` server-side, with each\n * option's HasCost flag surfaced inline so authors can see at a glance\n * which options will incur API spend.\n * - Reads / writes the current selection from `record.ScopeConfig` JSON's\n * `reRanker.driverClass` key — same path the SearchEngine reads at runtime.\n *\n * **Discovery follow-up:** the canonical source of available rerankers is\n * `BaseReRanker.GetAvailableRerankers()` in `@memberjunction/search-engine`,\n * but that's a Node-only package and can't be imported in the browser.\n * A small GraphQL query (e.g. `AvailableRerankers`) on MJServer that calls\n * the helper server-side would let this dropdown auto-discover any\n * third-party reranker registered with ClassFactory. Tracked as a follow-up\n * — for now the hardcoded list covers the 5 rerankers shipped in Phase 2D.\n *\n * The CodeGen-generated `RerankerBudgetCents` numeric input is already on\n * the form (in the \"Details\" section); we don't need to recreate it.\n * The dropdown above + budget input below give scope authors the full\n * Phase 2D configuration surface.\n */\nimport { Component, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { LogError, RunView } from '@memberjunction/core';\nimport { MJSearchScopeEntity, MJSearchExecutionLogEntityType } from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { SearchService, SearchResultItem, StreamingProviderStatus } from '@memberjunction/ng-search';\nimport { MJSearchScopeFormComponent } from '../../generated/Entities/MJSearchScope/mjsearchscope.form.component';\n\ninterface FusionWeightRow {\n /** Source-type key the SearchEngine matches against (e.g. 'vector', 'fulltext'). */\n Key: string;\n /** Friendly label for the slider — same value as Key today, kept separate for future i18n. */\n Label: string;\n /** Working value of the slider (1-decimal precision) — bound via two-way. */\n Weight: number;\n}\n\n/**\n * Built-in source types the SearchEngine ships. New 3rd-party provider\n * SourceTypes (e.g. external clusters) won't appear here unless the scope\n * author adds them via the JSON Scope Config block — by design, since the\n * fusion-weights UI is for the four canonical built-ins.\n */\nconst BUILT_IN_SOURCE_TYPES: string[] = ['vector', 'fulltext', 'entity', 'storage'];\n\ninterface RerankerOption {\n DriverClass: string;\n Name: string;\n HasCost: boolean;\n}\n\n/**\n * Hardcoded list mirroring the rerankers `@memberjunction/search-engine`\n * registers with ClassFactory. Update when adding a new built-in reranker\n * or when the GraphQL discovery query lands.\n */\nconst BUILT_IN_RERANKERS: RerankerOption[] = [\n { DriverClass: 'NoopReRanker', Name: 'NoopReRanker (pass-through)', HasCost: false },\n { DriverClass: 'CohereReRanker', Name: 'Cohere (rerank-v5.0-fast)', HasCost: true },\n { DriverClass: 'VoyageReRanker', Name: 'Voyage (rerank-2)', HasCost: true },\n { DriverClass: 'OpenAIReRanker', Name: 'OpenAI (gpt-4o-mini judge)', HasCost: true },\n { DriverClass: 'BGEReRanker', Name: 'BGE (local, free)', HasCost: false },\n];\n\n@RegisterClass(BaseFormComponent, 'MJ: Search Scopes')\n@Component({\n standalone: false,\n selector: 'mj-searchscope-form-extended',\n templateUrl: './searchscope-form.component.html',\n styleUrls: ['./searchscope-form.component.css'],\n})\nexport class MJSearchScopeFormComponentExtended extends MJSearchScopeFormComponent implements OnDestroy {\n public override record!: MJSearchScopeEntity;\n\n public readonly AvailableRerankers: RerankerOption[] = BUILT_IN_RERANKERS;\n\n /** Live-preview state (P4.1). */\n public PreviewQuery = '';\n public PreviewIsRunning = false;\n public PreviewResults: SearchResultItem[] = [];\n public PreviewProviders: StreamingProviderStatus[] = [];\n public PreviewElapsedMs: number | null = null;\n public PreviewError: string | null = null;\n private previewSubscription: Subscription | null = null;\n private searchService = new SearchService();\n\n /**\n * P4.3 — A/B comparison via Kendall-tau between consecutive preview runs.\n * After RunPreview completes, the previous run's RecordIDs are diffed\n * against the current run and the rank-correlation similarity is shown\n * inline (\"82% similar to last run\"). Authors use this to immediately\n * see how much a reranker swap or fusion-weight tweak shifted the ranking.\n */\n private previousRunRecordIDs: string[] = [];\n public LastRunSimilarityPercent: number | null = null;\n\n public override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.previewSubscription?.unsubscribe();\n this.previewSubscription = null;\n }\n\n /**\n * P4.1 — run a streaming preview against this scope. Uses the same\n * SearchService.StreamSearch path the production search UI uses, scoped\n * to just this scope's ID. Each provider's chip shows its count as it\n * reports back, so authors can see chip-by-chip what each tuning change\n * actually affects; the result rows arrive with the 'final' event.\n */\n public RunPreview(): void {\n if (!this.record?.ID || this.PreviewIsRunning) return;\n const query = this.PreviewQuery.trim();\n if (!query) return;\n\n // Tear down any previous run before starting a new one.\n this.previewSubscription?.unsubscribe();\n this.PreviewIsRunning = true;\n this.PreviewResults = [];\n this.PreviewProviders = [];\n this.PreviewElapsedMs = null;\n this.PreviewError = null;\n\n this.previewSubscription = this.searchService.StreamSearch({\n Query: query,\n MaxResults: 25,\n ActiveFilters: {},\n IncludeSources: ['vector', 'fulltext', 'entity', 'storage'],\n ScopeIDs: [this.record.ID],\n }).subscribe({\n next: (event) => {\n if (event.Phase === 'provider' && event.ProviderName) {\n // Progress only: the count, never the rows (they precede the permission pass).\n this.PreviewProviders = [\n ...this.PreviewProviders,\n {\n Name: event.ProviderName,\n Count: event.ResultCount ?? 0,\n ElapsedMs: event.ElapsedMs ?? 0,\n State: 'Completed',\n },\n ];\n } else if (event.Phase === 'final' && event.Results) {\n this.PreviewResults = [...event.Results].sort((a, b) => b.Score - a.Score);\n this.PreviewElapsedMs = event.ElapsedMs ?? null;\n }\n },\n error: (err: Error) => {\n this.PreviewError = err.message ?? String(err);\n this.PreviewIsRunning = false;\n },\n complete: () => {\n this.PreviewIsRunning = false;\n // Compute Kendall-tau against the prior run, then capture this\n // run's order as the next baseline.\n const currentIDs = this.PreviewResults.map(r => r.RecordID);\n if (this.previousRunRecordIDs.length > 0 && currentIDs.length > 0) {\n const tau = MJSearchScopeFormComponentExtended.kendallTauOnSharedItems(\n this.previousRunRecordIDs,\n currentIDs,\n );\n if (tau !== null) {\n // Map [-1, 1] tau onto a [0, 100] \"% similar\" gauge so non-stats\n // authors can read it. -1 (reverse) = 0%, 0 (uncorrelated) = 50%,\n // +1 (identical) = 100%.\n this.LastRunSimilarityPercent = Math.round((tau + 1) * 50);\n }\n }\n this.previousRunRecordIDs = currentIDs;\n },\n });\n }\n\n public CancelPreview(): void {\n this.previewSubscription?.unsubscribe();\n this.previewSubscription = null;\n this.PreviewIsRunning = false;\n }\n\n /**\n * Compute Kendall-tau rank correlation on the items present in both lists.\n * Items only in one list are ignored (partial-overlap handling). Returns\n * null when the shared overlap is too small (< 2 items) to be meaningful.\n *\n * Tau formula: (concordant - discordant) / (N * (N-1) / 2)\n * where concordant = pairs ranked in the same order in both lists,\n * discordant = pairs ranked in opposite order, N = shared item count.\n */\n private static kendallTauOnSharedItems(listA: string[], listB: string[]): number | null {\n const rankA = new Map(listA.map((id, i) => [id, i]));\n const rankB = new Map(listB.map((id, i) => [id, i]));\n const shared = listA.filter(id => rankB.has(id));\n const n = shared.length;\n if (n < 2) return null;\n let concordant = 0;\n let discordant = 0;\n for (let i = 0; i < n; i++) {\n for (let j = i + 1; j < n; j++) {\n const a = (rankA.get(shared[i])! - rankA.get(shared[j])!);\n const b = (rankB.get(shared[i])! - rankB.get(shared[j])!);\n const product = a * b;\n if (product > 0) concordant++;\n else if (product < 0) discordant++;\n // Ties (product === 0) ignored — items at same rank\n }\n }\n const totalPairs = (n * (n - 1)) / 2;\n if (totalPairs === 0) return null;\n return (concordant - discordant) / totalPairs;\n }\n\n /**\n * Override the section list to include the new \"Reranker\" section before\n * \"Details\". The generated `initSections()` doesn't know about our custom\n * section so we replace the list. Order matches the template's render order.\n */\n public override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'scopeDefinition', sectionName: 'Scope Definition', isExpanded: true },\n { sectionKey: 'scopeConfiguration', sectionName: 'Scope Configuration', isExpanded: true },\n { sectionKey: 'accessControl', sectionName: 'Access Control', isExpanded: false },\n { sectionKey: 'lifecycleManagement', sectionName: 'Lifecycle Management', isExpanded: false },\n { sectionKey: 'technicalConfiguration', sectionName: 'Technical Configuration', isExpanded: false },\n { sectionKey: 'fusionWeights', sectionName: 'Fusion Weights', isExpanded: false },\n { sectionKey: 'reranker', sectionName: 'Reranker', isExpanded: false },\n { sectionKey: 'livePreview', sectionName: 'Live Preview', isExpanded: false },\n { sectionKey: 'details', sectionName: 'Details', isExpanded: false },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },\n { sectionKey: 'mJSearchScopeTestQueries', sectionName: 'Search Scope Test Queries', isExpanded: false },\n { sectionKey: 'mJSearchScopeStorageAccounts', sectionName: 'Search Scope Storage Accounts', isExpanded: false },\n { sectionKey: 'mJSearchScopeEntities', sectionName: 'Search Scope Entities', isExpanded: false },\n { sectionKey: 'mJSearchScopeExternalIndexes', sectionName: 'Search Scope External Indexes', isExpanded: false },\n { sectionKey: 'mJSearchScopeProviders', sectionName: 'Search Scope Providers', isExpanded: false },\n { sectionKey: 'mJAIAgentSearchScopes', sectionName: 'AI Agent Search Scopes', isExpanded: false },\n { sectionKey: 'mJSearchScopePermissions', sectionName: 'Search Scope Permissions', isExpanded: false },\n ]);\n }\n\n /**\n * Currently-selected reranker driver class, parsed from `record.ScopeConfig`.\n * Empty string means \"no reranker explicitly chosen\" — runtime defaults\n * to NoopReRanker. Stored as `ScopeConfig.reRanker.driverClass`.\n */\n public get SelectedRerankerDriverClass(): string {\n const cfg = this.parseScopeConfig();\n return (cfg?.['reRanker'] as { driverClass?: string } | undefined)?.driverClass ?? '';\n }\n\n public set SelectedRerankerDriverClass(value: string) {\n const cfg = this.parseScopeConfig() ?? {};\n const reRanker = (cfg['reRanker'] as Record<string, unknown> | undefined) ?? {};\n if (value && value.trim().length > 0) {\n reRanker['driverClass'] = value;\n } else {\n delete reRanker['driverClass'];\n }\n cfg['reRanker'] = reRanker;\n this.record.ScopeConfig = JSON.stringify(cfg, null, 2);\n }\n\n /**\n * Whether the currently-selected reranker incurs API cost — used to render\n * an inline cost-warning indicator next to the dropdown.\n */\n public get SelectedRerankerHasCost(): boolean {\n const driver = this.SelectedRerankerDriverClass;\n return BUILT_IN_RERANKERS.find(r => r.DriverClass === driver)?.HasCost ?? false;\n }\n\n /**\n * Whether the CSV export is currently running. Drives the button's disabled\n * state + spinner.\n */\n public IsExportingTuningCsv = false;\n\n /**\n * P4.2 — fusion weight sliders for each canonical SearchEngine source type.\n * Backed by `SearchScope.ScopeConfig.fusionWeights` JSON (the runtime path\n * — see plans/search-scopes-rag-plus/RAG_plan.md §8 Multi-Scope RRF Fusion). Plan task originally\n * proposed `SearchScopeProvider.Weight` but that column doesn't exist in\n * Phase 1; the JSON path is the actual contract the SearchEngine reads.\n */\n private _fusionWeights: FusionWeightRow[] | null = null;\n\n public get FusionWeights(): FusionWeightRow[] {\n if (!this._fusionWeights) {\n const cfg = this.parseScopeConfig();\n const stored = (cfg?.['fusionWeights'] as Record<string, unknown> | undefined) ?? {};\n this._fusionWeights = BUILT_IN_SOURCE_TYPES.map(key => {\n const value = stored[key];\n const weight = typeof value === 'number' && Number.isFinite(value) ? value : 1;\n return { Key: key, Label: key, Weight: weight };\n });\n }\n return this._fusionWeights;\n }\n\n /**\n * Persist a fusion weight change back to `ScopeConfig.fusionWeights`. The\n * caller is the slider's `(change)` event so writes happen only on\n * slide-end, not on every drag tick.\n */\n public OnFusionWeightChanged(row: FusionWeightRow, raw: number | string): void {\n const value = typeof raw === 'number' ? raw : Number(raw);\n if (!Number.isFinite(value)) return;\n row.Weight = value;\n\n const cfg = this.parseScopeConfig() ?? {};\n const weights = (cfg['fusionWeights'] as Record<string, unknown> | undefined) ?? {};\n if (Math.abs(value - 1) < 0.001) {\n // Default value — drop the explicit override so future engine-default\n // changes flow through naturally.\n delete weights[row.Key];\n } else {\n weights[row.Key] = +value.toFixed(2);\n }\n if (Object.keys(weights).length > 0) {\n cfg['fusionWeights'] = weights;\n } else {\n delete cfg['fusionWeights'];\n }\n this.record.ScopeConfig = JSON.stringify(cfg, null, 2);\n }\n\n /**\n * P3.4 — export the last 500 SearchExecutionLog rows for this scope as CSV.\n * Used by scope authors for offline tuning analysis (open in a spreadsheet,\n * pivot by reranker / status / latency, etc.). Filtered to this scope's ID\n * so multi-tenant deployments don't leak other scopes' query history.\n */\n public async ExportTuningCsv(): Promise<void> {\n if (!this.record?.ID || this.IsExportingTuningCsv) return;\n this.IsExportingTuningCsv = true;\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJSearchExecutionLogEntityType>({\n EntityName: 'MJ: Search Execution Logs',\n // Constrain to the columns the CSV writer actually emits — avoids\n // pulling the wider entity (per Section 6.8).\n Fields: [\n '__mj_CreatedAt', 'Status', 'Query', 'ResultCount', 'TotalDurationMs',\n 'RerankerName', 'RerankerCostCents', 'FailureReason', 'UserID', 'AIAgentID',\n ],\n ExtraFilter: `SearchScopeID='${this.record.ID.replace(/'/g, \"''\")}'`,\n OrderBy: '__mj_CreatedAt DESC',\n MaxRows: 500,\n ResultType: 'simple',\n });\n if (!result.Success) {\n LogError(`SearchScope CSV export failed: ${result.ErrorMessage ?? 'unknown error'}`);\n return;\n }\n const rows = (result.Results ?? []) as MJSearchExecutionLogEntityType[];\n this.downloadCsv(rows);\n } finally {\n this.IsExportingTuningCsv = false;\n }\n }\n\n private downloadCsv(rows: MJSearchExecutionLogEntityType[]): void {\n const headers = [\n 'CreatedAt', 'Status', 'Query', 'ResultCount', 'TotalDurationMs',\n 'RerankerName', 'RerankerCostCents', 'FailureReason', 'UserID', 'AIAgentID',\n ];\n const lines = [headers.join(',')];\n for (const r of rows) {\n const cells = [\n this.escapeCsv(String(r.__mj_CreatedAt ?? '')),\n this.escapeCsv(String(r.Status ?? '')),\n this.escapeCsv(String(r.Query ?? '')),\n String(r.ResultCount ?? 0),\n String(r.TotalDurationMs ?? 0),\n this.escapeCsv(String(r.RerankerName ?? '')),\n String(r.RerankerCostCents ?? ''),\n this.escapeCsv(String(r.FailureReason ?? '')),\n String(r.UserID ?? ''),\n String(r.AIAgentID ?? ''),\n ];\n lines.push(cells.join(','));\n }\n const blob = new Blob([lines.join('\\n')], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.setAttribute('href', url);\n const name = (this.record?.Name ?? 'scope').replace(/[^\\w\\-]+/g, '_');\n link.setAttribute('download', `searchscope-tuning-${name}-${new Date().toISOString().split('T')[0]}.csv`);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n URL.revokeObjectURL(url);\n }\n\n private escapeCsv(value: string): string {\n if (value == null) return '';\n // Quote when the value contains a comma, quote, newline, or starts with\n // formula-injection characters. Inside a quoted value, escape inner\n // quotes by doubling.\n if (/[\",\\n\\r]/.test(value) || /^[=+\\-@]/.test(value)) {\n return `\"${value.replace(/\"/g, '\"\"')}\"`;\n }\n return value;\n }\n\n private parseScopeConfig(): Record<string, unknown> | null {\n if (!this.record?.ScopeConfig) return null;\n try {\n const parsed = JSON.parse(this.record.ScopeConfig);\n return (parsed && typeof parsed === 'object') ? parsed as Record<string, unknown> : null;\n } catch {\n return null;\n }\n }\n}\n\nexport function LoadMJSearchScopeFormComponentExtended(): void {\n // Tree-shake prevention; called from custom-forms.module's LoadCoreCustomForms()\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ref = MJSearchScopeFormComponentExtended;\n}\n","<mj-record-form-container [Record]=\"record\" [FormComponent]=\"this\"\n (Navigate)=\"OnFormNavigate($event)\"\n (DeleteRequested)=\"OnDeleteRequested()\"\n (FavoriteToggled)=\"OnFavoriteToggled()\"\n (HistoryRequested)=\"OnHistoryRequested()\"\n (ListManagementRequested)=\"OnListManagementRequested()\">\n\n <!-- ========================================\n FIELD PANELS\n ======================================== -->\n <!-- Scope Definition Section -->\n <mj-collapsible-panel\n SectionKey=\"scopeDefinition\"\n SectionName=\"Scope Definition\"\n Icon=\"fa fa-info-circle\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Name\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Description\"\n Type=\"textarea\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Icon\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Scope Configuration Section -->\n <mj-collapsible-panel\n SectionKey=\"scopeConfiguration\"\n SectionName=\"Scope Configuration\"\n Icon=\"fa fa-sliders-h\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsGlobal\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"IsDefault\"\n Type=\"checkbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Access Control Section -->\n <mj-collapsible-panel\n SectionKey=\"accessControl\"\n SectionName=\"Access Control\"\n Icon=\"fa fa-lock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"false\"\n FieldName=\"OwnerUserID\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n LinkType=\"Record\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Lifecycle Management Section -->\n <mj-collapsible-panel\n SectionKey=\"lifecycleManagement\"\n SectionName=\"Lifecycle Management\"\n Icon=\"fa fa-clock\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"Status\"\n Type=\"select\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"StartAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"EndAt\"\n Type=\"datepicker\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Technical Configuration Section -->\n <mj-collapsible-panel\n SectionKey=\"technicalConfiguration\"\n SectionName=\"Technical Configuration\"\n Icon=\"fa fa-code\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"ScopeConfig\"\n Type=\"code\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"SearchContextConfig\"\n Type=\"code\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- Fusion Weights Section (custom — P4.2).\n Sliders for each canonical SearchEngine source type, backed by\n SearchScope.ScopeConfig.fusionWeights JSON. Weights >1 amplify a\n provider's contribution; weights <1 dampen it. Default 1 = engine\n default (no override). Plan-doc estimated SearchScopeProvider.Weight\n but that column doesn't exist; the JSON path is the actual contract\n the SearchEngine reads. -->\n <mj-collapsible-panel\n SectionKey=\"fusionWeights\"\n SectionName=\"Fusion Weights\"\n Icon=\"fa fa-sliders-h\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"fusion-weights\">\n @for (row of FusionWeights; track row.Key) {\n <div class=\"fusion-weight-row\">\n <span class=\"fusion-weight-label\">{{ row.Label }}</span>\n <input\n class=\"fusion-weight-slider\"\n type=\"range\"\n min=\"0\"\n max=\"5\"\n step=\"0.1\"\n [disabled]=\"!EditMode\"\n [value]=\"row.Weight\"\n (change)=\"OnFusionWeightChanged(row, $any($event.target).valueAsNumber)\" />\n <span class=\"fusion-weight-value\">{{ row.Weight | number:'1.1-1' }}</span>\n </div>\n }\n <p class=\"fusion-weights-help\">\n Drag a slider to update <code>ScopeConfig.fusionWeights</code>. Default 1.0 means \"use engine default\";\n values are persisted on form save.\n </p>\n </div>\n </mj-collapsible-panel>\n\n <!-- Reranker Section (custom — P2D.7 Angular half).\n Dropdown writes the choice into ScopeConfig JSON's reRanker.driverClass —\n the same path SearchEngine reads at runtime via pickReRankerConfig().\n RerankerBudgetCents is rendered here too so the cost-cap input lives\n right next to the cost-incurring choice. -->\n <mj-collapsible-panel\n SectionKey=\"reranker\"\n SectionName=\"Reranker\"\n Icon=\"fa fa-sort-amount-down\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"reranker-config\">\n <label class=\"reranker-config-label\">Reranker driver class</label>\n <select\n class=\"mj-input reranker-driver-select\"\n [disabled]=\"!EditMode\"\n [ngModel]=\"SelectedRerankerDriverClass\"\n (ngModelChange)=\"SelectedRerankerDriverClass = $event\">\n <option value=\"\">— None (use NoopReRanker) —</option>\n @for (option of AvailableRerankers; track option.DriverClass) {\n <option [value]=\"option.DriverClass\">\n {{ option.Name }}{{ option.HasCost ? ' — paid' : ' — free' }}\n </option>\n }\n </select>\n @if (SelectedRerankerHasCost) {\n <p class=\"reranker-cost-hint\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n This reranker incurs API cost per search. Set\n <strong>RerankerBudgetCents</strong> below to cap spend per invocation.\n </p>\n }\n <p class=\"reranker-help-hint\">\n Stored on <code>ScopeConfig.reRanker.driverClass</code> — the SearchEngine reads this at runtime.\n Leave blank to use the pass-through default.\n </p>\n\n <mj-form-field\n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"RerankerBudgetCents\"\n Type=\"number\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n <!-- P3.4 — per-scope tuning CSV export.\n Pulls the last 500 rows from MJ: Search Execution Logs filtered\n to this scope's ID and downloads as CSV for offline analysis. -->\n <div class=\"reranker-export-row\">\n <button class=\"reranker-export-btn\"\n type=\"button\"\n [disabled]=\"!record?.ID || IsExportingTuningCsv\"\n (click)=\"ExportTuningCsv()\">\n @if (IsExportingTuningCsv) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n <span>Exporting…</span>\n } @else {\n <i class=\"fa-solid fa-download\"></i>\n <span>Export tuning data (CSV)</span>\n }\n </button>\n <span class=\"reranker-export-hint\">Last 500 search invocations against this scope.</span>\n </div>\n </div>\n </mj-collapsible-panel>\n\n <!-- Live Preview Section (custom — P4.1).\n Streaming search against this scope, rendered with chip-strip + result\n list so authors can see how each tuning change (reranker, fusion\n weights, scope template) affects the actual ranked output. -->\n <mj-collapsible-panel\n SectionKey=\"livePreview\"\n SectionName=\"Live Preview\"\n Icon=\"fa fa-flask\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <div class=\"live-preview\">\n <div class=\"live-preview-input-row\">\n <input\n class=\"mj-input live-preview-input\"\n type=\"text\"\n placeholder=\"Type a sample query and press Run…\"\n [disabled]=\"!record?.ID || PreviewIsRunning\"\n [value]=\"PreviewQuery\"\n (input)=\"PreviewQuery = $any($event.target).value\"\n (keydown.enter)=\"RunPreview()\" />\n @if (!PreviewIsRunning) {\n <button class=\"live-preview-btn\"\n type=\"button\"\n [disabled]=\"!record?.ID || !PreviewQuery.trim()\"\n (click)=\"RunPreview()\">\n <i class=\"fa-solid fa-play\"></i> Run\n </button>\n } @else {\n <button class=\"live-preview-btn live-preview-btn-cancel\"\n type=\"button\"\n (click)=\"CancelPreview()\">\n <i class=\"fa-solid fa-stop\"></i> Cancel\n </button>\n }\n </div>\n\n @if (PreviewError) {\n <p class=\"live-preview-error\">\n <i class=\"fa-solid fa-circle-exclamation\"></i> {{ PreviewError }}\n </p>\n }\n\n @if (PreviewIsRunning || PreviewProviders.length > 0) {\n <div class=\"live-preview-chips\">\n @if (PreviewIsRunning && PreviewProviders.length === 0) {\n <span class=\"live-preview-chip live-preview-chip-pending\">\n <i class=\"fa-solid fa-circle-notch fa-spin\"></i> Streaming…\n </span>\n }\n @for (p of PreviewProviders; track p.Name) {\n <span class=\"live-preview-chip live-preview-chip-completed\">\n <i class=\"fa-solid fa-check\"></i>\n <strong>{{ p.Name }}</strong>\n <span class=\"live-preview-chip-count\">{{ p.Count }}</span>\n <span class=\"live-preview-chip-time\">{{ p.ElapsedMs }}ms</span>\n </span>\n }\n </div>\n }\n\n @if (PreviewResults.length > 0) {\n <div class=\"live-preview-results\">\n <div class=\"live-preview-results-header\">\n {{ PreviewResults.length }} result(s)\n @if (PreviewElapsedMs !== null) { in {{ PreviewElapsedMs }}ms }\n @if (LastRunSimilarityPercent !== null) {\n <span class=\"live-preview-similarity\"\n [class.live-preview-similarity-low]=\"LastRunSimilarityPercent < 70\"\n title=\"Kendall-tau rank correlation against the previous run, mapped to [0%, 100%].\">\n · {{ LastRunSimilarityPercent }}% similar to last run\n </span>\n }\n </div>\n @for (r of PreviewResults; track r.ID; let i = $index) {\n @if (i < 10) {\n <div class=\"live-preview-result\">\n <span class=\"live-preview-result-score\">{{ (r.Score * 100) | number:'1.0-0' }}%</span>\n <span class=\"live-preview-result-title\">{{ r.Title }}</span>\n <span class=\"live-preview-result-entity\">{{ r.EntityName }}</span>\n </div>\n }\n }\n @if (PreviewResults.length > 10) {\n <p class=\"live-preview-truncated\">…and {{ PreviewResults.length - 10 }} more (preview shows top 10).</p>\n }\n </div>\n }\n </div>\n </mj-collapsible-panel>\n\n <!-- Details Section (kept empty — RerankerBudgetCents now lives in the\n Reranker section above where it semantically belongs) -->\n <mj-collapsible-panel\n SectionKey=\"details\"\n SectionName=\"Details\"\n Icon=\"fa fa-align-left\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-cog\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_CreatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n <mj-form-field \n [Record]=\"record\"\n [ShowLabel]=\"true\"\n FieldName=\"__mj_UpdatedAt\"\n Type=\"textbox\"\n [EditMode]=\"EditMode\"\n [FormContext]=\"formContext\"\n ></mj-form-field>\n\n </mj-collapsible-panel>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Search Scope Test Queries Section (P4.4) — canonical test queries for\n offline tuning. Authors save representative queries here, re-run them\n after a config change, and compare results. -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeTestQueries\"\n SectionName=\"Search Scope Test Queries\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeTestQueries')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Test Queries','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Test Queries')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeTestQueries')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeTestQueries', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Storage Accounts Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeStorageAccounts\"\n SectionName=\"Search Scope Storage Accounts\"\n Icon=\"fa fa-folder-open\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeStorageAccounts')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Storage Accounts','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Storage Accounts')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeStorageAccounts')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeStorageAccounts', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Entities Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeEntities\"\n SectionName=\"Search Scope Entities\"\n Icon=\"fa fa-search\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeEntities')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Entities','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Entities')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeEntities')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeEntities', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope External Indexes Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeExternalIndexes\"\n SectionName=\"Search Scope External Indexes\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeExternalIndexes')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope External Indexes','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope External Indexes')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeExternalIndexes')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeExternalIndexes', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Providers Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopeProviders\"\n SectionName=\"Search Scope Providers\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopeProviders')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Providers','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Providers')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopeProviders')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopeProviders', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- AI Agent Search Scopes Section -->\n <mj-collapsible-panel\n SectionKey=\"mJAIAgentSearchScopes\"\n SectionName=\"AI Agent Search Scopes\"\n Icon=\"fa fa-search-plus\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJAIAgentSearchScopes')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: AI Agent Search Scopes','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: AI Agent Search Scopes')\"\n [AllowLoad]=\"IsSectionExpanded('mJAIAgentSearchScopes')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJAIAgentSearchScopes', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Scope Permissions Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchScopePermissions\"\n SectionName=\"Search Scope Permissions\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchScopePermissions')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Scope Permissions','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Scope Permissions')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchScopePermissions')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchScopePermissions', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Search Execution Logs Section -->\n <mj-collapsible-panel\n SectionKey=\"mJSearchExecutionLogs\"\n SectionName=\"Search Execution Logs\"\n Icon=\"fa fa-table\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJSearchExecutionLogs')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Search Execution Logs','SearchScopeID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Search Execution Logs')\"\n [AllowLoad]=\"IsSectionExpanded('mJSearchExecutionLogs')\"\n [ShowToolbar]=\"false\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJSearchExecutionLogs', $event.totalRowCount)\"\n >\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n</mj-record-form-container>\n "]}
|
|
@@ -65,43 +65,49 @@ import * as i63 from "../panels/form-chrome/entity-relationship-form-role.panel"
|
|
|
65
65
|
import * as i64 from "../panels/record-clone/entity-clone-config-editor.component";
|
|
66
66
|
import * as i65 from "./Files/file-form.component";
|
|
67
67
|
import * as i66 from "./MLModels/ml-model-form.component";
|
|
68
|
-
import * as i67 from "
|
|
69
|
-
import * as i68 from "
|
|
70
|
-
import * as i69 from "@memberjunction/ng-
|
|
71
|
-
import * as i70 from "
|
|
72
|
-
import * as i71 from "@angular/
|
|
73
|
-
import * as i72 from "@
|
|
74
|
-
import * as i73 from "
|
|
75
|
-
import * as i74 from "
|
|
76
|
-
import * as i75 from "@
|
|
77
|
-
import * as i76 from "
|
|
78
|
-
import * as i77 from "
|
|
79
|
-
import * as i78 from "@memberjunction/ng-
|
|
80
|
-
import * as i79 from "@memberjunction/ng-
|
|
81
|
-
import * as i80 from "@memberjunction/ng-
|
|
82
|
-
import * as i81 from "@memberjunction/ng-
|
|
83
|
-
import * as i82 from "@memberjunction/ng-
|
|
84
|
-
import * as i83 from "@memberjunction/ng-
|
|
85
|
-
import * as i84 from "@memberjunction/ng-
|
|
86
|
-
import * as i85 from "
|
|
87
|
-
import * as i86 from "
|
|
88
|
-
import * as i87 from "@memberjunction/ng-
|
|
89
|
-
import * as i88 from "@memberjunction/ng-
|
|
90
|
-
import * as i89 from "@memberjunction/ng-
|
|
91
|
-
import * as i90 from "@memberjunction/ng-
|
|
92
|
-
import * as i91 from "@memberjunction/ng-
|
|
93
|
-
import * as i92 from "@memberjunction/ng-
|
|
94
|
-
import * as i93 from "@memberjunction/ng-
|
|
95
|
-
import * as i94 from "@memberjunction/ng-
|
|
96
|
-
import * as i95 from "@memberjunction/ng-
|
|
97
|
-
import * as i96 from "
|
|
98
|
-
import * as i97 from "@memberjunction/ng-
|
|
99
|
-
import * as i98 from "@memberjunction/ng-
|
|
100
|
-
import * as i99 from "@memberjunction/ng-
|
|
101
|
-
import * as i100 from "
|
|
68
|
+
import * as i67 from "../panels/brand-kits/brand-kit-assets.panel";
|
|
69
|
+
import * as i68 from "../panels/brand-kits/brand-kit-generation-policy.panel";
|
|
70
|
+
import * as i69 from "@memberjunction/ng-artifacts";
|
|
71
|
+
import * as i70 from "@memberjunction/ng-brand-kits";
|
|
72
|
+
import * as i71 from "@angular/common";
|
|
73
|
+
import * as i72 from "@memberjunction/ng-rubrics";
|
|
74
|
+
import * as i73 from "./Rubrics/rubric-form.panels";
|
|
75
|
+
import * as i74 from "@angular/forms";
|
|
76
|
+
import * as i75 from "@angular/cdk/drag-drop";
|
|
77
|
+
import * as i76 from "ag-grid-angular";
|
|
78
|
+
import * as i77 from "./MLModels/ps-model-detail.component";
|
|
79
|
+
import * as i78 from "@memberjunction/ng-ui-components";
|
|
80
|
+
import * as i79 from "@memberjunction/ng-link-directives";
|
|
81
|
+
import * as i80 from "@memberjunction/ng-join-grid";
|
|
82
|
+
import * as i81 from "@memberjunction/ng-base-forms";
|
|
83
|
+
import * as i82 from "@memberjunction/ng-record-clone";
|
|
84
|
+
import * as i83 from "@memberjunction/ng-tabstrip";
|
|
85
|
+
import * as i84 from "@memberjunction/ng-code-editor";
|
|
86
|
+
import * as i85 from "./Queries/query-fields-grid.component";
|
|
87
|
+
import * as i86 from "./Queries/query-parameters-grid.component";
|
|
88
|
+
import * as i87 from "@memberjunction/ng-query-viewer";
|
|
89
|
+
import * as i88 from "@memberjunction/ng-deep-diff";
|
|
90
|
+
import * as i89 from "@memberjunction/ng-ai-test-harness";
|
|
91
|
+
import * as i90 from "@memberjunction/ng-action-gallery";
|
|
92
|
+
import * as i91 from "@memberjunction/ng-testing";
|
|
93
|
+
import * as i92 from "@memberjunction/ng-flow-editor";
|
|
94
|
+
import * as i93 from "@memberjunction/ng-task-graph-editor";
|
|
95
|
+
import * as i94 from "@memberjunction/ng-shared-generic";
|
|
96
|
+
import * as i95 from "@memberjunction/ng-entity-relationship-diagram";
|
|
97
|
+
import * as i96 from "@memberjunction/ng-list-management";
|
|
98
|
+
import * as i97 from "@memberjunction/ng-actions";
|
|
99
|
+
import * as i98 from "@memberjunction/ng-agents";
|
|
100
|
+
import * as i99 from "@memberjunction/ng-entity-viewer";
|
|
101
|
+
import * as i100 from "@memberjunction/ng-markdown";
|
|
102
|
+
import * as i101 from "@memberjunction/ng-trees";
|
|
103
|
+
import * as i102 from "angular-split";
|
|
104
|
+
import * as i103 from "@memberjunction/ng-search";
|
|
105
|
+
import * as i104 from "@memberjunction/ng-record-process-studio";
|
|
106
|
+
import * as i105 from "@memberjunction/ng-resource-permissions";
|
|
107
|
+
import * as i106 from "./HierarchyPanels/hierarchy-form-panels";
|
|
102
108
|
export declare class MemberJunctionCoreEntityFormsModule {
|
|
103
109
|
static ɵfac: i0.ɵɵFactoryDeclaration<MemberJunctionCoreEntityFormsModule, never>;
|
|
104
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<MemberJunctionCoreEntityFormsModule, [typeof i1.MJEntityFormComponentExtended, typeof i2.MJEntityActionFormComponentExtended, typeof i3.MJTemplateFormComponentExtended, typeof i4.TemplateParamDialogComponent, typeof i5.TemplateParamsGridComponent, typeof i6.TemplateEditorComponent, typeof i7.MJAIPromptFormComponentExtended, typeof i8.MJAIAgentFormComponentExtended, typeof i9.NewAgentDialogComponent, typeof i10.AddActionDialogComponent, typeof i11.PromptSelectorDialogComponent, typeof i12.AgentPromptAdvancedSettingsDialogComponent, typeof i13.SubAgentAdvancedSettingsDialogComponent, typeof i14.SubAgentSelectorDialogComponent, typeof i15.CreatePromptDialogComponent, typeof i16.CreateSubAgentDialogComponent, typeof i17.EntitySelectorDialogComponent, typeof i18.MJAIPromptRunFormComponentExtended, typeof i19.ChatMessageViewerComponent, typeof i20.PromptRunDataCaptureNoteComponent, typeof i21.MJActionFormComponentExtended, typeof i22.MJActionExecutionLogFormComponentExtended, typeof i23.MJAIAgentRunFormComponentExtended, typeof i24.AIAgentRunTimelineComponent, typeof i25.AIAgentRunStepNodeComponent, typeof i26.AIAgentRunAnalyticsComponent, typeof i27.AIAgentRunStepDetailComponent, typeof i28.AIAgentRunFlowComponent, typeof i29.FlameCascadeComponent, typeof i30.SubwayLinesComponent, typeof i31.ConstellationComponent, typeof i32.FlowchartComponent, typeof i33.MJQueryFormComponentExtended, typeof i34.QueryRunDialogComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.MJTestRunFormComponentExtended, typeof i37.MJTestFormComponentExtended, typeof i38.MJTestSuiteRunFormComponentExtended, typeof i39.MJTestSuiteFormComponentExtended, typeof i40.MJTestRunFeedbackFormComponentExtended, typeof i41.MJTestRubricFormComponentExtended, typeof i42.EntityLinkPillComponent, typeof i43.MJListFormComponentExtended, typeof i44.MJRubricFormComponentExtended, typeof i45.MJRubricEvaluationFormComponentExtended, typeof i46.MJRubricScaleFormComponentExtended, typeof i47.MJRubricVersionFormComponentExtended, typeof i47.MJRubricCriterionFormComponentExtended, typeof i47.MJRubricEvaluationScoreFormComponentExtended, typeof i47.MJRubricScaleLevelFormComponentExtended, typeof i47.MJRubricBandFormComponentExtended, typeof i47.MJRubricCategoryFormComponentExtended, typeof i47.MJAIAgentRubricFormComponentExtended, typeof i48.TagPipelineConfigurationPanel, typeof i49.WebsiteCrawlerSettingsPanel, typeof i50.ModelPredictionPanel, typeof i51.FeatureValuesPanel, typeof i52.AISkillSharingPanel, typeof i53.MJSearchScopeFormComponentExtended, typeof i54.MJSearchScopeProviderFormComponentExtended, typeof i55.MJAIAgentSessionFormComponentExtended, typeof i56.MJAIAgentChannelFormComponentExtended, typeof i57.MJAIBridgeProviderFormComponentExtended, typeof i58.MJAIAgentSessionBridgeFormComponentExtended, typeof i59.MJAIBridgeAgentIdentityFormComponentExtended, typeof i60.AgentRealtimePanel, typeof i61.RecordProcessFormComponentExtended, typeof i62.EntityFormChromeEditorComponent, typeof i63.EntityRelationshipFormRolePanel, typeof i64.EntityCloneConfigEditorComponent, typeof i65.MJFileFormComponentExtended, typeof i66.MLModelFormComponentExtended], [typeof
|
|
110
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<MemberJunctionCoreEntityFormsModule, [typeof i1.MJEntityFormComponentExtended, typeof i2.MJEntityActionFormComponentExtended, typeof i3.MJTemplateFormComponentExtended, typeof i4.TemplateParamDialogComponent, typeof i5.TemplateParamsGridComponent, typeof i6.TemplateEditorComponent, typeof i7.MJAIPromptFormComponentExtended, typeof i8.MJAIAgentFormComponentExtended, typeof i9.NewAgentDialogComponent, typeof i10.AddActionDialogComponent, typeof i11.PromptSelectorDialogComponent, typeof i12.AgentPromptAdvancedSettingsDialogComponent, typeof i13.SubAgentAdvancedSettingsDialogComponent, typeof i14.SubAgentSelectorDialogComponent, typeof i15.CreatePromptDialogComponent, typeof i16.CreateSubAgentDialogComponent, typeof i17.EntitySelectorDialogComponent, typeof i18.MJAIPromptRunFormComponentExtended, typeof i19.ChatMessageViewerComponent, typeof i20.PromptRunDataCaptureNoteComponent, typeof i21.MJActionFormComponentExtended, typeof i22.MJActionExecutionLogFormComponentExtended, typeof i23.MJAIAgentRunFormComponentExtended, typeof i24.AIAgentRunTimelineComponent, typeof i25.AIAgentRunStepNodeComponent, typeof i26.AIAgentRunAnalyticsComponent, typeof i27.AIAgentRunStepDetailComponent, typeof i28.AIAgentRunFlowComponent, typeof i29.FlameCascadeComponent, typeof i30.SubwayLinesComponent, typeof i31.ConstellationComponent, typeof i32.FlowchartComponent, typeof i33.MJQueryFormComponentExtended, typeof i34.QueryRunDialogComponent, typeof i35.FlowAgentFormSectionComponent, typeof i36.MJTestRunFormComponentExtended, typeof i37.MJTestFormComponentExtended, typeof i38.MJTestSuiteRunFormComponentExtended, typeof i39.MJTestSuiteFormComponentExtended, typeof i40.MJTestRunFeedbackFormComponentExtended, typeof i41.MJTestRubricFormComponentExtended, typeof i42.EntityLinkPillComponent, typeof i43.MJListFormComponentExtended, typeof i44.MJRubricFormComponentExtended, typeof i45.MJRubricEvaluationFormComponentExtended, typeof i46.MJRubricScaleFormComponentExtended, typeof i47.MJRubricVersionFormComponentExtended, typeof i47.MJRubricCriterionFormComponentExtended, typeof i47.MJRubricEvaluationScoreFormComponentExtended, typeof i47.MJRubricScaleLevelFormComponentExtended, typeof i47.MJRubricBandFormComponentExtended, typeof i47.MJRubricCategoryFormComponentExtended, typeof i47.MJAIAgentRubricFormComponentExtended, typeof i48.TagPipelineConfigurationPanel, typeof i49.WebsiteCrawlerSettingsPanel, typeof i50.ModelPredictionPanel, typeof i51.FeatureValuesPanel, typeof i52.AISkillSharingPanel, typeof i53.MJSearchScopeFormComponentExtended, typeof i54.MJSearchScopeProviderFormComponentExtended, typeof i55.MJAIAgentSessionFormComponentExtended, typeof i56.MJAIAgentChannelFormComponentExtended, typeof i57.MJAIBridgeProviderFormComponentExtended, typeof i58.MJAIAgentSessionBridgeFormComponentExtended, typeof i59.MJAIBridgeAgentIdentityFormComponentExtended, typeof i60.AgentRealtimePanel, typeof i61.RecordProcessFormComponentExtended, typeof i62.EntityFormChromeEditorComponent, typeof i63.EntityRelationshipFormRolePanel, typeof i64.EntityCloneConfigEditorComponent, typeof i65.MJFileFormComponentExtended, typeof i66.MLModelFormComponentExtended, typeof i67.BrandKitAssetsPanelComponent, typeof i68.BrandKitGenerationPolicyPanelComponent], [typeof i69.ArtifactsModule, typeof i70.BrandKitsModule, typeof i71.CommonModule, typeof i72.RubricsModule, typeof i73.RubricAuthorPanel, typeof i73.RubricDiffPanel, typeof i73.RubricPublishPanel, typeof i73.RubricVersionsPanel, typeof i47.RubricVersionSummaryPanel, typeof i45.RubricEvaluationResultPanel, typeof i45.RubricEvaluationComparePanel, typeof i46.RubricScaleLevelsPanel, typeof i74.FormsModule, typeof i74.ReactiveFormsModule, typeof i75.DragDropModule, typeof i76.AgGridModule, typeof i77.PSModelDetailComponent, typeof i78.MJEmptyStateComponent, typeof i78.MJAlertComponent, typeof i78.MJTabNavComponent, typeof i78.MJButtonDirective, typeof i78.MJAccordionModule, typeof i78.MJDropdownComponent, typeof i78.MJComboboxComponent, typeof i78.MJSwitchComponent, typeof i78.MJDialogComponent, typeof i78.MJDialogTitlebarComponent, typeof i78.MJDialogActionsComponent, typeof i78.MJNumericInputComponent, typeof i78.MJWindowComponent, typeof i78.MJWindowTitlebarComponent, typeof i78.MJProgressBarComponent, typeof i79.LinkDirectivesModule, typeof i80.JoinGridModule, typeof i81.BaseFormsModule, typeof i82.ClonePlanTreeComponent, typeof i83.MJTabStripModule, typeof i84.CodeEditorModule, typeof i85.QueryFieldsGridComponent, typeof i86.QueryParametersGridComponent, typeof i87.QueryDiagnosticsComponent, typeof i87.QueryRefreshDialogComponent, typeof i88.DeepDiffModule, typeof i89.AITestHarnessModule, typeof i90.ActionGalleryModule, typeof i91.TestingModule, typeof i92.FlowEditorModule, typeof i93.TaskGraphEditorModule, typeof i94.SharedGenericModule, typeof i95.EntityRelationshipDiagramModule, typeof i96.ListManagementModule, typeof i97.ActionsModule, typeof i98.AgentsModule, typeof i99.EntityViewerModule, typeof i100.MarkdownModule, typeof i101.NgTreesModule, typeof i102.AngularSplitModule, typeof i78.MjSlidePanelComponent, typeof i81.MjFormDialogComponent, typeof i103.SearchModule, typeof i104.RecordProcessEditorComponent, typeof i104.FeaturePipelineBuilderComponent, typeof i104.RecordProcessHistoryComponent, typeof i105.ResourcePermissionsModule, typeof i106.AIAgentCategoryHierarchyPanel, typeof i106.AIPromptCategoryHierarchyPanel, typeof i106.ActionCategoryHierarchyPanel, typeof i106.DashboardCategoryHierarchyPanel, typeof i106.QueryCategoryHierarchyPanel, typeof i106.TagHierarchyPanel, typeof i106.ProjectHierarchyPanel, typeof i106.ContentItemHierarchyPanel, typeof i106.FileCategoryHierarchyPanel, typeof i106.ListCategoryHierarchyPanel, typeof i106.RecordProcessCategoryHierarchyPanel, typeof i106.SkillHierarchyPanel, typeof i106.TemplateCategoryHierarchyPanel, typeof i106.TestSuiteHierarchyPanel, typeof i106.UserViewCategoryHierarchyPanel], [typeof i106.AIAgentCategoryHierarchyPanel, typeof i106.AIPromptCategoryHierarchyPanel, typeof i106.ActionCategoryHierarchyPanel, typeof i106.DashboardCategoryHierarchyPanel, typeof i106.QueryCategoryHierarchyPanel, typeof i106.TagHierarchyPanel, typeof i106.ProjectHierarchyPanel, typeof i106.ContentItemHierarchyPanel, typeof i106.FileCategoryHierarchyPanel, typeof i106.ListCategoryHierarchyPanel, typeof i106.RecordProcessCategoryHierarchyPanel, typeof i106.SkillHierarchyPanel, typeof i106.TemplateCategoryHierarchyPanel, typeof i106.TestSuiteHierarchyPanel, typeof i106.UserViewCategoryHierarchyPanel, typeof i1.MJEntityFormComponentExtended, typeof i65.MJFileFormComponentExtended, typeof i2.MJEntityActionFormComponentExtended, typeof i3.MJTemplateFormComponentExtended, typeof i6.TemplateEditorComponent, typeof i7.MJAIPromptFormComponentExtended, typeof i8.MJAIAgentFormComponentExtended, typeof i18.MJAIPromptRunFormComponentExtended, typeof i19.ChatMessageViewerComponent, typeof i20.PromptRunDataCaptureNoteComponent, typeof i21.MJActionFormComponentExtended, typeof i22.MJActionExecutionLogFormComponentExtended, typeof i23.MJAIAgentRunFormComponentExtended, typeof i24.AIAgentRunTimelineComponent, typeof i25.AIAgentRunStepNodeComponent, typeof i26.AIAgentRunAnalyticsComponent, typeof i33.MJQueryFormComponentExtended, typeof i35.FlowAgentFormSectionComponent, typeof i36.MJTestRunFormComponentExtended, typeof i37.MJTestFormComponentExtended, typeof i38.MJTestSuiteRunFormComponentExtended, typeof i39.MJTestSuiteFormComponentExtended, typeof i40.MJTestRunFeedbackFormComponentExtended, typeof i41.MJTestRubricFormComponentExtended, typeof i42.EntityLinkPillComponent, typeof i43.MJListFormComponentExtended, typeof i48.TagPipelineConfigurationPanel, typeof i49.WebsiteCrawlerSettingsPanel, typeof i50.ModelPredictionPanel, typeof i51.FeatureValuesPanel, typeof i52.AISkillSharingPanel, typeof i53.MJSearchScopeFormComponentExtended, typeof i54.MJSearchScopeProviderFormComponentExtended, typeof i55.MJAIAgentSessionFormComponentExtended, typeof i56.MJAIAgentChannelFormComponentExtended, typeof i57.MJAIBridgeProviderFormComponentExtended, typeof i58.MJAIAgentSessionBridgeFormComponentExtended, typeof i59.MJAIBridgeAgentIdentityFormComponentExtended, typeof i60.AgentRealtimePanel, typeof i97.ActionsModule, typeof i61.RecordProcessFormComponentExtended, typeof i66.MLModelFormComponentExtended, typeof i77.PSModelDetailComponent, typeof i67.BrandKitAssetsPanelComponent, typeof i68.BrandKitGenerationPolicyPanelComponent]>;
|
|
105
111
|
static ɵinj: i0.ɵɵInjectorDeclaration<MemberJunctionCoreEntityFormsModule>;
|
|
106
112
|
}
|
|
107
113
|
//# sourceMappingURL=custom-forms.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-forms.module.d.ts","sourceRoot":"","sources":["../../../src/lib/custom/custom-forms.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"custom-forms.module.d.ts","sourceRoot":"","sources":["../../../src/lib/custom/custom-forms.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkIA,qBAuMa,mCAAmC;yCAAnC,mCAAmC;0CAAnC,mCAAmC;0CAAnC,mCAAmC;CAAI"}
|
|
@@ -59,6 +59,9 @@ import { ConstellationComponent } from "./ai-agent-run/flow/constellation.compon
|
|
|
59
59
|
import { FlowchartComponent } from "./ai-agent-run/flow/flowchart.component";
|
|
60
60
|
import { MJQueryFormComponentExtended } from "./Queries/query-form.component";
|
|
61
61
|
import { QueryRunDialogComponent } from "./Queries/query-run-dialog.component";
|
|
62
|
+
import { QueryFieldsGridComponent } from "./Queries/query-fields-grid.component";
|
|
63
|
+
import { QueryParametersGridComponent } from "./Queries/query-parameters-grid.component";
|
|
64
|
+
import { QueryDiagnosticsComponent, QueryRefreshDialogComponent } from "@memberjunction/ng-query-viewer";
|
|
62
65
|
import { FlowAgentFormSectionComponent } from "./AIAgents/FlowAgentType/flow-agent-form-section.component";
|
|
63
66
|
import { FlowEditorModule } from "@memberjunction/ng-flow-editor";
|
|
64
67
|
import { TaskGraphEditorModule } from "@memberjunction/ng-task-graph-editor";
|
|
@@ -103,6 +106,9 @@ import { FeatureValuesPanel } from "../panels/feature-values/feature-values.pane
|
|
|
103
106
|
// dialog + SKILL.md export/import actions, mounted on the generated MJ: AI
|
|
104
107
|
// Skills form. Imported so the @RegisterClassEx decorator runs at module load.
|
|
105
108
|
import { AISkillSharingPanel } from "../panels/ai-skill-sharing/ai-skill-sharing-panel.component";
|
|
109
|
+
// Revoke / Reactivate toolbar actions for MJ: Diagnostic Sender Registrations. The loader call
|
|
110
|
+
// below the imports keeps the file in the bundle so its @RegisterFormToolbarAction decorators run.
|
|
111
|
+
import { LoadDiagnosticSenderRegistrationToolbarActions } from "./DiagnosticSenderRegistrations/sender-registration-toolbar-actions";
|
|
106
112
|
import { EntityFormChromeEditorComponent } from "../panels/form-chrome/entity-form-chrome-editor.component";
|
|
107
113
|
import { EntityRelationshipFormRolePanel } from "../panels/form-chrome/entity-relationship-form-role.panel";
|
|
108
114
|
import { EntityCloneConfigEditorComponent } from "../panels/record-clone/entity-clone-config-editor.component";
|
|
@@ -116,10 +122,14 @@ import { MJRubricEvaluationFormComponentExtended, RubricEvaluationComparePanel,
|
|
|
116
122
|
import { MJRubricScaleFormComponentExtended, RubricScaleLevelsPanel } from "./Rubrics/scale-form.component";
|
|
117
123
|
import { MJAIAgentRubricFormComponentExtended, MJRubricBandFormComponentExtended, MJRubricCategoryFormComponentExtended, MJRubricCriterionFormComponentExtended, MJRubricEvaluationScoreFormComponentExtended, MJRubricScaleLevelFormComponentExtended, MJRubricVersionFormComponentExtended, RubricVersionSummaryPanel } from "./Rubrics/record-forms.component";
|
|
118
124
|
import { PSModelDetailComponent } from "./MLModels/ps-model-detail.component";
|
|
125
|
+
import { BrandKitsModule } from "@memberjunction/ng-brand-kits";
|
|
126
|
+
import { BrandKitAssetsPanelComponent } from "../panels/brand-kits/brand-kit-assets.panel";
|
|
127
|
+
import { BrandKitGenerationPolicyPanelComponent } from "../panels/brand-kits/brand-kit-generation-policy.panel";
|
|
119
128
|
import * as i0 from "@angular/core";
|
|
120
129
|
import * as i1 from "./HierarchyPanels/hierarchy-form-panels";
|
|
121
130
|
import * as i2 from "@angular/common";
|
|
122
131
|
import * as i3 from "@memberjunction/ng-shared-generic";
|
|
132
|
+
LoadDiagnosticSenderRegistrationToolbarActions();
|
|
123
133
|
export class MemberJunctionCoreEntityFormsModule {
|
|
124
134
|
static { this.ɵfac = function MemberJunctionCoreEntityFormsModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || MemberJunctionCoreEntityFormsModule)(); }; }
|
|
125
135
|
static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: MemberJunctionCoreEntityFormsModule }); }
|
|
@@ -127,6 +137,7 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
127
137
|
NewAgentDialogService,
|
|
128
138
|
AIAgentManagementService
|
|
129
139
|
], imports: [ArtifactsModule,
|
|
140
|
+
BrandKitsModule,
|
|
130
141
|
CommonModule,
|
|
131
142
|
RubricsModule,
|
|
132
143
|
RubricAuthorPanel,
|
|
@@ -162,6 +173,10 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
162
173
|
ClonePlanTreeComponent,
|
|
163
174
|
MJTabStripModule,
|
|
164
175
|
CodeEditorModule,
|
|
176
|
+
QueryFieldsGridComponent,
|
|
177
|
+
QueryParametersGridComponent,
|
|
178
|
+
QueryDiagnosticsComponent,
|
|
179
|
+
QueryRefreshDialogComponent,
|
|
165
180
|
DeepDiffModule,
|
|
166
181
|
AITestHarnessModule,
|
|
167
182
|
ActionGalleryModule,
|
|
@@ -263,9 +278,12 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
263
278
|
EntityCloneConfigEditorComponent,
|
|
264
279
|
MJFileFormComponentExtended,
|
|
265
280
|
MLModelFormComponentExtended,
|
|
281
|
+
BrandKitAssetsPanelComponent,
|
|
282
|
+
BrandKitGenerationPolicyPanelComponent,
|
|
266
283
|
],
|
|
267
284
|
imports: [
|
|
268
285
|
ArtifactsModule,
|
|
286
|
+
BrandKitsModule,
|
|
269
287
|
CommonModule,
|
|
270
288
|
RubricsModule,
|
|
271
289
|
RubricAuthorPanel,
|
|
@@ -302,6 +320,10 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
302
320
|
ClonePlanTreeComponent,
|
|
303
321
|
MJTabStripModule,
|
|
304
322
|
CodeEditorModule,
|
|
323
|
+
QueryFieldsGridComponent,
|
|
324
|
+
QueryParametersGridComponent,
|
|
325
|
+
QueryDiagnosticsComponent,
|
|
326
|
+
QueryRefreshDialogComponent,
|
|
305
327
|
DeepDiffModule,
|
|
306
328
|
AITestHarnessModule,
|
|
307
329
|
ActionGalleryModule,
|
|
@@ -370,7 +392,9 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
370
392
|
ActionsModule,
|
|
371
393
|
RecordProcessFormComponentExtended,
|
|
372
394
|
MLModelFormComponentExtended,
|
|
373
|
-
PSModelDetailComponent
|
|
395
|
+
PSModelDetailComponent,
|
|
396
|
+
BrandKitAssetsPanelComponent,
|
|
397
|
+
BrandKitGenerationPolicyPanelComponent,
|
|
374
398
|
],
|
|
375
399
|
providers: [
|
|
376
400
|
NewAgentDialogService,
|
|
@@ -451,7 +475,10 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
451
475
|
EntityRelationshipFormRolePanel,
|
|
452
476
|
EntityCloneConfigEditorComponent,
|
|
453
477
|
MJFileFormComponentExtended,
|
|
454
|
-
MLModelFormComponentExtended
|
|
478
|
+
MLModelFormComponentExtended,
|
|
479
|
+
BrandKitAssetsPanelComponent,
|
|
480
|
+
BrandKitGenerationPolicyPanelComponent], imports: [ArtifactsModule,
|
|
481
|
+
BrandKitsModule,
|
|
455
482
|
CommonModule,
|
|
456
483
|
RubricsModule,
|
|
457
484
|
RubricAuthorPanel,
|
|
@@ -488,6 +515,10 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
488
515
|
ClonePlanTreeComponent,
|
|
489
516
|
MJTabStripModule,
|
|
490
517
|
CodeEditorModule,
|
|
518
|
+
QueryFieldsGridComponent,
|
|
519
|
+
QueryParametersGridComponent,
|
|
520
|
+
QueryDiagnosticsComponent,
|
|
521
|
+
QueryRefreshDialogComponent,
|
|
491
522
|
DeepDiffModule,
|
|
492
523
|
AITestHarnessModule,
|
|
493
524
|
ActionGalleryModule,
|
|
@@ -551,7 +582,9 @@ export class MemberJunctionCoreEntityFormsModule {
|
|
|
551
582
|
ActionsModule,
|
|
552
583
|
RecordProcessFormComponentExtended,
|
|
553
584
|
MLModelFormComponentExtended,
|
|
554
|
-
PSModelDetailComponent
|
|
585
|
+
PSModelDetailComponent,
|
|
586
|
+
BrandKitAssetsPanelComponent,
|
|
587
|
+
BrandKitGenerationPolicyPanelComponent] }); })();
|
|
555
588
|
i0.ɵɵsetComponentScope(AIAgentRunTimelineComponent, [i2.NgTemplateOutlet, MJEmptyStateComponent, i3.LoadingComponent, AIAgentRunTimelineComponent,
|
|
556
589
|
AIAgentRunStepNodeComponent], [i2.AsyncPipe]);
|
|
557
590
|
//# sourceMappingURL=custom-forms.module.js.map
|