@memberjunction/ng-dashboards 6.2.0-edge.4 → 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 +58 -0
- package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -0
- package/dist/AI/components/vectors/sensitive-fields.js +251 -0
- package/dist/AI/components/vectors/sensitive-fields.js.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts +139 -0
- package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -0
- package/dist/AI/components/vectors/vector-document-rules.js +182 -0
- package/dist/AI/components/vectors/vector-document-rules.js.map +1 -0
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts +83 -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 +546 -271
- 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-agent-context.d.ts +11 -1
- package/dist/Communication/communication-agent-context.d.ts.map +1 -1
- package/dist/Communication/communication-agent-context.js +15 -0
- package/dist/Communication/communication-agent-context.js.map +1 -1
- package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
- package/dist/Communication/communication-dashboard.component.js +5 -0
- package/dist/Communication/communication-dashboard.component.js.map +1 -1
- 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-providers-resource.component.d.ts +27 -1
- package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
- package/dist/Communication/communication-providers-resource.component.js +722 -78
- package/dist/Communication/communication-providers-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 +49 -0
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +220 -55
- 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/DevTools/app-state-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/app-state-inspector.component.js +1 -0
- package/dist/DevTools/app-state-inspector.component.js.map +1 -1
- package/dist/DevTools/class-registry.component.d.ts.map +1 -1
- package/dist/DevTools/class-registry.component.js +1 -0
- package/dist/DevTools/class-registry.component.js.map +1 -1
- package/dist/DevTools/event-monitor.component.d.ts.map +1 -1
- package/dist/DevTools/event-monitor.component.js +2 -0
- package/dist/DevTools/event-monitor.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.d.ts.map +1 -1
- package/dist/DevTools/graphql-console.component.js.map +1 -1
- package/dist/DevTools/grid-width-lab.component.d.ts.map +1 -1
- package/dist/DevTools/grid-width-lab.component.js +1 -0
- package/dist/DevTools/grid-width-lab.component.js.map +1 -1
- package/dist/DevTools/layout-inspector.component.d.ts.map +1 -1
- package/dist/DevTools/layout-inspector.component.js +1 -0
- package/dist/DevTools/layout-inspector.component.js.map +1 -1
- package/dist/DevTools/lazy-module-status.component.d.ts.map +1 -1
- package/dist/DevTools/lazy-module-status.component.js +1 -0
- package/dist/DevTools/lazy-module-status.component.js.map +1 -1
- package/dist/DevTools/settings-explorer.component.d.ts.map +1 -1
- package/dist/DevTools/settings-explorer.component.js +1 -0
- package/dist/DevTools/settings-explorer.component.js.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.d.ts.map +1 -1
- package/dist/DevTools/tab-strip-lab.component.js +1 -0
- package/dist/DevTools/tab-strip-lab.component.js.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +5 -0
- package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
- package/dist/EntityAdmin/entity-admin-dashboard.component.js +8 -5
- package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
- package/dist/Integration/components/overview/overview.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +2 -2
- package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts +11 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js +24 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipeline.engine.js.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts +16 -2
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.d.ts.map +1 -1
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js +87 -33
- package/dist/KnowledgeHub/components/feature-pipelines/feature-pipelines-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-inspector.component.d.ts +130 -0
- package/dist/LoginStudio/login-studio-inspector.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-inspector.component.js +781 -0
- package/dist/LoginStudio/login-studio-inspector.component.js.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts +161 -0
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js +890 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -0
- 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/Workflows/components/workflow-runs-resource.component.js +4 -4
- package/dist/Workflows/components/workflow-runs-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/core-dashboards.module.d.ts +2 -1
- package/dist/core-dashboards.module.d.ts.map +1 -1
- package/dist/core-dashboards.module.js +11 -3
- package/dist/core-dashboards.module.js.map +1 -1
- package/dist/public-api.d.ts +3 -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 +72 -69
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chief-of-staff-dashboard.component.js","sourceRoot":"","sources":["../../src/ChiefOfStaff/chief-of-staff-dashboard.component.ts","../../src/ChiefOfStaff/chief-of-staff-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { CompositeKey, EntityInfo, LogError, RunView, RunViewParams } from '@memberjunction/core';\nimport {\n MJAIAgentRequestEntity,\n MJAIAgentUserPolicyEntity,\n MJUserRoutineEntity,\n ResourceData,\n} from '@memberjunction/core-entities';\nimport { RegisterClass, UUIDsEqual, UUIDSet, MJGlobal } from '@memberjunction/global';\nimport { ActionParam } from '@memberjunction/actions-base';\nimport { GraphQLActionClient, GraphQLDataProvider } from '@memberjunction/graphql-dataprovider';\nimport { BaseResourceComponent } from '@memberjunction/ng-shared';\nimport { BaseFormComponent } from '@memberjunction/ng-base-forms';\nimport { AgentRequestPanelResult } from '@memberjunction/ng-agent-requests';\nimport { TabConfig } from '@memberjunction/ng-ui-components';\nimport { AIEngineBase } from '@memberjunction/ai-engine-base';\nimport {\n BizAppsTaskRecordLike,\n BuildTaskRecordKey,\n BuildChiefOfStaffAgentContext,\n BuildCockpitScopeFilters,\n CalculateChiefOfStaffMetrics,\n CHIEF_OF_STAFF_AGENT_NAME,\n GetTaskPriorityClass,\n ChiefOfStaffMetrics,\n ChiefOfStaffTab,\n HealthFilter,\n IsApprovalRequest,\n PolicyCalendarChannelModeValue,\n PolicyCoordinationModeValue,\n PolicyDataAccessModeValue,\n PolicyEmailChannelModeValue,\n PolicyGovernanceSummary,\n PolicyMessagingChannelModeValue,\n PolicyPhoneChannelModeValue,\n ResolvePersonTaskScope,\n PolicyStatusValue,\n PriorityObjectiveCardViewModel,\n RequestSummaryItem,\n ResolvePriorityObjectiveByIDOrName,\n RoutineSummaryItem,\n TaskHealthStatus,\n VALID_CHIEF_OF_STAFF_TABS,\n VALID_HEALTH_FILTERS,\n ValidateChiefOfStaffTabParam,\n ValidateHealthFilterParam,\n ValidateSearchQueryParam,\n} from './chief-of-staff-agent-context';\n\n/** OpenApp entity the cockpit reads and edits for priorities and OKRs. Not a core entity: never assume its key is `ID`. */\nconst BIZAPPS_TASKS_ENTITY_NAME = 'MJ_BizApps_Tasks: Tasks';\n\nexport interface GovernancePolicyDraft {\n DisplayNameOverride: string;\n Status: PolicyStatusValue;\n OnboardingStatus: MJAIAgentUserPolicyEntity['OnboardingStatus'];\n CoordinationMode: PolicyCoordinationModeValue;\n DefaultDataAccessMode: PolicyDataAccessModeValue;\n EmailChannelMode: PolicyEmailChannelModeValue;\n CalendarChannelMode: PolicyCalendarChannelModeValue;\n PhoneChannelMode: PolicyPhoneChannelModeValue;\n MessagingChannelMode: PolicyMessagingChannelModeValue;\n AllowInterAgentCoordination: boolean;\n RequireApprovalForExternalComms: boolean;\n RequireApprovalForFinancials: boolean;\n RequireApprovalForDestructiveActions: boolean;\n AutoApproveAmountThreshold: number | null;\n InstructionsOverride: string;\n}\n\nexport interface TaskQuickEditDraft {\n Status: string;\n HealthStatus: TaskHealthStatus | null;\n PercentComplete: number | null;\n ConfidenceScore: number | null;\n DueAt: string;\n Description: string;\n}\n\n@RegisterClass(BaseResourceComponent, 'ChiefOfStaffDashboard')\n@RegisterClass(BaseResourceComponent, 'ChiefOfStaffResource')\n@Component({\n standalone: false,\n selector: 'mj-chief-of-staff-dashboard',\n templateUrl: './chief-of-staff-dashboard.component.html',\n styleUrls: ['./chief-of-staff-dashboard.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ChiefOfStaffDashboardComponent\n extends BaseResourceComponent\n implements OnInit, OnDestroy\n{\n private cdr = inject(ChangeDetectorRef);\n protected override destroy$ = new Subject<void>();\n private initialParamsApplied = false;\n\n public IsLoading = true;\n public IsSavingPolicy = false;\n public BusyRequestID: string | null = null;\n public BusyRoutineID: string | null = null;\n public FeedbackBanner: { Type: 'success' | 'error'; Message: string } | null = null;\n\n public ActiveTab: ChiefOfStaffTab = 'overview';\n public SearchText = '';\n public HealthFilter: HealthFilter = 'all';\n\n public PolicyEntity: MJAIAgentUserPolicyEntity | null = null;\n public DraftPolicy: GovernancePolicyDraft = this.createDefaultDraftPolicy();\n public PolicyDirty = false;\n\n public Tasks: BizAppsTaskRecordLike[] = [];\n /** False when the signed-in user has no `MJ_BizApps_Common: People` record linked via `LinkedUserID`; the Priorities tab then shows guidance instead of tasks. */\n public HasLinkedPerson = true;\n public Routines: MJUserRoutineEntity[] = [];\n public Requests: MJAIAgentRequestEntity[] = [];\n public Metrics: ChiefOfStaffMetrics = CalculateChiefOfStaffMetrics([], [], []);\n\n public ExpandedPriorityIDs = new UUIDSet();\n public SelectedRequest: MJAIAgentRequestEntity | null = null;\n public ShowRequestDialog = false;\n\n public SelectedTask: BizAppsTaskRecordLike | null = null;\n public ShowTaskDrawer = false;\n public IsSavingTask = false;\n public TaskDirty = false;\n public DraftTaskEdits: TaskQuickEditDraft = {\n Status: 'Open',\n HealthStatus: 'OnTrack',\n PercentComplete: 0,\n ConfidenceScore: null,\n DueAt: '',\n Description: '',\n };\n public readonly TaskStatusOptions: readonly string[] = [\n 'Open',\n 'In Progress',\n 'Waiting on dependency',\n 'Blocked',\n 'Completed',\n ];\n\n public readonly StatusOptions: readonly PolicyStatusValue[] = ['Active', 'Paused', 'Disabled'];\n public readonly CoordinationModeOptions: readonly {\n Value: PolicyCoordinationModeValue;\n Label: string;\n Description: string;\n }[] = [\n {\n Value: 'Observer',\n Label: 'Observer',\n Description: 'Monitors signals and prepares briefings; never initiates changes.',\n },\n {\n Value: 'Coordinator',\n Label: 'Coordinator',\n Description: 'Tracks priorities, drafts communications, and requests approval before high-impact actions.',\n },\n {\n Value: 'Autonomous',\n Label: 'Autonomous',\n Description: 'Executes within policy guardrails and auto-approval thresholds.',\n },\n ];\n public readonly DataAccessModeOptions: readonly {\n Value: PolicyDataAccessModeValue;\n Label: string;\n }[] = [\n { Value: 'ReadOnly', Label: 'Read Only' },\n { Value: 'AllowListOnly', Label: 'Allow-List Only' },\n { Value: 'UserCeiling', Label: 'User Ceiling (Full Delegated Access)' },\n ];\n public readonly EmailChannelOptions: readonly {\n Value: PolicyEmailChannelModeValue;\n Label: string;\n }[] = [\n { Value: 'Disabled', Label: 'Disabled' },\n { Value: 'ReadOnly', Label: 'Read Only' },\n { Value: 'DraftOnly', Label: 'Draft Only' },\n { Value: 'SendAsAgent', Label: 'Send as Chief of Staff' },\n { Value: 'SendAsUser', Label: 'Send on Behalf of User' },\n ];\n public readonly CalendarChannelOptions: readonly {\n Value: PolicyCalendarChannelModeValue;\n Label: string;\n }[] = [\n { Value: 'Disabled', Label: 'Disabled' },\n { Value: 'ReadOnly', Label: 'Read Only' },\n { Value: 'ProposeWithApproval', Label: 'Propose with Approval' },\n { Value: 'Autonomous', Label: 'Autonomous Scheduling' },\n ];\n public readonly PhoneChannelOptions: readonly {\n Value: PolicyPhoneChannelModeValue;\n Label: string;\n }[] = [\n { Value: 'Disabled', Label: 'Disabled' },\n { Value: 'InboundOnly', Label: 'Inbound Only' },\n { Value: 'OutboundWithApproval', Label: 'Outbound with Approval' },\n { Value: 'OutboundAutonomous', Label: 'Outbound Autonomous' },\n ];\n public readonly MessagingChannelOptions: readonly {\n Value: PolicyMessagingChannelModeValue;\n Label: string;\n }[] = [\n { Value: 'Disabled', Label: 'Disabled' },\n { Value: 'Enabled', Label: 'Enabled' },\n ];\n public readonly HealthFilterOptions: readonly {\n Value: HealthFilter;\n Label: string;\n }[] = [\n { Value: 'all', Label: 'All Health States' },\n { Value: 'OnTrack', Label: 'On Track' },\n { Value: 'AtRisk', Label: 'At Risk' },\n { Value: 'OffTrack', Label: 'Off Track' },\n { Value: 'Completed', Label: 'Completed' },\n { Value: 'Paused', Label: 'Paused' },\n ];\n\n public get Tabs(): TabConfig[] {\n return [\n { key: 'overview', label: 'Overview', icon: 'fa-solid fa-compass' },\n {\n key: 'priorities',\n label: 'Priorities & OKRs',\n icon: 'fa-solid fa-bullseye',\n badge:\n this.Metrics.PriorityObjectiveCount > 0\n ? this.Metrics.PriorityObjectiveCount\n : null,\n },\n {\n key: 'approvals-wakes',\n label: 'Approvals & Wakes',\n icon: 'fa-solid fa-bell-concierge',\n badge:\n this.Metrics.PendingApprovalCount > 0\n ? this.Metrics.PendingApprovalCount\n : null,\n badgeVariant: this.Metrics.PendingApprovalCount > 0 ? 'warning' : undefined,\n },\n {\n key: 'governance',\n label: 'Governance Policy',\n icon: 'fa-solid fa-shield-halved',\n },\n ];\n }\n\n public get ChiefOfStaffDisplayName(): string {\n const override = this.DraftPolicy.DisplayNameOverride.trim();\n return override.length > 0 ? override : 'My Chief of Staff';\n }\n\n public get FilteredPriorityCards(): PriorityObjectiveCardViewModel[] {\n const search = this.SearchText.trim().toLowerCase();\n return this.Metrics.PriorityCards.filter((card) => {\n if (this.HealthFilter !== 'all' && card.EffectiveHealth !== this.HealthFilter) {\n return false;\n }\n if (!search) {\n return true;\n }\n const nameMatch = card.Task.Name.toLowerCase().includes(search);\n const descMatch = (card.Task.Description ?? '').toLowerCase().includes(search);\n const subtaskMatch = card.Subtasks.some((sub) =>\n sub.Name.toLowerCase().includes(search),\n );\n return nameMatch || descMatch || subtaskMatch;\n });\n }\n\n public get PendingRequests(): MJAIAgentRequestEntity[] {\n const search = this.SearchText.trim().toLowerCase();\n return this.Requests.filter((r) => {\n if (r.Status !== 'Requested' || !IsApprovalRequest(r)) {\n return false;\n }\n if (!search) {\n return true;\n }\n return (r.Request ?? '').toLowerCase().includes(search);\n });\n }\n\n public get RecentResolvedRequests(): MJAIAgentRequestEntity[] {\n return this.Requests.filter((r) => r.Status !== 'Requested' && IsApprovalRequest(r)).slice(\n 0,\n 8,\n );\n }\n\n public get FilteredRoutines(): MJUserRoutineEntity[] {\n const search = this.SearchText.trim().toLowerCase();\n if (!search) {\n return this.Routines;\n }\n return this.Routines.filter(\n (r) =>\n r.Name.toLowerCase().includes(search) ||\n (r.Description ?? '').toLowerCase().includes(search),\n );\n }\n\n async ngOnInit(): Promise<void> {\n super.ngOnInit();\n const initial = this.GetQueryParams();\n this.applyQueryParams(initial);\n this.initialParamsApplied = true;\n\n await this.LoadCockpitData();\n this.registerAgentTools();\n\n this.navigationService.ResourceReattached$.pipe(\n filter((c) => c === this),\n takeUntil(this.destroy$),\n ).subscribe(() => this.publishAgentContext());\n\n this.NotifyLoadComplete();\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Chief of Staff';\n }\n\n async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-user-tie';\n }\n\n protected override OnQueryParamsChanged(\n params: Record<string, string>,\n _source: 'popstate' | 'deeplink',\n ): void {\n this.applyQueryParams(params);\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n\n private applyQueryParams(params: Record<string, string>): void {\n const rawTab = params['tab'] as ChiefOfStaffTab | undefined;\n this.ActiveTab =\n rawTab && VALID_CHIEF_OF_STAFF_TABS.includes(rawTab) ? rawTab : 'overview';\n\n this.SearchText = params['search'] ?? '';\n\n const rawHealth = params['health'] as HealthFilter | undefined;\n this.HealthFilter =\n rawHealth && VALID_HEALTH_FILTERS.includes(rawHealth) ? rawHealth : 'all';\n }\n\n private syncQueryParams(): void {\n if (!this.initialParamsApplied) {\n return;\n }\n this.UpdateQueryParams({\n tab: this.ActiveTab === 'overview' ? null : this.ActiveTab,\n search: this.SearchText.trim().length > 0 ? this.SearchText.trim() : null,\n health: this.HealthFilter === 'all' ? null : this.HealthFilter,\n });\n }\n\n public async LoadCockpitData(): Promise<void> {\n this.IsLoading = true;\n this.cdr.markForCheck();\n\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const currentUserId = this.ProviderToUse.CurrentUser?.ID;\n if (!currentUserId) {\n // Every cockpit query is user-scoped; without a user there is nothing safe to show.\n this.showBanner('error', 'No signed-in user is available; the cockpit cannot load.');\n return;\n }\n\n const chiefOfStaffAgentId = await this.resolveChiefOfStaffAgentId();\n if (!chiefOfStaffAgentId) {\n this.showBanner('error', `The \"${CHIEF_OF_STAFF_AGENT_NAME}\" agent is not installed in this environment.`);\n return;\n }\n this.chiefOfStaffAgentId = chiefOfStaffAgentId;\n\n const bizAppsTasksEntity = this.bizAppsTasksEntityInfo;\n const scope = BuildCockpitScopeFilters(currentUserId, chiefOfStaffAgentId);\n\n const viewParams: RunViewParams[] = [\n {\n EntityName: 'MJ: AI Agent User Policies',\n ExtraFilter: scope.Policy,\n OrderBy: '__mj_UpdatedAt DESC',\n ResultType: 'entity_object',\n },\n {\n EntityName: 'MJ: User Routines',\n ExtraFilter: scope.Routines,\n OrderBy: 'NextRunAt ASC, Name ASC',\n ResultType: 'entity_object',\n },\n {\n EntityName: 'MJ: AI Agent Requests',\n ExtraFilter: scope.Requests,\n OrderBy: 'Priority DESC, RequestedAt DESC',\n MaxRows: 100,\n ResultType: 'entity_object',\n },\n ];\n\n const taskScopeFilter = bizAppsTasksEntity\n ? await this.resolveTaskScopeFilter(rv, currentUserId)\n : null;\n if (bizAppsTasksEntity && taskScopeFilter) {\n viewParams.push(this.buildTasksViewParams(bizAppsTasksEntity, taskScopeFilter));\n }\n\n const results = await rv.RunViews(viewParams);\n const [policyRes, routineRes, requestRes, taskRes] = results;\n\n const policies = policyRes?.Success\n ? (policyRes.Results as MJAIAgentUserPolicyEntity[])\n : [];\n this.PolicyEntity = policies.length > 0 ? policies[0] : null;\n this.DraftPolicy = this.buildDraftFromEntity(this.PolicyEntity);\n this.PolicyDirty = false;\n\n this.Routines = routineRes?.Success\n ? (routineRes.Results as MJUserRoutineEntity[])\n : [];\n\n this.Requests = requestRes?.Success\n ? (requestRes.Results as MJAIAgentRequestEntity[])\n : [];\n\n if (taskRes && !taskRes.Success) {\n this.showBanner(\n 'error',\n `Failed to load Priorities & OKRs: ${taskRes.ErrorMessage || 'Unknown error'}`,\n );\n }\n\n this.Tasks =\n taskRes && taskRes.Success\n ? (taskRes.Results as BizAppsTaskRecordLike[])\n : [];\n\n this.recalculateMetrics();\n\n // Auto-expand the first priority card if none expanded yet\n if (this.ExpandedPriorityIDs.Size === 0 && this.Metrics.PriorityCards.length > 0) {\n this.ExpandedPriorityIDs.Add(this.Metrics.PriorityCards[0].Task.ID);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to load Chief of Staff data: ${msg}`);\n } finally {\n this.IsLoading = false;\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n }\n\n private recalculateMetrics(): void {\n const routineSummaries: RoutineSummaryItem[] = this.Routines.map((r) => ({\n ID: r.ID,\n Name: r.Name,\n Status: r.Status,\n ScheduleMode: r.ScheduleMode,\n CronExpression: r.CronExpression,\n NextRunAt: r.NextRunAt,\n LastRunAt: r.LastRunAt,\n LastRunStatus: r.LastRunStatus,\n }));\n\n const requestSummaries: RequestSummaryItem[] = this.Requests.map((req) => ({\n ID: req.ID,\n Request: req.Request,\n Status: req.Status,\n Priority: req.Priority,\n RequestedAt: req.RequestedAt,\n ExpiresAt: req.ExpiresAt,\n RequestType: req.RequestType,\n RequestTypeID: req.RequestTypeID,\n }));\n\n this.Metrics = CalculateChiefOfStaffMetrics(\n this.Tasks,\n routineSummaries,\n requestSummaries,\n );\n }\n\n private createDefaultDraftPolicy(): GovernancePolicyDraft {\n return {\n DisplayNameOverride: 'Chief of Staff',\n Status: 'Active',\n OnboardingStatus: 'Completed',\n CoordinationMode: 'Coordinator',\n DefaultDataAccessMode: 'UserCeiling',\n EmailChannelMode: 'DraftOnly',\n CalendarChannelMode: 'ProposeWithApproval',\n PhoneChannelMode: 'Disabled',\n MessagingChannelMode: 'Enabled',\n AllowInterAgentCoordination: true,\n RequireApprovalForExternalComms: true,\n RequireApprovalForFinancials: true,\n RequireApprovalForDestructiveActions: true,\n AutoApproveAmountThreshold: 0,\n InstructionsOverride: '',\n };\n }\n\n private buildDraftFromEntity(\n entity: MJAIAgentUserPolicyEntity | null,\n ): GovernancePolicyDraft {\n if (!entity) {\n return this.createDefaultDraftPolicy();\n }\n return {\n DisplayNameOverride: entity.DisplayNameOverride ?? '',\n Status: entity.Status,\n OnboardingStatus: entity.OnboardingStatus,\n CoordinationMode: entity.CoordinationMode,\n DefaultDataAccessMode: entity.DefaultDataAccessMode,\n EmailChannelMode: entity.EmailChannelMode,\n CalendarChannelMode: entity.CalendarChannelMode,\n PhoneChannelMode: entity.PhoneChannelMode,\n MessagingChannelMode: entity.MessagingChannelMode,\n AllowInterAgentCoordination: entity.AllowInterAgentCoordination,\n RequireApprovalForExternalComms: entity.RequireApprovalForExternalComms,\n RequireApprovalForFinancials: entity.RequireApprovalForFinancials,\n RequireApprovalForDestructiveActions: entity.RequireApprovalForDestructiveActions,\n AutoApproveAmountThreshold: entity.AutoApproveAmountThreshold,\n InstructionsOverride: entity.InstructionsOverride ?? '',\n };\n }\n\n private buildGovernanceSummary(): PolicyGovernanceSummary {\n return {\n HasPolicyRecord: this.PolicyEntity !== null,\n DisplayName: this.ChiefOfStaffDisplayName,\n Status: this.DraftPolicy.Status,\n OnboardingStatus: this.DraftPolicy.OnboardingStatus,\n CoordinationMode: this.DraftPolicy.CoordinationMode,\n DefaultDataAccessMode: this.DraftPolicy.DefaultDataAccessMode,\n EmailChannelMode: this.DraftPolicy.EmailChannelMode,\n CalendarChannelMode: this.DraftPolicy.CalendarChannelMode,\n PhoneChannelMode: this.DraftPolicy.PhoneChannelMode,\n MessagingChannelMode: this.DraftPolicy.MessagingChannelMode,\n AllowInterAgentCoordination: this.DraftPolicy.AllowInterAgentCoordination,\n RequireApprovalForExternalComms: this.DraftPolicy.RequireApprovalForExternalComms,\n RequireApprovalForFinancials: this.DraftPolicy.RequireApprovalForFinancials,\n RequireApprovalForDestructiveActions:\n this.DraftPolicy.RequireApprovalForDestructiveActions,\n AutoApproveAmountThreshold: this.DraftPolicy.AutoApproveAmountThreshold,\n };\n }\n\n // =========================================================================\n // Tab / Filter / Search Actions\n // =========================================================================\n\n public OnTabChange(tabId: string): void {\n if (VALID_CHIEF_OF_STAFF_TABS.includes(tabId as ChiefOfStaffTab)) {\n this.ActiveTab = tabId as ChiefOfStaffTab;\n this.syncQueryParams();\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n }\n\n public OnSearchChange(value: string): void {\n this.SearchText = value;\n this.syncQueryParams();\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n\n public OnHealthFilterChange(filterVal: HealthFilter): void {\n this.HealthFilter = filterVal;\n this.syncQueryParams();\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n\n public ClearFilters(): void {\n this.SearchText = '';\n this.HealthFilter = 'all';\n this.syncQueryParams();\n this.publishAgentContext();\n this.cdr.markForCheck();\n }\n\n public TogglePriorityExpanded(taskId: string): void {\n if (this.ExpandedPriorityIDs.Has(taskId)) {\n this.ExpandedPriorityIDs.Delete(taskId);\n } else {\n this.ExpandedPriorityIDs.Add(taskId);\n }\n this.cdr.markForCheck();\n }\n\n public IsPriorityExpanded(taskId: string): boolean {\n return this.ExpandedPriorityIDs.Has(taskId);\n }\n\n public get CanOpenFullTaskForm(): boolean {\n if (!this.SelectedTask) return false;\n return !!MJGlobal.Instance.ClassFactory.GetRegistration(\n BaseFormComponent,\n BIZAPPS_TASKS_ENTITY_NAME,\n );\n }\n\n public get SelectedTaskIsObjective(): boolean {\n if (!this.SelectedTask) return false;\n return !this.SelectedTask.ParentID;\n }\n\n /** Resolved once per load from the agent's metadata name; null until LoadCockpitData has run. */\n private chiefOfStaffAgentId: string | null = null;\n\n /**\n * Looks the Chief of Staff agent up by name through the AI engine's cached agents, so the\n * cockpit carries no hardcoded agent id and follows whichever provider it is embedded under.\n */\n private async resolveChiefOfStaffAgentId(): Promise<string | null> {\n const engine = <AIEngineBase>AIEngineBase.GetProviderInstance(this.ProviderToUse, AIEngineBase);\n await engine.EnsureLoaded(this.ProviderToUse.CurrentUser, this.ProviderToUse);\n const agent = engine.GetAgentByName(CHIEF_OF_STAFF_AGENT_NAME);\n return agent?.ID ?? null;\n }\n\n private get bizAppsTasksEntityInfo(): EntityInfo | undefined {\n return this.ProviderToUse.EntityByName(BIZAPPS_TASKS_ENTITY_NAME);\n }\n\n /**\n * Builds the primary key for a BizApps task. Tasks is an OpenApp entity, so the key is\n * derived from its metadata rather than assuming a column named `ID`. Returns null (and\n * surfaces an error banner) when the entity is not installed in this environment.\n */\n private taskRecordKey(task: BizAppsTaskRecordLike): CompositeKey | null {\n const entityInfo = this.requireTasksEntityInfo();\n return entityInfo ? BuildTaskRecordKey(entityInfo, task) : null;\n }\n\n /** For a task id that is not in the loaded list: the bare value maps onto the entity's first key column. */\n private taskRecordKeyFromId(taskId: string): CompositeKey | null {\n const entityInfo = this.requireTasksEntityInfo();\n return entityInfo ? CompositeKey.FromURLSegment(entityInfo, taskId) : null;\n }\n\n private requireTasksEntityInfo(): EntityInfo | undefined {\n const entityInfo = this.bizAppsTasksEntityInfo;\n if (!entityInfo) {\n this.showBanner('error', 'The BizApps Tasks entity is not available in this environment.');\n }\n return entityInfo;\n }\n\n public get SelectedTaskSubtasks(): BizAppsTaskRecordLike[] {\n if (!this.SelectedTask) return [];\n const id = this.SelectedTask.ID;\n return this.Tasks.filter((t) => UUIDsEqual(t.ParentID, id));\n }\n\n public get SelectedTaskParent(): BizAppsTaskRecordLike | null {\n if (!this.SelectedTask || !this.SelectedTask.ParentID) return null;\n const parentId = this.SelectedTask.ParentID;\n return this.Tasks.find((t) => UUIDsEqual(t.ID, parentId)) ?? null;\n }\n\n public OpenTaskRecord(taskId: string, event?: Event): void {\n event?.stopPropagation();\n const task = this.Tasks.find((t) => UUIDsEqual(t.ID, taskId));\n if (task) {\n this.SelectedTask = task;\n this.DraftTaskEdits = {\n Status: task.Status || 'Open',\n HealthStatus: task.HealthStatus || null,\n PercentComplete: task.PercentComplete ?? 0,\n ConfidenceScore: task.ConfidenceScore ?? null,\n DueAt: task.DueAt ? this.formatDateForInput(task.DueAt) : '',\n Description: task.Description ?? '',\n };\n this.TaskDirty = false;\n this.ShowTaskDrawer = true;\n this.cdr.markForCheck();\n } else {\n const key = this.taskRecordKeyFromId(taskId);\n if (key) {\n this.navigationService.OpenEntityRecord(BIZAPPS_TASKS_ENTITY_NAME, key);\n }\n }\n }\n\n public CloseTaskDrawer(): void {\n this.ShowTaskDrawer = false;\n this.SelectedTask = null;\n this.TaskDirty = false;\n this.cdr.markForCheck();\n }\n\n public OpenFullTaskForm(): void {\n if (!this.SelectedTask) return;\n const key = this.taskRecordKey(this.SelectedTask);\n if (key) {\n this.navigationService.OpenEntityRecord(BIZAPPS_TASKS_ENTITY_NAME, key);\n }\n }\n\n public MarkTaskDirty(): void {\n this.TaskDirty = true;\n this.cdr.markForCheck();\n }\n\n public OnTaskStatusChange(event: Event): void {\n if (event.target instanceof HTMLSelectElement) {\n this.DraftTaskEdits.Status = event.target.value;\n this.MarkTaskDirty();\n }\n }\n\n public OnTaskHealthChange(event: Event): void {\n if (event.target instanceof HTMLSelectElement) {\n const val = event.target.value;\n this.DraftTaskEdits.HealthStatus =\n val === 'none' ? null : (val as TaskHealthStatus);\n this.MarkTaskDirty();\n }\n }\n\n public OnTaskPercentChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const num = Number(event.target.value);\n this.DraftTaskEdits.PercentComplete = Number.isFinite(num)\n ? Math.max(0, Math.min(100, Math.round(num)))\n : null;\n this.MarkTaskDirty();\n }\n }\n\n public OnTaskConfidenceChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n const raw = event.target.value.trim();\n if (!raw) {\n this.DraftTaskEdits.ConfidenceScore = null;\n } else {\n const num = Number(raw);\n this.DraftTaskEdits.ConfidenceScore = Number.isFinite(num)\n ? Math.max(0, Math.min(100, Math.round(num)))\n : null;\n }\n this.MarkTaskDirty();\n }\n }\n\n public OnTaskDueAtChange(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.DraftTaskEdits.DueAt = event.target.value;\n this.MarkTaskDirty();\n }\n }\n\n public OnTaskDescriptionChange(event: Event): void {\n if (event.target instanceof HTMLTextAreaElement) {\n this.DraftTaskEdits.Description = event.target.value;\n this.MarkTaskDirty();\n }\n }\n\n private _updateRecordActionId: string | null = null;\n private async resolveUpdateRecordActionId(): Promise<string | null> {\n if (this._updateRecordActionId) {\n return this._updateRecordActionId;\n }\n try {\n const rv = RunView.FromMetadataProvider(this.ProviderToUse);\n const result = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: Actions',\n ExtraFilter: \"Name = 'Update Record'\",\n Fields: ['ID'],\n MaxRows: 1,\n ResultType: 'simple',\n });\n if (result.Success && result.Results && result.Results.length > 0) {\n this._updateRecordActionId = result.Results[0].ID;\n return this._updateRecordActionId;\n }\n return null;\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n LogError(`ChiefOfStaffDashboard: failed to resolve 'Update Record' action: ${msg}`);\n return null;\n }\n }\n\n public async SaveTaskEdits(): Promise<void> {\n if (!this.SelectedTask || this.IsSavingTask) return;\n this.IsSavingTask = true;\n this.cdr.markForCheck();\n\n try {\n const taskId = this.SelectedTask.ID;\n const key = this.taskRecordKey(this.SelectedTask);\n if (!key) {\n return;\n }\n\n const actionId = await this.resolveUpdateRecordActionId();\n if (!actionId) {\n throw new Error(\"Action 'Update Record' not found in metadata.\");\n }\n\n const updates: Record<string, string | number | Date | null> = {\n Status: this.DraftTaskEdits.Status,\n HealthStatus: this.DraftTaskEdits.HealthStatus,\n PercentComplete: this.DraftTaskEdits.PercentComplete,\n ConfidenceScore: this.DraftTaskEdits.ConfidenceScore,\n DueAt: this.DraftTaskEdits.DueAt ? new Date(this.DraftTaskEdits.DueAt) : null,\n Description:\n this.DraftTaskEdits.Description.trim().length > 0\n ? this.DraftTaskEdits.Description.trim()\n : null,\n };\n\n const primaryKeyObj: Record<string, unknown> = {};\n for (const kvp of key.KeyValuePairs) {\n primaryKeyObj[kvp.FieldName] = kvp.Value;\n }\n\n const provider = this.ProviderToUse as GraphQLDataProvider;\n const actionClient = new GraphQLActionClient(provider);\n const params: ActionParam[] = [\n { Name: 'EntityName', Value: BIZAPPS_TASKS_ENTITY_NAME, Type: 'Input' } as ActionParam,\n { Name: 'PrimaryKey', Value: primaryKeyObj, Type: 'Input' } as ActionParam,\n { Name: 'Fields', Value: updates, Type: 'Input' } as ActionParam,\n ];\n\n const result = await actionClient.RunAction(actionId, params);\n if (result.Success) {\n this.showBanner('success', `Task \"${this.SelectedTask.Name}\" updated successfully.`);\n this.TaskDirty = false;\n await this.LoadCockpitData();\n this.SelectedTask = this.Tasks.find((t) => UUIDsEqual(t.ID, taskId)) ?? null;\n } else {\n const errText = result.Message || 'Failed to update task.';\n this.showBanner('error', errText);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to update task: ${msg}`);\n } finally {\n this.IsSavingTask = false;\n this.cdr.markForCheck();\n }\n }\n\n private formatDateForInput(val: Date | string): string {\n const d = val instanceof Date ? val : new Date(val);\n if (isNaN(d.getTime())) return '';\n const yyyy = d.getFullYear();\n const mm = String(d.getMonth() + 1).padStart(2, '0');\n const dd = String(d.getDate()).padStart(2, '0');\n return `${yyyy}-${mm}-${dd}`;\n }\n\n public OpenPolicyEntityRecord(): void {\n if (this.PolicyEntity) {\n this.navigationService.OpenEntityRecord(\n 'MJ: AI Agent User Policies',\n CompositeKey.FromID(this.PolicyEntity.ID),\n );\n }\n }\n\n public OpenRoutineEntityRecord(routineId: string, event?: Event): void {\n event?.stopPropagation();\n this.navigationService.OpenEntityRecord(\n 'MJ: User Routines',\n CompositeKey.FromID(routineId),\n );\n }\n\n // =========================================================================\n // Approvals & Requests Actions\n // =========================================================================\n\n public OpenRequestDetail(request: MJAIAgentRequestEntity): void {\n this.SelectedRequest = request;\n this.ShowRequestDialog = true;\n this.cdr.markForCheck();\n }\n\n public OnRequestDialogClose(result: AgentRequestPanelResult): void {\n this.ShowRequestDialog = false;\n this.SelectedRequest = null;\n if (result.Success) {\n void this.LoadCockpitData();\n } else {\n this.cdr.markForCheck();\n }\n }\n\n public async QuickRespondToRequest(\n request: MJAIAgentRequestEntity,\n decision: 'Approved' | 'Rejected',\n event: Event,\n ): Promise<void> {\n event.stopPropagation();\n if (this.BusyRequestID) {\n return;\n }\n this.BusyRequestID = request.ID;\n this.cdr.markForCheck();\n\n try {\n const currentUserId = this.ProviderToUse.CurrentUser?.ID ?? null;\n request.Status = decision;\n request.RespondedAt = new Date();\n request.ResponseSource = 'Dashboard';\n if (currentUserId) {\n request.ResponseByUserID = currentUserId;\n }\n request.Response = `${decision} via Chief of Staff Executive Cockpit`;\n\n const saved = await request.Save();\n if (saved) {\n this.showBanner('success', `Request marked as ${decision}.`);\n this.recalculateMetrics();\n this.publishAgentContext();\n } else {\n const errText =\n request.LatestResult?.CompleteMessage ?? 'Failed to save request decision.';\n this.showBanner('error', errText);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to update request: ${msg}`);\n } finally {\n this.BusyRequestID = null;\n this.cdr.markForCheck();\n }\n }\n\n // =========================================================================\n // Wake Routines Actions\n // =========================================================================\n\n public async TriggerWakeNow(routine: MJUserRoutineEntity, event?: Event): Promise<void> {\n event?.stopPropagation();\n if (this.BusyRoutineID) {\n return;\n }\n this.BusyRoutineID = routine.ID;\n this.cdr.markForCheck();\n\n try {\n routine.Status = 'Active';\n routine.NextRunAt = new Date();\n const saved = await routine.Save();\n if (saved) {\n this.showBanner(\n 'success',\n `Scheduled immediate wake for \"${routine.Name}\". The User Routine Scheduler will dispatch it on its next tick.`,\n );\n this.recalculateMetrics();\n this.publishAgentContext();\n } else {\n const errText =\n routine.LatestResult?.CompleteMessage ?? 'Failed to schedule immediate wake.';\n this.showBanner('error', errText);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to trigger wake: ${msg}`);\n } finally {\n this.BusyRoutineID = null;\n this.cdr.markForCheck();\n }\n }\n\n public async ToggleRoutineStatus(routine: MJUserRoutineEntity, event?: Event): Promise<void> {\n event?.stopPropagation();\n if (this.BusyRoutineID) {\n return;\n }\n this.BusyRoutineID = routine.ID;\n this.cdr.markForCheck();\n\n try {\n const nextStatus: MJUserRoutineEntity['Status'] =\n routine.Status === 'Active' ? 'Paused' : 'Active';\n routine.Status = nextStatus;\n const saved = await routine.Save();\n if (saved) {\n this.showBanner(\n 'success',\n `Routine \"${routine.Name}\" is now ${nextStatus}.`,\n );\n this.recalculateMetrics();\n this.publishAgentContext();\n } else {\n const errText =\n routine.LatestResult?.CompleteMessage ?? 'Failed to update routine status.';\n this.showBanner('error', errText);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to update routine: ${msg}`);\n } finally {\n this.BusyRoutineID = null;\n this.cdr.markForCheck();\n }\n }\n\n // =========================================================================\n // Governance Policy Quick-Toggles & Save\n // =========================================================================\n\n public MarkPolicyDirty(): void {\n this.PolicyDirty = true;\n this.cdr.markForCheck();\n }\n\n public SetCoordinationMode(mode: PolicyCoordinationModeValue): void {\n this.DraftPolicy.CoordinationMode = mode;\n this.PolicyDirty = true;\n this.cdr.markForCheck();\n }\n\n public SetPolicyStatus(status: PolicyStatusValue): void {\n this.DraftPolicy.Status = status;\n this.PolicyDirty = true;\n this.cdr.markForCheck();\n }\n\n public ToggleApprovalGuardrail(\n field:\n | 'AllowInterAgentCoordination'\n | 'RequireApprovalForExternalComms'\n | 'RequireApprovalForFinancials'\n | 'RequireApprovalForDestructiveActions',\n ): void {\n this.DraftPolicy[field] = !this.DraftPolicy[field];\n this.PolicyDirty = true;\n this.cdr.markForCheck();\n }\n\n public OnDisplayNameInput(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.DraftPolicy.DisplayNameOverride = event.target.value;\n this.MarkPolicyDirty();\n }\n }\n\n public OnThresholdInputEvent(event: Event): void {\n if (event.target instanceof HTMLInputElement) {\n this.OnThresholdInput(event.target.value);\n }\n }\n\n public OnInstructionsOverrideInput(event: Event): void {\n if (event.target instanceof HTMLTextAreaElement) {\n this.DraftPolicy.InstructionsOverride = event.target.value;\n this.MarkPolicyDirty();\n }\n }\n\n public OnThresholdInput(rawValue: string): void {\n const trimmed = rawValue.trim();\n if (!trimmed) {\n this.DraftPolicy.AutoApproveAmountThreshold = null;\n } else {\n const parsed = Number(trimmed);\n if (Number.isFinite(parsed) && parsed >= 0) {\n this.DraftPolicy.AutoApproveAmountThreshold = parsed;\n }\n }\n this.PolicyDirty = true;\n this.cdr.markForCheck();\n }\n\n public ResetDraftPolicy(): void {\n this.DraftPolicy = this.buildDraftFromEntity(this.PolicyEntity);\n this.PolicyDirty = false;\n this.cdr.markForCheck();\n }\n\n public async SaveGovernancePolicy(): Promise<void> {\n if (this.IsSavingPolicy) {\n return;\n }\n this.IsSavingPolicy = true;\n this.cdr.markForCheck();\n\n try {\n let entity = this.PolicyEntity;\n if (!entity) {\n entity = await this.ProviderToUse.GetEntityObject<MJAIAgentUserPolicyEntity>(\n 'MJ: AI Agent User Policies',\n this.ProviderToUse.CurrentUser,\n );\n entity.NewRecord();\n if (!this.chiefOfStaffAgentId) {\n throw new Error(`The \"${CHIEF_OF_STAFF_AGENT_NAME}\" agent id has not been resolved; reload the cockpit.`);\n }\n entity.AgentID = this.chiefOfStaffAgentId;\n const currentUserId = this.ProviderToUse.CurrentUser?.ID;\n if (currentUserId) {\n entity.UserID = currentUserId;\n }\n }\n\n entity.DisplayNameOverride =\n this.DraftPolicy.DisplayNameOverride.trim().length > 0\n ? this.DraftPolicy.DisplayNameOverride.trim()\n : null;\n entity.Status = this.DraftPolicy.Status;\n entity.OnboardingStatus = this.DraftPolicy.OnboardingStatus;\n entity.CoordinationMode = this.DraftPolicy.CoordinationMode;\n entity.DefaultDataAccessMode = this.DraftPolicy.DefaultDataAccessMode;\n entity.EmailChannelMode = this.DraftPolicy.EmailChannelMode;\n entity.CalendarChannelMode = this.DraftPolicy.CalendarChannelMode;\n entity.PhoneChannelMode = this.DraftPolicy.PhoneChannelMode;\n entity.MessagingChannelMode = this.DraftPolicy.MessagingChannelMode;\n entity.AllowInterAgentCoordination = this.DraftPolicy.AllowInterAgentCoordination;\n entity.RequireApprovalForExternalComms =\n this.DraftPolicy.RequireApprovalForExternalComms;\n entity.RequireApprovalForFinancials = this.DraftPolicy.RequireApprovalForFinancials;\n entity.RequireApprovalForDestructiveActions =\n this.DraftPolicy.RequireApprovalForDestructiveActions;\n entity.AutoApproveAmountThreshold = this.DraftPolicy.AutoApproveAmountThreshold;\n entity.InstructionsOverride =\n this.DraftPolicy.InstructionsOverride.trim().length > 0\n ? this.DraftPolicy.InstructionsOverride.trim()\n : null;\n\n const saved = await entity.Save();\n if (saved) {\n this.PolicyEntity = entity;\n this.DraftPolicy = this.buildDraftFromEntity(entity);\n this.PolicyDirty = false;\n this.showBanner('success', 'Chief of Staff governance policy saved.');\n this.publishAgentContext();\n } else {\n const errText =\n entity.LatestResult?.CompleteMessage ?? 'Failed to save governance policy.';\n this.showBanner('error', errText);\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to save governance policy: ${msg}`);\n } finally {\n this.IsSavingPolicy = false;\n this.cdr.markForCheck();\n }\n }\n\n public DismissBanner(): void {\n this.FeedbackBanner = null;\n this.cdr.markForCheck();\n }\n\n /**\n * Resolve the filter scoping Tasks to the signed-in user's linked person. Returns null (and clears\n * `HasLinkedPerson`) when no person is linked, or when the lookup fails after surfacing the error.\n */\n private async resolveTaskScopeFilter(rv: RunView, currentUserId: string): Promise<string | null> {\n try {\n const scope = await ResolvePersonTaskScope(rv, currentUserId);\n this.HasLinkedPerson = scope.HasLinkedPerson;\n return scope.HasLinkedPerson ? scope.Filter : null;\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n this.showBanner('error', `Failed to resolve your People record for Priorities & OKRs: ${msg}`);\n return null;\n }\n }\n\n private buildTasksViewParams(tasksEntity: EntityInfo, extraFilter: string): RunViewParams {\n const fieldNames = new Set((tasksEntity.Fields ?? []).map((f) => f.Name.toLowerCase()));\n const orderParts: string[] = [];\n if (fieldNames.has('ispriority')) {\n orderParts.push('IsPriority DESC');\n }\n if (fieldNames.has('dueat')) {\n orderParts.push('DueAt ASC');\n }\n if (fieldNames.has('name')) {\n orderParts.push('Name ASC');\n }\n return {\n EntityName: BIZAPPS_TASKS_ENTITY_NAME,\n ExtraFilter: extraFilter,\n OrderBy: orderParts.length > 0 ? orderParts.join(', ') : 'DueAt ASC, Name ASC',\n MaxRows: 250,\n ResultType: 'simple',\n };\n }\n\n /** Badge class for a task's `Priority` (Critical/High/Medium/Low). */\n public GetTaskPriorityClass(priority: string | null): string {\n return GetTaskPriorityClass(priority);\n }\n\n private showBanner(type: 'success' | 'error', message: string): void {\n this.FeedbackBanner = { Type: type, Message: message };\n this.cdr.markForCheck();\n }\n\n // =========================================================================\n // UI Formatting Helpers\n // =========================================================================\n\n public GetHealthBadgeLabel(health: TaskHealthStatus): string {\n switch (health) {\n case 'OnTrack':\n return 'On Track';\n case 'AtRisk':\n return 'At Risk';\n case 'OffTrack':\n return 'Off Track';\n case 'Completed':\n return 'Completed';\n case 'Paused':\n return 'Paused';\n default:\n return health;\n }\n }\n\n public GetHealthBadgeIcon(health: TaskHealthStatus): string {\n switch (health) {\n case 'OnTrack':\n return 'fa-solid fa-circle-check';\n case 'AtRisk':\n return 'fa-solid fa-triangle-exclamation';\n case 'OffTrack':\n return 'fa-solid fa-circle-exclamation';\n case 'Completed':\n return 'fa-solid fa-flag-checkered';\n case 'Paused':\n return 'fa-solid fa-circle-pause';\n default:\n return 'fa-solid fa-circle';\n }\n }\n\n public GetPriorityTierLabel(priority: number): string {\n if (priority >= 76) return 'Critical';\n if (priority >= 51) return 'High';\n if (priority >= 26) return 'Normal';\n return 'Low';\n }\n\n public GetPriorityTierClass(priority: number): string {\n if (priority >= 76) return 'priority-critical';\n if (priority >= 51) return 'priority-high';\n if (priority >= 26) return 'priority-normal';\n return 'priority-low';\n }\n\n public IsRequestExpired(request: MJAIAgentRequestEntity): boolean {\n if (!request.ExpiresAt) return false;\n const expires =\n request.ExpiresAt instanceof Date ? request.ExpiresAt : new Date(request.ExpiresAt);\n return expires.getTime() < Date.now();\n }\n\n // =========================================================================\n // Agent Context & Client Tools Wiring\n // =========================================================================\n\n private publishAgentContext(): void {\n if (this.navigationService.IsResourceDetached(this)) {\n return;\n }\n const routineSummaries: RoutineSummaryItem[] = this.Routines.map((r) => ({\n ID: r.ID,\n Name: r.Name,\n Status: r.Status,\n ScheduleMode: r.ScheduleMode,\n CronExpression: r.CronExpression,\n NextRunAt: r.NextRunAt,\n LastRunAt: r.LastRunAt,\n LastRunStatus: r.LastRunStatus,\n }));\n const pendingSummaries: RequestSummaryItem[] = this.PendingRequests.map((req) => ({\n ID: req.ID,\n Request: req.Request,\n Status: req.Status,\n Priority: req.Priority,\n RequestedAt: req.RequestedAt,\n ExpiresAt: req.ExpiresAt,\n }));\n\n const context = BuildChiefOfStaffAgentContext({\n ActiveTab: this.ActiveTab,\n SearchText: this.SearchText,\n HealthFilter: this.HealthFilter,\n Metrics: this.Metrics,\n Governance: this.buildGovernanceSummary(),\n Routines: routineSummaries,\n PendingRequests: pendingSummaries,\n });\n\n this.navigationService.SetAgentContext(this, context);\n }\n\n private registerAgentTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'SwitchChiefOfStaffTab',\n Description:\n \"Switch the active tab in the Chief of Staff Cockpit ('overview', 'priorities', 'approvals-wakes', or 'governance').\",\n ParameterSchema: {\n type: 'object',\n properties: {\n tab: {\n type: 'string',\n enum: VALID_CHIEF_OF_STAFF_TABS,\n description: 'Target tab ID',\n },\n },\n required: ['tab'],\n },\n Handler: async (params) => {\n const raw = params['tab'] as string | undefined;\n const check = ValidateChiefOfStaffTabParam(raw);\n if (!check.ok) {\n return check.result;\n }\n this.OnTabChange(check.value);\n return { Success: true, Data: { ActiveTab: this.ActiveTab } };\n },\n },\n {\n Name: 'FilterPrioritiesByHealth',\n Description:\n \"Filter priority objectives by health status ('all', 'OnTrack', 'AtRisk', 'OffTrack', 'Completed', 'Paused').\",\n ParameterSchema: {\n type: 'object',\n properties: {\n health: {\n type: 'string',\n enum: VALID_HEALTH_FILTERS,\n description: 'Health status filter',\n },\n },\n required: ['health'],\n },\n Handler: async (params) => {\n const raw = params['health'] as string | undefined;\n const check = ValidateHealthFilterParam(raw);\n if (!check.ok) {\n return check.result;\n }\n this.OnHealthFilterChange(check.value);\n if (this.ActiveTab !== 'priorities') {\n this.OnTabChange('priorities');\n }\n return {\n Success: true,\n Data: {\n HealthFilter: this.HealthFilter,\n FilteredPriorityCount: this.FilteredPriorityCards.length,\n },\n };\n },\n },\n {\n Name: 'SearchChiefOfStaffCockpit',\n Description:\n 'Filter visible priority objectives, requests, and wake routines by search text. Pass empty string to clear.',\n ParameterSchema: {\n type: 'object',\n properties: {\n query: {\n type: 'string',\n description: 'Search text; empty string clears.',\n },\n },\n required: ['query'],\n },\n Handler: async (params) => {\n const raw = params['query'] as string | undefined;\n const check = ValidateSearchQueryParam(raw);\n if (!check.ok) {\n return check.result;\n }\n this.OnSearchChange(check.value);\n return {\n Success: true,\n Data: {\n SearchText: this.SearchText,\n FilteredPriorityCount: this.FilteredPriorityCards.length,\n },\n };\n },\n },\n {\n Name: 'InspectPriorityObjective',\n Description:\n 'Expand and focus a priority objective card by ID or name in the Priorities & OKRs tab.',\n ParameterSchema: {\n type: 'object',\n properties: {\n objective: {\n type: 'string',\n description: 'Priority objective ID or name (partial match supported)',\n },\n },\n required: ['objective'],\n },\n Handler: async (params) => {\n const raw = params['objective'] as string | undefined;\n const resolved = ResolvePriorityObjectiveByIDOrName(\n this.Metrics.PriorityCards,\n raw,\n );\n if (!resolved.ok) {\n return { Success: false, ErrorMessage: resolved.error };\n }\n this.ExpandedPriorityIDs.Add(resolved.value.Task.ID);\n this.OnTabChange('priorities');\n return {\n Success: true,\n Data: {\n TaskID: resolved.value.Task.ID,\n Name: resolved.value.Task.Name,\n SubtaskCount: resolved.value.Subtasks.length,\n EffectivePercentComplete: resolved.value.EffectivePercentComplete,\n },\n };\n },\n },\n {\n Name: 'RefreshChiefOfStaffCockpit',\n Description:\n 'Reload priority objectives, pending approvals, wake routines, and governance policy from the server.',\n ParameterSchema: {\n type: 'object',\n properties: {},\n },\n Handler: async () => {\n await this.LoadCockpitData();\n return {\n Success: true,\n Data: {\n PriorityObjectiveCount: this.Metrics.PriorityObjectiveCount,\n PendingApprovalCount: this.Metrics.PendingApprovalCount,\n ActiveWakeRoutineCount: this.Metrics.ActiveWakeRoutineCount,\n },\n };\n },\n },\n ]);\n }\n}\n\nexport function LoadChiefOfStaffDashboard(): void {\n // Intentionally empty: forces inclusion of the @RegisterClass side effect.\n}\n","<mj-page-layout>\n <mj-page-header\n [Title]=\"ChiefOfStaffDisplayName\"\n Subtitle=\"Executive cockpit for strategic priorities, pending approvals, wake routines, and governance policy\"\n Icon=\"fa-solid fa-user-tie\">\n\n <ng-container meta>\n <mj-stat-badge\n Icon=\"fa-solid fa-bullseye\"\n [Count]=\"Metrics.PriorityObjectiveCount\"\n Label=\"priorities\"\n Variant=\"info\">\n </mj-stat-badge>\n @if (Metrics.AtRiskCount + Metrics.OffTrackCount > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-triangle-exclamation\"\n [Count]=\"Metrics.AtRiskCount + Metrics.OffTrackCount\"\n Label=\"at risk\"\n Variant=\"warning\">\n </mj-stat-badge>\n }\n @if (Metrics.PendingApprovalCount > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-bell-concierge\"\n [Count]=\"Metrics.PendingApprovalCount\"\n Label=\"pending approvals\"\n Variant=\"warning\">\n </mj-stat-badge>\n } @else {\n <mj-stat-badge\n Icon=\"fa-solid fa-circle-check\"\n [Count]=\"0\"\n Label=\"pending approvals\"\n Variant=\"success\">\n </mj-stat-badge>\n }\n <mj-stat-badge\n Icon=\"fa-solid fa-clock-rotate-left\"\n [Count]=\"Metrics.ActiveWakeRoutineCount\"\n Label=\"active wakes\"\n Variant=\"info\">\n </mj-stat-badge>\n </ng-container>\n\n <ng-container toolbar>\n <mj-page-search\n Placeholder=\"Filter priorities, requests, or routines...\"\n [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n <mj-refresh-button\n [Loading]=\"IsLoading\"\n [ShowLabel]=\"true\"\n (Refresh)=\"LoadCockpitData()\">\n </mj-refresh-button>\n </ng-container>\n </mj-page-header>\n\n <mj-page-body>\n @if (FeedbackBanner) {\n <div class=\"cos-banner\"\n [class.cos-banner--success]=\"FeedbackBanner.Type === 'success'\"\n [class.cos-banner--error]=\"FeedbackBanner.Type === 'error'\"\n role=\"status\">\n <div class=\"cos-banner__content\">\n <i class=\"fa-solid\"\n [class.fa-circle-check]=\"FeedbackBanner.Type === 'success'\"\n [class.fa-circle-exclamation]=\"FeedbackBanner.Type === 'error'\"></i>\n <span>{{ FeedbackBanner.Message }}</span>\n </div>\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"DismissBanner()\" aria-label=\"Dismiss notification\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n }\n\n <mj-tab-nav\n [Tabs]=\"Tabs\"\n [ActiveKey]=\"ActiveTab\"\n (TabChange)=\"OnTabChange($event)\">\n </mj-tab-nav>\n\n @if (IsLoading) {\n <div class=\"cos-loading\">\n <mj-loading text=\"Loading Chief of Staff cockpit...\"></mj-loading>\n </div>\n } @else {\n <!-- ========================================================= -->\n <!-- TAB 1: OVERVIEW -->\n <!-- ========================================================= -->\n @if (ActiveTab === 'overview') {\n <div class=\"cos-kpi-grid\">\n <div class=\"cos-kpi-card\" (click)=\"OnTabChange('priorities')\">\n <div class=\"cos-kpi-card__header\">\n <span class=\"cos-kpi-card__label\">Priority Objectives</span>\n <div class=\"cos-kpi-card__icon cos-kpi-card__icon--brand\">\n <i class=\"fa-solid fa-bullseye\"></i>\n </div>\n </div>\n <div class=\"cos-kpi-card__value\">{{ Metrics.PriorityObjectiveCount }}</div>\n <div class=\"cos-kpi-card__sub\">\n {{ Metrics.OnTrackCount }} on track · {{ Metrics.SubtaskCount }} milestones\n </div>\n </div>\n\n <div class=\"cos-kpi-card\" (click)=\"OnTabChange('priorities')\">\n <div class=\"cos-kpi-card__header\">\n <span class=\"cos-kpi-card__label\">Avg Objective Progress</span>\n <div class=\"cos-kpi-card__icon cos-kpi-card__icon--success\">\n <i class=\"fa-solid fa-chart-line\"></i>\n </div>\n </div>\n <div class=\"cos-kpi-card__value\">{{ Metrics.AveragePriorityProgress }}%</div>\n <div class=\"cos-kpi-card__sub\">\n @if (Metrics.AverageConfidenceScore !== null) {\n Avg confidence: {{ Metrics.AverageConfidenceScore }}%\n } @else {\n {{ Metrics.CompletedPriorityCount }} completed objectives\n }\n </div>\n </div>\n\n <div class=\"cos-kpi-card\" (click)=\"OnTabChange('approvals-wakes')\">\n <div class=\"cos-kpi-card__header\">\n <span class=\"cos-kpi-card__label\">Pending Approvals</span>\n <div class=\"cos-kpi-card__icon\"\n [class.cos-kpi-card__icon--warning]=\"Metrics.PendingApprovalCount > 0\"\n [class.cos-kpi-card__icon--success]=\"Metrics.PendingApprovalCount === 0\">\n <i class=\"fa-solid fa-bell-concierge\"></i>\n </div>\n </div>\n <div class=\"cos-kpi-card__value\">{{ Metrics.PendingApprovalCount }}</div>\n <div class=\"cos-kpi-card__sub\">\n @if (Metrics.HighPriorityPendingCount > 0) {\n {{ Metrics.HighPriorityPendingCount }} high-priority awaiting decision\n } @else {\n All high-priority requests clear\n }\n </div>\n </div>\n\n <div class=\"cos-kpi-card\" (click)=\"OnTabChange('governance')\">\n <div class=\"cos-kpi-card__header\">\n <span class=\"cos-kpi-card__label\">Governance Posture</span>\n <div class=\"cos-kpi-card__icon cos-kpi-card__icon--brand\">\n <i class=\"fa-solid fa-shield-halved\"></i>\n </div>\n </div>\n <div class=\"cos-kpi-card__value\">{{ DraftPolicy.CoordinationMode }}</div>\n <div class=\"cos-kpi-card__sub\">\n Status: {{ DraftPolicy.Status }} · Email: {{ DraftPolicy.EmailChannelMode }}\n </div>\n </div>\n </div>\n\n <div class=\"cos-overview-columns\">\n <!-- Column 1: Strategic Priorities -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-bullseye\"></i> Strategic Priorities & OKRs\n </h3>\n <p class=\"cos-panel__subtitle\">\n Active priority objectives tracked in MJ_BizApps_Tasks\n </p>\n </div>\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"OnTabChange('priorities')\">\n View All ({{ Metrics.PriorityObjectiveCount }})\n </button>\n </div>\n\n @if (FilteredPriorityCards.length === 0) {\n <div class=\"cos-inline-empty\">\n <i class=\"fa-solid fa-bullseye\"></i>\n <p>No priority objectives found. Ask your Chief of Staff in chat to establish your quarterly priorities.</p>\n </div>\n } @else {\n <div class=\"cos-stack\">\n @for (card of FilteredPriorityCards.slice(0, 4); track card.Task.ID) {\n <div class=\"cos-priority-mini\" (click)=\"OnTabChange('priorities')\">\n <div class=\"cos-priority-mini__top\">\n <span class=\"cos-priority-mini__name\">{{ card.Task.Name }}</span>\n <span class=\"cos-health-pill cos-health-pill--{{ card.EffectiveHealth.toLowerCase() }}\">\n <i class=\"{{ GetHealthBadgeIcon(card.EffectiveHealth) }}\"></i>\n {{ GetHealthBadgeLabel(card.EffectiveHealth) }}\n </span>\n </div>\n <div class=\"cos-progress-row\">\n <div class=\"cos-progress-bar\">\n <div class=\"cos-progress-bar__fill cos-progress-bar__fill--{{ card.EffectiveHealth.toLowerCase() }}\"\n [style.width.%]=\"card.EffectivePercentComplete\"></div>\n </div>\n <span class=\"cos-progress-row__pct\">{{ card.EffectivePercentComplete }}%</span>\n </div>\n <div class=\"cos-priority-mini__meta\">\n <span>\n <i class=\"fa-solid fa-list-check\"></i>\n {{ card.CompletedSubtaskCount }}/{{ card.Subtasks.length }} milestones\n </span>\n @if (card.Task.CheckInCadence) {\n <span>\n <i class=\"fa-solid fa-repeat\"></i> {{ card.Task.CheckInCadence }}\n </span>\n }\n @if (card.Task.DueAt) {\n <span [class.cos-overdue-text]=\"card.IsOverdue\">\n <i class=\"fa-regular fa-calendar\"></i> Due {{ card.Task.DueAt | date:'mediumDate' }}\n </span>\n }\n </div>\n </div>\n }\n </div>\n }\n </section>\n\n <!-- Column 2: Pending Approvals & Wake Schedule -->\n <div class=\"cos-stack\">\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-bell-concierge\"></i> Pending Approvals\n </h3>\n <p class=\"cos-panel__subtitle\">\n Requests awaiting your decision\n </p>\n </div>\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"OnTabChange('approvals-wakes')\">\n Manage ({{ PendingRequests.length }})\n </button>\n </div>\n\n @if (PendingRequests.length === 0) {\n <div class=\"cos-inline-empty\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <p>No pending requests awaiting approval.</p>\n </div>\n } @else {\n <div class=\"cos-stack\">\n @for (req of PendingRequests.slice(0, 3); track req.ID) {\n <div class=\"cos-request-card\" (click)=\"OpenRequestDetail(req)\">\n <div class=\"cos-request-card__top\">\n <span class=\"cos-priority-tag {{ GetPriorityTierClass(req.Priority) }}\">\n {{ GetPriorityTierLabel(req.Priority) }} ({{ req.Priority }})\n </span>\n @if (req.RequestType) {\n <span class=\"cos-meta-badge\">{{ req.RequestType }}</span>\n }\n <span class=\"cos-timestamp\">\n {{ req.RequestedAt | date:'short' }}\n </span>\n </div>\n <p class=\"cos-request-card__text\">{{ req.Request }}</p>\n <div class=\"cos-request-card__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Approved', $event)\">\n <i class=\"fa-solid fa-check\"></i> Approve\n </button>\n <button mjButton variant=\"danger\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Rejected', $event)\">\n <i class=\"fa-solid fa-xmark\"></i> Reject\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"OpenRequestDetail(req); $event.stopPropagation()\">\n Inspect\n </button>\n </div>\n </div>\n }\n </div>\n }\n </section>\n\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i> Autonomous Wake Schedule\n </h3>\n <p class=\"cos-panel__subtitle\">\n Proactive AgentWake routines for your Chief of Staff\n </p>\n </div>\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"OnTabChange('approvals-wakes')\">\n Routines ({{ Routines.length }})\n </button>\n </div>\n\n @if (Routines.length === 0) {\n <div class=\"cos-inline-empty\">\n <i class=\"fa-regular fa-clock\"></i>\n <p>No wake routines configured yet.</p>\n </div>\n } @else {\n <div class=\"cos-stack\">\n @for (routine of Routines.slice(0, 3); track routine.ID) {\n <div class=\"cos-routine-mini\">\n <div class=\"cos-routine-mini__info\">\n <div class=\"cos-routine-mini__title-row\">\n <span class=\"cos-routine-mini__name\">{{ routine.Name }}</span>\n <span class=\"cos-status-chip cos-status-chip--{{ routine.Status.toLowerCase() }}\">\n {{ routine.Status }}\n </span>\n </div>\n <div class=\"cos-routine-mini__meta\">\n @if (routine.NextRunAt) {\n <span>Next wake: {{ routine.NextRunAt | date:'short' }}</span>\n } @else {\n <span>No next wake scheduled</span>\n }\n @if (routine.CronExpression) {\n <span>· Cron: <code>{{ routine.CronExpression }}</code></span>\n }\n </div>\n </div>\n <div class=\"cos-routine-mini__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"BusyRoutineID === routine.ID\"\n (click)=\"TriggerWakeNow(routine, $event)\">\n <i class=\"fa-solid fa-bolt\"></i> Wake Now\n </button>\n </div>\n </div>\n }\n </div>\n }\n </section>\n </div>\n </div>\n }\n\n <!-- ========================================================= -->\n <!-- TAB 2: PRIORITIES & OKRS -->\n <!-- ========================================================= -->\n @if (ActiveTab === 'priorities') {\n <div class=\"cos-filter-bar\">\n <div class=\"cos-filter-pills\" role=\"group\" aria-label=\"Filter priorities by health\">\n @for (opt of HealthFilterOptions; track opt.Value) {\n <button mjButton\n [variant]=\"HealthFilter === opt.Value ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"OnHealthFilterChange(opt.Value)\">\n {{ opt.Label }}\n </button>\n }\n </div>\n @if (HealthFilter !== 'all' || SearchText.trim().length > 0) {\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"ClearFilters()\">\n <i class=\"fa-solid fa-rotate-left\"></i> Clear Filters\n </button>\n }\n </div>\n\n @if (FilteredPriorityCards.length === 0) {\n <mj-empty-state\n [Variant]=\"Metrics.PriorityCards.length === 0 ? 'empty' : 'no-results'\"\n Icon=\"fa-solid fa-bullseye\"\n [Title]=\"!HasLinkedPerson ? 'No People Record Linked to Your User' : Metrics.PriorityCards.length === 0 ? 'No Priority Objectives Tracked Yet' : 'No Priority Objectives Match Your Filter'\"\n [Message]=\"!HasLinkedPerson ? 'Priorities are read from tasks you created or are assigned to. Ask an administrator to link your People record to your user account.' : Metrics.PriorityCards.length === 0 ? 'Chat with your Chief of Staff to onboard your quarterly priorities and milestone schedule.' : 'Try clearing your search or health filter.'\"\n [ActionText]=\"Metrics.PriorityCards.length === 0 ? '' : 'Clear Filters'\"\n ActionIcon=\"fa-solid fa-rotate-left\"\n (Action)=\"ClearFilters()\">\n </mj-empty-state>\n } @else {\n <div class=\"cos-priority-list\">\n @for (card of FilteredPriorityCards; track card.Task.ID) {\n <article class=\"cos-priority-card\">\n <div class=\"cos-priority-card__header\" (click)=\"TogglePriorityExpanded(card.Task.ID)\">\n <div class=\"cos-priority-card__title-group\">\n <button mjButton variant=\"flat\" size=\"sm\"\n class=\"cos-expand-btn\"\n [attr.aria-expanded]=\"IsPriorityExpanded(card.Task.ID)\"\n (click)=\"TogglePriorityExpanded(card.Task.ID); $event.stopPropagation()\">\n <i class=\"fa-solid\"\n [class.fa-chevron-down]=\"IsPriorityExpanded(card.Task.ID)\"\n [class.fa-chevron-right]=\"!IsPriorityExpanded(card.Task.ID)\"></i>\n </button>\n <div>\n <div class=\"cos-priority-card__badges\">\n @if (card.Task.Priority) {\n <span class=\"cos-priority-tag {{ GetTaskPriorityClass(card.Task.Priority) }}\">\n <i class=\"fa-solid fa-flag\"></i> {{ card.Task.Priority }}\n </span>\n }\n <span class=\"cos-health-pill cos-health-pill--{{ card.EffectiveHealth.toLowerCase() }}\">\n <i class=\"{{ GetHealthBadgeIcon(card.EffectiveHealth) }}\"></i>\n {{ GetHealthBadgeLabel(card.EffectiveHealth) }}\n </span>\n @if (card.Task.PlanningPeriod) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-regular fa-calendar-check\"></i> {{ card.Task.PlanningPeriod }}\n </span>\n }\n @if (card.Task.CheckInCadence) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-solid fa-repeat\"></i> {{ card.Task.CheckInCadence }} Check-In\n </span>\n }\n @if (card.Task.ConfidenceScore !== null) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-solid fa-gauge-high\"></i> {{ card.Task.ConfidenceScore }}% Confidence\n </span>\n }\n </div>\n <h3 class=\"cos-priority-card__title\">{{ card.Task.Name }}</h3>\n </div>\n </div>\n\n <div class=\"cos-priority-card__right\">\n <div class=\"cos-priority-card__progress-summary\">\n <span class=\"cos-priority-card__pct\">{{ card.EffectivePercentComplete }}%</span>\n <span class=\"cos-priority-card__milestone-count\">\n {{ card.CompletedSubtaskCount }}/{{ card.Subtasks.length }} milestones\n </span>\n </div>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"OpenTaskRecord(card.Task.ID, $event)\">\n <i class=\"fa-solid fa-sliders\"></i> Inspect & Edit\n </button>\n </div>\n </div>\n\n <div class=\"cos-priority-card__body\">\n @if (card.Task.Description) {\n <p class=\"cos-priority-card__desc\">{{ card.Task.Description }}</p>\n }\n\n <div class=\"cos-progress-row\">\n <div class=\"cos-progress-bar\">\n <div class=\"cos-progress-bar__fill cos-progress-bar__fill--{{ card.EffectiveHealth.toLowerCase() }}\"\n [style.width.%]=\"card.EffectivePercentComplete\"></div>\n </div>\n @if (card.MetricProgressLabel) {\n <span class=\"cos-metric-target-label\">\n <i class=\"fa-solid fa-chart-simple\"></i> {{ card.MetricProgressLabel }}\n </span>\n }\n </div>\n\n <div class=\"cos-priority-card__dates\">\n <span>\n <strong>Status:</strong> {{ card.Task.Status }}\n </span>\n @if (card.Task.DueAt) {\n <span [class.cos-overdue-text]=\"card.IsOverdue\">\n <i class=\"fa-regular fa-calendar\"></i>\n <strong>Target Due:</strong> {{ card.Task.DueAt | date:'mediumDate' }}\n @if (card.IsOverdue) {\n <strong>(Overdue)</strong>\n }\n </span>\n }\n @if (card.Task.NextCheckInDueAt) {\n <span>\n <i class=\"fa-regular fa-bell\"></i>\n <strong>Next Check-In:</strong> {{ card.Task.NextCheckInDueAt | date:'mediumDate' }}\n </span>\n }\n </div>\n\n @if (IsPriorityExpanded(card.Task.ID) && card.Subtasks.length > 0) {\n <div class=\"cos-subtasks\">\n <div class=\"cos-subtasks__header\">\n <span>Milestones & Workstreams ({{ card.Subtasks.length }})</span>\n </div>\n <div class=\"cos-subtasks__list\">\n @for (sub of card.Subtasks; track sub.ID) {\n <div class=\"cos-subtask-row\" (click)=\"OpenTaskRecord(sub.ID, $event)\">\n <div class=\"cos-subtask-row__left\">\n <i class=\"fa-solid\"\n [class.fa-circle-check]=\"sub.Status === 'Completed' || sub.Status === 'Done'\"\n [class.fa-circle-half-stroke]=\"sub.Status === 'In Progress'\"\n [class.fa-regular]=\"sub.Status !== 'Completed' && sub.Status !== 'Done' && sub.Status !== 'In Progress'\"\n [class.fa-circle]=\"sub.Status !== 'Completed' && sub.Status !== 'Done' && sub.Status !== 'In Progress'\"></i>\n <div>\n <div class=\"cos-subtask-row__name\">{{ sub.Name }}</div>\n @if (sub.Description) {\n <div class=\"cos-subtask-row__desc\">{{ sub.Description }}</div>\n }\n </div>\n </div>\n <div class=\"cos-subtask-row__right\">\n <span class=\"cos-meta-badge\">{{ sub.Status }}</span>\n @if (sub.DueAt) {\n <span class=\"cos-subtask-row__due\">\n <i class=\"fa-regular fa-calendar\"></i> {{ sub.DueAt | date:'shortDate' }}\n </span>\n }\n <i class=\"fa-solid fa-chevron-right cos-subtask-row__chevron\"></i>\n </div>\n </div>\n }\n </div>\n </div>\n }\n </div>\n </article>\n }\n </div>\n }\n }\n\n <!-- ========================================================= -->\n <!-- TAB 3: APPROVALS & WAKES -->\n <!-- ========================================================= -->\n @if (ActiveTab === 'approvals-wakes') {\n <div class=\"cos-overview-columns\">\n <!-- Left Column: Pending & Resolved Agent Requests -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-bell-concierge\"></i> Pending Agent Approvals ({{ PendingRequests.length }})\n </h3>\n <p class=\"cos-panel__subtitle\">\n Approve or reject escalations from your Chief of Staff\n </p>\n </div>\n </div>\n\n @if (PendingRequests.length === 0) {\n <div class=\"cos-inline-empty\">\n <i class=\"fa-solid fa-circle-check\"></i>\n <p>Inbox Zero — no pending requests awaiting your decision.</p>\n </div>\n } @else {\n <div class=\"cos-stack\">\n @for (req of PendingRequests; track req.ID) {\n <div class=\"cos-request-card\" (click)=\"OpenRequestDetail(req)\">\n <div class=\"cos-request-card__top\">\n <div class=\"cos-request-card__badges\">\n <span class=\"cos-priority-tag {{ GetPriorityTierClass(req.Priority) }}\">\n {{ GetPriorityTierLabel(req.Priority) }} ({{ req.Priority }})\n </span>\n @if (req.RequestType) {\n <span class=\"cos-meta-badge\"><i class=\"fa-solid fa-tag\"></i> {{ req.RequestType }}</span>\n }\n <span class=\"cos-status-chip cos-status-chip--requested\">\n {{ req.Status }}\n </span>\n @if (IsRequestExpired(req)) {\n <span class=\"cos-status-chip cos-status-chip--disabled\">\n Expired\n </span>\n }\n </div>\n <span class=\"cos-timestamp\">\n {{ req.RequestedAt | date:'short' }}\n </span>\n </div>\n <p class=\"cos-request-card__text\">{{ req.Request }}</p>\n <div class=\"cos-request-card__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Approved', $event)\">\n <i class=\"fa-solid fa-check\"></i> Approve\n </button>\n <button mjButton variant=\"danger\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Rejected', $event)\">\n <i class=\"fa-solid fa-xmark\"></i> Reject\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"OpenRequestDetail(req); $event.stopPropagation()\">\n <i class=\"fa-solid fa-expand\"></i> Full Details / Comment\n </button>\n </div>\n </div>\n }\n </div>\n }\n\n @if (RecentResolvedRequests.length > 0) {\n <div class=\"cos-resolved-section\">\n <h4 class=\"cos-resolved-section__title\">Recent Resolved Decisions</h4>\n <div class=\"cos-stack\">\n @for (req of RecentResolvedRequests; track req.ID) {\n <div class=\"cos-resolved-row\" (click)=\"OpenRequestDetail(req)\">\n <div class=\"cos-resolved-row__main\">\n <span class=\"cos-status-chip cos-status-chip--{{ req.Status.toLowerCase() }}\">\n {{ req.Status }}\n </span>\n <span class=\"cos-resolved-row__text\">{{ req.Request }}</span>\n </div>\n <span class=\"cos-timestamp\">\n {{ (req.RespondedAt || req.RequestedAt) | date:'shortDate' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n </section>\n\n <!-- Right Column: Autonomous Wake Routines -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i> Autonomous Wake Routines ({{ FilteredRoutines.length }})\n </h3>\n <p class=\"cos-panel__subtitle\">\n Scheduled AgentWake routines in MJ: User Routines\n </p>\n </div>\n </div>\n\n @if (FilteredRoutines.length === 0) {\n <div class=\"cos-inline-empty\">\n <i class=\"fa-regular fa-clock\"></i>\n <p>No AgentWake routines found for your Chief of Staff.</p>\n </div>\n } @else {\n <div class=\"cos-stack\">\n @for (routine of FilteredRoutines; track routine.ID) {\n <div class=\"cos-routine-card\">\n <div class=\"cos-routine-card__header\">\n <div>\n <div class=\"cos-routine-card__title-row\">\n <h4 class=\"cos-routine-card__name\">{{ routine.Name }}</h4>\n <span class=\"cos-status-chip cos-status-chip--{{ routine.Status.toLowerCase() }}\">\n {{ routine.Status }}\n </span>\n <span class=\"cos-meta-badge\">\n {{ routine.ScheduleMode }}\n </span>\n </div>\n @if (routine.Description) {\n <p class=\"cos-routine-card__desc\">{{ routine.Description }}</p>\n }\n </div>\n </div>\n\n <div class=\"cos-routine-card__schedule\">\n <div>\n <strong>Next Wake:</strong>\n @if (routine.NextRunAt) {\n {{ routine.NextRunAt | date:'medium' }}\n } @else {\n Not scheduled\n }\n </div>\n @if (routine.CronExpression) {\n <div>\n <strong>Cron:</strong> <code>{{ routine.CronExpression }}</code>\n @if (routine.Timezone) {\n <span>({{ routine.Timezone }})</span>\n }\n </div>\n }\n @if (routine.LastRunAt) {\n <div>\n <strong>Last Run:</strong> {{ routine.LastRunAt | date:'short' }}\n @if (routine.LastRunStatus) {\n <span class=\"cos-meta-badge\">{{ routine.LastRunStatus }}</span>\n }\n </div>\n }\n </div>\n\n <div class=\"cos-routine-card__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"BusyRoutineID === routine.ID\"\n (click)=\"TriggerWakeNow(routine, $event)\">\n <i class=\"fa-solid fa-bolt\"></i> Wake Now\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"BusyRoutineID === routine.ID\"\n (click)=\"ToggleRoutineStatus(routine, $event)\">\n @if (routine.Status === 'Active') {\n <i class=\"fa-solid fa-pause\"></i> Pause\n } @else {\n <i class=\"fa-solid fa-play\"></i> Resume\n }\n </button>\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"OpenRoutineEntityRecord(routine.ID, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n </button>\n </div>\n </div>\n }\n </div>\n }\n </section>\n </div>\n }\n\n <!-- ========================================================= -->\n <!-- TAB 4: GOVERNANCE POLICY -->\n <!-- ========================================================= -->\n @if (ActiveTab === 'governance') {\n <div class=\"cos-governance-container\">\n <div class=\"cos-governance-header\">\n <div>\n <h3 class=\"cos-governance-header__title\">\n <i class=\"fa-solid fa-shield-halved\"></i> Chief of Staff Governance Policy\n </h3>\n <p class=\"cos-governance-header__subtitle\">\n Backed by <code>MJ: AI Agent User Policies</code> — controls coordination autonomy, communication channels, and approval guardrails for your Chief of Staff.\n </p>\n </div>\n <div class=\"cos-governance-header__actions\">\n @if (PolicyEntity) {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"OpenPolicyEntityRecord()\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Policy Record\n </button>\n }\n @if (PolicyDirty) {\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsSavingPolicy\"\n (click)=\"ResetDraftPolicy()\">\n Reset Changes\n </button>\n }\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"IsSavingPolicy || !PolicyDirty\"\n (click)=\"SaveGovernancePolicy()\">\n <i class=\"fa-solid fa-floppy-disk\"></i>\n {{ IsSavingPolicy ? 'Saving...' : 'Save Policy Changes' }}\n </button>\n </div>\n </div>\n\n <!-- Section 1: Coordination Mode -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h4 class=\"cos-panel__title\">1. Autonomy & Coordination Mode</h4>\n <p class=\"cos-panel__subtitle\">\n Select how proactively your Chief of Staff operates across your workspace\n </p>\n </div>\n <div class=\"cos-status-segmented\" role=\"group\" aria-label=\"Agent Status\">\n @for (st of StatusOptions; track st) {\n <button mjButton\n [variant]=\"DraftPolicy.Status === st ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"SetPolicyStatus(st)\">\n {{ st }}\n </button>\n }\n </div>\n </div>\n\n <div class=\"cos-mode-cards\">\n @for (mode of CoordinationModeOptions; track mode.Value) {\n <div class=\"cos-mode-card\"\n [class.cos-mode-card--selected]=\"DraftPolicy.CoordinationMode === mode.Value\"\n (click)=\"SetCoordinationMode(mode.Value)\">\n <div class=\"cos-mode-card__top\">\n <span class=\"cos-mode-card__title\">{{ mode.Label }}</span>\n @if (DraftPolicy.CoordinationMode === mode.Value) {\n <i class=\"fa-solid fa-circle-check cos-mode-card__check\"></i>\n }\n </div>\n <p class=\"cos-mode-card__desc\">{{ mode.Description }}</p>\n </div>\n }\n </div>\n\n <div class=\"cos-form-grid\">\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Custom Display Name</span>\n <input class=\"cos-input\"\n type=\"text\"\n [value]=\"DraftPolicy.DisplayNameOverride\"\n placeholder=\"e.g., Chief of Staff\"\n (input)=\"OnDisplayNameInput($event)\" />\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Default Data Access Mode</span>\n <mj-dropdown [Data]=\"DataAccessModeOptions\" TextField=\"Label\" ValueField=\"Value\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"DraftPolicy.DefaultDataAccessMode\" (ValueChange)=\"MarkPolicyDirty()\">\n </mj-dropdown>\n </label>\n </div>\n </section>\n\n <!-- Section 2: Communication Channel Permissions -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h4 class=\"cos-panel__title\">2. Communication Channel Permissions</h4>\n <p class=\"cos-panel__subtitle\">\n Configure what your Chief of Staff is permitted to do on each channel\n </p>\n </div>\n </div>\n\n <div class=\"cos-form-grid\">\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">\n <i class=\"fa-solid fa-envelope\"></i> Email Channel Mode\n </span>\n <mj-dropdown [Data]=\"EmailChannelOptions\" TextField=\"Label\" ValueField=\"Value\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"DraftPolicy.EmailChannelMode\" (ValueChange)=\"MarkPolicyDirty()\">\n </mj-dropdown>\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">\n <i class=\"fa-regular fa-calendar\"></i> Calendar Channel Mode\n </span>\n <mj-dropdown [Data]=\"CalendarChannelOptions\" TextField=\"Label\" ValueField=\"Value\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"DraftPolicy.CalendarChannelMode\" (ValueChange)=\"MarkPolicyDirty()\">\n </mj-dropdown>\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">\n <i class=\"fa-solid fa-phone\"></i> Phone Channel Mode\n </span>\n <mj-dropdown [Data]=\"PhoneChannelOptions\" TextField=\"Label\" ValueField=\"Value\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"DraftPolicy.PhoneChannelMode\" (ValueChange)=\"MarkPolicyDirty()\">\n </mj-dropdown>\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">\n <i class=\"fa-solid fa-comments\"></i> Messaging Channel Mode\n </span>\n <mj-dropdown [Data]=\"MessagingChannelOptions\" TextField=\"Label\" ValueField=\"Value\" [ValuePrimitive]=\"true\"\n [(ngModel)]=\"DraftPolicy.MessagingChannelMode\" (ValueChange)=\"MarkPolicyDirty()\">\n </mj-dropdown>\n </label>\n </div>\n </section>\n\n <!-- Section 3: Approval Guardrails & Financial Threshold -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h4 class=\"cos-panel__title\">3. Approval Guardrails & Standing Instructions</h4>\n <p class=\"cos-panel__subtitle\">\n Enforce mandatory human-in-the-loop approval gates before sensitive actions execute\n </p>\n </div>\n </div>\n\n <div class=\"cos-toggle-list\">\n <div class=\"cos-toggle-row\" (click)=\"ToggleApprovalGuardrail('RequireApprovalForExternalComms')\">\n <div>\n <div class=\"cos-toggle-row__title\">Require Approval for External Communications</div>\n <div class=\"cos-toggle-row__desc\">\n Always create an approval request before sending emails or messages to external recipients.\n </div>\n </div>\n <button mjButton\n [variant]=\"DraftPolicy.RequireApprovalForExternalComms ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"ToggleApprovalGuardrail('RequireApprovalForExternalComms'); $event.stopPropagation()\">\n {{ DraftPolicy.RequireApprovalForExternalComms ? 'Required' : 'Not Required' }}\n </button>\n </div>\n\n <div class=\"cos-toggle-row\" (click)=\"ToggleApprovalGuardrail('RequireApprovalForFinancials')\">\n <div>\n <div class=\"cos-toggle-row__title\">Require Approval for Financial Commitments</div>\n <div class=\"cos-toggle-row__desc\">\n Require explicit approval for any financial transaction above the auto-approve threshold.\n </div>\n </div>\n <button mjButton\n [variant]=\"DraftPolicy.RequireApprovalForFinancials ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"ToggleApprovalGuardrail('RequireApprovalForFinancials'); $event.stopPropagation()\">\n {{ DraftPolicy.RequireApprovalForFinancials ? 'Required' : 'Not Required' }}\n </button>\n </div>\n\n <div class=\"cos-toggle-row\" (click)=\"ToggleApprovalGuardrail('RequireApprovalForDestructiveActions')\">\n <div>\n <div class=\"cos-toggle-row__title\">Require Approval for Destructive Actions</div>\n <div class=\"cos-toggle-row__desc\">\n Require human confirmation before deleting records, canceling events, or revoking access.\n </div>\n </div>\n <button mjButton\n [variant]=\"DraftPolicy.RequireApprovalForDestructiveActions ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"ToggleApprovalGuardrail('RequireApprovalForDestructiveActions'); $event.stopPropagation()\">\n {{ DraftPolicy.RequireApprovalForDestructiveActions ? 'Required' : 'Not Required' }}\n </button>\n </div>\n\n <div class=\"cos-toggle-row\" (click)=\"ToggleApprovalGuardrail('AllowInterAgentCoordination')\">\n <div>\n <div class=\"cos-toggle-row__title\">Allow Inter-Agent Delegation & Coordination</div>\n <div class=\"cos-toggle-row__desc\">\n Permit your Chief of Staff to invoke specialist sub-agents and coordinate with peer agents.\n </div>\n </div>\n <button mjButton\n [variant]=\"DraftPolicy.AllowInterAgentCoordination ? 'primary' : 'outline'\"\n size=\"sm\"\n (click)=\"ToggleApprovalGuardrail('AllowInterAgentCoordination'); $event.stopPropagation()\">\n {{ DraftPolicy.AllowInterAgentCoordination ? 'Allowed' : 'Blocked' }}\n </button>\n </div>\n </div>\n\n <div class=\"cos-form-grid cos-form-grid--spaced\">\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Auto-Approve Financial Threshold (USD)</span>\n <input class=\"cos-input\"\n type=\"number\"\n min=\"0\"\n step=\"50\"\n [value]=\"DraftPolicy.AutoApproveAmountThreshold ?? ''\"\n placeholder=\"0.00\"\n (input)=\"OnThresholdInputEvent($event)\" />\n </label>\n\n <label class=\"cos-form-field cos-form-field--full\">\n <span class=\"cos-form-field__label\">Standing Executive Instructions Override</span>\n <textarea class=\"cos-textarea\"\n rows=\"3\"\n [value]=\"DraftPolicy.InstructionsOverride\"\n placeholder=\"Optional standing instructions injected into every Chief of Staff run (e.g., preferred briefing style, VIP contacts, scheduling windows)...\"\n (input)=\"OnInstructionsOverrideInput($event)\"></textarea>\n </label>\n </div>\n </section>\n </div>\n }\n }\n </mj-page-body>\n</mj-page-layout>\n\n@if (ShowRequestDialog && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestDialog\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnRequestDialogClose($event)\">\n </mj-agent-request-dialog>\n}\n\n@if (ShowTaskDrawer && SelectedTask) {\n <div class=\"cos-drawer-backdrop\" (click)=\"CloseTaskDrawer()\" aria-hidden=\"true\"></div>\n <aside class=\"cos-drawer\" role=\"dialog\" aria-modal=\"true\" [attr.aria-label]=\"SelectedTask.Name\">\n <header class=\"cos-drawer__header\">\n <div>\n <div class=\"cos-drawer__category-strip\">\n @if (SelectedTaskIsObjective) {\n <span class=\"cos-badge-objective\">\n <i class=\"fa-solid fa-bullseye\"></i> Priority Objective\n </span>\n } @else {\n <span class=\"cos-badge-milestone\">\n <i class=\"fa-solid fa-list-check\"></i> Milestone\n </span>\n @if (SelectedTaskParent) {\n <button type=\"button\" class=\"cos-drawer__parent-link\" (click)=\"OpenTaskRecord(SelectedTaskParent.ID)\">\n <i class=\"fa-solid fa-arrow-turn-up\"></i> {{ SelectedTaskParent.Name }}\n </button>\n }\n }\n </div>\n <h3 class=\"cos-drawer__title\">{{ SelectedTask.Name }}</h3>\n </div>\n <div class=\"cos-drawer__header-actions\">\n @if (CanOpenFullTaskForm) {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"OpenFullTaskForm()\" title=\"Open in standard record form\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Full Form\n </button>\n }\n <button mjButton variant=\"flat\" size=\"sm\" class=\"cos-drawer__close-btn\" (click)=\"CloseTaskDrawer()\" aria-label=\"Close task drawer\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n </header>\n\n <div class=\"cos-drawer__body\">\n <!-- Health & Status Ribbon -->\n <div class=\"cos-drawer__ribbon\">\n @if (SelectedTask.HealthStatus) {\n <span class=\"cos-health-pill cos-health-pill--{{ SelectedTask.HealthStatus.toLowerCase() }}\">\n <i class=\"{{ GetHealthBadgeIcon(SelectedTask.HealthStatus) }}\"></i>\n {{ GetHealthBadgeLabel(SelectedTask.HealthStatus) }}\n </span>\n }\n @if (SelectedTask.PlanningPeriod) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-regular fa-calendar-check\"></i> {{ SelectedTask.PlanningPeriod }}\n </span>\n }\n @if (SelectedTask.CheckInCadence) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-solid fa-repeat\"></i> {{ SelectedTask.CheckInCadence }}\n </span>\n }\n @if (SelectedTask.Priority) {\n <span class=\"cos-meta-badge\">\n <i class=\"fa-solid fa-flag\"></i> Priority: {{ SelectedTask.Priority }}\n </span>\n }\n </div>\n\n <!-- Child Milestones list when viewing an Objective -->\n @if (SelectedTaskIsObjective && SelectedTaskSubtasks.length > 0) {\n <div class=\"cos-drawer__section\">\n <h4 class=\"cos-drawer__section-title\">\n Milestones & Workstreams ({{ SelectedTaskSubtasks.length }})\n </h4>\n <div class=\"cos-subtasks__list\">\n @for (sub of SelectedTaskSubtasks; track sub.ID) {\n <div class=\"cos-subtask-row\" (click)=\"OpenTaskRecord(sub.ID)\">\n <div class=\"cos-subtask-row__left\">\n <i class=\"fa-solid\"\n [class.fa-circle-check]=\"sub.Status === 'Completed' || sub.Status === 'Done'\"\n [class.fa-circle-half-stroke]=\"sub.Status === 'In Progress'\"\n [class.fa-regular]=\"sub.Status !== 'Completed' && sub.Status !== 'Done' && sub.Status !== 'In Progress'\"\n [class.fa-circle]=\"sub.Status !== 'Completed' && sub.Status !== 'Done' && sub.Status !== 'In Progress'\"></i>\n <div>\n <div class=\"cos-subtask-row__name\">{{ sub.Name }}</div>\n @if (sub.Description) {\n <div class=\"cos-subtask-row__desc\">{{ sub.Description }}</div>\n }\n </div>\n </div>\n <div class=\"cos-subtask-row__right\">\n <span class=\"cos-meta-badge\">{{ sub.Status }}</span>\n @if (sub.DueAt) {\n <span class=\"cos-subtask-row__due\">\n <i class=\"fa-regular fa-calendar\"></i> {{ sub.DueAt | date:'shortDate' }}\n </span>\n }\n <i class=\"fa-solid fa-chevron-right cos-subtask-row__chevron\"></i>\n </div>\n </div>\n }\n </div>\n </div>\n }\n\n <!-- Quick Edit Form Fields -->\n <div class=\"cos-drawer__section\">\n <h4 class=\"cos-drawer__section-title\">Update Status & Progress</h4>\n\n <div class=\"cos-form-grid\">\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Status</span>\n <select class=\"cos-select\"\n [value]=\"DraftTaskEdits.Status\"\n (change)=\"OnTaskStatusChange($event)\">\n @for (st of TaskStatusOptions; track st) {\n <option [value]=\"st\" [selected]=\"DraftTaskEdits.Status === st\">{{ st }}</option>\n }\n </select>\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Health Status</span>\n <select class=\"cos-select\"\n [value]=\"DraftTaskEdits.HealthStatus ?? 'none'\"\n (change)=\"OnTaskHealthChange($event)\">\n <option value=\"none\">None</option>\n <option value=\"OnTrack\" [selected]=\"DraftTaskEdits.HealthStatus === 'OnTrack'\">On Track</option>\n <option value=\"AtRisk\" [selected]=\"DraftTaskEdits.HealthStatus === 'AtRisk'\">At Risk</option>\n <option value=\"OffTrack\" [selected]=\"DraftTaskEdits.HealthStatus === 'OffTrack'\">Off Track</option>\n <option value=\"Completed\" [selected]=\"DraftTaskEdits.HealthStatus === 'Completed'\">Completed</option>\n <option value=\"Paused\" [selected]=\"DraftTaskEdits.HealthStatus === 'Paused'\">Paused</option>\n </select>\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Percent Complete (%)</span>\n <input class=\"cos-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n [value]=\"DraftTaskEdits.PercentComplete ?? 0\"\n (input)=\"OnTaskPercentChange($event)\" />\n </label>\n\n <label class=\"cos-form-field\">\n <span class=\"cos-form-field__label\">Confidence Score (%)</span>\n <input class=\"cos-input\"\n type=\"number\"\n min=\"0\"\n max=\"100\"\n placeholder=\"0–100\"\n [value]=\"DraftTaskEdits.ConfidenceScore ?? ''\"\n (input)=\"OnTaskConfidenceChange($event)\" />\n </label>\n\n <label class=\"cos-form-field cos-form-field--full\">\n <span class=\"cos-form-field__label\">Due Date</span>\n <input class=\"cos-input\"\n type=\"date\"\n [value]=\"DraftTaskEdits.DueAt\"\n (change)=\"OnTaskDueAtChange($event)\" />\n </label>\n\n <label class=\"cos-form-field cos-form-field--full\">\n <span class=\"cos-form-field__label\">Description & Notes</span>\n <textarea class=\"cos-textarea\"\n rows=\"4\"\n placeholder=\"Task description, objectives, milestones, or current blockers...\"\n [value]=\"DraftTaskEdits.Description\"\n (input)=\"OnTaskDescriptionChange($event)\"></textarea>\n </label>\n </div>\n </div>\n </div>\n\n <footer class=\"cos-drawer__footer\">\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"CloseTaskDrawer()\">\n Cancel\n </button>\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!TaskDirty || IsSavingTask\"\n (click)=\"SaveTaskEdits()\">\n <i class=\"fa-solid fa-floppy-disk\"></i>\n {{ IsSavingTask ? 'Saving...' : 'Save Changes' }}\n </button>\n </footer>\n </aside>\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ChiefOfStaff/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ChiefOfStaff/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC","sourcesContent":["export * from './chief-of-staff-agent-context';\nexport * from './chief-of-staff-dashboard.component';\n"]}
|
|
@@ -131,7 +131,7 @@ export interface CommunicationLogsContext extends CommunicationSelectedItem {
|
|
|
131
131
|
/** Per-row summaries of the visible (filtered) log rows (bounded). */
|
|
132
132
|
VisibleLogSummaries: string[];
|
|
133
133
|
}
|
|
134
|
-
/** Providers surface: the configured messaging-provider cards. */
|
|
134
|
+
/** Providers surface: the configured messaging-provider cards + enterprise mailbox governance + agent utility mailboxes. */
|
|
135
135
|
export interface CommunicationProvidersContext extends CommunicationSelectedItem {
|
|
136
136
|
Surface: 'providers';
|
|
137
137
|
/** Total provider cards. */
|
|
@@ -140,6 +140,16 @@ export interface CommunicationProvidersContext extends CommunicationSelectedItem
|
|
|
140
140
|
ActiveProviderCount: number;
|
|
141
141
|
/** Provider display names (bounded). */
|
|
142
142
|
ProviderNames: string[];
|
|
143
|
+
/** Names of providers with SupportsCalendar = true (bounded). */
|
|
144
|
+
CalendarCapableProviderNames?: string[];
|
|
145
|
+
/** Names of providers with SupportsFreeBusy = true (bounded). */
|
|
146
|
+
FreeBusyCapableProviderNames?: string[];
|
|
147
|
+
/** Per-provider EnterpriseScopeMode & AllowedEmailDomains summaries (bounded). */
|
|
148
|
+
EnterpriseScopeSummaries?: string[];
|
|
149
|
+
/** Total registered Agent Utility Mailboxes (MJ: AI Bridge Agent Identities with IdentityType='Email'). */
|
|
150
|
+
AgentUtilityMailboxCount?: number;
|
|
151
|
+
/** Bounded summary list of Agent Utility Mailboxes ("<email> · <agent> · <user|shared>"). */
|
|
152
|
+
AgentUtilityMailboxSummaries?: string[];
|
|
143
153
|
}
|
|
144
154
|
/** Templates surface: reusable message templates with a category filter + search. */
|
|
145
155
|
export interface CommunicationTemplatesContext extends CommunicationSelectedItem {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"communication-agent-context.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-agent-context.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"communication-agent-context.d.ts","sourceRoot":"","sources":["../../src/Communication/communication-agent-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,6 +149,21 @@ function buildProvidersContext(s, context) {
|
|
|
149
149
|
context['SelectedProviderId'] = s.SelectedItemId;
|
|
150
150
|
context['SelectedProviderName'] = s.SelectedItemName;
|
|
151
151
|
appendBoundedList(context, 'ProviderNames', 'ProviderNameCount', s.ProviderNames);
|
|
152
|
+
if (s.CalendarCapableProviderNames) {
|
|
153
|
+
appendBoundedList(context, 'CalendarCapableProviders', 'CalendarCapableProviderCount', s.CalendarCapableProviderNames);
|
|
154
|
+
}
|
|
155
|
+
if (s.FreeBusyCapableProviderNames) {
|
|
156
|
+
appendBoundedList(context, 'FreeBusyCapableProviders', 'FreeBusyCapableProviderCount', s.FreeBusyCapableProviderNames);
|
|
157
|
+
}
|
|
158
|
+
if (s.EnterpriseScopeSummaries) {
|
|
159
|
+
appendBoundedList(context, 'EnterpriseScopeSummaries', 'EnterpriseScopeSummaryCount', s.EnterpriseScopeSummaries);
|
|
160
|
+
}
|
|
161
|
+
if (typeof s.AgentUtilityMailboxCount === 'number') {
|
|
162
|
+
context['AgentUtilityMailboxCount'] = s.AgentUtilityMailboxCount;
|
|
163
|
+
}
|
|
164
|
+
if (s.AgentUtilityMailboxSummaries) {
|
|
165
|
+
appendBoundedList(context, 'AgentUtilityMailboxes', 'AgentUtilityMailboxTotalCount', s.AgentUtilityMailboxSummaries);
|
|
166
|
+
}
|
|
152
167
|
}
|
|
153
168
|
/** Shape the templates surface slice. */
|
|
154
169
|
function buildTemplatesContext(s, context) {
|