@memberjunction/ng-core-entity-forms 5.32.0 → 5.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +30 -0
  2. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +944 -645
  4. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  5. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +137 -0
  6. package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts.map +1 -0
  7. package/dist/lib/custom/SearchScopes/searchscope-form.component.js +888 -0
  8. package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -0
  9. package/dist/lib/custom/SearchScopes/searchscopeprovider-form.component.d.ts +66 -0
  10. package/dist/lib/custom/SearchScopes/searchscopeprovider-form.component.d.ts.map +1 -0
  11. package/dist/lib/custom/SearchScopes/searchscopeprovider-form.component.js +253 -0
  12. package/dist/lib/custom/SearchScopes/searchscopeprovider-form.component.js.map +1 -0
  13. package/dist/lib/custom/Tests/test-rubric-form.component.js +2 -2
  14. package/dist/lib/custom/Tests/test-rubric-form.component.js.map +1 -1
  15. package/dist/lib/custom/Tests/test-suite-form.component.js +2 -2
  16. package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
  17. package/dist/lib/custom/custom-forms.module.d.ts +28 -25
  18. package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
  19. package/dist/lib/custom/custom-forms.module.js +18 -4
  20. package/dist/lib/custom/custom-forms.module.js.map +1 -1
  21. package/dist/lib/custom/shared/entity-selector-dialog.component.js +2 -2
  22. package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
  23. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.d.ts.map +1 -1
  24. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js +111 -79
  25. package/dist/lib/generated/Entities/MJAIAgent/mjaiagent.form.component.js.map +1 -1
  26. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.d.ts +10 -0
  27. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.d.ts.map +1 -0
  28. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js +93 -0
  29. package/dist/lib/generated/Entities/MJAIAgentSearchScope/mjaiagentsearchscope.form.component.js.map +1 -0
  30. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js +2 -2
  31. package/dist/lib/generated/Entities/MJAIResultCache/mjairesultcache.form.component.js.map +1 -1
  32. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
  33. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +89 -71
  34. package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
  35. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +23 -21
  36. package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
  37. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.d.ts.map +1 -1
  38. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js +33 -15
  39. package/dist/lib/generated/Entities/MJFileStorageAccount/mjfilestorageaccount.form.component.js.map +1 -1
  40. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.d.ts.map +1 -1
  41. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js +31 -13
  42. package/dist/lib/generated/Entities/MJRole/mjrole.form.component.js.map +1 -1
  43. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.d.ts +10 -0
  44. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.d.ts.map +1 -0
  45. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js +91 -0
  46. package/dist/lib/generated/Entities/MJSearchExecutionLog/mjsearchexecutionlog.form.component.js.map +1 -0
  47. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.d.ts.map +1 -1
  48. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js +23 -5
  49. package/dist/lib/generated/Entities/MJSearchProvider/mjsearchprovider.form.component.js.map +1 -1
  50. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.d.ts +10 -0
  51. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.d.ts.map +1 -0
  52. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js +243 -0
  53. package/dist/lib/generated/Entities/MJSearchScope/mjsearchscope.form.component.js.map +1 -0
  54. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.d.ts +10 -0
  55. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.d.ts.map +1 -0
  56. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js +71 -0
  57. package/dist/lib/generated/Entities/MJSearchScopeEntity/mjsearchscopeentity.form.component.js.map +1 -0
  58. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.d.ts +10 -0
  59. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.d.ts.map +1 -0
  60. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js +75 -0
  61. package/dist/lib/generated/Entities/MJSearchScopeExternalIndex/mjsearchscopeexternalindex.form.component.js.map +1 -0
  62. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.d.ts +10 -0
  63. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.d.ts.map +1 -0
  64. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js +65 -0
  65. package/dist/lib/generated/Entities/MJSearchScopePermission/mjsearchscopepermission.form.component.js.map +1 -0
  66. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.d.ts +10 -0
  67. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.d.ts.map +1 -0
  68. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js +75 -0
  69. package/dist/lib/generated/Entities/MJSearchScopeProvider/mjsearchscopeprovider.form.component.js.map +1 -0
  70. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.d.ts +10 -0
  71. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.d.ts.map +1 -0
  72. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js +63 -0
  73. package/dist/lib/generated/Entities/MJSearchScopeStorageAccount/mjsearchscopestorageaccount.form.component.js.map +1 -0
  74. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.d.ts +10 -0
  75. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.d.ts.map +1 -0
  76. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js +75 -0
  77. package/dist/lib/generated/Entities/MJSearchScopeTestQuery/mjsearchscopetestquery.form.component.js.map +1 -0
  78. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js +9 -9
  79. package/dist/lib/generated/Entities/MJTag/mjtag.form.component.js.map +1 -1
  80. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.d.ts.map +1 -1
  81. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js +46 -10
  82. package/dist/lib/generated/Entities/MJTemplate/mjtemplate.form.component.js.map +1 -1
  83. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.d.ts.map +1 -1
  84. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js +223 -169
  85. package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
  86. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.d.ts.map +1 -1
  87. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js +32 -14
  88. package/dist/lib/generated/Entities/MJVectorIndex/mjvectorindex.form.component.js.map +1 -1
  89. package/dist/lib/generated/generated-forms.module.d.ts +312 -298
  90. package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
  91. package/dist/lib/generated/generated-forms.module.js +168 -111
  92. package/dist/lib/generated/generated-forms.module.js.map +1 -1
  93. package/package.json +36 -35
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Custom SearchScope form (P2D.7 Angular half).
3
+ *
4
+ * Adds a "Reranker" custom section that:
5
+ * - Renders a dropdown of registered rerankers — currently a hardcoded list
6
+ * mirroring `BaseReRanker.GetAvailableRerankers()` server-side, with each
7
+ * option's HasCost flag surfaced inline so authors can see at a glance
8
+ * which options will incur API spend.
9
+ * - Reads / writes the current selection from `record.ScopeConfig` JSON's
10
+ * `reRanker.driverClass` key — same path the SearchEngine reads at runtime.
11
+ *
12
+ * **Discovery follow-up:** the canonical source of available rerankers is
13
+ * `BaseReRanker.GetAvailableRerankers()` in `@memberjunction/search-engine`,
14
+ * but that's a Node-only package and can't be imported in the browser.
15
+ * A small GraphQL query (e.g. `AvailableRerankers`) on MJServer that calls
16
+ * the helper server-side would let this dropdown auto-discover any
17
+ * third-party reranker registered with ClassFactory. Tracked as a follow-up
18
+ * — for now the hardcoded list covers the 5 rerankers shipped in Phase 2D.
19
+ *
20
+ * The CodeGen-generated `RerankerBudgetCents` numeric input is already on
21
+ * the form (in the "Details" section); we don't need to recreate it.
22
+ * The dropdown above + budget input below give scope authors the full
23
+ * Phase 2D configuration surface.
24
+ */
25
+ import { OnDestroy } from '@angular/core';
26
+ import { MJSearchScopeEntity } from '@memberjunction/core-entities';
27
+ import { SearchResultItem, StreamingProviderStatus } from '@memberjunction/ng-search';
28
+ import { MJSearchScopeFormComponent } from '../../generated/Entities/MJSearchScope/mjsearchscope.form.component';
29
+ import * as i0 from "@angular/core";
30
+ interface FusionWeightRow {
31
+ /** Source-type key the SearchEngine matches against (e.g. 'vector', 'fulltext'). */
32
+ Key: string;
33
+ /** Friendly label for the slider — same value as Key today, kept separate for future i18n. */
34
+ Label: string;
35
+ /** Working value of the slider (1-decimal precision) — bound via two-way. */
36
+ Weight: number;
37
+ }
38
+ interface RerankerOption {
39
+ DriverClass: string;
40
+ Name: string;
41
+ HasCost: boolean;
42
+ }
43
+ export declare class MJSearchScopeFormComponentExtended extends MJSearchScopeFormComponent implements OnDestroy {
44
+ record: MJSearchScopeEntity;
45
+ readonly AvailableRerankers: RerankerOption[];
46
+ /** Live-preview state (P4.1). */
47
+ PreviewQuery: string;
48
+ PreviewIsRunning: boolean;
49
+ PreviewResults: SearchResultItem[];
50
+ PreviewProviders: StreamingProviderStatus[];
51
+ PreviewElapsedMs: number | null;
52
+ PreviewError: string | null;
53
+ private previewSubscription;
54
+ private searchService;
55
+ /**
56
+ * P4.3 — A/B comparison via Kendall-tau between consecutive preview runs.
57
+ * After RunPreview completes, the previous run's RecordIDs are diffed
58
+ * against the current run and the rank-correlation similarity is shown
59
+ * inline ("82% similar to last run"). Authors use this to immediately
60
+ * see how much a reranker swap or fusion-weight tweak shifted the ranking.
61
+ */
62
+ private PreviousRunRecordIDs;
63
+ LastRunSimilarityPercent: number | null;
64
+ ngOnDestroy(): void;
65
+ /**
66
+ * P4.1 — run a streaming preview against this scope. Uses the same
67
+ * SearchService.StreamSearch path the production search UI uses, scoped
68
+ * to just this scope's ID. Renders progressively as each provider
69
+ * reports back so authors can see chip-by-chip what each tuning change
70
+ * actually affects.
71
+ */
72
+ RunPreview(): void;
73
+ CancelPreview(): void;
74
+ /**
75
+ * Compute Kendall-tau rank correlation on the items present in both lists.
76
+ * Items only in one list are ignored (partial-overlap handling). Returns
77
+ * null when the shared overlap is too small (< 2 items) to be meaningful.
78
+ *
79
+ * Tau formula: (concordant - discordant) / (N * (N-1) / 2)
80
+ * where concordant = pairs ranked in the same order in both lists,
81
+ * discordant = pairs ranked in opposite order, N = shared item count.
82
+ */
83
+ private static kendallTauOnSharedItems;
84
+ /**
85
+ * Override the section list to include the new "Reranker" section before
86
+ * "Details". The generated `initSections()` doesn't know about our custom
87
+ * section so we replace the list. Order matches the template's render order.
88
+ */
89
+ ngOnInit(): Promise<void>;
90
+ /**
91
+ * Currently-selected reranker driver class, parsed from `record.ScopeConfig`.
92
+ * Empty string means "no reranker explicitly chosen" — runtime defaults
93
+ * to NoopReRanker. Stored as `ScopeConfig.reRanker.driverClass`.
94
+ */
95
+ get SelectedRerankerDriverClass(): string;
96
+ set SelectedRerankerDriverClass(value: string);
97
+ /**
98
+ * Whether the currently-selected reranker incurs API cost — used to render
99
+ * an inline cost-warning indicator next to the dropdown.
100
+ */
101
+ get SelectedRerankerHasCost(): boolean;
102
+ /**
103
+ * Whether the CSV export is currently running. Drives the button's disabled
104
+ * state + spinner.
105
+ */
106
+ IsExportingTuningCsv: boolean;
107
+ /**
108
+ * P4.2 — fusion weight sliders for each canonical SearchEngine source type.
109
+ * Backed by `SearchScope.ScopeConfig.fusionWeights` JSON (the runtime path
110
+ * — see plans/search-scopes-rag-plus/RAG_plan.md §8 Multi-Scope RRF Fusion). Plan task originally
111
+ * proposed `SearchScopeProvider.Weight` but that column doesn't exist in
112
+ * Phase 1; the JSON path is the actual contract the SearchEngine reads.
113
+ */
114
+ private _fusionWeights;
115
+ get FusionWeights(): FusionWeightRow[];
116
+ /**
117
+ * Persist a fusion weight change back to `ScopeConfig.fusionWeights`. The
118
+ * caller is the slider's `(change)` event so writes happen only on
119
+ * slide-end, not on every drag tick.
120
+ */
121
+ OnFusionWeightChanged(row: FusionWeightRow, raw: number | string): void;
122
+ /**
123
+ * P3.4 — export the last 500 SearchExecutionLog rows for this scope as CSV.
124
+ * Used by scope authors for offline tuning analysis (open in a spreadsheet,
125
+ * pivot by reranker / status / latency, etc.). Filtered to this scope's ID
126
+ * so multi-tenant deployments don't leak other scopes' query history.
127
+ */
128
+ ExportTuningCsv(): Promise<void>;
129
+ private downloadCsv;
130
+ private escapeCsv;
131
+ private parseScopeConfig;
132
+ static ɵfac: i0.ɵɵFactoryDeclaration<MJSearchScopeFormComponentExtended, never>;
133
+ static ɵcmp: i0.ɵɵComponentDeclaration<MJSearchScopeFormComponentExtended, "mj-searchscope-form-extended", never, {}, {}, never, never, false, never>;
134
+ }
135
+ export declare function LoadMJSearchScopeFormComponentExtended(): void;
136
+ export {};
137
+ //# sourceMappingURL=searchscope-form.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchscope-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/SearchScopes/searchscope-form.component.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAa,SAAS,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,mBAAmB,EAAkC,MAAM,+BAA+B,CAAC;AAGpG,OAAO,EAAiB,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,qEAAqE,CAAC;;AAEjH,UAAU,eAAe;IACrB,oFAAoF;IACpF,GAAG,EAAE,MAAM,CAAC;IACZ,8FAA8F;IAC9F,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;CAClB;AAUD,UAAU,cAAc;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACpB;AAeD,qBAOa,kCAAmC,SAAQ,0BAA2B,YAAW,SAAS;IACnF,MAAM,EAAG,mBAAmB,CAAC;IAE7C,SAAgB,kBAAkB,EAAE,cAAc,EAAE,CAAsB;IAE1E,iCAAiC;IAC1B,YAAY,SAAM;IAClB,gBAAgB,UAAS;IACzB,cAAc,EAAE,gBAAgB,EAAE,CAAM;IACxC,gBAAgB,EAAE,uBAAuB,EAAE,CAAM;IACjD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACvC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,aAAa,CAAuB;IAE5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAgB;IACrC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEtC,WAAW,IAAI,IAAI;IAKnC;;;;;;OAMG;IACI,UAAU,IAAI,IAAI;IAiElB,aAAa,IAAI,IAAI;IAM5B;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAuBtC;;;;OAIG;IACmB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB/C;;;;OAIG;IACH,IAAW,2BAA2B,IAAI,MAAM,CAG/C;IAED,IAAW,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAUnD;IAED;;;OAGG;IACH,IAAW,uBAAuB,IAAI,OAAO,CAG5C;IAED;;;OAGG;IACI,oBAAoB,UAAS;IAEpC;;;;;;OAMG;IACH,OAAO,CAAC,cAAc,CAAkC;IAExD,IAAW,aAAa,IAAI,eAAe,EAAE,CAW5C;IAED;;;;OAIG;IACI,qBAAqB,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAsB9E;;;;;OAKG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B7C,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,gBAAgB;yCA9Uf,kCAAkC;2CAAlC,kCAAkC;CAuV9C;AAED,wBAAgB,sCAAsC,IAAI,IAAI,CAI7D"}