@memberjunction/ng-core-entity-forms 6.1.4 → 6.2.0-edge.1
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 +22 -0
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.d.ts +1 -1
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js +2 -2
- package/dist/lib/custom/AIAgentCategories/ai-agent-category-overview.panel.js.map +1 -1
- package/dist/lib/custom/AIAgentSessions/ai-agent-session-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +90 -16
- package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js +218 -70
- package/dist/lib/custom/AIAgents/add-action-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +80 -16
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +146 -46
- package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +329 -27
- package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js +794 -262
- package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +76 -0
- package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js +77 -33
- package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +69 -15
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +182 -74
- package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +105 -25
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +272 -112
- package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts +32 -6
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js +71 -19
- package/dist/lib/custom/AIAgents/new-agent-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts +10 -0
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js +27 -7
- package/dist/lib/custom/AIAgents/new-agent-dialog.service.js.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts +65 -15
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +152 -52
- package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +81 -15
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +145 -45
- package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +71 -17
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +175 -67
- package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts +173 -27
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +385 -93
- package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts +64 -4
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js +129 -29
- package/dist/lib/custom/AIPromptRuns/chat-message-viewer.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts +260 -27
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +686 -238
- package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts +10 -0
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js +17 -9
- package/dist/lib/custom/AIPrompts/ai-prompt-management.service.js.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts +74 -16
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js +174 -58
- package/dist/lib/custom/AIPrompts/template-selector-dialog.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts +108 -14
- package/dist/lib/custom/Actions/action-execution-log-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-execution-log-form.component.js +258 -70
- package/dist/lib/custom/Actions/action-execution-log-form.component.js.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.d.ts +198 -14
- package/dist/lib/custom/Actions/action-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Actions/action-form.component.js +387 -107
- package/dist/lib/custom/Actions/action-form.component.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts +12 -6
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.d.ts.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js +41 -29
- package/dist/lib/custom/BridgeProviders/bridge-provider-features.js.map +1 -1
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js +14 -14
- package/dist/lib/custom/BridgeProviders/bridge-provider-form.component.js.map +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Companies/company-overview.panel.js +2 -2
- package/dist/lib/custom/Companies/company-overview.panel.js.map +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Conversations/conversation-overview.panel.js +2 -2
- package/dist/lib/custom/Conversations/conversation-overview.panel.js.map +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Employees/employee-overview.panel.js +2 -2
- package/dist/lib/custom/Employees/employee-overview.panel.js.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.d.ts +209 -28
- package/dist/lib/custom/Entities/entity-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Entities/entity-form.component.js +494 -138
- package/dist/lib/custom/Entities/entity-form.component.js.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts +5 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.d.ts.map +1 -1
- package/dist/lib/custom/EntityActions/entityaction.form.component.js +10 -2
- package/dist/lib/custom/EntityActions/entityaction.form.component.js.map +1 -1
- package/dist/lib/custom/Files/file-form.component.d.ts +1 -1
- package/dist/lib/custom/Files/file-form.component.js +2 -2
- package/dist/lib/custom/Files/file-form.component.js.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.d.ts +300 -36
- package/dist/lib/custom/Lists/list-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Lists/list-form.component.js +664 -208
- package/dist/lib/custom/Lists/list-form.component.js.map +1 -1
- package/dist/lib/custom/MLModels/ml-model-form.component.d.ts +27 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js +193 -0
- package/dist/lib/custom/MLModels/ml-model-form.component.js.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts +75 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js +244 -0
- package/dist/lib/custom/MLModels/ml-model-view-models.js.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts +173 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.d.ts.map +1 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js +883 -0
- package/dist/lib/custom/MLModels/ps-model-detail.component.js.map +1 -0
- package/dist/lib/custom/Queries/query-form.component.d.ts +201 -26
- package/dist/lib/custom/Queries/query-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-form.component.js +429 -109
- package/dist/lib/custom/Queries/query-form.component.js.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts +107 -14
- package/dist/lib/custom/Queries/query-run-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Queries/query-run-dialog.component.js +249 -79
- package/dist/lib/custom/Queries/query-run-dialog.component.js.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts +133 -7
- package/dist/lib/custom/RecordProcesses/record-process-form.component.d.ts.map +1 -1
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js +1268 -19
- package/dist/lib/custom/RecordProcesses/record-process-form.component.js.map +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.d.ts +1 -1
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js +4 -4
- package/dist/lib/custom/SearchScopes/searchscope-form.component.js.map +1 -1
- package/dist/lib/custom/SessionBridges/session-bridge-form.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts +77 -13
- package/dist/lib/custom/Templates/template-param-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-param-dialog.component.js +196 -78
- package/dist/lib/custom/Templates/template-param-dialog.component.js.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts +49 -7
- package/dist/lib/custom/Templates/template-params-grid.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/template-params-grid.component.js +132 -44
- package/dist/lib/custom/Templates/template-params-grid.component.js.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.d.ts +142 -17
- package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Templates/templates-form.component.js +333 -113
- package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts +24 -4
- package/dist/lib/custom/Tests/entity-link-pill.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/entity-link-pill.component.js +64 -20
- package/dist/lib/custom/Tests/entity-link-pill.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.d.ts +217 -27
- package/dist/lib/custom/Tests/test-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-form.component.js +549 -169
- package/dist/lib/custom/Tests/test-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-checks.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-checks.js +5 -1
- package/dist/lib/custom/Tests/test-run-checks.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts +2 -0
- package/dist/lib/custom/Tests/test-run-feedback-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js +5 -1
- package/dist/lib/custom/Tests/test-run-feedback-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.d.ts +146 -18
- package/dist/lib/custom/Tests/test-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-run-form.component.js +362 -106
- package/dist/lib/custom/Tests/test-run-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts +390 -47
- package/dist/lib/custom/Tests/test-suite-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-form.component.js +1015 -343
- package/dist/lib/custom/Tests/test-suite-form.component.js.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts +214 -26
- package/dist/lib/custom/Tests/test-suite-run-form.component.d.ts.map +1 -1
- package/dist/lib/custom/Tests/test-suite-run-form.component.js +535 -159
- package/dist/lib/custom/Tests/test-suite-run-form.component.js.map +1 -1
- package/dist/lib/custom/Users/user-overview.panel.d.ts +1 -1
- package/dist/lib/custom/Users/user-overview.panel.js +2 -2
- package/dist/lib/custom/Users/user-overview.panel.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +208 -29
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +446 -138
- package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts +6 -0
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js +16 -4
- package/dist/lib/custom/ai-agent-run/ai-agent-run-cost.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +50 -6
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +84 -12
- package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts +89 -5
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js +216 -70
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-detail.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts +62 -3
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js +140 -42
- package/dist/lib/custom/ai-agent-run/ai-agent-run-step-node.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +81 -10
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +165 -37
- package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +121 -14
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +287 -79
- package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts +101 -15
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js +281 -97
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts +43 -25
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js +100 -64
- package/dist/lib/custom/ai-agent-run/flow/agent-run-flow.model.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js +71 -53
- package/dist/lib/custom/ai-agent-run/flow/constellation.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js +70 -52
- package/dist/lib/custom/ai-agent-run/flow/flame-cascade.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts +8 -0
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js +22 -6
- package/dist/lib/custom/ai-agent-run/flow/flow-svg.util.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts +24 -2
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js +91 -59
- package/dist/lib/custom/ai-agent-run/flow/flowchart.component.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts +10 -2
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js +33 -17
- package/dist/lib/custom/ai-agent-run/flow/pan-zoom.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts +2 -0
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js +34 -30
- package/dist/lib/custom/ai-agent-run/flow/run-tree-flow-projection.js.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts +14 -2
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.d.ts.map +1 -1
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js +69 -51
- package/dist/lib/custom/ai-agent-run/flow/subway-lines.component.js.map +1 -1
- package/dist/lib/custom/custom-forms.module.d.ts +32 -30
- package/dist/lib/custom/custom-forms.module.d.ts.map +1 -1
- package/dist/lib/custom/custom-forms.module.js +21 -4
- package/dist/lib/custom/custom-forms.module.js.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts +38 -12
- package/dist/lib/custom/shared/entity-selector-dialog.component.d.ts.map +1 -1
- package/dist/lib/custom/shared/entity-selector-dialog.component.js +103 -51
- package/dist/lib/custom/shared/entity-selector-dialog.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js +62 -26
- package/dist/lib/generated/Entities/MJAIPrompt/mjaiprompt.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js +59 -51
- package/dist/lib/generated/Entities/MJAIPromptRun/mjaipromptrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js +76 -74
- package/dist/lib/generated/Entities/MJAIVendor/mjaivendor.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js +33 -15
- package/dist/lib/generated/Entities/MJCredential/mjcredential.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js +100 -82
- package/dist/lib/generated/Entities/MJEntity/mjentity.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js +24 -20
- package/dist/lib/generated/Entities/MJEntityField/mjentityfield.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js +122 -0
- package/dist/lib/generated/Entities/MJFeatureValue/mjfeaturevalue.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js +125 -0
- package/dist/lib/generated/Entities/MJFeatureValueCache/mjfeaturevaluecache.form.component.js.map +1 -0
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js +23 -5
- package/dist/lib/generated/Entities/MJProcessRun/mjprocessrun.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js +25 -6
- package/dist/lib/generated/Entities/MJProcessRunDetail/mjprocessrundetail.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js +27 -25
- package/dist/lib/generated/Entities/MJProject/mjproject.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js +11 -15
- package/dist/lib/generated/Entities/MJQuery/mjquery.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.d.ts.map +1 -1
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.form.component.js +43 -7
- package/dist/lib/generated/Entities/MJRecordProcess/mjrecordprocess.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 +155 -119
- package/dist/lib/generated/Entities/MJUser/mjuser.form.component.js.map +1 -1
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts +10 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.d.ts.map +1 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js +78 -0
- package/dist/lib/generated/Entities/MJWebSearchProvider/mjwebsearchprovider.form.component.js.map +1 -0
- package/dist/lib/generated/generated-forms.module.d.ts +240 -237
- package/dist/lib/generated/generated-forms.module.d.ts.map +1 -1
- package/dist/lib/generated/generated-forms.module.js +11 -2
- package/dist/lib/generated/generated-forms.module.js.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts +5 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.d.ts.map +1 -1
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js +11 -3
- package/dist/lib/panels/ai-skill-sharing/ai-skill-sharing-panel.component.js.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts +2 -0
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.d.ts.map +1 -1
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js +16 -12
- package/dist/lib/panels/content-sources/tag-pipeline-configuration.panel.js.map +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.d.ts +1 -1
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js +2 -2
- package/dist/lib/panels/content-sources/website-crawler-settings.panel.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts +122 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.logic.js +236 -11
- package/dist/lib/panels/model-predictions/model-prediction.logic.js.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts +72 -13
- package/dist/lib/panels/model-predictions/model-prediction.panel.d.ts.map +1 -1
- package/dist/lib/panels/model-predictions/model-prediction.panel.js +577 -78
- package/dist/lib/panels/model-predictions/model-prediction.panel.js.map +1 -1
- package/dist/lib/shared/components/template-editor.component.d.ts +133 -14
- package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
- package/dist/lib/shared/components/template-editor.component.js +322 -124
- package/dist/lib/shared/components/template-editor.component.js.map +1 -1
- package/dist/public-api.d.ts +4 -0
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +4 -0
- package/dist/public-api.js.map +1 -1
- package/package.json +43 -41
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record-process-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/RecordProcesses/record-process-form.component.ts","../../../../src/lib/custom/RecordProcesses/record-process-form.component.html"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yEAAyE,CAAC;;;;;;ICFvH,mDAK4D;IAAxD,AADA,AADA,AADA,AADA,oOAAY,6BAAsB,KAAC,+NAChB,0BAAmB,KAAC,+NACpB,0BAAmB,KAAC,iOACnB,2BAAoB,KAAC,+OACd,kCAA2B,KAAC;IAEvD,8CAAwH;IAE5H,iBAA2B;;;IATiB,AAAlB,sCAAiB,yBAAuB;IAOpC,cAAiB;IAAuB,AAAtB,AAAlB,sCAAiB,sBAAsB,kCAA2B;;ADHhG;;;;;;GAMG;AAOI,IAAM,kCAAkC,GAAxC,MAAM,kCAAmC,SAAQ,4BAA4B;4TAAvE,kCAAkC,yBAAlC,kCAAkC;oEAAlC,kCAAkC;YClB/C,yHAAc;;YAAd,qCAWC;;;ADOY,kCAAkC;IAN9C,aAAa,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;GAM5C,kCAAkC,CAAwC;;iFAA1E,kCAAkC;cAL9C,SAAS;6BACM,KAAK,YACP,iCAAiC;;kFAGlC,kCAAkC;AAE/C,0EAA0E;AAC1E,MAAM,UAAU,sCAAsC;IAClD,sBAAsB;AAC1B,CAAC","sourcesContent":["import { Component } from '@angular/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { MJRecordProcessFormComponent } from '../../generated/Entities/MJRecordProcess/mjrecordprocess.form.component';\n\n/**\n * Custom form override for `MJ: Record Processes`. Replaces the generated field layout (which exposes the\n * rules as a raw `Configuration` JSON textarea) with the visual `<mj-record-process-editor>` — the same\n * authoring surface used in the Bulk Operations app — so editing a process record anywhere in Explorer\n * gets the business-friendly rules builder + inline dry-run preview. The form's container owns Save; the\n * editor mutates the record in place (ShowToolbar=false).\n */\n@RegisterClass(BaseFormComponent, 'MJ: Record Processes')\n@Component({\n standalone: false,\n selector: 'mj-record-process-form-extended',\n templateUrl: './record-process-form.component.html',\n})\nexport class RecordProcessFormComponentExtended extends MJRecordProcessFormComponent {}\n\n/** Tree-shaking guard so the override registers with the ClassFactory. */\nexport function LoadRecordProcessFormComponentExtended(): void {\n // intentionally empty\n}\n","@if (record) {\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 <mj-record-process-editor [Record]=\"record\" [ShowToolbar]=\"false\" [Provider]=\"ProviderToUse\"></mj-record-process-editor>\n\n</mj-record-form-container>\n}\n"]}
|
|
1
|
+
{"version":3,"file":"record-process-form.component.js","sourceRoot":"","sources":["../../../../src/lib/custom/RecordProcesses/record-process-form.component.ts","../../../../src/lib/custom/RecordProcesses/record-process-form.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, OnInit } from '@angular/core';\nimport { RegisterClass, RegisterClassEx, SafeJSONParse, EscapeSQLString } from '@memberjunction/global';\nimport { BaseFormComponent, BaseFormPolicy, FormChromeContext, FormChromeSpec, DETAILS_SECTION_KEY } from '@memberjunction/ng-base-forms';\nimport { MJRecordProcessFormComponent } from '../../generated/Entities/MJRecordProcess/mjrecordprocess.form.component';\nimport { EntityInfo, RunView, LogError } from '@memberjunction/core';\nimport type { DataFeatureSpec, SpecValidationIssue, EntityMetadataStub } from '@memberjunction/feature-pipelines';\nimport { validateSpec } from '@memberjunction/feature-pipelines';\n\n/**\n * View-model representing an individual feature output in the pipeline schema table.\n */\nexport interface FeatureOutputViewModel {\n Name: string;\n Ref: string;\n FeatureKind: string;\n TargetField: string;\n TargetFieldExists: boolean;\n TargetFieldType: string;\n ConstraintSummary: string;\n ViolationPolicy: string;\n ReasoningTarget: string;\n}\n\n/**\n * View-model representing a parameter resolution mapping for the AI prompt.\n */\nexport interface PromptParamViewModel {\n Param: string;\n Field: string;\n}\n\n/**\n * Pure helper function to format raw JSON.\n */\nexport function FormatRawPipelineJson(configuration?: string | null): string {\n if (!configuration) return '';\n const parsed = SafeJSONParse<DataFeatureSpec>(configuration);\n return parsed ? JSON.stringify(parsed, null, 2) : configuration;\n}\n\n/** @deprecated Use {@link FormatRawPipelineJson}. */\nexport function formatRawPipelineJson(configuration?: string | null): string {\n return FormatRawPipelineJson(configuration);\n}\n\n/**\n * Pure helper function to parse DataFeatureSpec safely.\n */\nexport function ParsePipelineSpec(configuration?: string | null): DataFeatureSpec | null {\n if (!configuration) return null;\n return SafeJSONParse<DataFeatureSpec>(configuration);\n}\n\n/** @deprecated Use {@link ParsePipelineSpec}. */\nexport function parsePipelineSpec(configuration?: string | null): DataFeatureSpec | null {\n return ParsePipelineSpec(configuration);\n}\n\n/**\n * Pure helper function to validate pipeline spec against entity stub.\n */\nexport function ValidatePipelineSpec(\n spec: DataFeatureSpec | null,\n entityStub?: EntityMetadataStub\n): SpecValidationIssue[] {\n if (!spec) return [];\n return validateSpec(spec, entityStub);\n}\n\n/** @deprecated Use {@link ValidatePipelineSpec}. */\nexport function validatePipelineSpec(\n spec: DataFeatureSpec | null,\n entityStub?: EntityMetadataStub\n): SpecValidationIssue[] {\n return ValidatePipelineSpec(spec, entityStub);\n}\n\n/**\n * Pure helper to build feature output view-models from spec or output mapping.\n */\nexport function BuildFeatureOutputViewModels(\n spec: DataFeatureSpec | null,\n entityInfo?: EntityInfo | null,\n outputMapping?: string | null\n): FeatureOutputViewModel[] {\n const outputs: FeatureOutputViewModel[] = [];\n\n if (spec?.Outputs && spec.Outputs.length > 0) {\n for (const out of spec.Outputs) {\n let targetFieldName = '';\n const targetMode = out.Target?.Mode;\n if (out.Target?.Mode === 'field') {\n targetFieldName = out.Target.EntityFieldName;\n } else if (out.Target?.Mode === 'child') {\n targetFieldName = `Child: ${out.Target.EntityName}`;\n } else if (out.Target?.Mode === 'tags') {\n targetFieldName = `Tags (${out.Target.Growth || 'taxonomy'})`;\n }\n\n let constraintText = 'None';\n let violationPolicy = 'error';\n const c = out.Constraint;\n if (c) {\n if (c.OnViolation) {\n violationPolicy = c.OnViolation;\n }\n switch (c.Type) {\n case 'numeric':\n case 'money': {\n const min = c.Min != null ? String(c.Min) : '-∞';\n const max = c.Max != null ? String(c.Max) : '+∞';\n constraintText = `[${min}, ${max}]`;\n break;\n }\n case 'enum': {\n if (c.Values && c.Values.length > 0) {\n constraintText = `Allowed: ${c.Values.slice(0, 3).join(', ')}${c.Values.length > 3 ? '...' : ''}`;\n } else if (c.FromFieldMetadata) {\n constraintText = 'From Field Metadata';\n }\n break;\n }\n case 'lookup': {\n constraintText = `Lookup: ${c.Entity || ''}.${c.MatchField || ''}`;\n break;\n }\n case 'date': {\n constraintText = `Date: [${c.Min || '-∞'}, ${c.Max || '+∞'}]`;\n break;\n }\n case 'boolean': {\n constraintText = 'Boolean';\n break;\n }\n case 'freetext': {\n constraintText = c.MaxLength != null ? `Max: ${c.MaxLength} chars` : 'Freetext';\n break;\n }\n }\n }\n\n const isFieldMode = targetMode === 'field';\n const field = isFieldMode && targetFieldName && entityInfo?.Fields\n ? entityInfo.Fields.find((f) => f.Name.toLowerCase() === targetFieldName.toLowerCase())\n : undefined;\n\n outputs.push({\n Name: out.Name || out.Ref || 'Unnamed',\n Ref: out.Ref || '',\n FeatureKind: out.FeatureKind || (c?.Type === 'numeric' ? 'numeric' : 'categorical'),\n TargetField: targetFieldName || '—',\n TargetFieldExists: isFieldMode ? !!field : true,\n TargetFieldType: isFieldMode ? (field?.TSType || field?.Type || 'unbound') : (targetMode || 'custom'),\n ConstraintSummary: constraintText,\n ViolationPolicy: violationPolicy,\n ReasoningTarget: spec.CaptureReasoning ? 'Enabled' : 'None',\n });\n }\n } else if (outputMapping) {\n const mapping = SafeJSONParse<{ fields?: Record<string, string> } | Record<string, string>>(outputMapping);\n const fieldsObj = (mapping && 'fields' in mapping && mapping.fields) ? mapping.fields : (mapping as Record<string, string> | null);\n if (fieldsObj && typeof fieldsObj === 'object') {\n for (const [key, val] of Object.entries(fieldsObj)) {\n const field = entityInfo?.Fields?.find((f) => f.Name.toLowerCase() === key.toLowerCase());\n outputs.push({\n Name: String(val),\n Ref: String(val),\n FeatureKind: 'field',\n TargetField: key,\n TargetFieldExists: !!field,\n TargetFieldType: field?.TSType || field?.Type || 'unbound',\n ConstraintSummary: 'Standard',\n ViolationPolicy: 'null',\n ReasoningTarget: 'None',\n });\n }\n }\n }\n\n return outputs;\n}\n\n/** @deprecated Use {@link BuildFeatureOutputViewModels}. */\nexport function buildFeatureOutputViewModels(\n spec: DataFeatureSpec | null,\n entityInfo?: EntityInfo | null,\n outputMapping?: string | null\n): FeatureOutputViewModel[] {\n return BuildFeatureOutputViewModels(spec, entityInfo, outputMapping);\n}\n\n/**\n * Pure helper to build prompt parameter resolution mappings.\n */\nexport function BuildPromptParamViewModels(\n spec: DataFeatureSpec | null,\n inputMapping?: string | null\n): PromptParamViewModel[] {\n const mappings: PromptParamViewModel[] = [];\n if (spec?.Context?.QueryParams) {\n for (const [param, field] of Object.entries(spec.Context.QueryParams)) {\n mappings.push({ Param: `@${param}`, Field: String(field) });\n }\n } else if (spec?.Context?.InputMapping) {\n for (const [param, field] of Object.entries(spec.Context.InputMapping)) {\n mappings.push({ Param: `@${param}`, Field: String(field) });\n }\n } else if (inputMapping) {\n const raw = SafeJSONParse<Record<string, string>>(inputMapping);\n if (raw) {\n for (const [param, field] of Object.entries(raw)) {\n mappings.push({ Param: `@${param}`, Field: String(field) });\n }\n }\n }\n return mappings;\n}\n\n/** @deprecated Use {@link BuildPromptParamViewModels}. */\nexport function buildPromptParamViewModels(\n spec: DataFeatureSpec | null,\n inputMapping?: string | null\n): PromptParamViewModel[] {\n return BuildPromptParamViewModels(spec, inputMapping);\n}\n\n/**\n * Custom form override for `MJ: Record Processes` (priority 100).\n * Presents the Record Process / Feature Pipeline in a first-class MJ form with:\n * - Lead panel: \"Overview & Status\" with hero KPI summary, target entity badge, and trigger diagnostics.\n * - Builder panel: \"Pipeline Configuration\" embedding the visual <mj-feature-pipeline-builder> for Infer / Feature Pipelines,\n * or the <mj-record-process-editor> for Field Rules.\n * - History panel: \"Prior Runs\" embedding <mj-record-process-history> with run status, metrics, and per-record diff drill-down.\n * - Details panel (Option A Structured Cards): First-class semantic cards for Infer pipelines, replacing raw JSON\n * with configuration health diagnostics, prompt context binding, feature output schema & column validation,\n * scope preview, and a collapsible raw JSON drawer.\n * - Related entity sections: Watermarks, ML Model Scoring Bindings, Feature Values, Feature Value Caches.\n * - System Metadata panel.\n */\n@RegisterClass(BaseFormComponent, 'MJ: Record Processes', 100)\n@Component({\n standalone: false,\n selector: 'mj-record-process-form-extended',\n templateUrl: './record-process-form.component.html',\n styleUrls: ['./record-process-form.component.css'],\n})\nexport class RecordProcessFormComponentExtended extends MJRecordProcessFormComponent implements OnInit {\n public PipelineValid = true;\n\n /** @deprecated Use {@link PipelineValid}. */\n public get pipelineValid() {\n return this.PipelineValid;\n }\n /** @deprecated Use {@link PipelineValid}. */\n public set pipelineValid(value) {\n this.PipelineValid = value;\n }\n public RawJsonExpanded = false;\n\n /** @deprecated Use {@link RawJsonExpanded}. */\n public get rawJsonExpanded() {\n return this.RawJsonExpanded;\n }\n /** @deprecated Use {@link RawJsonExpanded}. */\n public set rawJsonExpanded(value) {\n this.RawJsonExpanded = value;\n }\n public RawJsonCopied = false;\n\n /** @deprecated Use {@link RawJsonCopied}. */\n public get rawJsonCopied() {\n return this.RawJsonCopied;\n }\n /** @deprecated Use {@link RawJsonCopied}. */\n public set rawJsonCopied(value) {\n this.RawJsonCopied = value;\n }\n public LoadedQuery: { ID: string; Name: string; SQL: string } | null = null;\n\n /** @deprecated Use {@link LoadedQuery}. */\n public get loadedQuery(): { ID: string; Name: string; SQL: string } | null {\n return this.LoadedQuery;\n }\n /** @deprecated Use {@link LoadedQuery}. */\n public set loadedQuery(value: { ID: string; Name: string; SQL: string } | null) {\n this.LoadedQuery = value;\n }\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n this.initSections([\n { sectionKey: 'processOverview', sectionName: 'Overview & Status', isExpanded: true },\n { sectionKey: 'inferConfig', sectionName: 'Infer Configuration', isExpanded: true },\n { sectionKey: 'pipelineConfiguration', sectionName: 'Pipeline Configuration', isExpanded: true },\n { sectionKey: 'processRuns', sectionName: 'Prior Runs', isExpanded: true },\n { sectionKey: 'processDefinition', sectionName: 'Process Definition', isExpanded: true },\n { sectionKey: 'executionLogic', sectionName: 'Execution Logic', isExpanded: false },\n { sectionKey: 'scopeConfiguration', sectionName: 'Scope Configuration', isExpanded: true },\n { sectionKey: 'triggers', sectionName: 'Triggers', isExpanded: true },\n { sectionKey: 'performanceAndOptimization', sectionName: 'Performance & Optimization', isExpanded: false },\n { sectionKey: 'mJRecordProcessWatermarks', sectionName: 'Record Process Watermarks', isExpanded: false },\n { sectionKey: 'mJMLModelScoringBindings', sectionName: 'ML Model Scoring Bindings', isExpanded: false },\n { sectionKey: 'mJFeatureValues', sectionName: 'Feature Values', isExpanded: false },\n { sectionKey: 'mJFeatureValueCaches', sectionName: 'Feature Value Caches', isExpanded: false },\n { sectionKey: 'systemMetadata', sectionName: 'System Metadata', isExpanded: false },\n ]);\n await this.loadContextQuery();\n }\n\n private async loadContextQuery(): Promise<void> {\n const queryId = this.ParsedSpec?.Context?.QueryID;\n if (!queryId) return;\n\n try {\n const rv = new RunView();\n const res = await rv.RunView<{ ID: string; Name: string; SQL: string }>({\n EntityName: 'MJ: Queries',\n ExtraFilter: `ID = '${EscapeSQLString(queryId)}'`,\n Fields: ['ID', 'Name', 'SQL'],\n ResultType: 'simple',\n });\n if (res.Success && res.Results && res.Results.length > 0) {\n this.LoadedQuery = res.Results[0];\n this.cdr.markForCheck();\n } else if (!res.Success) {\n LogError(`[RecordProcessForm] Failed to load context query ${queryId}: ${res.ErrorMessage}`);\n }\n } catch (e) {\n LogError(`[RecordProcessForm] Exception loading context query ${queryId}`, undefined, e);\n }\n }\n\n public get TargetEntityName(): string {\n if (!this.record?.EntityID) return '—';\n const entity = this.ProviderToUse.EntityByID(this.record.EntityID);\n return entity?.DisplayName || entity?.Name || this.record.EntityID;\n }\n\n public get TargetEntityInfo(): EntityInfo | undefined {\n if (!this.record?.EntityID) return undefined;\n return this.ProviderToUse.EntityByID(this.record.EntityID);\n }\n\n public get WorkTypeIcon(): string {\n switch (this.record?.WorkType) {\n case 'Infer':\n return 'fa-solid fa-wand-magic-sparkles';\n case 'FieldRules':\n return 'fa-solid fa-table-list';\n case 'ML Model':\n return 'fa-solid fa-brain';\n case 'Action':\n return 'fa-solid fa-bolt';\n case 'Agent':\n return 'fa-solid fa-robot';\n default:\n return 'fa-solid fa-gears';\n }\n }\n\n public get StatusBadgeClass(): string {\n switch (this.record?.Status) {\n case 'Active':\n return 'rpf-status-active';\n case 'Draft':\n return 'rpf-status-draft';\n case 'Disabled':\n return 'rpf-status-disabled';\n default:\n return 'rpf-status-default';\n }\n }\n\n public OnPipelineSpecChange(): void {\n this.cdr.markForCheck();\n }\n\n public OnPipelineValidChange(valid: boolean): void {\n this.PipelineValid = valid;\n this.cdr.markForCheck();\n }\n\n public ToggleRawJson(): void {\n this.RawJsonExpanded = !this.RawJsonExpanded;\n this.cdr.markForCheck();\n }\n\n /** @deprecated Use {@link ToggleRawJson}. */\n public toggleRawJson(): void {\n return this.ToggleRawJson();\n }\n\n public async CopyRawJson(): Promise<void> {\n try {\n if (navigator?.clipboard && this.FormattedRawJson) {\n await navigator.clipboard.writeText(this.FormattedRawJson);\n this.RawJsonCopied = true;\n this.cdr.markForCheck();\n setTimeout(() => {\n this.RawJsonCopied = false;\n this.cdr.markForCheck();\n }, 2000);\n }\n } catch (e) {\n LogError('[RecordProcessForm] Failed to copy raw JSON to clipboard', undefined, e);\n }\n }\n\n /** @deprecated Use {@link CopyRawJson}. */\n public async copyRawJson(): Promise<void> {\n return this.CopyRawJson();\n }\n\n public get FormattedRawJson(): string {\n return FormatRawPipelineJson(this.record?.Configuration);\n }\n\n public get ParsedSpec(): DataFeatureSpec | null {\n return ParsePipelineSpec(this.record?.Configuration);\n }\n\n public get EntityStub(): EntityMetadataStub | undefined {\n const entity = this.TargetEntityInfo;\n if (!entity) return undefined;\n return {\n Name: entity.Name,\n Fields: (entity.Fields ?? []).map((f) => ({\n Name: f.Name,\n TSType: f.TSType,\n IsVirtual: f.IsVirtual,\n AllowsNull: f.AllowsNull,\n RelatedEntity: f.RelatedEntity,\n RelatedEntityID: f.RelatedEntityID,\n EntityFieldValues: f.EntityFieldValues\n ? f.EntityFieldValues.map((v) => ({ Value: v.Value, Code: v.Code }))\n : undefined,\n })),\n };\n }\n\n public get SpecIssues(): SpecValidationIssue[] {\n return ValidatePipelineSpec(this.ParsedSpec, this.EntityStub);\n }\n\n public get IsSpecValid(): boolean {\n return this.SpecIssues.filter((i) => i.Severity === 'error').length === 0;\n }\n\n public get FeatureOutputs(): FeatureOutputViewModel[] {\n return BuildFeatureOutputViewModels(this.ParsedSpec, this.TargetEntityInfo, this.record?.OutputMapping);\n }\n\n public get TotalFeaturesCount(): number {\n return this.FeatureOutputs.length;\n }\n\n public get BoundFeaturesCount(): number {\n return this.FeatureOutputs.filter((f) => f.TargetFieldExists).length;\n }\n\n public get ParameterMappings(): PromptParamViewModel[] {\n return BuildPromptParamViewModels(this.ParsedSpec, this.record?.InputMapping);\n }\n\n public get ContextModeText(): string {\n const spec = this.ParsedSpec;\n if (spec?.Context?.EntityDocumentID) return 'Entity Document Template';\n if (spec?.Context?.QueryID) {\n return this.LoadedQuery?.Name ? `Query: ${this.LoadedQuery.Name}` : `Saved Query (${spec.Context.QueryID.substring(0, 8)}...)`;\n }\n if (spec?.Context?.Fields && spec.Context.Fields.length > 0) return `Fields (${spec.Context.Fields.join(', ')})`;\n return 'Record Fields (Automatic)';\n }\n\n public get ContextQueryDisplay(): string {\n const spec = this.ParsedSpec;\n if (spec?.Context?.QueryID) {\n if (this.LoadedQuery?.SQL) {\n return `-- Saved Query: ${this.LoadedQuery.Name}\\n${this.LoadedQuery.SQL}`;\n }\n const paramName = spec.Context.QueryParams ? Object.keys(spec.Context.QueryParams)[0] || 'RecordID' : 'RecordID';\n return `-- Saved Query: ${spec.Context.QueryID}\\nSELECT a.* FROM ${this.TargetEntityName || 'TargetEntity'} a WHERE a.ID = @${paramName}`;\n }\n return `SELECT a.* FROM ${this.TargetEntityName || 'TargetEntity'} a WHERE a.ID = @RecordID`;\n }\n\n public get FormattedScopeFilter(): string {\n return this.record?.ScopeFilter?.trim() || '';\n }\n}\n\n/**\n * Form policy ensuring the Overview panel sits as the lead group\n * on the left-nav rail with proper title and icon.\n */\n@RegisterClassEx(BaseFormPolicy, { key: 'MJ: Record Processes', metadata: { entity: 'MJ: Record Processes' } })\nexport class RecordProcessFormPolicy extends BaseFormPolicy {\n public override DecorateChrome(spec: FormChromeSpec, _ctx: FormChromeContext): FormChromeSpec {\n const detailsGroup = spec.Groups.find(g => g.Key === DETAILS_SECTION_KEY || g.Key === 'details');\n if (detailsGroup) {\n detailsGroup.Title = 'Overview';\n detailsGroup.Icon = 'fa-solid fa-gauge-high';\n detailsGroup.IsLead = true;\n }\n const overview = spec.Groups.find(g => g.Key === 'processOverview');\n if (overview) {\n overview.IsLead = true;\n const remaining = spec.Groups.filter(g => g.Key !== 'processOverview');\n return {\n ...spec,\n Groups: [overview, ...remaining],\n };\n }\n return spec;\n }\n}\n\n/** Tree-shaking guard so the override and policy register with the ClassFactory. */\nexport function LoadRecordProcessFormComponentExtended(): void {\n void RecordProcessFormComponentExtended;\n void RecordProcessFormPolicy;\n}\n","@if (record) {\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 <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"before-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n OVERVIEW & STATUS (Lead Panel)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"processOverview\"\n SectionName=\"Overview & Status\"\n Icon=\"fa-solid fa-gauge-high\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n <div class=\"rpf-overview-container\">\n <!-- Hero Header Card -->\n <div class=\"rpf-hero-card\">\n <div class=\"rpf-hero-main\">\n <div class=\"rpf-hero-icon-wrap\">\n <i [class]=\"WorkTypeIcon\"></i>\n </div>\n <div class=\"rpf-hero-info\">\n <div class=\"rpf-hero-title-row\">\n <h2 class=\"rpf-hero-title\">{{ record.Name || 'Untitled Process' }}</h2>\n <span class=\"rpf-badge\" [ngClass]=\"StatusBadgeClass\">\n <span class=\"rpf-badge-dot\"></span>\n {{ record.Status || 'Draft' }}\n </span>\n </div>\n <p class=\"rpf-hero-desc\">{{ record.Description || 'No description provided for this process.' }}</p>\n <div class=\"rpf-hero-pills\">\n <span class=\"rpf-pill\" title=\"Target Entity\">\n <i class=\"fa-solid fa-database\"></i>\n <span>{{ TargetEntityName }}</span>\n </span>\n <span class=\"rpf-pill\" title=\"Work Type\">\n <i [class]=\"WorkTypeIcon\"></i>\n <span>{{ record.WorkType || 'Not set' }}</span>\n </span>\n @if (record.WorkType === 'Infer') {\n <span class=\"rpf-pill rpf-pill-feature\" title=\"Feature Pipeline\">\n <i class=\"fa-solid fa-sparkles\"></i>\n <span>Feature Pipeline</span>\n </span>\n }\n </div>\n </div>\n </div>\n </div>\n\n <!-- KPI Summary Grid -->\n <div class=\"rpf-kpi-grid\">\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-filter\"></i> Target Scope</div>\n <div class=\"rpf-kpi-value\">{{ record.ScopeType || 'Filter' }}</div>\n <div class=\"rpf-kpi-sub\" [title]=\"record.ScopeFilter || 'All records in scope'\">\n {{ record.ScopeFilter ? record.ScopeFilter : 'No filter applied (all records)' }}\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-bolt\"></i> Triggers</div>\n <div class=\"rpf-kpi-value\">\n @if (record.ScheduleEnabled) {\n <span>Scheduled</span>\n } @else if (record.OnChangeEnabled) {\n <span>On Change</span>\n } @else if (record.OnDemandEnabled) {\n <span>On Demand</span>\n } @else {\n <span class=\"muted\">Manual</span>\n }\n </div>\n <div class=\"rpf-kpi-sub\">\n @if (record.ScheduleEnabled && record.CronExpression) {\n <code>{{ record.CronExpression }}</code>\n } @else if (record.OnChangeEnabled) {\n <span>Mode: {{ record.OnChangeInvocationType || 'Immediate' }}</span>\n } @else {\n <span>On demand execution</span>\n }\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-water\"></i> Optimization</div>\n <div class=\"rpf-kpi-value\">{{ record.WatermarkStrategy || 'None' }}</div>\n <div class=\"rpf-kpi-sub\">\n Batch: {{ record.BatchSize || 'default' }} | Concurrency: {{ record.MaxConcurrency || '1' }}\n </div>\n </div>\n\n <div class=\"rpf-kpi-card\">\n <div class=\"rpf-kpi-label\"><i class=\"fa-solid fa-microchip\"></i> Skip Unchanged</div>\n <div class=\"rpf-kpi-value\">{{ record.SkipUnchanged ? 'Enabled' : 'Disabled' }}</div>\n <div class=\"rpf-kpi-sub\">\n {{ record.SkipUnchanged ? 'Skips re-evaluating unchanged rows' : 'Processes all matching rows' }}\n </div>\n </div>\n </div>\n </div>\n </mj-collapsible-panel>\n\n <!-- ========================================\n PIPELINE CONFIGURATION (Visual Builder)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"pipelineConfiguration\"\n SectionName=\"Pipeline Configuration\"\n Icon=\"fa-solid fa-wand-magic-sparkles\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-pipeline-builder-wrap\">\n <mj-feature-pipeline-builder\n [Record]=\"record\"\n [EntityID]=\"record.EntityID\"\n (SpecChange)=\"OnPipelineSpecChange()\"\n (ValidChange)=\"OnPipelineValidChange($event)\">\n </mj-feature-pipeline-builder>\n </div>\n } @else if (record.WorkType === 'FieldRules') {\n <div class=\"rpf-editor-wrap\">\n <mj-record-process-editor\n [Record]=\"record\"\n [ShowToolbar]=\"false\"\n [Provider]=\"ProviderToUse\">\n </mj-record-process-editor>\n </div>\n } @else {\n <div class=\"rpf-generic-config-wrap\">\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <div>\n <strong>{{ record.WorkType || 'Custom' }} Execution Logic</strong>\n <p>Configure actions, prompts, and mappings in the <em>Process Definition</em> and <em>Execution Logic</em> sections below.</p>\n </div>\n </div>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ========================================\n PRIOR RUNS & AUDIT (Embedded History)\n ======================================== -->\n <mj-collapsible-panel\n SectionKey=\"processRuns\"\n SectionName=\"Prior Runs\"\n Icon=\"fa-solid fa-clock-rotate-left\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"true\">\n @if (record.IsSaved) {\n <div class=\"rpf-history-wrap\">\n <mj-record-process-history\n [RecordProcessID]=\"record.ID\">\n </mj-record-process-history>\n </div>\n } @else {\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>Save this record process to view execution history and per-record audit logs.</span>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ========================================\n FIELD PANELS (Fold into Details rail)\n ======================================== -->\n\n <!-- Process Definition Section -->\n <mj-collapsible-panel\n SectionKey=\"processDefinition\"\n SectionName=\"Process Definition\"\n Icon=\"fa fa-info-circle\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Name\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Description\" Type=\"textarea\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CategoryID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"EntityID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Status\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Execution Logic Section -->\n <mj-collapsible-panel\n SectionKey=\"executionLogic\"\n SectionName=\"Execution Logic\"\n Icon=\"fa fa-play\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"false\">\n @if (record.WorkType === 'Infer') {\n <!-- Health & Schema Audit Bar -->\n <div class=\"rpf-audit-bar\" [class.rpf-audit-bar-warning]=\"!IsSpecValid\">\n <div class=\"rpf-audit-badges\">\n <div class=\"rpf-audit-chip\" [class.rpf-audit-chip-valid]=\"IsSpecValid\" [class.rpf-audit-chip-warning]=\"!IsSpecValid\">\n <i [class]=\"IsSpecValid ? 'fa-solid fa-shield-check' : 'fa-solid fa-triangle-exclamation'\"></i>\n <span>{{ IsSpecValid ? 'Configuration Valid' : 'Configuration Issues Found' }}</span>\n </div>\n <div class=\"rpf-audit-chip\">\n <i class=\"fa-solid fa-check-circle\" style=\"color: var(--mj-status-success);\"></i>\n <span>{{ BoundFeaturesCount }} of {{ TotalFeaturesCount }} Features Bound to Target</span>\n </div>\n <div class=\"rpf-audit-chip\">\n <i class=\"fa-solid fa-database\"></i>\n <span>Context: {{ ContextModeText }}</span>\n </div>\n </div>\n </div>\n\n <!-- AI Model & Context Query Section -->\n <div class=\"rpf-prompt-grid\">\n <!-- Prompt Card -->\n <div class=\"rpf-card-box\">\n <div class=\"rpf-box-eyebrow\">Bound AI Prompt</div>\n <div class=\"rpf-prompt-title\">\n <i class=\"fa-solid fa-message-code\"></i>\n <span>{{ record.PromptID ? 'Prompt Configured' : 'No Prompt Selected' }}</span>\n </div>\n <div class=\"rpf-chip-wrap\">\n @if (record.PromptID) {\n <span class=\"rpf-sm-chip rpf-sm-chip-brand\">ID: {{ record.PromptID.substring(0, 8) }}...</span>\n }\n <span class=\"rpf-sm-chip\"><i class=\"fa-solid fa-sparkles\"></i> Feature Infer Engine</span>\n <span class=\"rpf-sm-chip\"><i class=\"fa-solid fa-microchip\"></i> LLM Output Parser</span>\n </div>\n @if (EditMode) {\n <div style=\"margin-top: 10px;\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PromptID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n </div>\n }\n </div>\n\n <!-- Parameters Resolution Card -->\n <div class=\"rpf-card-box\">\n <div class=\"rpf-box-eyebrow\">Prompt Parameter Resolution</div>\n @if (ParameterMappings.length > 0) {\n <div class=\"rpf-param-list\">\n @for (item of ParameterMappings; track item.Param) {\n <div class=\"rpf-param-row\">\n <span class=\"rpf-param-name\">{{ item.Param }}</span>\n <span>\n <i class=\"fa-solid fa-arrow-left rpf-param-arrow\"></i>\n <span>Column: <code>{{ item.Field }}</code></span>\n </span>\n </div>\n }\n </div>\n } @else {\n <div style=\"font-size: 12px; color: var(--mj-text-muted);\">\n No parameter bindings configured. Entire row context will be passed to prompt.\n </div>\n }\n </div>\n </div>\n\n <!-- Context Query Display -->\n <div class=\"rpf-sql-preview-box\">\n <div class=\"rpf-sql-preview-label\">\n <i class=\"fa-solid fa-code\"></i> Context Retrieval Query\n </div>\n <div class=\"rpf-sql-preview-code\">\n <code>{{ ContextQueryDisplay }}</code>\n </div>\n </div>\n\n <!-- Feature Output Schema & Entity Mappings Table -->\n <div class=\"rpf-table-wrap\">\n <table class=\"rpf-feature-table\">\n <thead>\n <tr>\n <th>Feature Name</th>\n <th>Kind / Type</th>\n <th>Validation Constraints</th>\n <th>Target Field Binding</th>\n <th>Reasoning</th>\n </tr>\n </thead>\n <tbody>\n @if (FeatureOutputs.length > 0) {\n @for (out of FeatureOutputs; track out.Name) {\n <tr>\n <td>\n <div class=\"rpf-feature-name-cell\">\n <i [class]=\"out.FeatureKind === 'numeric' ? 'fa-solid fa-chart-line' : 'fa-solid fa-tags'\"\n [style.color]=\"out.FeatureKind === 'numeric' ? '#f59e0b' : '#8b5cf6'\"></i>\n <span>{{ out.Name }}</span>\n </div>\n </td>\n <td>\n <span class=\"rpf-type-tag\"\n [class.rpf-type-numeric]=\"out.FeatureKind === 'numeric'\"\n [class.rpf-type-categorical]=\"out.FeatureKind === 'categorical'\"\n [class.rpf-type-default]=\"out.FeatureKind !== 'numeric' && out.FeatureKind !== 'categorical'\">\n {{ out.FeatureKind }}\n </span>\n </td>\n <td>\n <span class=\"rpf-sm-chip\" [title]=\"'Violation policy: ' + out.ViolationPolicy\">\n <i class=\"fa-solid fa-shield\"></i> {{ out.ConstraintSummary }}\n </span>\n </td>\n <td>\n <div class=\"rpf-binding-pill\">\n <i [class]=\"out.TargetFieldExists ? 'fa-solid fa-check-circle rpf-binding-valid' : 'fa-solid fa-triangle-exclamation rpf-binding-invalid'\"></i>\n <span>{{ TargetEntityName }}.<strong>{{ out.TargetField }}</strong></span>\n <span style=\"color: var(--mj-text-muted); font-size: 11px;\">({{ out.TargetFieldType }})</span>\n </div>\n </td>\n <td>\n @if (out.ReasoningTarget === 'Enabled') {\n <span class=\"rpf-sm-chip rpf-sm-chip-brand\"><i class=\"fa-solid fa-brain\"></i> Captured</span>\n } @else {\n <span style=\"color: var(--mj-text-muted); font-size: 11px;\">None</span>\n }\n </td>\n </tr>\n }\n } @else {\n <tr>\n <td colspan=\"5\" style=\"text-align: center; color: var(--mj-text-muted); padding: 20px;\">\n No output features defined yet. Use the <em>Pipeline Configuration</em> builder tab to add output features.\n </td>\n </tr>\n }\n </tbody>\n </table>\n </div>\n\n <!-- Advanced Raw JSON Drawer -->\n <div class=\"rpf-raw-json-drawer\">\n <div class=\"rpf-raw-json-header\" (click)=\"ToggleRawJson()\">\n <div class=\"rpf-raw-json-title\">\n <i [class]=\"RawJsonExpanded ? 'fa-solid fa-chevron-down' : 'fa-solid fa-chevron-right'\"></i>\n <i class=\"fa-solid fa-code\"></i>\n <span>Power User Escape Hatch: View Raw Pipeline Configuration JSON</span>\n </div>\n <button type=\"button\" class=\"rpf-sm-chip\" (click)=\"$event.stopPropagation(); CopyRawJson()\">\n <i [class]=\"RawJsonCopied ? 'fa-solid fa-check' : 'fa-regular fa-copy'\"></i>\n <span>{{ RawJsonCopied ? 'Copied!' : 'Copy JSON' }}</span>\n </button>\n </div>\n @if (RawJsonExpanded) {\n <div class=\"rpf-raw-json-body\">\n <pre><code>{{ FormattedRawJson }}</code></pre>\n </div>\n }\n </div>\n\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WorkType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Configuration\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OutputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WorkType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ActionID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"AgentID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"PromptID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"InputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OutputMapping\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Configuration\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></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-filter\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-scope-infer-wrap\">\n <div class=\"rpf-scope-summary-row\">\n <div class=\"rpf-scope-badge-group\">\n <span class=\"rpf-scope-chip\">\n <i class=\"fa-solid fa-filter\"></i>\n <span>Scope Type: <strong>{{ record.ScopeType || 'Filter' }}</strong></span>\n </span>\n @if (record.ScopeFilter) {\n <span class=\"rpf-scope-chip rpf-scope-chip-brand\">\n <i class=\"fa-solid fa-calculator\"></i>\n <span>Filter Active</span>\n </span>\n }\n </div>\n </div>\n @if (FormattedScopeFilter) {\n <div class=\"rpf-sql-preview-box\">\n <div class=\"rpf-sql-preview-label\">\n <i class=\"fa-solid fa-database\"></i> SQL Scope Filter (WHERE clause)\n </div>\n <div class=\"rpf-sql-preview-code\">\n <code>{{ FormattedScopeFilter }}</code>\n </div>\n </div>\n } @else {\n <div class=\"rpf-notice-card\">\n <i class=\"fa-solid fa-circle-info\"></i>\n <span>No scope filter applied. All records in <strong>{{ TargetEntityName }}</strong> will be evaluated.</span>\n </div>\n }\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n </div>\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeViewID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeListID\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\" LinkType=\"Record\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScopeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n }\n </mj-collapsible-panel>\n\n <!-- Triggers Section -->\n <mj-collapsible-panel\n SectionKey=\"triggers\"\n SectionName=\"Triggers\"\n Icon=\"fa fa-bolt\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeInvocationType\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnChangeFilter\" Type=\"code\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"ScheduleEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"CronExpression\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"Timezone\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"OnDemandEnabled\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <!-- Performance and Optimization Section -->\n <mj-collapsible-panel\n SectionKey=\"performanceAndOptimization\"\n SectionName=\"Performance and Optimization\"\n Icon=\"fa fa-tachometer-alt\"\n [Form]=\"this\"\n [FormContext]=\"formContext\">\n @if (record.WorkType === 'Infer') {\n <div class=\"rpf-opt-grid\">\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Delta Watermark</div>\n <div class=\"rpf-opt-value\">{{ record.WatermarkStrategy || 'Checksum' }}</div>\n <div class=\"rpf-opt-sub\">Evaluates row state changes</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Batch Processing</div>\n <div class=\"rpf-opt-value\">{{ record.BatchSize || 100 }} records</div>\n <div class=\"rpf-opt-sub\">Per inference chunk</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Concurrency</div>\n <div class=\"rpf-opt-value\">{{ record.MaxConcurrency || 1 }} Parallel</div>\n <div class=\"rpf-opt-sub\">Concurrent worker threads</div>\n </div>\n <div class=\"rpf-opt-card\">\n <div class=\"rpf-opt-label\">Skip Unchanged</div>\n <div class=\"rpf-opt-value\" [class.rpf-text-success]=\"record.SkipUnchanged\">\n <i [class]=\"record.SkipUnchanged ? 'fa-solid fa-check' : 'fa-solid fa-minus'\"></i>\n {{ record.SkipUnchanged ? 'Enabled' : 'Disabled' }}\n </div>\n <div class=\"rpf-opt-sub\">Skips re-evaluating unchanged rows</div>\n </div>\n </div>\n @if (EditMode) {\n <div class=\"rpf-edit-fields-divider\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SkipUnchanged\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WatermarkStrategy\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BatchSize\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"MaxConcurrency\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </div>\n }\n } @else {\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"SkipUnchanged\" Type=\"checkbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"WatermarkStrategy\" Type=\"select\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"BatchSize\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"MaxConcurrency\" Type=\"number\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n }\n </mj-collapsible-panel>\n\n <!-- System Metadata Section -->\n <mj-collapsible-panel\n SectionKey=\"systemMetadata\"\n SectionName=\"System Metadata\"\n Icon=\"fa fa-database\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [DefaultExpanded]=\"false\">\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_CreatedAt\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n <mj-form-field [Record]=\"record\" [ShowLabel]=\"true\" FieldName=\"__mj_UpdatedAt\" Type=\"textbox\" [EditMode]=\"EditMode\" [FormContext]=\"formContext\"></mj-form-field>\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-fields\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n\n <!-- ========================================\n RELATED ENTITY PANELS\n ======================================== -->\n\n <!-- Record Process Watermarks Section -->\n <mj-collapsible-panel\n SectionKey=\"mJRecordProcessWatermarks\"\n SectionName=\"Record Process Watermarks\"\n Icon=\"fa fa-water\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJRecordProcessWatermarks')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Record Process Watermarks','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Record Process Watermarks','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJRecordProcessWatermarks')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJRecordProcessWatermarks', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- ML Model Scoring Bindings Section -->\n <mj-collapsible-panel\n SectionKey=\"mJMLModelScoringBindings\"\n SectionName=\"ML Model Scoring Bindings\"\n Icon=\"fa fa-project-diagram\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJMLModelScoringBindings')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: ML Model Scoring Bindings','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: ML Model Scoring Bindings','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJMLModelScoringBindings')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJMLModelScoringBindings', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Feature Values Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFeatureValues\"\n SectionName=\"Feature Values\"\n Icon=\"fa fa-history\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJFeatureValues')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Feature Values','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Feature Values','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJFeatureValues')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJFeatureValues', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <!-- Feature Value Caches Section -->\n <mj-collapsible-panel\n SectionKey=\"mJFeatureValueCaches\"\n SectionName=\"Feature Value Caches\"\n Icon=\"fa fa-database\"\n Variant=\"related-entity\"\n [Form]=\"this\"\n [FormContext]=\"formContext\"\n [BadgeCount]=\"GetSectionRowCount('mJFeatureValueCaches')\"\n [DefaultExpanded]=\"false\">\n @if (record.IsSaved) {\n <div>\n <mj-explorer-entity-data-grid\n [Params]=\"BuildRelationshipViewParamsByEntityName('MJ: Feature Value Caches','RecordProcessID')\"\n [NewRecordValues]=\"NewRecordValues('MJ: Feature Value Caches','RecordProcessID')\"\n [AllowLoad]=\"IsSectionExpanded('mJFeatureValueCaches')\"\n [ShowToolbar]=\"true\"\n (Navigate)=\"OnFormNavigate($event)\"\n (AfterDataLoad)=\"SetSectionRowCount('mJFeatureValueCaches', $event.totalRowCount)\">\n </mj-explorer-entity-data-grid>\n </div>\n }\n </mj-collapsible-panel>\n\n <mj-form-panel-slot Entity=\"{{record.EntityInfo.Name}}\" Slot=\"after-related\" [Record]=\"record\" [FormComponent]=\"this\" [FormContext]=\"formContext\"></mj-form-panel-slot>\n</mj-record-form-container>\n}\n"]}
|
|
@@ -59,7 +59,7 @@ export declare class MJSearchScopeFormComponentExtended extends MJSearchScopeFor
|
|
|
59
59
|
* inline ("82% similar to last run"). Authors use this to immediately
|
|
60
60
|
* see how much a reranker swap or fusion-weight tweak shifted the ranking.
|
|
61
61
|
*/
|
|
62
|
-
private
|
|
62
|
+
private previousRunRecordIDs;
|
|
63
63
|
LastRunSimilarityPercent: number | null;
|
|
64
64
|
ngOnDestroy(): void;
|
|
65
65
|
/**
|
|
@@ -357,7 +357,7 @@ let MJSearchScopeFormComponentExtended = class MJSearchScopeFormComponentExtende
|
|
|
357
357
|
* inline ("82% similar to last run"). Authors use this to immediately
|
|
358
358
|
* see how much a reranker swap or fusion-weight tweak shifted the ranking.
|
|
359
359
|
*/
|
|
360
|
-
this.
|
|
360
|
+
this.previousRunRecordIDs = [];
|
|
361
361
|
this.LastRunSimilarityPercent = null;
|
|
362
362
|
/**
|
|
363
363
|
* Whether the CSV export is currently running. Drives the button's disabled
|
|
@@ -434,8 +434,8 @@ let MJSearchScopeFormComponentExtended = class MJSearchScopeFormComponentExtende
|
|
|
434
434
|
// Compute Kendall-tau against the prior run, then capture this
|
|
435
435
|
// run's order as the next baseline.
|
|
436
436
|
const currentIDs = this.PreviewResults.map(r => r.RecordID);
|
|
437
|
-
if (this.
|
|
438
|
-
const tau = MJSearchScopeFormComponentExtended_1.kendallTauOnSharedItems(this.
|
|
437
|
+
if (this.previousRunRecordIDs.length > 0 && currentIDs.length > 0) {
|
|
438
|
+
const tau = MJSearchScopeFormComponentExtended_1.kendallTauOnSharedItems(this.previousRunRecordIDs, currentIDs);
|
|
439
439
|
if (tau !== null) {
|
|
440
440
|
// Map [-1, 1] tau onto a [0, 100] "% similar" gauge so non-stats
|
|
441
441
|
// authors can read it. -1 (reverse) = 0%, 0 (uncorrelated) = 50%,
|
|
@@ -443,7 +443,7 @@ let MJSearchScopeFormComponentExtended = class MJSearchScopeFormComponentExtende
|
|
|
443
443
|
this.LastRunSimilarityPercent = Math.round((tau + 1) * 50);
|
|
444
444
|
}
|
|
445
445
|
}
|
|
446
|
-
this.
|
|
446
|
+
this.previousRunRecordIDs = currentIDs;
|
|
447
447
|
},
|
|
448
448
|
});
|
|
449
449
|
}
|