@memberjunction/ng-dashboards 6.2.0-edge.5 → 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.
Files changed (293) hide show
  1. package/README.md +35 -0
  2. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
  3. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  4. package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
  5. package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
  6. package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
  7. package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
  8. package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
  9. package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
  10. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
  11. package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
  12. package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
  13. package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
  14. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts +1 -1
  15. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.d.ts.map +1 -1
  16. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +21 -13
  17. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  18. package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
  19. package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
  20. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
  21. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
  22. package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
  23. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
  24. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
  25. package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
  26. package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
  27. package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
  28. package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
  29. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +7 -1
  30. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  31. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +210 -57
  32. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  33. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts +12 -11
  34. package/dist/AI/components/duplicates/duplicate-detection-run-scope.d.ts.map +1 -1
  35. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js +15 -15
  36. package/dist/AI/components/duplicates/duplicate-detection-run-scope.js.map +1 -1
  37. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  38. package/dist/AI/components/execution-monitoring.component.js +28 -16
  39. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  40. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +1 -0
  41. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  42. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +32 -8
  43. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  44. package/dist/AI/components/tags/tags-resource.component.d.ts +1 -1
  45. package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
  46. package/dist/AI/components/tags/tags-resource.component.js +18 -9
  47. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  48. package/dist/AI/components/vectors/sensitive-fields.d.ts +9 -4
  49. package/dist/AI/components/vectors/sensitive-fields.d.ts.map +1 -1
  50. package/dist/AI/components/vectors/sensitive-fields.js +39 -14
  51. package/dist/AI/components/vectors/sensitive-fields.js.map +1 -1
  52. package/dist/AI/components/vectors/vector-document-rules.d.ts +13 -0
  53. package/dist/AI/components/vectors/vector-document-rules.d.ts.map +1 -1
  54. package/dist/AI/components/vectors/vector-document-rules.js +14 -0
  55. package/dist/AI/components/vectors/vector-document-rules.js.map +1 -1
  56. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +34 -14
  57. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  58. package/dist/AI/components/vectors/vector-management-resource.component.js +134 -51
  59. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  60. package/dist/AI/components/vectors/vector-store-selection.d.ts +32 -0
  61. package/dist/AI/components/vectors/vector-store-selection.d.ts.map +1 -0
  62. package/dist/AI/components/vectors/vector-store-selection.js +57 -0
  63. package/dist/AI/components/vectors/vector-store-selection.js.map +1 -0
  64. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  65. package/dist/AI/services/ai-instrumentation.service.js +4 -2
  66. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  67. package/dist/Actions/action-result-code.d.ts +80 -0
  68. package/dist/Actions/action-result-code.d.ts.map +1 -0
  69. package/dist/Actions/action-result-code.js +163 -0
  70. package/dist/Actions/action-result-code.js.map +1 -0
  71. package/dist/Actions/components/actions-overview.component.d.ts +8 -0
  72. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  73. package/dist/Actions/components/actions-overview.component.js +12 -9
  74. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  75. package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
  76. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  77. package/dist/Actions/components/execution-monitoring.component.js +65 -42
  78. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  79. package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/action-card.component.js +5 -4
  81. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  82. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +198 -0
  83. package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -0
  84. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +289 -0
  85. package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -0
  86. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
  87. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
  88. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
  89. package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
  90. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
  91. package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
  92. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
  93. package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
  94. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
  95. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
  96. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
  97. package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
  98. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
  99. package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
  100. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
  101. package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
  102. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
  103. package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
  104. package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
  105. package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
  106. package/dist/ChiefOfStaff/index.d.ts +6 -0
  107. package/dist/ChiefOfStaff/index.d.ts.map +1 -0
  108. package/dist/ChiefOfStaff/index.js +6 -0
  109. package/dist/ChiefOfStaff/index.js.map +1 -0
  110. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  111. package/dist/Communication/communication-logs-resource.component.js +2 -1
  112. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  113. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  114. package/dist/Communication/communication-monitor-resource.component.js +26 -21
  115. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  116. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  117. package/dist/Communication/communication-runs-resource.component.js +14 -13
  118. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  119. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  120. package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
  121. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  122. package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
  123. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
  124. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  125. package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
  126. package/dist/ComponentStudio/services/component-version.service.js +3 -0
  127. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  128. package/dist/DashboardEditor/dashboard-editor.component.d.ts +17 -2
  129. package/dist/DashboardEditor/dashboard-editor.component.d.ts.map +1 -1
  130. package/dist/DashboardEditor/dashboard-editor.component.js +94 -43
  131. package/dist/DashboardEditor/dashboard-editor.component.js.map +1 -1
  132. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +45 -2
  133. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  134. package/dist/DataExplorer/data-explorer-dashboard.component.js +178 -55
  135. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  136. package/dist/DataExplorer/models/explorer-state.interface.d.ts +2 -0
  137. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  138. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  139. package/dist/DevTools/graphql-console.component.js +2 -2
  140. package/dist/DevTools/lazy-module-status.component.js +2 -2
  141. package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
  142. package/dist/FormBuilder/form-builder-resource.component.js +5 -0
  143. package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
  144. package/dist/Integration/components/connections/connections.component.js +2 -2
  145. package/dist/Integration/services/integration-data.service.d.ts +1 -1
  146. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  147. package/dist/Integration/services/integration-data.service.js +4 -3
  148. package/dist/Integration/services/integration-data.service.js.map +1 -1
  149. package/dist/Lists/components/lists-browse-resource.component.js +1 -1
  150. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  151. package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
  152. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  153. package/dist/LoginStudio/login-studio-resource.component.d.ts +10 -2
  154. package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
  155. package/dist/LoginStudio/login-studio-resource.component.js +111 -77
  156. package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
  157. package/dist/MCP/mcp-dashboard.component.d.ts +24 -4
  158. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  159. package/dist/MCP/mcp-dashboard.component.js +118 -65
  160. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  161. package/dist/PredictiveStudio/business-predictions.view-models.d.ts +1 -1
  162. package/dist/PredictiveStudio/business-predictions.view-models.d.ts.map +1 -1
  163. package/dist/PredictiveStudio/business-predictions.view-models.js +3 -3
  164. package/dist/PredictiveStudio/business-predictions.view-models.js.map +1 -1
  165. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts +6 -63
  166. package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
  167. package/dist/PredictiveStudio/components/ps-experiments.component.js +257 -521
  168. package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
  169. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts +0 -18
  170. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.d.ts.map +1 -1
  171. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +124 -251
  172. package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js.map +1 -1
  173. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts +5 -9
  174. package/dist/PredictiveStudio/components/ps-pipelines.component.d.ts.map +1 -1
  175. package/dist/PredictiveStudio/components/ps-pipelines.component.js +98 -130
  176. package/dist/PredictiveStudio/components/ps-pipelines.component.js.map +1 -1
  177. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts +53 -4
  178. package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
  179. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +338 -326
  180. package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
  181. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts +19 -0
  182. package/dist/PredictiveStudio/components/ps-row-drivers.component.d.ts.map +1 -0
  183. package/dist/PredictiveStudio/components/ps-row-drivers.component.js +85 -0
  184. package/dist/PredictiveStudio/components/ps-row-drivers.component.js.map +1 -0
  185. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts +19 -1
  186. package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
  187. package/dist/PredictiveStudio/engine/predictive-studio.engine.js +52 -2
  188. package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
  189. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts +3 -1
  190. package/dist/PredictiveStudio/predictive-studio-agent-context.d.ts.map +1 -1
  191. package/dist/PredictiveStudio/predictive-studio-agent-context.js +3 -0
  192. package/dist/PredictiveStudio/predictive-studio-agent-context.js.map +1 -1
  193. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts +27 -4
  194. package/dist/PredictiveStudio/predictive-studio-score-history.service.d.ts.map +1 -1
  195. package/dist/PredictiveStudio/predictive-studio-score-history.service.js +94 -61
  196. package/dist/PredictiveStudio/predictive-studio-score-history.service.js.map +1 -1
  197. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts +29 -5
  198. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
  199. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +186 -103
  200. package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
  201. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js +1 -1
  202. package/dist/PredictiveStudio/resources/ps-studio-resource.component.js.map +1 -1
  203. package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
  204. package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
  205. package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
  206. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  207. package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
  208. package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
  209. package/dist/UserRoutines/user-routines-resource.component.js +22 -4
  210. package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
  211. package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
  212. package/dist/VersionHistory/components/diff-resource.component.js +1 -0
  213. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  214. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
  215. package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
  216. package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
  217. package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
  218. package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
  219. package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
  220. package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
  221. package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
  222. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
  223. package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
  224. package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
  225. package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
  226. package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
  227. package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
  228. package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
  229. package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
  230. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
  231. package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
  232. package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
  233. package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
  234. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
  235. package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
  236. package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
  237. package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
  238. package/dist/VideoStudio/index.d.ts +12 -0
  239. package/dist/VideoStudio/index.d.ts.map +1 -0
  240. package/dist/VideoStudio/index.js +12 -0
  241. package/dist/VideoStudio/index.js.map +1 -0
  242. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
  243. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
  244. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
  245. package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
  246. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
  247. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
  248. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
  249. package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
  250. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
  251. package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
  252. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
  253. package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
  254. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
  255. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
  256. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
  257. package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
  258. package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
  259. package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
  260. package/dist/VideoStudio/video-studio-agent-context.js +992 -0
  261. package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
  262. package/dist/ai-dashboards.module.d.ts +25 -21
  263. package/dist/ai-dashboards.module.d.ts.map +1 -1
  264. package/dist/ai-dashboards.module.js +25 -3
  265. package/dist/ai-dashboards.module.js.map +1 -1
  266. package/dist/module.d.ts +13 -12
  267. package/dist/module.d.ts.map +1 -1
  268. package/dist/module.js +7 -0
  269. package/dist/module.js.map +1 -1
  270. package/dist/public-api.d.ts +8 -0
  271. package/dist/public-api.d.ts.map +1 -1
  272. package/dist/public-api.js +10 -0
  273. package/dist/public-api.js.map +1 -1
  274. package/dist/shared/action-scheduled-job.d.ts.map +1 -1
  275. package/dist/shared/action-scheduled-job.js +2 -0
  276. package/dist/shared/action-scheduled-job.js.map +1 -1
  277. package/dist/video-studio-dashboards.module.d.ts +40 -0
  278. package/dist/video-studio-dashboards.module.d.ts.map +1 -0
  279. package/dist/video-studio-dashboards.module.js +159 -0
  280. package/dist/video-studio-dashboards.module.js.map +1 -0
  281. package/package.json +77 -71
  282. package/dist/PredictiveStudio/at-risk.view-models.d.ts +0 -120
  283. package/dist/PredictiveStudio/at-risk.view-models.d.ts.map +0 -1
  284. package/dist/PredictiveStudio/at-risk.view-models.js +0 -261
  285. package/dist/PredictiveStudio/at-risk.view-models.js.map +0 -1
  286. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts +0 -109
  287. package/dist/PredictiveStudio/components/ps-confirm-modal.component.d.ts.map +0 -1
  288. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js +0 -323
  289. package/dist/PredictiveStudio/components/ps-confirm-modal.component.js.map +0 -1
  290. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts +0 -137
  291. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.d.ts.map +0 -1
  292. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js +0 -826
  293. package/dist/PredictiveStudio/components/ps-run-experiment-modal.component.js.map +0 -1
@@ -0,0 +1,560 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, inject, } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { AIEngineBase } from '@memberjunction/ai-engine-base';
4
+ import { LogError } from '@memberjunction/core';
5
+ import { MJEnvironmentEntityExtended, VideoStudioSetupHealthOperation, } from '@memberjunction/core-entities';
6
+ import { UUIDsEqual } from '@memberjunction/global';
7
+ import { BaseAngularComponent } from '@memberjunction/ng-base-types';
8
+ import { ConversationsModule } from '@memberjunction/ng-conversations';
9
+ import { SharedGenericModule } from '@memberjunction/ng-shared-generic';
10
+ import { MJButtonDirective } from '@memberjunction/ng-ui-components';
11
+ import { VSProductionBriefComponent, } from './vs-production-brief.component';
12
+ import { VSSetupHealthCardComponent } from './vs-setup-health-card.component';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@memberjunction/ng-conversations";
15
+ import * as i2 from "@memberjunction/ng-shared-generic";
16
+ const _c0 = ["chatArea"];
17
+ const _c1 = ["briefComponent"];
18
+ function VSCopilotPanelComponent_Conditional_1_Conditional_5_Template(rf, ctx) { if (rf & 1) {
19
+ const _r1 = i0.ɵɵgetCurrentView();
20
+ i0.ɵɵelementStart(0, "button", 11);
21
+ i0.ɵɵlistener("click", function VSCopilotPanelComponent_Conditional_1_Conditional_5_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OnCloseClick()); });
22
+ i0.ɵɵelement(1, "i", 12);
23
+ i0.ɵɵelementEnd();
24
+ } if (rf & 2) {
25
+ i0.ɵɵproperty("AriaLabel", "Close Video Studio");
26
+ } }
27
+ function VSCopilotPanelComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵelementStart(0, "header", 3)(1, "div", 8);
29
+ i0.ɵɵelement(2, "i", 9);
30
+ i0.ɵɵelementStart(3, "span");
31
+ i0.ɵɵtext(4);
32
+ i0.ɵɵelementEnd()();
33
+ i0.ɵɵconditionalCreate(5, VSCopilotPanelComponent_Conditional_1_Conditional_5_Template, 2, 1, "button", 10);
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const ctx_r1 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance(4);
38
+ i0.ɵɵtextInterpolate(ctx_r1.HeaderTitle);
39
+ i0.ɵɵadvance();
40
+ i0.ɵɵconditional(ctx_r1.ShowCloseButton ? 5 : -1);
41
+ } }
42
+ function VSCopilotPanelComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
43
+ i0.ɵɵelementStart(0, "div", 5);
44
+ i0.ɵɵelement(1, "mj-loading", 13);
45
+ i0.ɵɵelementEnd();
46
+ } }
47
+ function VSCopilotPanelComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
48
+ i0.ɵɵelementStart(0, "div", 6);
49
+ i0.ɵɵelement(1, "i", 14);
50
+ i0.ɵɵelementStart(2, "p", 15);
51
+ i0.ɵɵtext(3);
52
+ i0.ɵɵelementEnd()();
53
+ } if (rf & 2) {
54
+ const ctx_r1 = i0.ɵɵnextContext();
55
+ i0.ɵɵadvance(3);
56
+ i0.ɵɵtextInterpolate(ctx_r1.MissingAgentMessage);
57
+ } }
58
+ function VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_0_Template(rf, ctx) { if (rf & 1) {
59
+ i0.ɵɵelementStart(0, "span", 19);
60
+ i0.ɵɵelement(1, "i", 9);
61
+ i0.ɵɵelementStart(2, "span", 22);
62
+ i0.ɵɵtext(3);
63
+ i0.ɵɵelementEnd()();
64
+ } if (rf & 2) {
65
+ const ctx_r1 = i0.ɵɵnextContext(3);
66
+ i0.ɵɵproperty("title", ctx_r1.HeaderTitle);
67
+ i0.ɵɵadvance(3);
68
+ i0.ɵɵtextInterpolate(ctx_r1.HeaderTitle);
69
+ } }
70
+ function VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_1_Template(rf, ctx) { if (rf & 1) {
71
+ const _r4 = i0.ɵɵgetCurrentView();
72
+ i0.ɵɵelementStart(0, "button", 23);
73
+ i0.ɵɵlistener("click", function VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_1_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleHealthySetupDetails()); });
74
+ i0.ɵɵelement(1, "i", 24);
75
+ i0.ɵɵelementEnd();
76
+ } if (rf & 2) {
77
+ const ctx_r1 = i0.ɵɵnextContext(3);
78
+ i0.ɵɵclassProp("vs-copilot-panel__setup-ok-btn--active", ctx_r1.ShowHealthySetupDetails);
79
+ i0.ɵɵproperty("AriaLabel", "Setup OK");
80
+ i0.ɵɵattribute("aria-expanded", ctx_r1.ShowHealthySetupDetails);
81
+ } }
82
+ function VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
83
+ const _r5 = i0.ɵɵgetCurrentView();
84
+ i0.ɵɵelementStart(0, "button", 25);
85
+ i0.ɵɵlistener("click", function VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnCloseClick()); });
86
+ i0.ɵɵelement(1, "i", 12);
87
+ i0.ɵɵelementEnd();
88
+ } if (rf & 2) {
89
+ i0.ɵɵproperty("AriaLabel", "Close Video Studio");
90
+ } }
91
+ function VSCopilotPanelComponent_Conditional_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
92
+ i0.ɵɵconditionalCreate(0, VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_0_Template, 4, 2, "span", 19);
93
+ i0.ɵɵconditionalCreate(1, VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_1_Template, 2, 4, "button", 20);
94
+ i0.ɵɵconditionalCreate(2, VSCopilotPanelComponent_Conditional_5_ng_template_2_Conditional_2_Template, 2, 1, "button", 21);
95
+ } if (rf & 2) {
96
+ const conversation_r6 = ctx.$implicit;
97
+ const ctx_r1 = i0.ɵɵnextContext(2);
98
+ i0.ɵɵconditional(!conversation_r6 ? 0 : -1);
99
+ i0.ɵɵadvance();
100
+ i0.ɵɵconditional(ctx_r1.IsSetupAllOk ? 1 : -1);
101
+ i0.ɵɵadvance();
102
+ i0.ɵɵconditional(ctx_r1.ShowCloseButton ? 2 : -1);
103
+ } }
104
+ function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_1_Template(rf, ctx) { if (rf & 1) {
105
+ const _r8 = i0.ɵɵgetCurrentView();
106
+ i0.ɵɵelementStart(0, "div", 27)(1, "vs-setup-health-card", 37);
107
+ i0.ɵɵlistener("ExpandedChange", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_1_Template_vs_setup_health_card_ExpandedChange_1_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnBriefShowHealthySetupDetailsChange($event)); })("Recheck", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_1_Template_vs_setup_health_card_Recheck_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.CheckSetupHealth()); });
108
+ i0.ɵɵelementEnd()();
109
+ } if (rf & 2) {
110
+ const ctx_r1 = i0.ɵɵnextContext(4);
111
+ i0.ɵɵadvance();
112
+ i0.ɵɵproperty("Result", ctx_r1.SetupHealthResult)("Loading", ctx_r1.IsCheckingSetupHealth)("Expanded", ctx_r1.IsSetupAllOk && ctx_r1.ShowHealthySetupDetails);
113
+ } }
114
+ function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_10_Template(rf, ctx) { if (rf & 1) {
115
+ i0.ɵɵelementStart(0, "span", 33);
116
+ i0.ɵɵtext(1);
117
+ i0.ɵɵelementEnd();
118
+ } if (rf & 2) {
119
+ const ctx_r1 = i0.ɵɵnextContext(4);
120
+ i0.ɵɵadvance();
121
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.BriefSummaryLine, " ");
122
+ } }
123
+ function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template(rf, ctx) { if (rf & 1) {
124
+ const _r7 = i0.ɵɵgetCurrentView();
125
+ i0.ɵɵelementStart(0, "div", 26);
126
+ i0.ɵɵconditionalCreate(1, VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_1_Template, 2, 3, "div", 27);
127
+ i0.ɵɵelementStart(2, "button", 28);
128
+ i0.ɵɵlistener("click", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template_button_click_2_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.ToggleBriefCollapsed()); });
129
+ i0.ɵɵelementStart(3, "span", 29)(4, "span", 30);
130
+ i0.ɵɵelement(5, "i", 31);
131
+ i0.ɵɵelementStart(6, "span");
132
+ i0.ɵɵtext(7, "Guided start");
133
+ i0.ɵɵelementEnd()();
134
+ i0.ɵɵelementStart(8, "span", 32);
135
+ i0.ɵɵtext(9, " Not sure where to begin? Pick a shape, format and sound step by step. ");
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵconditionalCreate(10, VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Conditional_10_Template, 2, 1, "span", 33);
138
+ i0.ɵɵelementEnd();
139
+ i0.ɵɵelement(11, "i", 34);
140
+ i0.ɵɵelementEnd();
141
+ i0.ɵɵelementStart(12, "div", 35)(13, "vs-production-brief", 36, 1);
142
+ i0.ɵɵlistener("ShowHealthySetupDetailsChange", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template_vs_production_brief_ShowHealthySetupDetailsChange_13_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnBriefShowHealthySetupDetailsChange($event)); })("SetupHealthChange", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template_vs_production_brief_SetupHealthChange_13_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnBriefSetupHealthChange($event)); })("StateChange", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template_vs_production_brief_StateChange_13_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnBriefStateChange($event)); })("StartRequested", function VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template_vs_production_brief_StartRequested_13_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OnBriefStartRequested($event)); });
143
+ i0.ɵɵelementEnd()()();
144
+ } if (rf & 2) {
145
+ const ctx_r1 = i0.ɵɵnextContext(3);
146
+ i0.ɵɵadvance();
147
+ i0.ɵɵconditional(ctx_r1.ShouldShowCollapsedSetupHealth ? 1 : -1);
148
+ i0.ɵɵadvance();
149
+ i0.ɵɵattribute("aria-expanded", !ctx_r1.IsBriefCollapsed);
150
+ i0.ɵɵadvance(8);
151
+ i0.ɵɵconditional(ctx_r1.BriefSummaryLine ? 10 : -1);
152
+ i0.ɵɵadvance();
153
+ i0.ɵɵclassProp("fa-chevron-down", !ctx_r1.IsBriefCollapsed)("fa-chevron-right", ctx_r1.IsBriefCollapsed);
154
+ i0.ɵɵadvance();
155
+ i0.ɵɵproperty("hidden", ctx_r1.IsBriefCollapsed);
156
+ i0.ɵɵadvance();
157
+ i0.ɵɵproperty("Provider", ctx_r1.ProviderToUse)("AutoCheckSetupHealth", false)("ShowSetupHealthCard", !ctx_r1.IsBriefCollapsed)("SetupHealthResult", ctx_r1.SetupHealthResult)("IsCheckingSetupHealth", ctx_r1.IsCheckingSetupHealth)("ShowHealthySetupDetails", ctx_r1.ShowHealthySetupDetails)("SelectedArchetype", ctx_r1.BriefSelectedArchetype)("SelectedBrandKit", ctx_r1.BriefSelectedBrandKit)("SelectedBrandKitExplicitNone", ctx_r1.BriefSelectedBrandKitExplicitNone)("SelectedFormats", ctx_r1.BriefSelectedFormats)("DurationSeconds", ctx_r1.BriefDurationSeconds)("Topic", ctx_r1.BriefTopic)("SelectedQueries", ctx_r1.BriefSelectedQueries)("NarrationEnabled", ctx_r1.BriefNarrationEnabled)("CaptionsMode", ctx_r1.BriefCaptionsMode);
158
+ } }
159
+ function VSCopilotPanelComponent_Conditional_5_ng_template_3_Template(rf, ctx) { if (rf & 1) {
160
+ i0.ɵɵconditionalCreate(0, VSCopilotPanelComponent_Conditional_5_ng_template_3_Conditional_0_Template, 15, 23, "div", 26);
161
+ } if (rf & 2) {
162
+ const conversation_r9 = ctx.$implicit;
163
+ const slotConversationId_r10 = ctx.ConversationId;
164
+ const ctx_r1 = i0.ɵɵnextContext(2);
165
+ i0.ɵɵconditional(!conversation_r9 && !slotConversationId_r10 && ctx_r1.IsBriefVisible ? 0 : -1);
166
+ } }
167
+ function VSCopilotPanelComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
168
+ const _r3 = i0.ɵɵgetCurrentView();
169
+ i0.ɵɵelementStart(0, "mj-conversation-chat-area", 16, 0);
170
+ i0.ɵɵlistener("ComposerDraftConsumed", function VSCopilotPanelComponent_Conditional_5_Template_mj_conversation_chat_area_ComposerDraftConsumed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnComposerDraftConsumed()); })("ConversationCreated", function VSCopilotPanelComponent_Conditional_5_Template_mj_conversation_chat_area_ConversationCreated_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnChatConversationCreated($event)); })("PendingMessageConsumed", function VSCopilotPanelComponent_Conditional_5_Template_mj_conversation_chat_area_PendingMessageConsumed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnPendingMessageConsumed()); })("PendingArtifactConsumed", function VSCopilotPanelComponent_Conditional_5_Template_mj_conversation_chat_area_PendingArtifactConsumed_0_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnPendingArtifactConsumed()); })("navigationRequest", function VSCopilotPanelComponent_Conditional_5_Template_mj_conversation_chat_area_navigationRequest_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnNavigationRequest($event)); });
171
+ i0.ɵɵtemplate(2, VSCopilotPanelComponent_Conditional_5_ng_template_2_Template, 3, 3, "ng-template", 17)(3, VSCopilotPanelComponent_Conditional_5_ng_template_3_Template, 1, 1, "ng-template", 18);
172
+ i0.ɵɵelementEnd();
173
+ } if (rf & 2) {
174
+ const ctx_r1 = i0.ɵɵnextContext();
175
+ i0.ɵɵproperty("Provider", ctx_r1.ProviderToUse)("EnvironmentId", ctx_r1.EnvironmentId)("CurrentUser", ctx_r1.EffectiveCurrentUser)("Conversation", ctx_r1.ActiveConversation)("ConversationId", ctx_r1.ConversationId)("IsNewConversation", ctx_r1.ChatIsNewConversation)("SuppressNewConversationEmptyState", true)("DefaultAgentId", ctx_r1.VideoStudioAgentId)("ShowAgentPicker", false)("ShowAgentModePicker", true)("ComposerDraft", ctx_r1.ComposerDraft)("PendingMessage", ctx_r1.PendingMessage)("PendingArtifactId", ctx_r1.PendingArtifactId)("PendingArtifactVersionNumber", ctx_r1.PendingArtifactVersionNumber)("PendingArtifactConversationId", ctx_r1.ConversationId)("AppContext", ctx_r1.AppContext)("ApplicationScope", "Application")("ApplicationId", ctx_r1.ApplicationId)("ShowArtifactIndicator", true)("AllowAttachments", true);
176
+ } }
177
+ function VSCopilotPanelComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
178
+ i0.ɵɵelementStart(0, "div", 6);
179
+ i0.ɵɵelement(1, "i", 14);
180
+ i0.ɵɵelementStart(2, "p", 15);
181
+ i0.ɵɵtext(3);
182
+ i0.ɵɵelementEnd()();
183
+ } if (rf & 2) {
184
+ const ctx_r1 = i0.ɵɵnextContext();
185
+ i0.ɵɵadvance(3);
186
+ i0.ɵɵtextInterpolate(ctx_r1.MissingAgentMessage);
187
+ } }
188
+ /** Canonical AI agent name for the Video Studio orchestrator. */
189
+ export const VIDEO_STUDIO_AGENT_NAME = 'Video Studio';
190
+ /** User-facing message rendered when the Video Studio agent is missing or inaccessible. */
191
+ export const VIDEO_STUDIO_AGENT_MISSING_MESSAGE = "Video Studio isn't installed or you can't run it";
192
+ /**
193
+ * Shared Video Studio slide-in panel wrapping `<mj-conversation-chat-area>` pinned
194
+ * to the `'Video Studio'` orchestrator agent, with `<vs-production-brief>` projected
195
+ * into `mjChatSlot="composerExtra"` before the first message and header controls
196
+ * projected into `mjChatSlot="headerActions"`.
197
+ */
198
+ export class VSCopilotPanelComponent extends BaseAngularComponent {
199
+ _conversationId = null;
200
+ CurrentUser = null;
201
+ EnvironmentId = MJEnvironmentEntityExtended.DefaultEnvironmentID;
202
+ ApplicationId = '';
203
+ set ConversationId(value) {
204
+ this._conversationId = value;
205
+ this.syncConversationMode();
206
+ }
207
+ get ConversationId() {
208
+ return this._conversationId;
209
+ }
210
+ PendingMessage = null;
211
+ PendingArtifactId = null;
212
+ PendingArtifactVersionNumber = null;
213
+ AppContext = null;
214
+ HeaderTitle = 'Video Studio';
215
+ ShowCloseButton = false;
216
+ SetupHealthResult = null;
217
+ BriefSelectedArchetype = null;
218
+ BriefSelectedBrandKit = null;
219
+ BriefSelectedBrandKitExplicitNone = false;
220
+ BriefSelectedFormats = ['16:9'];
221
+ BriefDurationSeconds = 30;
222
+ BriefTopic = '';
223
+ BriefSelectedQueries = [];
224
+ BriefNarrationEnabled = true;
225
+ BriefCaptionsMode = 'Burned';
226
+ ConversationCreated = new EventEmitter();
227
+ PendingMessageConsumed = new EventEmitter();
228
+ PendingArtifactConsumed = new EventEmitter();
229
+ NavigationRequest = new EventEmitter();
230
+ CloseRequested = new EventEmitter();
231
+ BriefStateChange = new EventEmitter();
232
+ BriefStartRequested = new EventEmitter();
233
+ chatArea;
234
+ BriefComponent;
235
+ VideoStudioAgentId = null;
236
+ IsResolvingAgent = true;
237
+ AgentMissing = false;
238
+ ActiveConversation = null;
239
+ ChatIsNewConversation = true;
240
+ ComposerDraft = null;
241
+ IsBriefCollapsed = true;
242
+ BriefSummaryLine = '';
243
+ IsCheckingSetupHealth = false;
244
+ ShowHealthySetupDetails = false;
245
+ cdr = inject(ChangeDetectorRef);
246
+ async ngOnInit() {
247
+ this.syncConversationMode();
248
+ if (!this.SetupHealthResult &&
249
+ !this.IsCheckingSetupHealth &&
250
+ this.ProviderToUse &&
251
+ 'ExecuteGQL' in this.ProviderToUse) {
252
+ void this.CheckSetupHealth();
253
+ }
254
+ await this.ResolveVideoStudioAgent();
255
+ }
256
+ ngOnChanges(changes) {
257
+ if (changes['PendingArtifactId'] &&
258
+ this.PendingArtifactId &&
259
+ !changes['ConversationId'] &&
260
+ this.ConversationId) {
261
+ this.OpenIterateArtifact(this.PendingArtifactId, this.PendingArtifactVersionNumber);
262
+ }
263
+ }
264
+ get IsImageViewerOpen() {
265
+ return Boolean(this.chatArea?.ShowImageViewer);
266
+ }
267
+ get IsCreatingConversation() {
268
+ return ((this.ChatIsNewConversation && Boolean(this.chatArea?.IsProcessing)) ||
269
+ Boolean(this.PendingMessage));
270
+ }
271
+ /**
272
+ * Opens an artifact directly on the active `<mj-conversation-chat-area>` when
273
+ * `Iterate` is clicked for a production whose conversation is already loaded.
274
+ */
275
+ OpenIterateArtifact(artifactId, versionNumber = null) {
276
+ const trimmedId = (artifactId ?? '').trim();
277
+ if (!trimmedId || !this.chatArea) {
278
+ return false;
279
+ }
280
+ let versionId;
281
+ if (versionNumber != null && this.chatArea.ArtifactsByDetailId) {
282
+ for (const list of this.chatArea.ArtifactsByDetailId.values()) {
283
+ for (const info of list) {
284
+ if (UUIDsEqual(info.artifactId, trimmedId) &&
285
+ info.versionNumber === versionNumber &&
286
+ info.artifactVersionId) {
287
+ versionId = info.artifactVersionId;
288
+ break;
289
+ }
290
+ }
291
+ if (versionId) {
292
+ break;
293
+ }
294
+ }
295
+ }
296
+ if (typeof this.chatArea.OnArtifactClicked === 'function') {
297
+ void this.chatArea.OnArtifactClicked({
298
+ artifactId: trimmedId,
299
+ ...(versionId ? { versionId } : {}),
300
+ });
301
+ if (versionNumber != null) {
302
+ this.chatArea.SelectedVersionNumber = versionNumber;
303
+ }
304
+ this.OnPendingArtifactConsumed();
305
+ return true;
306
+ }
307
+ return false;
308
+ }
309
+ get IsBriefVisible() {
310
+ return this.ChatIsNewConversation && !this.ConversationId && !this.ActiveConversation;
311
+ }
312
+ ToggleBriefCollapsed() {
313
+ this.IsBriefCollapsed = !this.IsBriefCollapsed;
314
+ this.cdr.markForCheck();
315
+ }
316
+ get IsSetupAllOk() {
317
+ return Boolean(this.SetupHealthResult &&
318
+ this.SetupHealthResult.Healthy &&
319
+ (this.SetupHealthResult.Checks ?? []).every((check) => check.Status === 'OK'));
320
+ }
321
+ get ShouldShowCollapsedSetupHealth() {
322
+ if (!this.IsBriefCollapsed || !this.SetupHealthResult) {
323
+ return false;
324
+ }
325
+ if (this.IsSetupAllOk) {
326
+ return this.ShowHealthySetupDetails;
327
+ }
328
+ return true;
329
+ }
330
+ async CheckSetupHealth() {
331
+ this.IsCheckingSetupHealth = true;
332
+ this.cdr.markForCheck();
333
+ try {
334
+ const res = await new VideoStudioSetupHealthOperation().Execute({}, { provider: this.ProviderToUse });
335
+ if (res.Success && res.Output) {
336
+ this.SetupHealthResult = res.Output;
337
+ }
338
+ }
339
+ catch {
340
+ // Handled by brief when rendered
341
+ }
342
+ finally {
343
+ this.IsCheckingSetupHealth = false;
344
+ this.cdr.markForCheck();
345
+ }
346
+ }
347
+ OnBriefSetupHealthChange(event) {
348
+ this.SetupHealthResult = event.Result;
349
+ this.IsCheckingSetupHealth = event.Loading;
350
+ if (!this.IsSetupAllOk) {
351
+ this.ShowHealthySetupDetails = false;
352
+ }
353
+ this.cdr.markForCheck();
354
+ }
355
+ OnBriefShowHealthySetupDetailsChange(expanded) {
356
+ this.ShowHealthySetupDetails = expanded;
357
+ this.cdr.markForCheck();
358
+ }
359
+ ToggleHealthySetupDetails() {
360
+ this.ShowHealthySetupDetails = !this.ShowHealthySetupDetails;
361
+ this.cdr.markForCheck();
362
+ }
363
+ OnBriefStateChange(snapshot) {
364
+ this.AppContext = { ...(this.AppContext ?? {}), ...snapshot.AppContext };
365
+ const hasTopic = (snapshot.Topic ?? this.BriefComponent?.Topic ?? '').trim().length > 0;
366
+ this.BriefSummaryLine = hasTopic ? (this.BriefComponent?.SummaryLine ?? '') : '';
367
+ this.BriefStateChange.emit(snapshot);
368
+ this.cdr.markForCheck();
369
+ }
370
+ OnBriefStartRequested(event) {
371
+ this.AppContext = { ...(this.AppContext ?? {}), ...event.AppContext };
372
+ this.chatArea?.initialDraftSnapshots?.delete('new');
373
+ this.ComposerDraft = event.Message;
374
+ this.BriefStartRequested.emit(event);
375
+ this.cdr.markForCheck();
376
+ }
377
+ OnComposerDraftConsumed() {
378
+ this.ComposerDraft = null;
379
+ this.cdr.markForCheck();
380
+ }
381
+ /**
382
+ * Resolves the `'Video Studio'` agent ID via `AIEngineBase.GetProviderInstance`.
383
+ * Logs an error and enters the inline missing-agent state if the agent cannot be found.
384
+ */
385
+ async ResolveVideoStudioAgent() {
386
+ this.IsResolvingAgent = true;
387
+ this.AgentMissing = false;
388
+ this.cdr.markForCheck();
389
+ try {
390
+ const user = this.CurrentUser ?? this.ProviderToUse?.CurrentUser ?? undefined;
391
+ const aiEngine = AIEngineBase.GetProviderInstance(this.ProviderToUse, AIEngineBase);
392
+ await aiEngine.Config(false, user, this.ProviderToUse);
393
+ const match = aiEngine.Agents?.find((a) => a.Name?.trim().toLowerCase() === VIDEO_STUDIO_AGENT_NAME.toLowerCase()) ?? null;
394
+ if (match?.ID) {
395
+ this.VideoStudioAgentId = match.ID;
396
+ this.AgentMissing = false;
397
+ }
398
+ else {
399
+ this.VideoStudioAgentId = null;
400
+ this.AgentMissing = true;
401
+ LogError(`VSCopilotPanelComponent: '${VIDEO_STUDIO_AGENT_NAME}' agent not found — ${VIDEO_STUDIO_AGENT_MISSING_MESSAGE}`);
402
+ }
403
+ }
404
+ catch (err) {
405
+ this.VideoStudioAgentId = null;
406
+ this.AgentMissing = true;
407
+ const detail = err instanceof Error ? err.message : String(err);
408
+ LogError(`VSCopilotPanelComponent.ResolveVideoStudioAgent: ${VIDEO_STUDIO_AGENT_MISSING_MESSAGE} (${detail})`);
409
+ }
410
+ finally {
411
+ this.IsResolvingAgent = false;
412
+ this.cdr.markForCheck();
413
+ }
414
+ }
415
+ get EffectiveCurrentUser() {
416
+ return this.CurrentUser ?? this.ProviderToUse?.CurrentUser ?? null;
417
+ }
418
+ get MissingAgentMessage() {
419
+ return VIDEO_STUDIO_AGENT_MISSING_MESSAGE;
420
+ }
421
+ OnChatConversationCreated(event) {
422
+ this.ActiveConversation = event.conversation;
423
+ this.ConversationId = event.conversation.ID;
424
+ this.ChatIsNewConversation = false;
425
+ if (event.pendingMessage !== undefined) {
426
+ this.PendingMessage = event.pendingMessage ?? null;
427
+ }
428
+ this.ConversationCreated.emit(event);
429
+ this.cdr.markForCheck();
430
+ }
431
+ OnPendingMessageConsumed() {
432
+ this.PendingMessage = null;
433
+ this.PendingMessageConsumed.emit();
434
+ this.cdr.markForCheck();
435
+ }
436
+ OnPendingArtifactConsumed() {
437
+ this.PendingArtifactId = null;
438
+ this.PendingArtifactVersionNumber = null;
439
+ this.PendingArtifactConsumed.emit();
440
+ this.cdr.markForCheck();
441
+ }
442
+ OnNavigationRequest(event) {
443
+ this.NavigationRequest.emit(event);
444
+ }
445
+ OnCloseClick() {
446
+ this.CloseRequested.emit();
447
+ }
448
+ syncConversationMode() {
449
+ const trimmed = this.ConversationId?.trim() ?? '';
450
+ if (trimmed.length > 0) {
451
+ this.ChatIsNewConversation = false;
452
+ if (this.ActiveConversation && !UUIDsEqual(this.ActiveConversation.ID, trimmed)) {
453
+ this.ActiveConversation = null;
454
+ }
455
+ }
456
+ else {
457
+ if (!this.ChatIsNewConversation) {
458
+ this.IsBriefCollapsed = true;
459
+ }
460
+ this.ChatIsNewConversation = true;
461
+ this.ActiveConversation = null;
462
+ }
463
+ this.cdr.markForCheck();
464
+ }
465
+ static ɵfac = /*@__PURE__*/ (() => { let ɵVSCopilotPanelComponent_BaseFactory; return function VSCopilotPanelComponent_Factory(__ngFactoryType__) { return (ɵVSCopilotPanelComponent_BaseFactory || (ɵVSCopilotPanelComponent_BaseFactory = i0.ɵɵgetInheritedFactory(VSCopilotPanelComponent)))(__ngFactoryType__ || VSCopilotPanelComponent); }; })();
466
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: VSCopilotPanelComponent, selectors: [["vs-copilot-panel"], ["mj-vs-copilot-panel"]], viewQuery: function VSCopilotPanelComponent_Query(rf, ctx) { if (rf & 1) {
467
+ i0.ɵɵviewQuery(_c0, 5)(_c1, 5);
468
+ } if (rf & 2) {
469
+ let _t;
470
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.chatArea = _t.first);
471
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.BriefComponent = _t.first);
472
+ } }, inputs: { CurrentUser: "CurrentUser", EnvironmentId: "EnvironmentId", ApplicationId: "ApplicationId", ConversationId: "ConversationId", PendingMessage: "PendingMessage", PendingArtifactId: "PendingArtifactId", PendingArtifactVersionNumber: "PendingArtifactVersionNumber", AppContext: "AppContext", HeaderTitle: "HeaderTitle", ShowCloseButton: "ShowCloseButton", SetupHealthResult: "SetupHealthResult", BriefSelectedArchetype: "BriefSelectedArchetype", BriefSelectedBrandKit: "BriefSelectedBrandKit", BriefSelectedBrandKitExplicitNone: "BriefSelectedBrandKitExplicitNone", BriefSelectedFormats: "BriefSelectedFormats", BriefDurationSeconds: "BriefDurationSeconds", BriefTopic: "BriefTopic", BriefSelectedQueries: "BriefSelectedQueries", BriefNarrationEnabled: "BriefNarrationEnabled", BriefCaptionsMode: "BriefCaptionsMode" }, outputs: { ConversationCreated: "ConversationCreated", PendingMessageConsumed: "PendingMessageConsumed", PendingArtifactConsumed: "PendingArtifactConsumed", NavigationRequest: "NavigationRequest", CloseRequested: "CloseRequested", BriefStateChange: "BriefStateChange", BriefStartRequested: "BriefStartRequested" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], decls: 7, vars: 2, consts: [["chatArea", ""], ["briefComponent", ""], ["data-testid", "vs-copilot-panel", 1, "vs-copilot-panel"], [1, "vs-copilot-panel__header"], [1, "vs-copilot-panel__body"], ["data-testid", "vs-copilot-loading", 1, "vs-copilot-panel__loading"], ["data-testid", "vs-copilot-agent-missing", "role", "status", 1, "vs-copilot-panel__missing"], ["data-testid", "vs-copilot-chat-area", 3, "Provider", "EnvironmentId", "CurrentUser", "Conversation", "ConversationId", "IsNewConversation", "SuppressNewConversationEmptyState", "DefaultAgentId", "ShowAgentPicker", "ShowAgentModePicker", "ComposerDraft", "PendingMessage", "PendingArtifactId", "PendingArtifactVersionNumber", "PendingArtifactConversationId", "AppContext", "ApplicationScope", "ApplicationId", "ShowArtifactIndicator", "AllowAttachments"], ["data-testid", "vs-copilot-header-title", 1, "vs-copilot-panel__title"], ["aria-hidden", "true", 1, "fa-solid", "fa-wand-magic-sparkles"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-copilot-close-button", "title", "Close Video Studio", 3, "AriaLabel"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-copilot-close-button", "title", "Close Video Studio", 3, "click", "AriaLabel"], ["aria-hidden", "true", 1, "fa-solid", "fa-xmark"], ["Text", "Connecting to Video Studio...", "Size", "small"], ["aria-hidden", "true", 1, "fa-solid", "fa-triangle-exclamation"], [1, "vs-copilot-panel__missing-text"], ["data-testid", "vs-copilot-chat-area", 3, "ComposerDraftConsumed", "ConversationCreated", "PendingMessageConsumed", "PendingArtifactConsumed", "navigationRequest", "Provider", "EnvironmentId", "CurrentUser", "Conversation", "ConversationId", "IsNewConversation", "SuppressNewConversationEmptyState", "DefaultAgentId", "ShowAgentPicker", "ShowAgentModePicker", "ComposerDraft", "PendingMessage", "PendingArtifactId", "PendingArtifactVersionNumber", "PendingArtifactConversationId", "AppContext", "ApplicationScope", "ApplicationId", "ShowArtifactIndicator", "AllowAttachments"], ["mjChatSlot", "headerActions"], ["mjChatSlot", "composerExtra"], ["data-testid", "vs-copilot-header-title", 1, "vs-copilot-panel__title", "vs-copilot-panel__slot-title", 3, "title"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-setup-ok-header-button", "title", "Setup OK", 1, "vs-copilot-panel__icon-btn", "vs-copilot-panel__setup-ok-btn", 3, "vs-copilot-panel__setup-ok-btn--active", "AriaLabel"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-copilot-close-button", "title", "Close Video Studio", 1, "vs-copilot-panel__icon-btn", "vs-copilot-panel__close-btn", 3, "AriaLabel"], [1, "vs-copilot-panel__title-text"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-setup-ok-header-button", "title", "Setup OK", 1, "vs-copilot-panel__icon-btn", "vs-copilot-panel__setup-ok-btn", 3, "click", "AriaLabel"], ["aria-hidden", "true", 1, "fa-solid", "fa-circle-check"], ["type", "button", "mjButton", "", "Variant", "icon", "Size", "sm", "data-testid", "vs-copilot-close-button", "title", "Close Video Studio", 1, "vs-copilot-panel__icon-btn", "vs-copilot-panel__close-btn", 3, "click", "AriaLabel"], ["data-testid", "vs-copilot-brief-drawer", 1, "vs-copilot-brief-drawer"], ["data-testid", "vs-copilot-collapsed-setup-health", 1, "vs-copilot-brief-drawer__health"], ["type", "button", "data-testid", "vs-copilot-brief-toggle", 1, "vs-copilot-brief-drawer__header", 3, "click"], [1, "vs-copilot-brief-drawer__lead"], [1, "vs-copilot-brief-drawer__title"], ["aria-hidden", "true", 1, "fa-solid", "fa-compass"], ["data-testid", "vs-copilot-brief-subtitle", 1, "vs-copilot-brief-drawer__subtitle"], ["data-testid", "vs-copilot-brief-toggle-summary", 1, "vs-copilot-brief-drawer__summary"], ["aria-hidden", "true", 1, "fa-solid", "vs-copilot-brief-drawer__chevron"], ["data-testid", "vs-copilot-brief-drawer-body", 1, "vs-copilot-brief-drawer__body", 3, "hidden"], [3, "ShowHealthySetupDetailsChange", "SetupHealthChange", "StateChange", "StartRequested", "Provider", "AutoCheckSetupHealth", "ShowSetupHealthCard", "SetupHealthResult", "IsCheckingSetupHealth", "ShowHealthySetupDetails", "SelectedArchetype", "SelectedBrandKit", "SelectedBrandKitExplicitNone", "SelectedFormats", "DurationSeconds", "Topic", "SelectedQueries", "NarrationEnabled", "CaptionsMode"], [3, "ExpandedChange", "Recheck", "Result", "Loading", "Expanded"]], template: function VSCopilotPanelComponent_Template(rf, ctx) { if (rf & 1) {
473
+ i0.ɵɵelementStart(0, "aside", 2);
474
+ i0.ɵɵconditionalCreate(1, VSCopilotPanelComponent_Conditional_1_Template, 6, 2, "header", 3);
475
+ i0.ɵɵelementStart(2, "div", 4);
476
+ i0.ɵɵconditionalCreate(3, VSCopilotPanelComponent_Conditional_3_Template, 2, 0, "div", 5)(4, VSCopilotPanelComponent_Conditional_4_Template, 4, 1, "div", 6)(5, VSCopilotPanelComponent_Conditional_5_Template, 4, 20, "mj-conversation-chat-area", 7)(6, VSCopilotPanelComponent_Conditional_6_Template, 4, 1, "div", 6);
477
+ i0.ɵɵelementEnd()();
478
+ } if (rf & 2) {
479
+ i0.ɵɵadvance();
480
+ i0.ɵɵconditional(ctx.IsResolvingAgent || ctx.AgentMissing || !ctx.VideoStudioAgentId || !ctx.EffectiveCurrentUser ? 1 : -1);
481
+ i0.ɵɵadvance(2);
482
+ i0.ɵɵconditional(ctx.IsResolvingAgent ? 3 : ctx.AgentMissing || !ctx.VideoStudioAgentId ? 4 : ctx.EffectiveCurrentUser ? 5 : 6);
483
+ } }, dependencies: [CommonModule,
484
+ ConversationsModule, i1.ConversationChatAreaComponent, i1.ChatSlotDirective, SharedGenericModule, i2.LoadingComponent, MJButtonDirective,
485
+ VSProductionBriefComponent,
486
+ VSSetupHealthCardComponent], styles: ["[_nghost-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n\n.vs-copilot-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.vs-copilot-panel__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2-5) var(--mj-space-3-5);\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n}\n\n.vs-copilot-panel__title[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-1);\n order: -1;\n margin-right: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.vs-copilot-panel__title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-panel__icon-btn[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n min-width: 26px;\n min-height: 26px;\n padding: 0;\n flex-shrink: 0;\n}\n\n.vs-copilot-panel__setup-ok-btn[_ngcontent-%COMP%] {\n color: var(--mj-status-success);\n}\n\n.vs-copilot-panel__setup-ok-btn--active[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-sunken);\n}\n\n@media (max-width: 1180px) {\n .vs-copilot-panel__slot-title[_ngcontent-%COMP%] .vs-copilot-panel__title-text[_ngcontent-%COMP%] {\n display: none;\n }\n\n .vs-copilot-panel__icon-btn[_ngcontent-%COMP%] {\n width: 24px;\n height: 24px;\n min-width: 24px;\n min-height: 24px;\n }\n}\n\n.vs-copilot-panel__body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.vs-copilot-panel__body[_ngcontent-%COMP%] mj-conversation-chat-area[_ngcontent-%COMP%] {\n display: block;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n\n.vs-copilot-panel__loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: var(--mj-space-6);\n}\n\n.vs-copilot-panel__missing[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2-5);\n flex: 1;\n padding: var(--mj-space-6);\n margin: var(--mj-space-4);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-status-warning-border);\n background: var(--mj-status-warning-bg);\n color: var(--mj-text-primary);\n text-align: center;\n}\n\n.vs-copilot-panel__missing[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xl);\n color: var(--mj-status-warning);\n}\n\n.vs-copilot-panel__missing-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.vs-copilot-brief-drawer[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.vs-copilot-brief-drawer__health[_ngcontent-%COMP%] {\n max-height: calc(100vh - 300px);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n overflow-y: auto;\n}\n\n.vs-copilot-brief-drawer__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2-5);\n width: 100%;\n padding: var(--mj-space-2-5) var(--mj-space-3);\n border: none;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-primary);\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n transition: var(--mj-transition-fast);\n flex-shrink: 0;\n}\n\n.vs-copilot-brief-drawer__header[_ngcontent-%COMP%]:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.vs-copilot-brief-drawer__header[_ngcontent-%COMP%]:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n}\n\n.vs-copilot-brief-drawer__lead[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-0-5);\n min-width: 0;\n flex: 1;\n}\n\n.vs-copilot-brief-drawer__title[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-1-5);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.vs-copilot-brief-drawer__title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-brief-drawer__subtitle[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: var(--mj-leading-snug);\n}\n\n.vs-copilot-brief-drawer__summary[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.vs-copilot-brief-drawer__chevron[_ngcontent-%COMP%] {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.vs-copilot-brief-drawer__body[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 340px);\n min-height: 0;\n border-top: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.vs-copilot-brief-drawer__body[hidden][_ngcontent-%COMP%] {\n display: none;\n}\n\n.vs-copilot-brief-drawer__body[_ngcontent-%COMP%] vs-production-brief[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .vs-copilot-brief-drawer__header[_ngcontent-%COMP%] {\n transition: none;\n }\n}"], changeDetection: 0 });
487
+ }
488
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VSCopilotPanelComponent, [{
489
+ type: Component,
490
+ args: [{ standalone: true, selector: 'vs-copilot-panel, mj-vs-copilot-panel', imports: [
491
+ CommonModule,
492
+ ConversationsModule,
493
+ SharedGenericModule,
494
+ MJButtonDirective,
495
+ VSProductionBriefComponent,
496
+ VSSetupHealthCardComponent,
497
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<aside class=\"vs-copilot-panel\" data-testid=\"vs-copilot-panel\">\n @if (IsResolvingAgent || AgentMissing || !VideoStudioAgentId || !EffectiveCurrentUser) {\n <header class=\"vs-copilot-panel__header\">\n <div class=\"vs-copilot-panel__title\" data-testid=\"vs-copilot-header-title\">\n <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"></i>\n <span>{{ HeaderTitle }}</span>\n </div>\n @if (ShowCloseButton) {\n <button\n type=\"button\"\n mjButton\n Variant=\"icon\"\n Size=\"sm\"\n [AriaLabel]=\"'Close Video Studio'\"\n data-testid=\"vs-copilot-close-button\"\n title=\"Close Video Studio\"\n (click)=\"OnCloseClick()\"\n >\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n }\n </header>\n }\n\n <div class=\"vs-copilot-panel__body\">\n @if (IsResolvingAgent) {\n <div class=\"vs-copilot-panel__loading\" data-testid=\"vs-copilot-loading\">\n <mj-loading Text=\"Connecting to Video Studio...\" Size=\"small\"></mj-loading>\n </div>\n } @else if (AgentMissing || !VideoStudioAgentId) {\n <div\n class=\"vs-copilot-panel__missing\"\n data-testid=\"vs-copilot-agent-missing\"\n role=\"status\"\n >\n <i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\"></i>\n <p class=\"vs-copilot-panel__missing-text\">{{ MissingAgentMessage }}</p>\n </div>\n } @else if (EffectiveCurrentUser) {\n <mj-conversation-chat-area\n #chatArea\n data-testid=\"vs-copilot-chat-area\"\n [Provider]=\"ProviderToUse\"\n [EnvironmentId]=\"EnvironmentId\"\n [CurrentUser]=\"EffectiveCurrentUser\"\n [Conversation]=\"ActiveConversation\"\n [ConversationId]=\"ConversationId\"\n [IsNewConversation]=\"ChatIsNewConversation\"\n [SuppressNewConversationEmptyState]=\"true\"\n [DefaultAgentId]=\"VideoStudioAgentId\"\n [ShowAgentPicker]=\"false\"\n [ShowAgentModePicker]=\"true\"\n [ComposerDraft]=\"ComposerDraft\"\n [PendingMessage]=\"PendingMessage\"\n [PendingArtifactId]=\"PendingArtifactId\"\n [PendingArtifactVersionNumber]=\"PendingArtifactVersionNumber\"\n [PendingArtifactConversationId]=\"ConversationId\"\n [AppContext]=\"AppContext\"\n [ApplicationScope]=\"'Application'\"\n [ApplicationId]=\"ApplicationId\"\n [ShowArtifactIndicator]=\"true\"\n [AllowAttachments]=\"true\"\n (ComposerDraftConsumed)=\"OnComposerDraftConsumed()\"\n (ConversationCreated)=\"OnChatConversationCreated($event)\"\n (PendingMessageConsumed)=\"OnPendingMessageConsumed()\"\n (PendingArtifactConsumed)=\"OnPendingArtifactConsumed()\"\n (navigationRequest)=\"OnNavigationRequest($event)\"\n >\n <ng-template mjChatSlot=\"headerActions\" let-conversation>\n @if (!conversation) {\n <span\n class=\"vs-copilot-panel__title vs-copilot-panel__slot-title\"\n data-testid=\"vs-copilot-header-title\"\n [title]=\"HeaderTitle\"\n >\n <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"></i>\n <span class=\"vs-copilot-panel__title-text\">{{ HeaderTitle }}</span>\n </span>\n }\n @if (IsSetupAllOk) {\n <button\n type=\"button\"\n mjButton\n Variant=\"icon\"\n Size=\"sm\"\n class=\"vs-copilot-panel__icon-btn vs-copilot-panel__setup-ok-btn\"\n [class.vs-copilot-panel__setup-ok-btn--active]=\"ShowHealthySetupDetails\"\n [AriaLabel]=\"'Setup OK'\"\n [attr.aria-expanded]=\"ShowHealthySetupDetails\"\n data-testid=\"vs-setup-ok-header-button\"\n title=\"Setup OK\"\n (click)=\"ToggleHealthySetupDetails()\"\n >\n <i class=\"fa-solid fa-circle-check\" aria-hidden=\"true\"></i>\n </button>\n }\n @if (ShowCloseButton) {\n <button\n type=\"button\"\n mjButton\n Variant=\"icon\"\n Size=\"sm\"\n class=\"vs-copilot-panel__icon-btn vs-copilot-panel__close-btn\"\n [AriaLabel]=\"'Close Video Studio'\"\n data-testid=\"vs-copilot-close-button\"\n title=\"Close Video Studio\"\n (click)=\"OnCloseClick()\"\n >\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\n </button>\n }\n </ng-template>\n <ng-template\n mjChatSlot=\"composerExtra\"\n let-conversation\n let-slotConversationId=\"ConversationId\"\n >\n @if (!conversation && !slotConversationId && IsBriefVisible) {\n <div class=\"vs-copilot-brief-drawer\" data-testid=\"vs-copilot-brief-drawer\">\n @if (ShouldShowCollapsedSetupHealth) {\n <div\n class=\"vs-copilot-brief-drawer__health\"\n data-testid=\"vs-copilot-collapsed-setup-health\"\n >\n <vs-setup-health-card\n [Result]=\"SetupHealthResult\"\n [Loading]=\"IsCheckingSetupHealth\"\n [Expanded]=\"IsSetupAllOk && ShowHealthySetupDetails\"\n (ExpandedChange)=\"OnBriefShowHealthySetupDetailsChange($event)\"\n (Recheck)=\"CheckSetupHealth()\"\n ></vs-setup-health-card>\n </div>\n }\n <button\n type=\"button\"\n class=\"vs-copilot-brief-drawer__header\"\n data-testid=\"vs-copilot-brief-toggle\"\n [attr.aria-expanded]=\"!IsBriefCollapsed\"\n (click)=\"ToggleBriefCollapsed()\"\n >\n <span class=\"vs-copilot-brief-drawer__lead\">\n <span class=\"vs-copilot-brief-drawer__title\">\n <i class=\"fa-solid fa-compass\" aria-hidden=\"true\"></i>\n <span>Guided start</span>\n </span>\n <span\n class=\"vs-copilot-brief-drawer__subtitle\"\n data-testid=\"vs-copilot-brief-subtitle\"\n >\n Not sure where to begin? Pick a shape, format and sound step by step.\n </span>\n @if (BriefSummaryLine) {\n <span\n class=\"vs-copilot-brief-drawer__summary\"\n data-testid=\"vs-copilot-brief-toggle-summary\"\n >\n {{ BriefSummaryLine }}\n </span>\n }\n </span>\n <i\n class=\"fa-solid vs-copilot-brief-drawer__chevron\"\n [class.fa-chevron-down]=\"!IsBriefCollapsed\"\n [class.fa-chevron-right]=\"IsBriefCollapsed\"\n aria-hidden=\"true\"\n ></i>\n </button>\n <div\n class=\"vs-copilot-brief-drawer__body\"\n [hidden]=\"IsBriefCollapsed\"\n data-testid=\"vs-copilot-brief-drawer-body\"\n >\n <vs-production-brief\n #briefComponent\n [Provider]=\"ProviderToUse\"\n [AutoCheckSetupHealth]=\"false\"\n [ShowSetupHealthCard]=\"!IsBriefCollapsed\"\n [SetupHealthResult]=\"SetupHealthResult\"\n [IsCheckingSetupHealth]=\"IsCheckingSetupHealth\"\n [ShowHealthySetupDetails]=\"ShowHealthySetupDetails\"\n [SelectedArchetype]=\"BriefSelectedArchetype\"\n [SelectedBrandKit]=\"BriefSelectedBrandKit\"\n [SelectedBrandKitExplicitNone]=\"BriefSelectedBrandKitExplicitNone\"\n [SelectedFormats]=\"BriefSelectedFormats\"\n [DurationSeconds]=\"BriefDurationSeconds\"\n [Topic]=\"BriefTopic\"\n [SelectedQueries]=\"BriefSelectedQueries\"\n [NarrationEnabled]=\"BriefNarrationEnabled\"\n [CaptionsMode]=\"BriefCaptionsMode\"\n (ShowHealthySetupDetailsChange)=\"OnBriefShowHealthySetupDetailsChange($event)\"\n (SetupHealthChange)=\"OnBriefSetupHealthChange($event)\"\n (StateChange)=\"OnBriefStateChange($event)\"\n (StartRequested)=\"OnBriefStartRequested($event)\"\n ></vs-production-brief>\n </div>\n </div>\n }\n </ng-template>\n </mj-conversation-chat-area>\n } @else {\n <div\n class=\"vs-copilot-panel__missing\"\n data-testid=\"vs-copilot-agent-missing\"\n role=\"status\"\n >\n <i class=\"fa-solid fa-triangle-exclamation\" aria-hidden=\"true\"></i>\n <p class=\"vs-copilot-panel__missing-text\">{{ MissingAgentMessage }}</p>\n </div>\n }\n </div>\n</aside>\n\n", styles: [":host {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n}\n\n.vs-copilot-panel {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n background: var(--mj-bg-surface);\n border-left: 1px solid var(--mj-border-default);\n}\n\n.vs-copilot-panel__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2);\n padding: var(--mj-space-2-5) var(--mj-space-3-5);\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface-card);\n flex-shrink: 0;\n}\n\n.vs-copilot-panel__title {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-1);\n order: -1;\n margin-right: 0;\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.vs-copilot-panel__title i {\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-panel__icon-btn {\n width: 26px;\n height: 26px;\n min-width: 26px;\n min-height: 26px;\n padding: 0;\n flex-shrink: 0;\n}\n\n.vs-copilot-panel__setup-ok-btn {\n color: var(--mj-status-success);\n}\n\n.vs-copilot-panel__setup-ok-btn--active {\n background: var(--mj-bg-surface-sunken);\n}\n\n@media (max-width: 1180px) {\n .vs-copilot-panel__slot-title .vs-copilot-panel__title-text {\n display: none;\n }\n\n .vs-copilot-panel__icon-btn {\n width: 24px;\n height: 24px;\n min-width: 24px;\n min-height: 24px;\n }\n}\n\n.vs-copilot-panel__body {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.vs-copilot-panel__body mj-conversation-chat-area {\n display: block;\n flex: 1;\n min-height: 0;\n min-width: 0;\n}\n\n.vs-copilot-panel__loading {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n padding: var(--mj-space-6);\n}\n\n.vs-copilot-panel__missing {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: var(--mj-space-2-5);\n flex: 1;\n padding: var(--mj-space-6);\n margin: var(--mj-space-4);\n border-radius: var(--mj-radius-md);\n border: 1px solid var(--mj-status-warning-border);\n background: var(--mj-status-warning-bg);\n color: var(--mj-text-primary);\n text-align: center;\n}\n\n.vs-copilot-panel__missing i {\n font-size: var(--mj-text-xl);\n color: var(--mj-status-warning);\n}\n\n.vs-copilot-panel__missing-text {\n margin: 0;\n font-size: var(--mj-text-sm);\n color: var(--mj-text-secondary);\n}\n\n.vs-copilot-brief-drawer {\n display: flex;\n flex-direction: column;\n width: 100%;\n min-width: 0;\n border: 1px solid var(--mj-border-default);\n border-radius: var(--mj-radius-md);\n background: var(--mj-bg-surface);\n overflow: hidden;\n}\n\n.vs-copilot-brief-drawer__health {\n max-height: calc(100vh - 300px);\n padding: var(--mj-space-2) var(--mj-space-3);\n border-bottom: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n overflow-y: auto;\n}\n\n.vs-copilot-brief-drawer__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--mj-space-2-5);\n width: 100%;\n padding: var(--mj-space-2-5) var(--mj-space-3);\n border: none;\n background: var(--mj-bg-surface-card);\n color: var(--mj-text-primary);\n font-family: inherit;\n text-align: left;\n cursor: pointer;\n transition: var(--mj-transition-fast);\n flex-shrink: 0;\n}\n\n.vs-copilot-brief-drawer__header:hover {\n background: var(--mj-bg-surface-sunken);\n}\n\n.vs-copilot-brief-drawer__header:focus-visible {\n outline: none;\n box-shadow: var(--mj-focus-ring);\n}\n\n.vs-copilot-brief-drawer__lead {\n display: flex;\n flex-direction: column;\n gap: var(--mj-space-0-5);\n min-width: 0;\n flex: 1;\n}\n\n.vs-copilot-brief-drawer__title {\n display: inline-flex;\n align-items: center;\n gap: var(--mj-space-1-5);\n font-size: var(--mj-text-xs);\n font-weight: var(--mj-font-semibold);\n color: var(--mj-text-primary);\n}\n\n.vs-copilot-brief-drawer__title i {\n font-size: var(--mj-text-xs);\n color: var(--mj-brand-primary);\n}\n\n.vs-copilot-brief-drawer__subtitle {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-muted);\n line-height: var(--mj-leading-snug);\n}\n\n.vs-copilot-brief-drawer__summary {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n min-width: 0;\n}\n\n.vs-copilot-brief-drawer__chevron {\n font-size: var(--mj-text-xs);\n color: var(--mj-text-secondary);\n flex-shrink: 0;\n}\n\n.vs-copilot-brief-drawer__body {\n display: flex;\n flex-direction: column;\n max-height: calc(100vh - 340px);\n min-height: 0;\n border-top: 1px solid var(--mj-border-default);\n overflow: hidden;\n}\n\n.vs-copilot-brief-drawer__body[hidden] {\n display: none;\n}\n\n.vs-copilot-brief-drawer__body vs-production-brief {\n flex: 1;\n min-height: 0;\n overflow: hidden;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .vs-copilot-brief-drawer__header {\n transition: none;\n }\n}\n"] }]
498
+ }], null, { CurrentUser: [{
499
+ type: Input
500
+ }], EnvironmentId: [{
501
+ type: Input
502
+ }], ApplicationId: [{
503
+ type: Input
504
+ }], ConversationId: [{
505
+ type: Input
506
+ }], PendingMessage: [{
507
+ type: Input
508
+ }], PendingArtifactId: [{
509
+ type: Input
510
+ }], PendingArtifactVersionNumber: [{
511
+ type: Input
512
+ }], AppContext: [{
513
+ type: Input
514
+ }], HeaderTitle: [{
515
+ type: Input
516
+ }], ShowCloseButton: [{
517
+ type: Input
518
+ }], SetupHealthResult: [{
519
+ type: Input
520
+ }], BriefSelectedArchetype: [{
521
+ type: Input
522
+ }], BriefSelectedBrandKit: [{
523
+ type: Input
524
+ }], BriefSelectedBrandKitExplicitNone: [{
525
+ type: Input
526
+ }], BriefSelectedFormats: [{
527
+ type: Input
528
+ }], BriefDurationSeconds: [{
529
+ type: Input
530
+ }], BriefTopic: [{
531
+ type: Input
532
+ }], BriefSelectedQueries: [{
533
+ type: Input
534
+ }], BriefNarrationEnabled: [{
535
+ type: Input
536
+ }], BriefCaptionsMode: [{
537
+ type: Input
538
+ }], ConversationCreated: [{
539
+ type: Output
540
+ }], PendingMessageConsumed: [{
541
+ type: Output
542
+ }], PendingArtifactConsumed: [{
543
+ type: Output
544
+ }], NavigationRequest: [{
545
+ type: Output
546
+ }], CloseRequested: [{
547
+ type: Output
548
+ }], BriefStateChange: [{
549
+ type: Output
550
+ }], BriefStartRequested: [{
551
+ type: Output
552
+ }], chatArea: [{
553
+ type: ViewChild,
554
+ args: ['chatArea']
555
+ }], BriefComponent: [{
556
+ type: ViewChild,
557
+ args: ['briefComponent']
558
+ }] }); })();
559
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(VSCopilotPanelComponent, { className: "VSCopilotPanelComponent", filePath: "src/VideoStudio/components/vs-copilot-panel.component.ts", lineNumber: 96 }); })();
560
+ //# sourceMappingURL=vs-copilot-panel.component.js.map