@memberjunction/ng-dashboards 6.2.0-edge.5 → 6.2.0-edge.6
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/README.md +28 -0
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +15 -7
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +209 -57
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
- package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
- package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/AI/components/execution-monitoring.component.js +28 -16
- package/dist/AI/components/execution-monitoring.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +30 -6
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +15 -7
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
- package/dist/AI/components/vectors/sensitive-fields.js +39 -14
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-document-rules.js +14 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +127 -50
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
- package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-store-selection.js +57 -0
- package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +236 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +374 -0
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +195 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +2910 -0
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +3 -0
- package/dist/ChiefOfStaff/index.d.ts.map +1 -0
- package/dist/ChiefOfStaff/index.js +3 -0
- package/dist/ChiefOfStaff/index.js.map +1 -0
- package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-logs-resource.component.js +2 -1
- package/dist/Communication/communication-logs-resource.component.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +23 -18
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +11 -10
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
- package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
- package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
- package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +24 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +146 -50
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
- package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
- package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +110 -77
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
- package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
- package/dist/MCP/mcp-dashboard.component.js +118 -65
- package/dist/MCP/mcp-dashboard.component.js.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
- package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
- package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +256 -521
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +122 -249
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
- package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
- package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +335 -326
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
- package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +51 -2
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
- package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
- package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
- package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +185 -103
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
- package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
- package/dist/ai-dashboards.module.d.ts +22 -21
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +8 -2
- package/dist/ai-dashboards.module.js.map +1 -1
- 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 +71 -71
- package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
- package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
- package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
- package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
- package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
- package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
|
@@ -191,6 +191,11 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
191
191
|
DetectionStage: string;
|
|
192
192
|
/** Raw stage key from the last progress event — used to detect phase transitions */
|
|
193
193
|
private detectionRawStage;
|
|
194
|
+
/** Run IDs that were found unresponsive so reconnectToActiveRun does not loop on them */
|
|
195
|
+
private staleRunIDs;
|
|
196
|
+
private activeProgressSub;
|
|
197
|
+
private idleTimer;
|
|
198
|
+
private closeComparisonTimer;
|
|
194
199
|
/** Runtime threshold overrides — initialized from entity doc, adjustable via sliders */
|
|
195
200
|
RunPotentialThreshold: number;
|
|
196
201
|
RunAbsoluteThreshold: number;
|
|
@@ -315,7 +320,7 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
315
320
|
/**
|
|
316
321
|
* Check if there's an in-progress detection run and reconnect to its
|
|
317
322
|
* progress subscription. This handles the case where the user navigated
|
|
318
|
-
* away and came back while a run was active.
|
|
323
|
+
* away and came back while a run was active, while ignoring abandoned/stale runs.
|
|
319
324
|
*/
|
|
320
325
|
private reconnectToActiveRun;
|
|
321
326
|
/**
|
|
@@ -554,6 +559,7 @@ export declare class DuplicateDetectionResourceComponent extends BaseResourceCom
|
|
|
554
559
|
RejectIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
555
560
|
/** Undo a rejected individual match (restore to Pending) */
|
|
556
561
|
UndoRejectIndividualMatch(matchInfo: ComparisonMatchInfo): Promise<void>;
|
|
562
|
+
private updateIndividualMatchStatus;
|
|
557
563
|
/**
|
|
558
564
|
* Load the actual entity records for the source + all matches in one RunView call.
|
|
559
565
|
* Record IDs are stored as composite key strings (e.g., "ID|uuid") — we parse each
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"duplicate-detection-resource.component.d.ts","sourceRoot":"","sources":["../../../../src/AI/components/duplicates/duplicate-detection-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,10 +19,10 @@ import { debounceTime, takeUntil } from 'rxjs/operators';
|
|
|
19
19
|
import { CompositeKey, LogStatus, RecordMergeRequest, RunView } from '@memberjunction/core';
|
|
20
20
|
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
21
21
|
import { KnowledgeHubMetadataEngine } from '@memberjunction/core-entities';
|
|
22
|
-
import { RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
22
|
+
import { EscapeSQLString, RegisterClass, UUIDsEqual } from '@memberjunction/global';
|
|
23
23
|
import { BaseResourceComponent, NavigationService, ActivityService } from '@memberjunction/ng-shared';
|
|
24
24
|
import { BuildDuplicateAgentContext, ResolveEntityDoc, ResolveEntityFilter, } from './duplicate-detection-agent-context';
|
|
25
|
-
import { BuildMatchQueriesForDetailIDs, BuildRunScopedDetailsQuery, GroupMatchesByDetail, PickDefaultEntityDocument,
|
|
25
|
+
import { BuildMatchQueriesForDetailIDs, BuildRunScopedDetailsQuery, GroupMatchesByDetail, PickDefaultEntityDocument, SelectCurrentRunForDocument, } from './duplicate-detection-run-scope';
|
|
26
26
|
import { ValidateStringParam } from '../../../shared/agent-tool-validation';
|
|
27
27
|
import * as i0 from "@angular/core";
|
|
28
28
|
import * as i1 from "./compare-value.component";
|
|
@@ -1530,6 +1530,11 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
1530
1530
|
DetectionStage = '';
|
|
1531
1531
|
/** Raw stage key from the last progress event — used to detect phase transitions */
|
|
1532
1532
|
detectionRawStage = '';
|
|
1533
|
+
/** Run IDs that were found unresponsive so reconnectToActiveRun does not loop on them */
|
|
1534
|
+
staleRunIDs = new Set();
|
|
1535
|
+
activeProgressSub = null;
|
|
1536
|
+
idleTimer = null;
|
|
1537
|
+
closeComparisonTimer = null;
|
|
1533
1538
|
/** Runtime threshold overrides — initialized from entity doc, adjustable via sliders */
|
|
1534
1539
|
RunPotentialThreshold = 0.70;
|
|
1535
1540
|
RunAbsoluteThreshold = 0.95;
|
|
@@ -1601,9 +1606,7 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
1601
1606
|
FilterByEntity(entityName) {
|
|
1602
1607
|
this.SelectedEntityFilter = entityName;
|
|
1603
1608
|
this.Filters.EntityName = entityName;
|
|
1604
|
-
this.
|
|
1605
|
-
this.emitAgentContext();
|
|
1606
|
-
this.cdr.detectChanges();
|
|
1609
|
+
this.applyFilters();
|
|
1607
1610
|
}
|
|
1608
1611
|
/** Get paged groups for table view */
|
|
1609
1612
|
GetPagedGroups() {
|
|
@@ -1826,6 +1829,16 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
1826
1829
|
}
|
|
1827
1830
|
ngOnDestroy() {
|
|
1828
1831
|
super.ngOnDestroy();
|
|
1832
|
+
if (this.idleTimer) {
|
|
1833
|
+
clearTimeout(this.idleTimer);
|
|
1834
|
+
this.idleTimer = null;
|
|
1835
|
+
}
|
|
1836
|
+
if (this.closeComparisonTimer) {
|
|
1837
|
+
clearTimeout(this.closeComparisonTimer);
|
|
1838
|
+
this.closeComparisonTimer = null;
|
|
1839
|
+
}
|
|
1840
|
+
this.activeProgressSub?.unsubscribe();
|
|
1841
|
+
this.activeProgressSub = null;
|
|
1829
1842
|
this.destroy$.next();
|
|
1830
1843
|
this.destroy$.complete();
|
|
1831
1844
|
}
|
|
@@ -1936,7 +1949,7 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
1936
1949
|
* current (see reviewLoadGeneration).
|
|
1937
1950
|
*/
|
|
1938
1951
|
async fetchReviewRowsForSelectedDocument() {
|
|
1939
|
-
const run =
|
|
1952
|
+
const run = SelectCurrentRunForDocument(this.Runs, this.SelectedEntityDocumentID);
|
|
1940
1953
|
if (!run) {
|
|
1941
1954
|
return { run: null, details: [], matches: [] };
|
|
1942
1955
|
}
|
|
@@ -2001,17 +2014,31 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2001
2014
|
/**
|
|
2002
2015
|
* Check if there's an in-progress detection run and reconnect to its
|
|
2003
2016
|
* progress subscription. This handles the case where the user navigated
|
|
2004
|
-
* away and came back while a run was active.
|
|
2017
|
+
* away and came back while a run was active, while ignoring abandoned/stale runs.
|
|
2005
2018
|
*/
|
|
2006
2019
|
reconnectToActiveRun() {
|
|
2007
2020
|
if (this.IsDetecting)
|
|
2008
2021
|
return; // Already tracking a run
|
|
2009
|
-
const
|
|
2022
|
+
const now = Date.now();
|
|
2023
|
+
const maxStaleAgeMs = 5 * 60 * 1000; // 5 minutes without a DB update
|
|
2024
|
+
const activeRun = this.Runs.find(r => {
|
|
2025
|
+
if (r.ProcessingStatus !== 'In Progress' || r.EndedAt != null || r.CancellationRequested) {
|
|
2026
|
+
return false;
|
|
2027
|
+
}
|
|
2028
|
+
if (this.staleRunIDs.has(r.ID)) {
|
|
2029
|
+
return false;
|
|
2030
|
+
}
|
|
2031
|
+
const lastActivity = r.__mj_UpdatedAt ?? r.StartedAt;
|
|
2032
|
+
const lastTime = lastActivity ? new Date(lastActivity).getTime() : 0;
|
|
2033
|
+
return lastTime > 0 && (now - lastTime) < maxStaleAgeMs;
|
|
2034
|
+
});
|
|
2010
2035
|
if (!activeRun)
|
|
2011
2036
|
return;
|
|
2012
2037
|
LogStatus(`[DuplicateDetection] Reconnecting to in-progress run ${activeRun.ID}`);
|
|
2013
2038
|
this.IsDetecting = true;
|
|
2014
|
-
this.DetectionProgress = 0
|
|
2039
|
+
this.DetectionProgress = (activeRun.TotalItemCount && activeRun.TotalItemCount > 0 && activeRun.ProcessedItemCount != null)
|
|
2040
|
+
? Math.min(99, Math.round((activeRun.ProcessedItemCount / activeRun.TotalItemCount) * 100))
|
|
2041
|
+
: 0;
|
|
2015
2042
|
this.DetectionStage = 'Reconnecting...';
|
|
2016
2043
|
this.cdr.detectChanges();
|
|
2017
2044
|
this.subscribeToPipelineProgress(activeRun.ID);
|
|
@@ -2034,10 +2061,8 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2034
2061
|
this.cdr.detectChanges();
|
|
2035
2062
|
try {
|
|
2036
2063
|
const md = this.ProviderToUse;
|
|
2037
|
-
const dupeRun = await md.GetEntityObject('MJ: Duplicate Runs');
|
|
2038
|
-
dupeRun.NewRecord();
|
|
2039
2064
|
// Look up the EntityID from the entity document's entity name
|
|
2040
|
-
const entityInfo = md.
|
|
2065
|
+
const entityInfo = md.EntityByName(selectedDoc.EntityName);
|
|
2041
2066
|
if (!entityInfo) {
|
|
2042
2067
|
MJNotificationService.Instance.CreateSimpleNotification(`Entity "${selectedDoc.EntityName}" not found in metadata`, 'error', 5000);
|
|
2043
2068
|
this.IsDetecting = false;
|
|
@@ -2046,16 +2071,43 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2046
2071
|
this.cdr.detectChanges();
|
|
2047
2072
|
return;
|
|
2048
2073
|
}
|
|
2074
|
+
// Persist threshold slider overrides onto the selected Entity Document so the
|
|
2075
|
+
// server hook (which reads thresholds from MJ: Entity Documents) uses them.
|
|
2076
|
+
if (this.RunPotentialThreshold !== selectedDoc.PotentialMatchThreshold ||
|
|
2077
|
+
this.RunAbsoluteThreshold !== selectedDoc.AbsoluteMatchThreshold) {
|
|
2078
|
+
const ed = await md.GetEntityObject('MJ: Entity Documents', md.CurrentUser);
|
|
2079
|
+
if (await ed.Load(selectedDoc.ID)) {
|
|
2080
|
+
ed.PotentialMatchThreshold = this.RunPotentialThreshold;
|
|
2081
|
+
ed.AbsoluteMatchThreshold = this.RunAbsoluteThreshold;
|
|
2082
|
+
if (await ed.Save()) {
|
|
2083
|
+
selectedDoc.PotentialMatchThreshold = this.RunPotentialThreshold;
|
|
2084
|
+
selectedDoc.AbsoluteMatchThreshold = this.RunAbsoluteThreshold;
|
|
2085
|
+
}
|
|
2086
|
+
}
|
|
2087
|
+
}
|
|
2049
2088
|
// DD-1: Track whether merging is available for the selected entity
|
|
2050
2089
|
this.MergeEnabled = entityInfo.AllowRecordMerge;
|
|
2051
2090
|
this.ShowMergeWarningBanner = !entityInfo.AllowRecordMerge;
|
|
2091
|
+
const dupeRun = await md.GetEntityObject('MJ: Duplicate Runs');
|
|
2092
|
+
dupeRun.NewRecord();
|
|
2052
2093
|
dupeRun.EntityID = entityInfo.ID;
|
|
2094
|
+
// The run uses the document picked here, not whichever document the entity updated last.
|
|
2095
|
+
dupeRun.EntityDocumentID = selectedDoc.ID;
|
|
2053
2096
|
dupeRun.StartedByUserID = this.ProviderToUse.CurrentUser.ID;
|
|
2054
2097
|
dupeRun.StartedAt = new Date();
|
|
2055
2098
|
dupeRun.ProcessingStatus = 'In Progress';
|
|
2056
2099
|
dupeRun.ApprovalStatus = 'Pending';
|
|
2100
|
+
this.detectionActivityID = this.activityService.Start('Duplicate detection', {
|
|
2101
|
+
icon: 'fa-solid fa-clone',
|
|
2102
|
+
detail: selectedDoc.EntityName,
|
|
2103
|
+
progress: 0,
|
|
2104
|
+
});
|
|
2057
2105
|
const saved = await dupeRun.Save();
|
|
2058
2106
|
if (!saved) {
|
|
2107
|
+
if (this.detectionActivityID) {
|
|
2108
|
+
this.activityService.Complete(this.detectionActivityID, 'error');
|
|
2109
|
+
this.detectionActivityID = null;
|
|
2110
|
+
}
|
|
2059
2111
|
console.error('Failed to create duplicate run:', dupeRun.LatestResult?.Message || 'unknown error');
|
|
2060
2112
|
MJNotificationService.Instance.CreateSimpleNotification(`Failed to start detection: ${dupeRun.LatestResult?.Message || 'unknown error'}`, 'error', 5000);
|
|
2061
2113
|
this.IsDetecting = false;
|
|
@@ -2064,17 +2116,28 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2064
2116
|
this.cdr.detectChanges();
|
|
2065
2117
|
return;
|
|
2066
2118
|
}
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
//
|
|
2119
|
+
// Subscribe only now, with the saved ID. A new record's create request carries no
|
|
2120
|
+
// primary key, so the server assigns the run's ID and the ID NewRecord() generated
|
|
2121
|
+
// in the browser never matches it: a subscription opened before Save() listens for a
|
|
2122
|
+
// run that never publishes, and its status check finds no such run. A run that
|
|
2123
|
+
// finishes during Save() publishes before this subscription exists, so
|
|
2124
|
+
// subscribeToPipelineProgress checks the run's status right away to catch it.
|
|
2073
2125
|
this.subscribeToPipelineProgress(dupeRun.ID);
|
|
2074
2126
|
}
|
|
2075
2127
|
catch (error) {
|
|
2076
2128
|
const msg = error instanceof Error ? error.message : String(error);
|
|
2077
2129
|
console.error('[DuplicateDetection] Error starting detection:', msg);
|
|
2130
|
+
if (this.idleTimer) {
|
|
2131
|
+
clearTimeout(this.idleTimer);
|
|
2132
|
+
this.idleTimer = null;
|
|
2133
|
+
}
|
|
2134
|
+
this.activeProgressSub?.unsubscribe();
|
|
2135
|
+
this.activeProgressSub = null;
|
|
2136
|
+
if (this.detectionActivityID) {
|
|
2137
|
+
this.activityService.Complete(this.detectionActivityID, 'error');
|
|
2138
|
+
this.detectionActivityID = null;
|
|
2139
|
+
}
|
|
2140
|
+
MJNotificationService.Instance.CreateSimpleNotification(`Failed to start duplicate detection: ${msg}`, 'error', 5000);
|
|
2078
2141
|
this.IsDetecting = false;
|
|
2079
2142
|
this.DetectionStage = '';
|
|
2080
2143
|
this.emitAgentContext();
|
|
@@ -2384,11 +2447,21 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2384
2447
|
}
|
|
2385
2448
|
}
|
|
2386
2449
|
`;
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
|
|
2390
|
-
|
|
2391
|
-
|
|
2450
|
+
if (this.idleTimer) {
|
|
2451
|
+
clearTimeout(this.idleTimer);
|
|
2452
|
+
this.idleTimer = null;
|
|
2453
|
+
}
|
|
2454
|
+
this.activeProgressSub?.unsubscribe();
|
|
2455
|
+
this.activeProgressSub = null;
|
|
2456
|
+
let consecutiveUnchangedPolls = 0;
|
|
2457
|
+
let lastPolledProcessed = -1;
|
|
2458
|
+
const finishDetection = (success, errorMessage) => {
|
|
2459
|
+
if (this.idleTimer) {
|
|
2460
|
+
clearTimeout(this.idleTimer);
|
|
2461
|
+
this.idleTimer = null;
|
|
2462
|
+
}
|
|
2463
|
+
this.activeProgressSub?.unsubscribe();
|
|
2464
|
+
this.activeProgressSub = null;
|
|
2392
2465
|
Promise.resolve().then(async () => {
|
|
2393
2466
|
this.IsDetecting = false;
|
|
2394
2467
|
this.DetectionStage = success ? 'Complete' : 'Error';
|
|
@@ -2397,6 +2470,9 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2397
2470
|
this.activityService.Complete(this.detectionActivityID, success ? 'success' : 'error');
|
|
2398
2471
|
this.detectionActivityID = null;
|
|
2399
2472
|
}
|
|
2473
|
+
if (!success && errorMessage) {
|
|
2474
|
+
MJNotificationService.Instance.CreateSimpleNotification(errorMessage, 'error', 6000);
|
|
2475
|
+
}
|
|
2400
2476
|
if (success) {
|
|
2401
2477
|
await this.LoadData();
|
|
2402
2478
|
}
|
|
@@ -2404,16 +2480,72 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2404
2480
|
this.cdr.detectChanges();
|
|
2405
2481
|
});
|
|
2406
2482
|
};
|
|
2407
|
-
const
|
|
2408
|
-
if (
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2483
|
+
const checkRunStatusOnIdle = async () => {
|
|
2484
|
+
if (!this.IsDetecting)
|
|
2485
|
+
return;
|
|
2486
|
+
try {
|
|
2487
|
+
const rv = RunView.FromMetadataProvider(this.ProviderToUse);
|
|
2488
|
+
const res = await rv.RunView({
|
|
2489
|
+
EntityName: 'MJ: Duplicate Runs',
|
|
2490
|
+
ExtraFilter: `ID='${EscapeSQLString(pipelineRunID)}'`,
|
|
2491
|
+
MaxRows: 1,
|
|
2492
|
+
ResultType: 'entity_object'
|
|
2493
|
+
});
|
|
2494
|
+
if (!this.IsDetecting)
|
|
2495
|
+
return;
|
|
2496
|
+
if (res.Success && res.Results.length > 0) {
|
|
2497
|
+
const run = res.Results[0];
|
|
2498
|
+
if (run.ProcessingStatus === 'Complete') {
|
|
2499
|
+
finishDetection(true);
|
|
2500
|
+
return;
|
|
2501
|
+
}
|
|
2502
|
+
if (run.ProcessingStatus === 'Failed') {
|
|
2503
|
+
finishDetection(false, run.ProcessingErrorMessage || 'Duplicate detection run failed');
|
|
2504
|
+
return;
|
|
2505
|
+
}
|
|
2506
|
+
if (run.EndedAt != null) {
|
|
2507
|
+
finishDetection(true);
|
|
2508
|
+
return;
|
|
2509
|
+
}
|
|
2510
|
+
if (run.TotalItemCount && run.TotalItemCount > 0 && run.ProcessedItemCount != null) {
|
|
2511
|
+
const dbPct = Math.min(99, Math.round((run.ProcessedItemCount / run.TotalItemCount) * 100));
|
|
2512
|
+
if (dbPct > this.DetectionProgress) {
|
|
2513
|
+
this.DetectionProgress = dbPct;
|
|
2514
|
+
this.cdr.detectChanges();
|
|
2515
|
+
}
|
|
2516
|
+
}
|
|
2517
|
+
const currentProcessed = run.ProcessedItemCount ?? 0;
|
|
2518
|
+
if (currentProcessed === lastPolledProcessed) {
|
|
2519
|
+
consecutiveUnchangedPolls++;
|
|
2520
|
+
}
|
|
2521
|
+
else {
|
|
2522
|
+
lastPolledProcessed = currentProcessed;
|
|
2523
|
+
consecutiveUnchangedPolls = 0;
|
|
2524
|
+
}
|
|
2525
|
+
}
|
|
2526
|
+
else {
|
|
2527
|
+
consecutiveUnchangedPolls++;
|
|
2528
|
+
}
|
|
2529
|
+
if (consecutiveUnchangedPolls >= 8) {
|
|
2530
|
+
// 8 consecutive 15s checks (2 minutes) with zero DB or WS progress
|
|
2531
|
+
this.staleRunIDs.add(pipelineRunID);
|
|
2532
|
+
finishDetection(false, 'Duplicate detection timed out with no progress from the server.');
|
|
2533
|
+
return;
|
|
2413
2534
|
}
|
|
2414
|
-
|
|
2535
|
+
resetIdleTimer();
|
|
2536
|
+
}
|
|
2537
|
+
catch (err) {
|
|
2538
|
+
console.error('[DuplicateDetection] Error polling run status:', err);
|
|
2539
|
+
resetIdleTimer();
|
|
2540
|
+
}
|
|
2541
|
+
};
|
|
2542
|
+
const resetIdleTimer = () => {
|
|
2543
|
+
if (this.idleTimer)
|
|
2544
|
+
clearTimeout(this.idleTimer);
|
|
2545
|
+
this.idleTimer = setTimeout(() => {
|
|
2546
|
+
void checkRunStatusOnIdle();
|
|
2547
|
+
}, 15000); // Check DB status after 15s of subscription silence
|
|
2415
2548
|
};
|
|
2416
|
-
resetIdleTimer();
|
|
2417
2549
|
// Reset phase tracking for this new subscription
|
|
2418
2550
|
this.detectionRawStage = '';
|
|
2419
2551
|
const sub = provider.subscribe(subscriptionQuery, { pipelineRunID });
|
|
@@ -2425,37 +2557,42 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2425
2557
|
const stage = progress['Stage'];
|
|
2426
2558
|
const pct = Math.max(0, Math.min(100, progress['PercentComplete']));
|
|
2427
2559
|
const currentItem = progress['CurrentItem'];
|
|
2428
|
-
//
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2560
|
+
// Only reset progress when transitioning out of 'vectorize' into the detection pass;
|
|
2561
|
+
// within the detection pass ('extract' and 'autotag' share the global record counter),
|
|
2562
|
+
// keep progress strictly monotonic so the bar never jumps backward.
|
|
2563
|
+
const isLeavingVectorize = this.detectionRawStage === 'vectorize' && stage !== 'vectorize';
|
|
2564
|
+
this.detectionRawStage = stage;
|
|
2565
|
+
this.DetectionStage = this.formatDetectionStage(stage);
|
|
2566
|
+
if (isLeavingVectorize) {
|
|
2433
2567
|
this.DetectionProgress = pct;
|
|
2434
|
-
this.DetectionStage = this.formatDetectionStage(stage);
|
|
2435
2568
|
}
|
|
2436
|
-
else {
|
|
2437
|
-
|
|
2438
|
-
if (pct >= this.DetectionProgress) {
|
|
2439
|
-
this.DetectionProgress = pct;
|
|
2440
|
-
}
|
|
2569
|
+
else if (pct >= this.DetectionProgress) {
|
|
2570
|
+
this.DetectionProgress = pct;
|
|
2441
2571
|
}
|
|
2442
2572
|
this.DetectionCurrentItem = currentItem ?? '';
|
|
2573
|
+
consecutiveUnchangedPolls = 0;
|
|
2443
2574
|
this.cdr.detectChanges();
|
|
2444
2575
|
if (stage === 'complete') {
|
|
2445
2576
|
finishDetection(true);
|
|
2446
2577
|
}
|
|
2447
2578
|
else if (stage === 'error') {
|
|
2448
|
-
finishDetection(false);
|
|
2579
|
+
finishDetection(false, currentItem || 'Duplicate detection failed');
|
|
2449
2580
|
}
|
|
2450
2581
|
else {
|
|
2451
2582
|
resetIdleTimer();
|
|
2452
2583
|
}
|
|
2453
2584
|
},
|
|
2454
2585
|
error: (err) => {
|
|
2586
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
2455
2587
|
console.error('[DuplicateDetection] Pipeline subscription error:', err);
|
|
2456
|
-
finishDetection(false);
|
|
2588
|
+
finishDetection(false, `Progress stream error: ${msg}`);
|
|
2457
2589
|
}
|
|
2458
2590
|
});
|
|
2591
|
+
this.activeProgressSub = rxSub;
|
|
2592
|
+
// Read the run's status now rather than after the first 15s of silence: a run that
|
|
2593
|
+
// completed or failed before this subscription connected publishes nothing more, and
|
|
2594
|
+
// this check is what finishes it. The check re-arms the idle timer itself.
|
|
2595
|
+
void checkRunStatusOnIdle();
|
|
2459
2596
|
}
|
|
2460
2597
|
/** Format detection stage names for display */
|
|
2461
2598
|
formatDetectionStage(stage) {
|
|
@@ -2546,6 +2683,10 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2546
2683
|
// ════════════════════════════════════════════
|
|
2547
2684
|
/** Open the comparison slide-in panel for a group — loads real entity records */
|
|
2548
2685
|
async OpenComparison(group) {
|
|
2686
|
+
if (this.closeComparisonTimer) {
|
|
2687
|
+
clearTimeout(this.closeComparisonTimer);
|
|
2688
|
+
this.closeComparisonTimer = null;
|
|
2689
|
+
}
|
|
2549
2690
|
this.ComparisonGroup = group;
|
|
2550
2691
|
this.ComparisonShowAllFields = true;
|
|
2551
2692
|
this.SurvivorColumnIndex = 0;
|
|
@@ -2577,7 +2718,11 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
2577
2718
|
this.ShowMergeConfirm = false;
|
|
2578
2719
|
this.ComparisonClosing = true;
|
|
2579
2720
|
this.cdr.detectChanges();
|
|
2580
|
-
|
|
2721
|
+
if (this.closeComparisonTimer) {
|
|
2722
|
+
clearTimeout(this.closeComparisonTimer);
|
|
2723
|
+
}
|
|
2724
|
+
this.closeComparisonTimer = setTimeout(() => {
|
|
2725
|
+
this.closeComparisonTimer = null;
|
|
2581
2726
|
this.ComparisonGroup = null;
|
|
2582
2727
|
this.ComparisonClosing = false;
|
|
2583
2728
|
this.ComparisonFields = [];
|
|
@@ -3132,26 +3277,33 @@ let DuplicateDetectionResourceComponent = class DuplicateDetectionResourceCompon
|
|
|
3132
3277
|
}
|
|
3133
3278
|
/** Approve an individual match */
|
|
3134
3279
|
async ApproveIndividualMatch(matchInfo) {
|
|
3135
|
-
this.
|
|
3136
|
-
matchInfo.Match.ApprovalStatus = 'Approved';
|
|
3137
|
-
await matchInfo.Match.Save();
|
|
3138
|
-
this.IsSaving = false;
|
|
3139
|
-
this.cdr.detectChanges();
|
|
3280
|
+
await this.updateIndividualMatchStatus(matchInfo, 'Approved');
|
|
3140
3281
|
}
|
|
3141
3282
|
/** Reject an individual match (skip it from merge) */
|
|
3142
3283
|
async RejectIndividualMatch(matchInfo) {
|
|
3143
|
-
this.
|
|
3144
|
-
matchInfo.Match.ApprovalStatus = 'Rejected';
|
|
3145
|
-
await matchInfo.Match.Save();
|
|
3146
|
-
this.IsSaving = false;
|
|
3147
|
-
this.cdr.detectChanges();
|
|
3284
|
+
await this.updateIndividualMatchStatus(matchInfo, 'Rejected');
|
|
3148
3285
|
}
|
|
3149
3286
|
/** Undo a rejected individual match (restore to Pending) */
|
|
3150
3287
|
async UndoRejectIndividualMatch(matchInfo) {
|
|
3288
|
+
await this.updateIndividualMatchStatus(matchInfo, 'Pending');
|
|
3289
|
+
}
|
|
3290
|
+
async updateIndividualMatchStatus(matchInfo, status) {
|
|
3291
|
+
const previousStatus = matchInfo.Match.ApprovalStatus;
|
|
3151
3292
|
this.IsSaving = true;
|
|
3152
|
-
matchInfo.Match.ApprovalStatus =
|
|
3153
|
-
await matchInfo.Match.Save();
|
|
3293
|
+
matchInfo.Match.ApprovalStatus = status;
|
|
3294
|
+
const saved = await matchInfo.Match.Save();
|
|
3154
3295
|
this.IsSaving = false;
|
|
3296
|
+
if (!saved) {
|
|
3297
|
+
matchInfo.Match.ApprovalStatus = previousStatus;
|
|
3298
|
+
MJNotificationService.Instance.CreateSimpleNotification(`Failed to update match status to ${status}`, 'error', 4000);
|
|
3299
|
+
this.cdr.detectChanges();
|
|
3300
|
+
return;
|
|
3301
|
+
}
|
|
3302
|
+
if (this.ComparisonGroup) {
|
|
3303
|
+
this.ComparisonGroup.ApprovalStatus = this.computeDominantApprovalStatus(this.ComparisonGroup.Matches);
|
|
3304
|
+
this.applyFilters();
|
|
3305
|
+
this.emitAgentContext();
|
|
3306
|
+
}
|
|
3155
3307
|
this.cdr.detectChanges();
|
|
3156
3308
|
}
|
|
3157
3309
|
/**
|