@memberjunction/ng-dashboards 6.2.0-edge.6 โ 6.2.0-edge.7
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 +23 -16
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
- package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +6 -6
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -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 +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +3 -2
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +12 -6
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +4 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/Actions/action-result-code.d.ts +80 -0
- package/dist/Actions/action-result-code.d.ts.map +1 -0
- package/dist/Actions/action-result-code.js +163 -0
- package/dist/Actions/action-result-code.js.map +1 -0
- package/dist/Actions/components/actions-overview.component.d.ts +8 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +12 -9
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +65 -42
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +5 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +92 -130
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +4 -1
- package/dist/ChiefOfStaff/index.d.ts.map +1 -1
- package/dist/ChiefOfStaff/index.js +4 -1
- package/dist/ChiefOfStaff/index.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +3 -3
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +3 -3
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +3 -0
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +2 -2
- package/dist/DevTools/lazy-module-status.component.js +2 -2
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
- package/dist/FormBuilder/form-builder-resource.component.js +5 -0
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +2 -2
- package/dist/Integration/services/integration-data.service.d.ts +1 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +4 -3
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.js +22 -4
- package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
- package/dist/VideoStudio/index.d.ts +12 -0
- package/dist/VideoStudio/index.d.ts.map +1 -0
- package/dist/VideoStudio/index.js +12 -0
- package/dist/VideoStudio/index.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.js +992 -0
- package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
- package/dist/ai-dashboards.module.d.ts +25 -22
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +23 -7
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +7 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +9 -2
- package/dist/public-api.js.map +1 -1
- package/dist/shared/action-scheduled-job.d.ts.map +1 -1
- package/dist/shared/action-scheduled-job.js +2 -0
- package/dist/shared/action-scheduled-job.js.map +1 -1
- package/dist/video-studio-dashboards.module.d.ts +40 -0
- package/dist/video-studio-dashboards.module.d.ts.map +1 -0
- package/dist/video-studio-dashboards.module.js +159 -0
- package/dist/video-studio-dashboards.module.js.map +1 -0
- package/package.json +77 -71
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
|
|
2
2
|
import { ResourceData } from '@memberjunction/core-entities';
|
|
3
3
|
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
|
|
4
|
-
import { HistoryRecordOpenedEventArgs, RoutineCounts, RoutineStatusFilter, UserRoutinesView } from '@memberjunction/ng-user-routines';
|
|
4
|
+
import { ConversationOpenedEventArgs, HistoryRecordOpenedEventArgs, RoutineCounts, RoutineStatusFilter, UserRoutinesView } from '@memberjunction/ng-user-routines';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Routines app โ full-page Explorer host for the User Routines command center
|
|
@@ -19,6 +19,7 @@ import * as i0 from "@angular/core";
|
|
|
19
19
|
*/
|
|
20
20
|
export declare class UserRoutinesResourceComponent extends BaseResourceComponent {
|
|
21
21
|
protected navigationService: NavigationService;
|
|
22
|
+
private appManager;
|
|
22
23
|
private commandCenter?;
|
|
23
24
|
SearchText: string;
|
|
24
25
|
StatusFilter: RoutineStatusFilter;
|
|
@@ -37,6 +38,12 @@ export declare class UserRoutinesResourceComponent extends BaseResourceComponent
|
|
|
37
38
|
OnSelectedRoutineIDChange(routineId: string | null): void;
|
|
38
39
|
OnViewChanged(view: UserRoutinesView): void;
|
|
39
40
|
OnCountsChanged(counts: RoutineCounts): void;
|
|
41
|
+
/**
|
|
42
|
+
* Opens the routine's conversation, where every run's reply lives. It is application-scoped,
|
|
43
|
+
* so the chat sidebar never lists it: the only way in is a deep link into the Chat app's
|
|
44
|
+
* Conversations item with the conversation ID.
|
|
45
|
+
*/
|
|
46
|
+
OnConversationOpened(args: ConversationOpenedEventArgs): void;
|
|
40
47
|
/** Opens the linked execution record (Agent Run / Prompt Run / Action Log) in a tab. */
|
|
41
48
|
OnHistoryRecordOpened(args: HistoryRecordOpenedEventArgs): void;
|
|
42
49
|
OnSearchChange(value: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-routines-resource.component.d.ts","sourceRoot":"","sources":["../../src/UserRoutines/user-routines-resource.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"user-routines-resource.component.d.ts","sourceRoot":"","sources":["../../src/UserRoutines/user-routines-resource.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGrF,OAAO,EAAE,YAAY,EAAqB,MAAM,+BAA+B,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAC5B,aAAa,EACb,mBAAmB,EAEnB,gBAAgB,EACnB,MAAM,kCAAkC,CAAC;;AAI1C;;;;;;;;;;;;;GAaG;AACH,qBAOa,6BAA8B,SAAQ,qBAAqB;IACpE,UAAmB,iBAAiB,oBAA6B;IACjE,OAAO,CAAC,UAAU,CAA8B;IAEpB,OAAO,CAAC,aAAa,CAAC,CAAqC;IAEhF,UAAU,SAAM;IAChB,YAAY,EAAE,mBAAmB,CAAS;IAC1C,UAAU,SAAK;IACf,aAAa,SAAK;IAClB,UAAU,EAAE,gBAAgB,CAAU;IACtC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE/C,SAAgB,YAAY,EAAE,iBAAiB,EAAE,CAa/C;IACK,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAqB;IAEjE,IAAW,iBAAiB,IAAI,MAAM,CAErC;IAEc,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAYzB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5D,oBAAoB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzE,mFAAmF;cAChE,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAUxG,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAMzD,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAK3C,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAMnD;;;;OAIG;IACI,oBAAoB,CAAC,IAAI,EAAE,2BAA2B,GAAG,IAAI;IAgBpE,wFAAwF;IACjF,qBAAqB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI;IAI/D,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKnC,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO3D,YAAY,IAAI,IAAI;IAIpB,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,IAAI;IAIZ,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAQzC,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;YA2EZ,YAAY;YASZ,kBAAkB;YAclB,YAAY;YAUZ,UAAU;yCA3Qf,6BAA6B;2CAA7B,6BAA6B;CAoRzC;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C"}
|
|
@@ -7,6 +7,8 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Component, ViewChild, inject } from '@angular/core';
|
|
8
8
|
import { RegisterClass } from '@memberjunction/global';
|
|
9
9
|
import { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';
|
|
10
|
+
import { ApplicationManager } from '@memberjunction/ng-base-application';
|
|
11
|
+
import { MJNotificationService } from '@memberjunction/ng-notifications';
|
|
10
12
|
import { UserRoutineEngine } from '@memberjunction/core-entities';
|
|
11
13
|
import { CompositeKey } from '@memberjunction/core';
|
|
12
14
|
import { ValidateStringParam } from '../shared/agent-tool-validation';
|
|
@@ -39,6 +41,7 @@ function UserRoutinesResourceComponent_Conditional_5_Template(rf, ctx) { if (rf
|
|
|
39
41
|
*/
|
|
40
42
|
let UserRoutinesResourceComponent = class UserRoutinesResourceComponent extends BaseResourceComponent {
|
|
41
43
|
navigationService = inject(NavigationService);
|
|
44
|
+
appManager = inject(ApplicationManager);
|
|
42
45
|
commandCenter;
|
|
43
46
|
SearchText = '';
|
|
44
47
|
StatusFilter = 'all';
|
|
@@ -105,6 +108,21 @@ let UserRoutinesResourceComponent = class UserRoutinesResourceComponent extends
|
|
|
105
108
|
this.FilteredCount = counts.Filtered;
|
|
106
109
|
this.publishAgentContext();
|
|
107
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* Opens the routine's conversation, where every run's reply lives. It is application-scoped,
|
|
113
|
+
* so the chat sidebar never lists it: the only way in is a deep link into the Chat app's
|
|
114
|
+
* Conversations item with the conversation ID.
|
|
115
|
+
*/
|
|
116
|
+
OnConversationOpened(args) {
|
|
117
|
+
const chatApp = this.appManager.GetAppByName('Chat');
|
|
118
|
+
if (!chatApp) {
|
|
119
|
+
MJNotificationService.Instance.CreateSimpleNotification('The Chat app is not installed, so this conversation cannot be opened here', 'error', 4000);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Query params as well as configuration: an already-open Chat tab is reused and reacts only
|
|
123
|
+
// to a query-param change (its configuration is read once, at init).
|
|
124
|
+
void this.navigationService.OpenNavItemByName('Conversations', { conversationId: args.ConversationID }, chatApp.ID, { queryParams: { conversationId: args.ConversationID } });
|
|
125
|
+
}
|
|
108
126
|
/** Opens the linked execution record (Agent Run / Prompt Run / Action Log) in a tab. */
|
|
109
127
|
OnHistoryRecordOpened(args) {
|
|
110
128
|
this.navigationService.OpenEntityRecord(args.EntityName, CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(args.EntityName), args.RecordID));
|
|
@@ -268,7 +286,7 @@ let UserRoutinesResourceComponent = class UserRoutinesResourceComponent extends
|
|
|
268
286
|
} if (rf & 2) {
|
|
269
287
|
let _t;
|
|
270
288
|
i0.ษตษตqueryRefresh(_t = i0.ษตษตloadQuery()) && (ctx.commandCenter = _t.first);
|
|
271
|
-
} }, standalone: false, features: [i0.ษตษตInheritDefinitionFeature], decls: 17, vars: 13, consts: [["commandCenter", ""], ["Title", "Routines", "Icon", "fa-solid fa-business-time", "Subtitle", "Schedule AI agents to run for you \u2014 and get notified about the results"], ["meta", ""], ["Label", "routines", 3, "Count", "Total"], ["actions", ""], ["mjButton", "", "variant", "outline", "size", "sm"], [3, "Clicked"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search routines...", 3, "ValueChange", "Value"], ["Label", "Filters", "Icon", "fa-solid fa-filter", 3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [1, "routines-cc", 3, "SelectedRoutineIDChange", "ViewChanged", "CountsChanged", "HistoryRecordOpened", "Provider", "ShowHeader", "SearchText", "StatusFilter", "SelectedRoutineID"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click"], [1, "fa-solid", "fa-arrow-left"]], template: function UserRoutinesResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
289
|
+
} }, standalone: false, features: [i0.ษตษตInheritDefinitionFeature], decls: 17, vars: 13, consts: [["commandCenter", ""], ["Title", "Routines", "Icon", "fa-solid fa-business-time", "Subtitle", "Schedule AI agents to run for you \u2014 and get notified about the results"], ["meta", ""], ["Label", "routines", 3, "Count", "Total"], ["actions", ""], ["mjButton", "", "variant", "outline", "size", "sm"], [3, "Clicked"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click"], [1, "fa-solid", "fa-plus"], ["toolbar", ""], ["Placeholder", "Search routines...", 3, "ValueChange", "Value"], ["Label", "Filters", "Icon", "fa-solid fa-filter", 3, "ClearAllRequested", "ActiveCount", "ShowClearAll"], [3, "ValuesChange", "Reset", "Fields", "Values"], [1, "routines-cc", 3, "SelectedRoutineIDChange", "ViewChanged", "CountsChanged", "HistoryRecordOpened", "ConversationOpened", "Provider", "ShowHeader", "SearchText", "StatusFilter", "SelectedRoutineID"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click"], [1, "fa-solid", "fa-arrow-left"]], template: function UserRoutinesResourceComponent_Template(rf, ctx) { if (rf & 1) {
|
|
272
290
|
i0.ษตษตelementStart(0, "mj-page-layout")(1, "mj-page-header", 1)(2, "div", 2);
|
|
273
291
|
i0.ษตษตelement(3, "mj-stat-badge", 3);
|
|
274
292
|
i0.ษตษตelementEnd();
|
|
@@ -291,7 +309,7 @@ let UserRoutinesResourceComponent = class UserRoutinesResourceComponent extends
|
|
|
291
309
|
i0.ษตษตlistener("ValuesChange", function UserRoutinesResourceComponent_Template_mj_filter_panel_ValuesChange_13_listener($event) { return ctx.OnFilterValuesChange($event); })("Reset", function UserRoutinesResourceComponent_Template_mj_filter_panel_Reset_13_listener() { return ctx.ResetFilters(); });
|
|
292
310
|
i0.ษตษตelementEnd()()()();
|
|
293
311
|
i0.ษตษตelementStart(14, "mj-page-body")(15, "mj-user-routines-command-center", 13, 0);
|
|
294
|
-
i0.ษตษตlistener("SelectedRoutineIDChange", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_SelectedRoutineIDChange_15_listener($event) { return ctx.OnSelectedRoutineIDChange($event); })("ViewChanged", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_ViewChanged_15_listener($event) { return ctx.OnViewChanged($event); })("CountsChanged", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_CountsChanged_15_listener($event) { return ctx.OnCountsChanged($event); })("HistoryRecordOpened", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_HistoryRecordOpened_15_listener($event) { return ctx.OnHistoryRecordOpened($event); });
|
|
312
|
+
i0.ษตษตlistener("SelectedRoutineIDChange", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_SelectedRoutineIDChange_15_listener($event) { return ctx.OnSelectedRoutineIDChange($event); })("ViewChanged", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_ViewChanged_15_listener($event) { return ctx.OnViewChanged($event); })("CountsChanged", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_CountsChanged_15_listener($event) { return ctx.OnCountsChanged($event); })("HistoryRecordOpened", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_HistoryRecordOpened_15_listener($event) { return ctx.OnHistoryRecordOpened($event); })("ConversationOpened", function UserRoutinesResourceComponent_Template_mj_user_routines_command_center_ConversationOpened_15_listener($event) { return ctx.OnConversationOpened($event); });
|
|
295
313
|
i0.ษตษตelementEnd()()();
|
|
296
314
|
} if (rf & 2) {
|
|
297
315
|
i0.ษตษตadvance(3);
|
|
@@ -314,12 +332,12 @@ UserRoutinesResourceComponent = __decorate([
|
|
|
314
332
|
export { UserRoutinesResourceComponent };
|
|
315
333
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ษตsetClassMetadata(UserRoutinesResourceComponent, [{
|
|
316
334
|
type: Component,
|
|
317
|
-
args: [{ standalone: false, selector: 'mj-user-routines-resource', template: "<mj-page-layout>\n <mj-page-header Title=\"Routines\" Icon=\"fa-solid fa-business-time\"\n Subtitle=\"Schedule AI agents to run for you \u2014 and get notified about the results\">\n <!-- X-of-Y filtered count earns its meta spot per chrome conventions \u00A72. -->\n <div meta>\n <mj-stat-badge [Count]=\"FilteredCount\" [Total]=\"TotalCount\" Label=\"routines\"></mj-stat-badge>\n </div>\n <div actions>\n @if (ActiveView !== 'list') {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"BackToList()\">\n <i class=\"fa-solid fa-arrow-left\"></i> Back to list\n </button>\n }\n <mj-refresh-button (Clicked)=\"RefreshData()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"NewRoutine()\">\n <i class=\"fa-solid fa-plus\"></i> New Routine\n </button>\n </div>\n <div toolbar>\n <mj-page-search Placeholder=\"Search routines...\" [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\"></mj-page-search>\n <mj-filter-popover Label=\"Filters\" Icon=\"fa-solid fa-filter\"\n [ActiveCount]=\"ActiveFilterCount\" [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetFilters()\">\n <mj-filter-panel [Fields]=\"FilterFields\" [Values]=\"FilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\" (Reset)=\"ResetFilters()\"></mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <mj-user-routines-command-center #commandCenter class=\"routines-cc\"\n [Provider]=\"ProviderToUse\"\n [ShowHeader]=\"false\"\n [SearchText]=\"SearchText\"\n [StatusFilter]=\"StatusFilter\"\n [SelectedRoutineID]=\"SelectedRoutineID\"\n (SelectedRoutineIDChange)=\"OnSelectedRoutineIDChange($event)\"\n (ViewChanged)=\"OnViewChanged($event)\"\n (CountsChanged)=\"OnCountsChanged($event)\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\">\n </mj-user-routines-command-center>\n </mj-page-body>\n</mj-page-layout>\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.routines-cc {\n display: block;\n height: 100%;\n min-height: 0;\n}\n"] }]
|
|
335
|
+
args: [{ standalone: false, selector: 'mj-user-routines-resource', template: "<mj-page-layout>\n <mj-page-header Title=\"Routines\" Icon=\"fa-solid fa-business-time\"\n Subtitle=\"Schedule AI agents to run for you \u2014 and get notified about the results\">\n <!-- X-of-Y filtered count earns its meta spot per chrome conventions \u00A72. -->\n <div meta>\n <mj-stat-badge [Count]=\"FilteredCount\" [Total]=\"TotalCount\" Label=\"routines\"></mj-stat-badge>\n </div>\n <div actions>\n @if (ActiveView !== 'list') {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"BackToList()\">\n <i class=\"fa-solid fa-arrow-left\"></i> Back to list\n </button>\n }\n <mj-refresh-button (Clicked)=\"RefreshData()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"NewRoutine()\">\n <i class=\"fa-solid fa-plus\"></i> New Routine\n </button>\n </div>\n <div toolbar>\n <mj-page-search Placeholder=\"Search routines...\" [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\"></mj-page-search>\n <mj-filter-popover Label=\"Filters\" Icon=\"fa-solid fa-filter\"\n [ActiveCount]=\"ActiveFilterCount\" [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetFilters()\">\n <mj-filter-panel [Fields]=\"FilterFields\" [Values]=\"FilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\" (Reset)=\"ResetFilters()\"></mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <mj-user-routines-command-center #commandCenter class=\"routines-cc\"\n [Provider]=\"ProviderToUse\"\n [ShowHeader]=\"false\"\n [SearchText]=\"SearchText\"\n [StatusFilter]=\"StatusFilter\"\n [SelectedRoutineID]=\"SelectedRoutineID\"\n (SelectedRoutineIDChange)=\"OnSelectedRoutineIDChange($event)\"\n (ViewChanged)=\"OnViewChanged($event)\"\n (CountsChanged)=\"OnCountsChanged($event)\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\"\n (ConversationOpened)=\"OnConversationOpened($event)\">\n </mj-user-routines-command-center>\n </mj-page-body>\n</mj-page-layout>\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.routines-cc {\n display: block;\n height: 100%;\n min-height: 0;\n}\n"] }]
|
|
318
336
|
}], null, { commandCenter: [{
|
|
319
337
|
type: ViewChild,
|
|
320
338
|
args: ['commandCenter']
|
|
321
339
|
}] }); })();
|
|
322
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ษตsetClassDebugInfo(UserRoutinesResourceComponent, { className: "UserRoutinesResourceComponent", filePath: "src/UserRoutines/user-routines-resource.component.ts", lineNumber:
|
|
340
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ษตsetClassDebugInfo(UserRoutinesResourceComponent, { className: "UserRoutinesResourceComponent", filePath: "src/UserRoutines/user-routines-resource.component.ts", lineNumber: 41 }); })();
|
|
323
341
|
/** Tree-shaking prevention โ referenced from the package public API. */
|
|
324
342
|
export function LoadUserRoutinesResource() {
|
|
325
343
|
// Intentionally empty: forces inclusion of the @RegisterClass side effect.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user-routines-resource.component.js","sourceRoot":"","sources":["../../src/UserRoutines/user-routines-resource.component.ts","../../src/UserRoutines/user-routines-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewChild, inject } from '@angular/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { ResourceData, UserRoutineEngine } from '@memberjunction/core-entities';\nimport { CompositeKey } from '@memberjunction/core';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\nimport {\n HistoryRecordOpenedEventArgs,\n RoutineCounts,\n RoutineStatusFilter,\n UserRoutinesCommandCenterComponent,\n UserRoutinesView,\n} from '@memberjunction/ng-user-routines';\nimport { AgentToolResult, ValidateStringParam } from '../shared/agent-tool-validation';\nimport { BuildUserRoutinesAgentContext, ResolveRoutineByIDOrName, RoutineSummaryRow } from './user-routines-agent-context';\n\n/**\n * Routines app โ full-page Explorer host for the User Routines command center\n * (list / create-edit / run history). Thin chrome-trio wrapper over the generic\n * `<mj-user-routines-command-center>` from `@memberjunction/ng-user-routines`.\n *\n * Query-param round trip: `routine=<id>` opens that routine's history view; the pair\n * `initial read` + `OnQueryParamsChanged` keeps deep links, Home pins, and\n * back/forward working on cached instances.\n *\n * ๐จ SAFETY BOUNDARY ๐จ (see user-routines-agent-context.ts for the full statement)\n * Agent tools here are navigation / filter / search / select / refresh ONLY. The\n * agent may OPEN the editor (CreateRoutine / OpenRoutineEditor) but can never save,\n * delete, pause/resume, or run-now a routine โ those stay human-driven in the UI.\n */\n@RegisterClass(BaseResourceComponent, 'UserRoutines')\n@Component({\n standalone: false,\n selector: 'mj-user-routines-resource',\n templateUrl: './user-routines-resource.component.html',\n styleUrls: ['./user-routines-resource.component.css'],\n})\nexport class UserRoutinesResourceComponent extends BaseResourceComponent {\n protected override navigationService = inject(NavigationService);\n\n @ViewChild('commandCenter') private commandCenter?: UserRoutinesCommandCenterComponent;\n\n public SearchText = '';\n public StatusFilter: RoutineStatusFilter = 'all';\n public TotalCount = 0;\n public FilteredCount = 0;\n public ActiveView: UserRoutinesView = 'list';\n public SelectedRoutineID: string | null = null;\n\n public readonly FilterFields: FilterFieldConfig[] = [\n {\n key: 'status',\n type: 'dropdown',\n label: 'Status',\n icon: 'fa-solid fa-circle-half-stroke',\n options: [\n { text: 'All statuses', value: 'all' },\n { text: 'Active', value: 'Active' },\n { text: 'Paused', value: 'Paused' },\n { text: 'Disabled', value: 'Disabled' },\n ],\n },\n ];\n public FilterValues: Record<string, unknown> = { status: 'all' };\n\n public get ActiveFilterCount(): number {\n return this.StatusFilter === 'all' ? 0 : 1;\n }\n\n override async ngOnInit(): Promise<void> {\n super.ngOnInit();\n // 1) Initial query-param read (deep links)\n const params = this.GetQueryParams();\n if (params['routine']) {\n this.SelectedRoutineID = params['routine'];\n }\n this.registerAgentTools();\n this.publishAgentContext();\n this.NotifyLoadComplete();\n }\n\n override async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Routines';\n }\n\n override async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-business-time';\n }\n\n /** 2) React to later query-param changes (back/forward, pins, cached re-focus). */\n protected override OnQueryParamsChanged(params: Record<string, string>, _source: 'popstate' | 'deeplink'): void {\n const routineId = params['routine'] || null;\n if (routineId !== this.SelectedRoutineID) {\n this.SelectedRoutineID = routineId;\n }\n }\n\n // ---------------------------------------------------------------\n // Command-center wiring\n // ---------------------------------------------------------------\n public OnSelectedRoutineIDChange(routineId: string | null): void {\n this.SelectedRoutineID = routineId;\n this.UpdateQueryParams({ routine: routineId });\n this.publishAgentContext();\n }\n\n public OnViewChanged(view: UserRoutinesView): void {\n this.ActiveView = view;\n this.publishAgentContext();\n }\n\n public OnCountsChanged(counts: RoutineCounts): void {\n this.TotalCount = counts.Total;\n this.FilteredCount = counts.Filtered;\n this.publishAgentContext();\n }\n\n /** Opens the linked execution record (Agent Run / Prompt Run / Action Log) in a tab. */\n public OnHistoryRecordOpened(args: HistoryRecordOpenedEventArgs): void {\n this.navigationService.OpenEntityRecord(args.EntityName, CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(args.EntityName), args.RecordID));\n }\n\n public OnSearchChange(value: string): void {\n this.SearchText = value;\n this.publishAgentContext();\n }\n\n public OnFilterValuesChange(values: Record<string, unknown>): void {\n this.FilterValues = values;\n const status = values['status'];\n this.StatusFilter = (status === 'Active' || status === 'Paused' || status === 'Disabled') ? status : 'all';\n this.publishAgentContext();\n }\n\n public ResetFilters(): void {\n this.OnFilterValuesChange({ status: 'all' });\n }\n\n public NewRoutine(): void {\n this.commandCenter?.ShowNewRoutine();\n }\n\n public BackToList(): void {\n this.commandCenter?.ShowList();\n }\n\n public async RefreshData(): Promise<void> {\n await this.commandCenter?.Refresh();\n this.publishAgentContext();\n }\n\n // ---------------------------------------------------------------\n // Agent context + tools (navigation/read-only โ see SAFETY BOUNDARY)\n // ---------------------------------------------------------------\n private publishAgentContext(): void {\n this.navigationService.SetAgentContext(\n this,\n BuildUserRoutinesAgentContext({\n ActiveView: this.ActiveView,\n SearchText: this.SearchText,\n StatusFilter: this.StatusFilter,\n TotalCount: this.TotalCount,\n FilteredCount: this.FilteredCount,\n SelectedRoutineID: this.SelectedRoutineID,\n Routines: this.routineRows(),\n })\n );\n }\n\n private routineRows(): RoutineSummaryRow[] {\n const engine = UserRoutineEngine.GetProviderInstance<UserRoutineEngine>(this.ProviderToUse, UserRoutineEngine) as UserRoutineEngine;\n return engine.Routines.map((r) => ({ ID: r.ID, Name: r.Name, Status: r.Status }));\n }\n\n private registerAgentTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'RefreshRoutines',\n Description: 'Reload the routines list from the server.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n await this.RefreshData();\n return { Success: true, Data: { TotalRoutineCount: this.TotalCount } };\n },\n },\n {\n Name: 'SearchRoutines',\n Description: 'Filter the routines list by a search query (name, description, or agent). Pass an empty string to clear.',\n ParameterSchema: {\n type: 'object',\n properties: { query: { type: 'string', description: 'Text to filter by; empty clears.' } },\n required: ['query'],\n },\n Handler: async (params) => this.handleSearch(params),\n },\n {\n Name: 'FilterRoutinesByStatus',\n Description: \"Filter routines by lifecycle status: 'Active', 'Paused', 'Disabled', or 'all'.\",\n ParameterSchema: {\n type: 'object',\n properties: { status: { type: 'string', description: \"'Active' | 'Paused' | 'Disabled' | 'all'\" } },\n required: ['status'],\n },\n Handler: async (params) => this.handleStatusFilter(params),\n },\n {\n Name: 'SelectRoutine',\n Description: \"Open a routine's run history, referenced by ID or name (partial, case-insensitive match accepted).\",\n ParameterSchema: {\n type: 'object',\n properties: { routine: { type: 'string', description: 'The routine ID or name.' } },\n required: ['routine'],\n },\n Handler: async (params) => this.handleSelect(params),\n },\n {\n Name: 'OpenRoutineEditor',\n Description:\n 'Open the editor for an existing routine (by ID or name). This only opens the editor for the user โ it does NOT save anything.',\n ParameterSchema: {\n type: 'object',\n properties: { routine: { type: 'string', description: 'The routine ID or name.' } },\n required: ['routine'],\n },\n Handler: async (params) => this.handleEdit(params),\n },\n {\n Name: 'CreateRoutine',\n Description: 'Open the New Routine editor. This only opens the editor for the user โ it does NOT save anything.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.NewRoutine();\n this.publishAgentContext();\n return { Success: true };\n },\n },\n {\n Name: 'BackToRoutinesList',\n Description: 'Return from the editor or history view to the routines list.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.BackToList();\n this.publishAgentContext();\n return { Success: true };\n },\n },\n ]);\n }\n\n private async handleSearch(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const check = ValidateStringParam(params['query'], 'query');\n if (!check.ok) {\n return check.result;\n }\n this.OnSearchChange(check.value);\n return { Success: true, Data: { FilteredRoutineCount: this.FilteredCount } };\n }\n\n private async handleStatusFilter(params: Record<string, unknown>): Promise<AgentToolResult> {\n const check = ValidateStringParam(params['status'], 'status');\n if (!check.ok) {\n return check.result;\n }\n const value = check.value.trim();\n const normalized = ['Active', 'Paused', 'Disabled'].find((s) => s.toLowerCase() === value.toLowerCase());\n if (!normalized && value.toLowerCase() !== 'all') {\n return { Success: false, ErrorMessage: `'${value}' is not a valid status. Use 'Active', 'Paused', 'Disabled', or 'all'.` };\n }\n this.OnFilterValuesChange({ status: normalized ?? 'all' });\n return { Success: true };\n }\n\n private async handleSelect(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const resolved = ResolveRoutineByIDOrName(this.routineRows(), params['routine']);\n if (!resolved.ok) {\n return { Success: false, ErrorMessage: resolved.error };\n }\n this.commandCenter?.ShowHistory(resolved.value.ID);\n this.publishAgentContext();\n return { Success: true, Data: { RoutineID: resolved.value.ID, RoutineName: resolved.value.Name } };\n }\n\n private async handleEdit(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const resolved = ResolveRoutineByIDOrName(this.routineRows(), params['routine']);\n if (!resolved.ok) {\n return { Success: false, ErrorMessage: resolved.error };\n }\n this.commandCenter?.ShowEditRoutine(resolved.value.ID);\n this.publishAgentContext();\n return { Success: true, Data: { RoutineID: resolved.value.ID, RoutineName: resolved.value.Name } };\n }\n}\n\n/** Tree-shaking prevention โ referenced from the package public API. */\nexport function LoadUserRoutinesResource(): void {\n // Intentionally empty: forces inclusion of the @RegisterClass side effect.\n}\n","<mj-page-layout>\n <mj-page-header Title=\"Routines\" Icon=\"fa-solid fa-business-time\"\n Subtitle=\"Schedule AI agents to run for you โ and get notified about the results\">\n <!-- X-of-Y filtered count earns its meta spot per chrome conventions ยง2. -->\n <div meta>\n <mj-stat-badge [Count]=\"FilteredCount\" [Total]=\"TotalCount\" Label=\"routines\"></mj-stat-badge>\n </div>\n <div actions>\n @if (ActiveView !== 'list') {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"BackToList()\">\n <i class=\"fa-solid fa-arrow-left\"></i> Back to list\n </button>\n }\n <mj-refresh-button (Clicked)=\"RefreshData()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"NewRoutine()\">\n <i class=\"fa-solid fa-plus\"></i> New Routine\n </button>\n </div>\n <div toolbar>\n <mj-page-search Placeholder=\"Search routines...\" [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\"></mj-page-search>\n <mj-filter-popover Label=\"Filters\" Icon=\"fa-solid fa-filter\"\n [ActiveCount]=\"ActiveFilterCount\" [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetFilters()\">\n <mj-filter-panel [Fields]=\"FilterFields\" [Values]=\"FilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\" (Reset)=\"ResetFilters()\"></mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <mj-user-routines-command-center #commandCenter class=\"routines-cc\"\n [Provider]=\"ProviderToUse\"\n [ShowHeader]=\"false\"\n [SearchText]=\"SearchText\"\n [StatusFilter]=\"StatusFilter\"\n [SelectedRoutineID]=\"SelectedRoutineID\"\n (SelectedRoutineIDChange)=\"OnSelectedRoutineIDChange($event)\"\n (ViewChanged)=\"OnViewChanged($event)\"\n (CountsChanged)=\"OnCountsChanged($event)\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\">\n </mj-user-routines-command-center>\n </mj-page-body>\n</mj-page-layout>\n"]}
|
|
1
|
+
{"version":3,"file":"user-routines-resource.component.js","sourceRoot":"","sources":["../../src/UserRoutines/user-routines-resource.component.ts","../../src/UserRoutines/user-routines-resource.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, ViewChild, inject } from '@angular/core';\nimport { RegisterClass } from '@memberjunction/global';\nimport { BaseResourceComponent, NavigationService } from '@memberjunction/ng-shared';\nimport { ApplicationManager } from '@memberjunction/ng-base-application';\nimport { MJNotificationService } from '@memberjunction/ng-notifications';\nimport { ResourceData, UserRoutineEngine } from '@memberjunction/core-entities';\nimport { CompositeKey } from '@memberjunction/core';\nimport { FilterFieldConfig } from '@memberjunction/ng-ui-components';\nimport {\n ConversationOpenedEventArgs,\n HistoryRecordOpenedEventArgs,\n RoutineCounts,\n RoutineStatusFilter,\n UserRoutinesCommandCenterComponent,\n UserRoutinesView,\n} from '@memberjunction/ng-user-routines';\nimport { AgentToolResult, ValidateStringParam } from '../shared/agent-tool-validation';\nimport { BuildUserRoutinesAgentContext, ResolveRoutineByIDOrName, RoutineSummaryRow } from './user-routines-agent-context';\n\n/**\n * Routines app โ full-page Explorer host for the User Routines command center\n * (list / create-edit / run history). Thin chrome-trio wrapper over the generic\n * `<mj-user-routines-command-center>` from `@memberjunction/ng-user-routines`.\n *\n * Query-param round trip: `routine=<id>` opens that routine's history view; the pair\n * `initial read` + `OnQueryParamsChanged` keeps deep links, Home pins, and\n * back/forward working on cached instances.\n *\n * ๐จ SAFETY BOUNDARY ๐จ (see user-routines-agent-context.ts for the full statement)\n * Agent tools here are navigation / filter / search / select / refresh ONLY. The\n * agent may OPEN the editor (CreateRoutine / OpenRoutineEditor) but can never save,\n * delete, pause/resume, or run-now a routine โ those stay human-driven in the UI.\n */\n@RegisterClass(BaseResourceComponent, 'UserRoutines')\n@Component({\n standalone: false,\n selector: 'mj-user-routines-resource',\n templateUrl: './user-routines-resource.component.html',\n styleUrls: ['./user-routines-resource.component.css'],\n})\nexport class UserRoutinesResourceComponent extends BaseResourceComponent {\n protected override navigationService = inject(NavigationService);\n private appManager = inject(ApplicationManager);\n\n @ViewChild('commandCenter') private commandCenter?: UserRoutinesCommandCenterComponent;\n\n public SearchText = '';\n public StatusFilter: RoutineStatusFilter = 'all';\n public TotalCount = 0;\n public FilteredCount = 0;\n public ActiveView: UserRoutinesView = 'list';\n public SelectedRoutineID: string | null = null;\n\n public readonly FilterFields: FilterFieldConfig[] = [\n {\n key: 'status',\n type: 'dropdown',\n label: 'Status',\n icon: 'fa-solid fa-circle-half-stroke',\n options: [\n { text: 'All statuses', value: 'all' },\n { text: 'Active', value: 'Active' },\n { text: 'Paused', value: 'Paused' },\n { text: 'Disabled', value: 'Disabled' },\n ],\n },\n ];\n public FilterValues: Record<string, unknown> = { status: 'all' };\n\n public get ActiveFilterCount(): number {\n return this.StatusFilter === 'all' ? 0 : 1;\n }\n\n override async ngOnInit(): Promise<void> {\n super.ngOnInit();\n // 1) Initial query-param read (deep links)\n const params = this.GetQueryParams();\n if (params['routine']) {\n this.SelectedRoutineID = params['routine'];\n }\n this.registerAgentTools();\n this.publishAgentContext();\n this.NotifyLoadComplete();\n }\n\n override async GetResourceDisplayName(_data: ResourceData): Promise<string> {\n return 'Routines';\n }\n\n override async GetResourceIconClass(_data: ResourceData): Promise<string> {\n return 'fa-solid fa-business-time';\n }\n\n /** 2) React to later query-param changes (back/forward, pins, cached re-focus). */\n protected override OnQueryParamsChanged(params: Record<string, string>, _source: 'popstate' | 'deeplink'): void {\n const routineId = params['routine'] || null;\n if (routineId !== this.SelectedRoutineID) {\n this.SelectedRoutineID = routineId;\n }\n }\n\n // ---------------------------------------------------------------\n // Command-center wiring\n // ---------------------------------------------------------------\n public OnSelectedRoutineIDChange(routineId: string | null): void {\n this.SelectedRoutineID = routineId;\n this.UpdateQueryParams({ routine: routineId });\n this.publishAgentContext();\n }\n\n public OnViewChanged(view: UserRoutinesView): void {\n this.ActiveView = view;\n this.publishAgentContext();\n }\n\n public OnCountsChanged(counts: RoutineCounts): void {\n this.TotalCount = counts.Total;\n this.FilteredCount = counts.Filtered;\n this.publishAgentContext();\n }\n\n /**\n * Opens the routine's conversation, where every run's reply lives. It is application-scoped,\n * so the chat sidebar never lists it: the only way in is a deep link into the Chat app's\n * Conversations item with the conversation ID.\n */\n public OnConversationOpened(args: ConversationOpenedEventArgs): void {\n const chatApp = this.appManager.GetAppByName('Chat');\n if (!chatApp) {\n MJNotificationService.Instance.CreateSimpleNotification('The Chat app is not installed, so this conversation cannot be opened here', 'error', 4000);\n return;\n }\n // Query params as well as configuration: an already-open Chat tab is reused and reacts only\n // to a query-param change (its configuration is read once, at init).\n void this.navigationService.OpenNavItemByName(\n 'Conversations',\n { conversationId: args.ConversationID },\n chatApp.ID,\n { queryParams: { conversationId: args.ConversationID } },\n );\n }\n\n /** Opens the linked execution record (Agent Run / Prompt Run / Action Log) in a tab. */\n public OnHistoryRecordOpened(args: HistoryRecordOpenedEventArgs): void {\n this.navigationService.OpenEntityRecord(args.EntityName, CompositeKey.FromURLSegment(this.ProviderToUse.EntityByName(args.EntityName), args.RecordID));\n }\n\n public OnSearchChange(value: string): void {\n this.SearchText = value;\n this.publishAgentContext();\n }\n\n public OnFilterValuesChange(values: Record<string, unknown>): void {\n this.FilterValues = values;\n const status = values['status'];\n this.StatusFilter = (status === 'Active' || status === 'Paused' || status === 'Disabled') ? status : 'all';\n this.publishAgentContext();\n }\n\n public ResetFilters(): void {\n this.OnFilterValuesChange({ status: 'all' });\n }\n\n public NewRoutine(): void {\n this.commandCenter?.ShowNewRoutine();\n }\n\n public BackToList(): void {\n this.commandCenter?.ShowList();\n }\n\n public async RefreshData(): Promise<void> {\n await this.commandCenter?.Refresh();\n this.publishAgentContext();\n }\n\n // ---------------------------------------------------------------\n // Agent context + tools (navigation/read-only โ see SAFETY BOUNDARY)\n // ---------------------------------------------------------------\n private publishAgentContext(): void {\n this.navigationService.SetAgentContext(\n this,\n BuildUserRoutinesAgentContext({\n ActiveView: this.ActiveView,\n SearchText: this.SearchText,\n StatusFilter: this.StatusFilter,\n TotalCount: this.TotalCount,\n FilteredCount: this.FilteredCount,\n SelectedRoutineID: this.SelectedRoutineID,\n Routines: this.routineRows(),\n })\n );\n }\n\n private routineRows(): RoutineSummaryRow[] {\n const engine = UserRoutineEngine.GetProviderInstance<UserRoutineEngine>(this.ProviderToUse, UserRoutineEngine) as UserRoutineEngine;\n return engine.Routines.map((r) => ({ ID: r.ID, Name: r.Name, Status: r.Status }));\n }\n\n private registerAgentTools(): void {\n this.navigationService.SetAgentClientTools(this, [\n {\n Name: 'RefreshRoutines',\n Description: 'Reload the routines list from the server.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n await this.RefreshData();\n return { Success: true, Data: { TotalRoutineCount: this.TotalCount } };\n },\n },\n {\n Name: 'SearchRoutines',\n Description: 'Filter the routines list by a search query (name, description, or agent). Pass an empty string to clear.',\n ParameterSchema: {\n type: 'object',\n properties: { query: { type: 'string', description: 'Text to filter by; empty clears.' } },\n required: ['query'],\n },\n Handler: async (params) => this.handleSearch(params),\n },\n {\n Name: 'FilterRoutinesByStatus',\n Description: \"Filter routines by lifecycle status: 'Active', 'Paused', 'Disabled', or 'all'.\",\n ParameterSchema: {\n type: 'object',\n properties: { status: { type: 'string', description: \"'Active' | 'Paused' | 'Disabled' | 'all'\" } },\n required: ['status'],\n },\n Handler: async (params) => this.handleStatusFilter(params),\n },\n {\n Name: 'SelectRoutine',\n Description: \"Open a routine's run history, referenced by ID or name (partial, case-insensitive match accepted).\",\n ParameterSchema: {\n type: 'object',\n properties: { routine: { type: 'string', description: 'The routine ID or name.' } },\n required: ['routine'],\n },\n Handler: async (params) => this.handleSelect(params),\n },\n {\n Name: 'OpenRoutineEditor',\n Description:\n 'Open the editor for an existing routine (by ID or name). This only opens the editor for the user โ it does NOT save anything.',\n ParameterSchema: {\n type: 'object',\n properties: { routine: { type: 'string', description: 'The routine ID or name.' } },\n required: ['routine'],\n },\n Handler: async (params) => this.handleEdit(params),\n },\n {\n Name: 'CreateRoutine',\n Description: 'Open the New Routine editor. This only opens the editor for the user โ it does NOT save anything.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.NewRoutine();\n this.publishAgentContext();\n return { Success: true };\n },\n },\n {\n Name: 'BackToRoutinesList',\n Description: 'Return from the editor or history view to the routines list.',\n ParameterSchema: { type: 'object', properties: {} },\n Handler: async () => {\n this.BackToList();\n this.publishAgentContext();\n return { Success: true };\n },\n },\n ]);\n }\n\n private async handleSearch(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const check = ValidateStringParam(params['query'], 'query');\n if (!check.ok) {\n return check.result;\n }\n this.OnSearchChange(check.value);\n return { Success: true, Data: { FilteredRoutineCount: this.FilteredCount } };\n }\n\n private async handleStatusFilter(params: Record<string, unknown>): Promise<AgentToolResult> {\n const check = ValidateStringParam(params['status'], 'status');\n if (!check.ok) {\n return check.result;\n }\n const value = check.value.trim();\n const normalized = ['Active', 'Paused', 'Disabled'].find((s) => s.toLowerCase() === value.toLowerCase());\n if (!normalized && value.toLowerCase() !== 'all') {\n return { Success: false, ErrorMessage: `'${value}' is not a valid status. Use 'Active', 'Paused', 'Disabled', or 'all'.` };\n }\n this.OnFilterValuesChange({ status: normalized ?? 'all' });\n return { Success: true };\n }\n\n private async handleSelect(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const resolved = ResolveRoutineByIDOrName(this.routineRows(), params['routine']);\n if (!resolved.ok) {\n return { Success: false, ErrorMessage: resolved.error };\n }\n this.commandCenter?.ShowHistory(resolved.value.ID);\n this.publishAgentContext();\n return { Success: true, Data: { RoutineID: resolved.value.ID, RoutineName: resolved.value.Name } };\n }\n\n private async handleEdit(params: Record<string, unknown>): Promise<AgentToolResult & { Data?: Record<string, unknown> }> {\n const resolved = ResolveRoutineByIDOrName(this.routineRows(), params['routine']);\n if (!resolved.ok) {\n return { Success: false, ErrorMessage: resolved.error };\n }\n this.commandCenter?.ShowEditRoutine(resolved.value.ID);\n this.publishAgentContext();\n return { Success: true, Data: { RoutineID: resolved.value.ID, RoutineName: resolved.value.Name } };\n }\n}\n\n/** Tree-shaking prevention โ referenced from the package public API. */\nexport function LoadUserRoutinesResource(): void {\n // Intentionally empty: forces inclusion of the @RegisterClass side effect.\n}\n","<mj-page-layout>\n <mj-page-header Title=\"Routines\" Icon=\"fa-solid fa-business-time\"\n Subtitle=\"Schedule AI agents to run for you โ and get notified about the results\">\n <!-- X-of-Y filtered count earns its meta spot per chrome conventions ยง2. -->\n <div meta>\n <mj-stat-badge [Count]=\"FilteredCount\" [Total]=\"TotalCount\" Label=\"routines\"></mj-stat-badge>\n </div>\n <div actions>\n @if (ActiveView !== 'list') {\n <button mjButton variant=\"outline\" size=\"sm\" (click)=\"BackToList()\">\n <i class=\"fa-solid fa-arrow-left\"></i> Back to list\n </button>\n }\n <mj-refresh-button (Clicked)=\"RefreshData()\"></mj-refresh-button>\n <button mjButton variant=\"primary\" size=\"sm\" (click)=\"NewRoutine()\">\n <i class=\"fa-solid fa-plus\"></i> New Routine\n </button>\n </div>\n <div toolbar>\n <mj-page-search Placeholder=\"Search routines...\" [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\"></mj-page-search>\n <mj-filter-popover Label=\"Filters\" Icon=\"fa-solid fa-filter\"\n [ActiveCount]=\"ActiveFilterCount\" [ShowClearAll]=\"ActiveFilterCount > 0\"\n (ClearAllRequested)=\"ResetFilters()\">\n <mj-filter-panel [Fields]=\"FilterFields\" [Values]=\"FilterValues\"\n (ValuesChange)=\"OnFilterValuesChange($event)\" (Reset)=\"ResetFilters()\"></mj-filter-panel>\n </mj-filter-popover>\n </div>\n </mj-page-header>\n\n <mj-page-body>\n <mj-user-routines-command-center #commandCenter class=\"routines-cc\"\n [Provider]=\"ProviderToUse\"\n [ShowHeader]=\"false\"\n [SearchText]=\"SearchText\"\n [StatusFilter]=\"StatusFilter\"\n [SelectedRoutineID]=\"SelectedRoutineID\"\n (SelectedRoutineIDChange)=\"OnSelectedRoutineIDChange($event)\"\n (ViewChanged)=\"OnViewChanged($event)\"\n (CountsChanged)=\"OnCountsChanged($event)\"\n (HistoryRecordOpened)=\"OnHistoryRecordOpened($event)\"\n (ConversationOpened)=\"OnConversationOpened($event)\">\n </mj-user-routines-command-center>\n </mj-page-body>\n</mj-page-layout>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-resource.component.d.ts","sourceRoot":"","sources":["../../../src/VersionHistory/components/diff-resource.component.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"diff-resource.component.d.ts","sourceRoot":"","sources":["../../../src/VersionHistory/components/diff-resource.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -918,6 +918,7 @@ let VersionHistoryDiffResourceComponent = class VersionHistoryDiffResourceCompon
|
|
|
918
918
|
ExtraFilter: `EntityID = '${entityId}' AND RecordID = '${recordId}'`,
|
|
919
919
|
OrderBy: 'ChangedAt DESC',
|
|
920
920
|
MaxRows: 1,
|
|
921
|
+
SkipTotalRowCount: true,
|
|
921
922
|
Fields: ['ID'],
|
|
922
923
|
ResultType: 'simple'
|
|
923
924
|
});
|