@memberjunction/ng-conversations 5.3.1 → 5.4.0

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 (84) hide show
  1. package/dist/__tests__/index.test.js.map +1 -1
  2. package/dist/__tests__/mention-parser.test.js.map +1 -1
  3. package/dist/__tests__/notification-model.test.js.map +1 -1
  4. package/dist/__tests__/search-service.test.js.map +1 -1
  5. package/dist/__tests__/toast-service.test.js.map +1 -1
  6. package/dist/lib/components/active-tasks/active-tasks-panel.component.js.map +1 -1
  7. package/dist/lib/components/agent/active-agent-indicator.component.js.map +1 -1
  8. package/dist/lib/components/agent/agent-process-panel.component.js.map +1 -1
  9. package/dist/lib/components/artifact/artifact-share-modal.component.js.map +1 -1
  10. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  11. package/dist/lib/components/collection/artifact-collection-picker-modal.component.js.map +1 -1
  12. package/dist/lib/components/collection/artifact-create-modal.component.js.map +1 -1
  13. package/dist/lib/components/collection/collection-artifact-card.component.js.map +1 -1
  14. package/dist/lib/components/collection/collection-form-modal.component.js.map +1 -1
  15. package/dist/lib/components/collection/collection-share-modal.component.js.map +1 -1
  16. package/dist/lib/components/collection/collection-tree.component.js.map +1 -1
  17. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  18. package/dist/lib/components/collection/collections-full-view.component.js.map +1 -1
  19. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  20. package/dist/lib/components/conversation/conversation-empty-state.component.js.map +1 -1
  21. package/dist/lib/components/conversation/conversation-list.component.js.map +1 -1
  22. package/dist/lib/components/dialogs/input-dialog.component.js.map +1 -1
  23. package/dist/lib/components/export/export-modal.component.js.map +1 -1
  24. package/dist/lib/components/global-tasks/global-tasks-panel.component.js.map +1 -1
  25. package/dist/lib/components/library/library-full-view.component.js.map +1 -1
  26. package/dist/lib/components/members/members-modal.component.js.map +1 -1
  27. package/dist/lib/components/mention/mention-dropdown.component.js.map +1 -1
  28. package/dist/lib/components/mention/mention-editor.component.js.map +1 -1
  29. package/dist/lib/components/message/actionable-commands.component.js.map +1 -1
  30. package/dist/lib/components/message/agent-response-form.component.js.map +1 -1
  31. package/dist/lib/components/message/conversation-message-rating.component.js.map +1 -1
  32. package/dist/lib/components/message/form-question.component.js.map +1 -1
  33. package/dist/lib/components/message/message-input-box.component.js.map +1 -1
  34. package/dist/lib/components/message/message-input.component.js.map +1 -1
  35. package/dist/lib/components/message/message-item.component.js.map +1 -1
  36. package/dist/lib/components/message/message-list.component.js.map +1 -1
  37. package/dist/lib/components/message/suggested-responses.component.js.map +1 -1
  38. package/dist/lib/components/navigation/conversation-navigation.component.js.map +1 -1
  39. package/dist/lib/components/notification/activity-indicator.component.js.map +1 -1
  40. package/dist/lib/components/notification/notification-badge.component.js.map +1 -1
  41. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  42. package/dist/lib/components/project/project-selector.component.js.map +1 -1
  43. package/dist/lib/components/search/search-panel.component.js.map +1 -1
  44. package/dist/lib/components/share/share-modal.component.js.map +1 -1
  45. package/dist/lib/components/shared/user-picker.component.js.map +1 -1
  46. package/dist/lib/components/sidebar/conversation-sidebar.component.js.map +1 -1
  47. package/dist/lib/components/task/tasks-full-view.component.js.map +1 -1
  48. package/dist/lib/components/tasks/task-widget.component.js.map +1 -1
  49. package/dist/lib/components/tasks/tasks-dropdown.component.js.map +1 -1
  50. package/dist/lib/components/thread/thread-panel.component.js.map +1 -1
  51. package/dist/lib/components/toast/toast.component.js.map +1 -1
  52. package/dist/lib/components/workspace/conversation-workspace.component.js.map +1 -1
  53. package/dist/lib/conversations.module.js.map +1 -1
  54. package/dist/lib/directives/search-shortcut.directive.js.map +1 -1
  55. package/dist/lib/models/collection-view.model.js.map +1 -1
  56. package/dist/lib/models/conversation-complete-query.model.js.map +1 -1
  57. package/dist/lib/models/conversation-state.model.js.map +1 -1
  58. package/dist/lib/models/lazy-artifact-info.js.map +1 -1
  59. package/dist/lib/models/navigation-request.model.js.map +1 -1
  60. package/dist/lib/models/notification.model.js.map +1 -1
  61. package/dist/lib/services/active-tasks.service.js.map +1 -1
  62. package/dist/lib/services/agent-state.service.js.map +1 -1
  63. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  64. package/dist/lib/services/artifact-state.service.js.map +1 -1
  65. package/dist/lib/services/artifact-use-tracking.service.js.map +1 -1
  66. package/dist/lib/services/collection-permission.service.js.map +1 -1
  67. package/dist/lib/services/collection-state.service.js.map +1 -1
  68. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  69. package/dist/lib/services/conversation-agent.service.js +20 -11
  70. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  71. package/dist/lib/services/conversation-attachment.service.js.map +1 -1
  72. package/dist/lib/services/conversation-data.service.js.map +1 -1
  73. package/dist/lib/services/conversation-streaming.service.js.map +1 -1
  74. package/dist/lib/services/data-cache.service.js.map +1 -1
  75. package/dist/lib/services/dialog.service.js.map +1 -1
  76. package/dist/lib/services/export.service.js.map +1 -1
  77. package/dist/lib/services/mention-autocomplete.service.js.map +1 -1
  78. package/dist/lib/services/mention-parser.service.js.map +1 -1
  79. package/dist/lib/services/notification.service.js.map +1 -1
  80. package/dist/lib/services/search.service.js.map +1 -1
  81. package/dist/lib/services/toast.service.js.map +1 -1
  82. package/dist/lib/services/ui-command-handler.service.js.map +1 -1
  83. package/dist/public-api.js.map +1 -1
  84. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-request.model.js","sourceRoot":"","sources":["../../../src/lib/models/navigation-request.model.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"navigation-request.model.js","sourceRoot":"","sources":["../../../src/lib/models/navigation-request.model.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Generic navigation request for cross-resource navigation.\n * Used when a component needs to request navigation to another nav item\n * within the same or different application.\n */\nexport interface NavigationRequest {\n /**\n * The label/name of the target nav item to navigate to.\n * This should match the Label property of a NavItem in the target application.\n * Examples: \"Conversations\", \"Collections\", \"Tasks\"\n */\n navItemName: string;\n\n /**\n * Additional configuration parameters to pass to the target resource.\n * These will be merged with the nav item's existing configuration.\n * Examples: { conversationId: '...', artifactId: '...', versionNumber: 1 }\n */\n params?: Record<string, unknown>;\n\n /**\n * Optional target application ID.\n * If not provided, defaults to the current active application.\n * Use this when navigating to a nav item in a different application.\n */\n appId?: string;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/lib/models/notification.model.ts"],"names":[],"mappings":"AA6FA;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAA4B;IACvE,WAAW,EAAE,KAAK;IAClB,0BAA0B,EAAE,KAAK;IACjC,wBAAwB,EAAE,IAAI;IAC9B,UAAU,EAAE,IAAI;IAChB,kBAAkB,EAAE,EAAE;CACvB,CAAC"}
1
+ {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/lib/models/notification.model.ts"],"names":[],"mappings":"AA6FA;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAA4B;IACvE,WAAW,EAAE,KAAK;IAClB,0BAA0B,EAAE,KAAK;IACjC,wBAAwB,EAAE,IAAI;IAC9B,UAAU,EAAE,IAAI;IAChB,kBAAkB,EAAE,EAAE;CACvB,CAAC","sourcesContent":["/**\n * Notification types supported by the system\n */\nexport type NotificationType = 'message' | 'artifact' | 'agent_process' | 'task';\n\n/**\n * Notification priority levels\n */\nexport type NotificationPriority = 'low' | 'normal' | 'high' | 'urgent';\n\n/**\n * Represents a notification for a conversation\n */\nexport interface ConversationNotification {\n conversationId: string;\n unreadMessageCount: number;\n lastReadMessageTimestamp: Date | null;\n lastMessageTimestamp: Date | null;\n hasNewArtifacts: boolean;\n hasActiveAgentProcesses: boolean;\n newArtifactCount: number;\n activeAgentProcessCount: number;\n lastNotificationTimestamp: Date;\n highestPriority: NotificationPriority;\n}\n\n/**\n * Represents a single notification item\n */\nexport interface NotificationItem {\n id: string;\n conversationId: string;\n type: NotificationType;\n priority: NotificationPriority;\n title: string;\n message: string;\n timestamp: Date;\n isRead: boolean;\n metadata?: Record<string, any>;\n}\n\n/**\n * User notification preferences\n */\nexport interface NotificationPreferences {\n enableSound: boolean;\n enableDesktopNotifications: boolean;\n enableInAppNotifications: boolean;\n showBadges: boolean;\n muteUntil?: Date;\n mutedConversations: string[];\n}\n\n/**\n * Notification state for persistence\n */\nexport interface NotificationState {\n conversations: Record<string, ConversationNotification>;\n preferences: NotificationPreferences;\n lastUpdated: Date;\n}\n\n/**\n * Badge display configuration\n */\nexport interface BadgeConfig {\n show: boolean;\n count?: number;\n type?: 'count' | 'dot' | 'pulse' | 'new';\n priority?: NotificationPriority;\n animate?: boolean;\n}\n\n/**\n * Activity indicator configuration\n */\nexport interface ActivityIndicatorConfig {\n show: boolean;\n type: 'agent' | 'processing' | 'typing';\n text?: string;\n color?: string;\n}\n\n/**\n * Event emitted when notification state changes\n */\nexport interface NotificationChangeEvent {\n conversationId: string;\n type: NotificationType;\n action: 'added' | 'read' | 'cleared';\n timestamp: Date;\n}\n\n/**\n * Default notification preferences\n */\nexport const DEFAULT_NOTIFICATION_PREFERENCES: NotificationPreferences = {\n enableSound: false,\n enableDesktopNotifications: false,\n enableInAppNotifications: true,\n showBadges: true,\n mutedConversations: []\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"active-tasks.service.js","sourceRoot":"","sources":["../../../src/lib/services/active-tasks.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-tasks.service.js","sourceRoot":"","sources":["../../../src/lib/services/active-tasks.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { RunView, UserInfo } from '@memberjunction/core';\nimport { MJAIAgentRunEntity } from '@memberjunction/core-entities';\nimport { ConversationDataService } from './conversation-data.service';\n\n/**\n * Represents an active agent task that is currently running\n */\nexport interface ActiveTask {\n id: string;\n agentName: string;\n agentId?: string; // The agent ID for looking up icon/metadata\n agentRunId?: string; // The AIAgentRun ID for finding task on completion\n status: string;\n relatedMessageId: string;\n conversationDetailId?: string; // The ConversationDetail that tracks this task\n conversationId?: string; // The conversation this task belongs to\n conversationName?: string | null; // Display name of the conversation\n startTime: number;\n}\n\n/**\n * Service for tracking active agent tasks across the application.\n * Maintains a live list of running agents and their status.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActiveTasksService {\n private _tasks$ = new BehaviorSubject<Map<string, ActiveTask>>(new Map());\n private _conversationIdsWithTasks$ = new BehaviorSubject<Set<string>>(new Set());\n\n constructor(private conversationData: ConversationDataService) {}\n\n /**\n * Observable of all active tasks as an array\n */\n public readonly tasks$: Observable<ActiveTask[]> = this._tasks$.pipe(\n map(taskMap => Array.from(taskMap.values()))\n );\n\n /**\n * Observable of the count of active tasks\n */\n public readonly taskCount$: Observable<number> = this.tasks$.pipe(\n map(tasks => tasks.length)\n );\n\n /**\n * Observable of conversation IDs that have 1+ active tasks\n * Use this for quick lookups in conversation lists\n */\n public readonly conversationIdsWithTasks$: Observable<Set<string>> = this._conversationIdsWithTasks$.asObservable();\n\n /**\n * Observable of tasks grouped by conversation ID\n * Returns Map<conversationId, ActiveTask[]>\n */\n public readonly tasksByConversationId$: Observable<Map<string, ActiveTask[]>> = this.tasks$.pipe(\n map(tasks => {\n const grouped = new Map<string, ActiveTask[]>();\n for (const task of tasks) {\n if (task.conversationId) {\n const existing = grouped.get(task.conversationId) || [];\n existing.push(task);\n grouped.set(task.conversationId, existing);\n }\n }\n return grouped;\n })\n );\n\n /**\n * Add a new active task\n * @param task Task details (without id and startTime)\n * @returns The generated task ID\n */\n add(task: Omit<ActiveTask, 'id' | 'startTime'>): string {\n const id = `task-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n const fullTask = {\n ...task,\n id,\n startTime: Date.now()\n };\n const current = this._tasks$.value;\n current.set(id, fullTask);\n this._tasks$.next(new Map(current));\n\n // Update conversation IDs set\n if (fullTask.conversationId) {\n this.updateConversationIdsSet();\n }\n\n console.log(`➕ Task added:`, {id, conversationId: fullTask.conversationId, agentName: fullTask.agentName});\n console.log(`📊 Total tasks:`, this._tasks$.value.size);\n console.log(`🗂️ Conversation IDs with tasks:`, Array.from(this._conversationIdsWithTasks$.value));\n\n return id;\n }\n\n /**\n * Remove an active task\n * @param id The task ID to remove\n */\n remove(id: string): void {\n const current = this._tasks$.value;\n const task = current.get(id);\n current.delete(id);\n this._tasks$.next(new Map(current));\n\n // Update conversation IDs set if this was the last task for a conversation\n if (task?.conversationId) {\n this.updateConversationIdsSet();\n }\n\n console.log(`➖ Task removed:`, {id, conversationId: task?.conversationId, agentName: task?.agentName});\n console.log(`📊 Total tasks remaining:`, this._tasks$.value.size);\n console.log(`🗂️ Conversation IDs with tasks:`, Array.from(this._conversationIdsWithTasks$.value));\n }\n\n /**\n * Update the set of conversation IDs with active tasks\n * @private\n */\n private updateConversationIdsSet(): void {\n const conversationIds = new Set<string>();\n for (const task of this._tasks$.value.values()) {\n if (task.conversationId) {\n conversationIds.add(task.conversationId);\n }\n }\n this._conversationIdsWithTasks$.next(conversationIds);\n }\n\n /**\n * Update the status of an active task\n * @param id The task ID\n * @param status The new status text\n */\n updateStatus(id: string, status: string): void {\n const current = this._tasks$.value;\n const task = current.get(id);\n if (task) {\n task.status = status;\n this._tasks$.next(new Map(current));\n }\n }\n\n /**\n * Get an active task by its conversation detail ID\n * @param conversationDetailId The conversation detail ID\n * @returns The task if found, undefined otherwise\n */\n getByConversationDetailId(conversationDetailId: string): ActiveTask | undefined {\n const tasks = Array.from(this._tasks$.value.values());\n return tasks.find(task => task.conversationDetailId === conversationDetailId);\n }\n\n /**\n * Update the status of a task by its conversation detail ID\n * @param conversationDetailId The conversation detail ID\n * @param status The new status text\n * @returns true if task was found and updated, false otherwise\n */\n updateStatusByConversationDetailId(conversationDetailId: string, status: string): boolean {\n const task = this.getByConversationDetailId(conversationDetailId);\n if (task) {\n this.updateStatus(task.id, status);\n return true;\n }\n return false;\n }\n\n /**\n * Get an active task by its agent run ID\n * @param agentRunId The AIAgentRun ID\n * @returns The task if found, undefined otherwise\n */\n getByAgentRunId(agentRunId: string): ActiveTask | undefined {\n const tasks = Array.from(this._tasks$.value.values());\n return tasks.find(task => task.agentRunId === agentRunId);\n }\n\n /**\n * Remove a task by its agent run ID\n * @param agentRunId The AIAgentRun ID\n * @returns true if task was found and removed, false otherwise\n */\n removeByAgentRunId(agentRunId: string): boolean {\n const task = this.getByAgentRunId(agentRunId);\n if (task) {\n this.remove(task.id);\n return true;\n }\n return false;\n }\n\n /**\n * Clear all active tasks\n */\n clear(): void {\n this._tasks$.next(new Map());\n }\n\n /**\n * Restore active tasks from database by querying running agent runs.\n * Call this on app initialization to restore state after browser refresh.\n * @param currentUser The current user to filter agent runs by\n */\n async restoreFromDatabase(currentUser: UserInfo): Promise<void> {\n try {\n const rv = new RunView();\n\n // Query for running agent runs owned by this user\n // Only restore parent agents (those with ConversationDetailID) - child agents don't have one\n // This matches normal behavior where we only track parent agents, not child agents\n const result = await rv.RunView<MJAIAgentRunEntity>({\n EntityName: 'MJ: AI Agent Runs',\n Fields: [\"ID\", \"ConversationID\", \"AgentID\", \"Agent\", \"ConversationDetailID\"], // narrow field scope to not pull back JSON blobs - much faster\n ExtraFilter: `Status='Running' AND UserID='${currentUser.ID}' AND ConversationDetailID IS NOT NULL`,\n ResultType: 'simple' // no need for entity-object here we aren't mutating\n }, currentUser);\n\n if (!result.Success || !result.Results || result.Results.length === 0) {\n // No running tasks or query failed - nothing to restore\n return;\n }\n\n // Get conversation names from cached ConversationDataService\n const conversationNames = new Map<string, string>();\n for (const agentRun of result.Results) {\n if (agentRun.ConversationID) {\n const conv = this.conversationData.getConversationById(agentRun.ConversationID);\n if (conv?.Name) {\n conversationNames.set(agentRun.ConversationID, conv.Name);\n }\n }\n }\n\n // Add each running agent to ActiveTasksService\n let restoredCount = 0;\n for (const agentRun of result.Results) {\n // Skip if already tracked (prevents duplicates)\n if (agentRun.ConversationDetailID &&\n this.getByConversationDetailId(agentRun.ConversationDetailID)) {\n continue;\n }\n\n this.add({\n agentName: agentRun.Agent || 'Unknown Agent',\n agentId: agentRun.AgentID,\n agentRunId: agentRun.ID, // For finding task on completion\n status: 'Reconnecting...',\n relatedMessageId: agentRun.ConversationDetailID || agentRun.ID,\n conversationDetailId: agentRun.ConversationDetailID || undefined,\n conversationId: agentRun.ConversationID || undefined,\n conversationName: agentRun.ConversationID\n ? conversationNames.get(agentRun.ConversationID) || null\n : null\n });\n restoredCount++;\n }\n\n if (restoredCount > 0) {\n console.log(`✅ Restored ${restoredCount} active task(s) from database`);\n }\n } catch (error) {\n console.error('Failed to restore active tasks from database:', error);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/agent-state.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/agent-state.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, Observable, interval, Subscription } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { LogStatusEx, RunView, UserInfo } from '@memberjunction/core';\nimport { MJAIAgentRunEntity } from '@memberjunction/core-entities';\n\nexport type AgentStatus = 'acknowledging' | 'working' | 'completing' | 'completed' | 'error';\n\nexport interface AgentWithStatus {\n run: MJAIAgentRunEntity;\n status: AgentStatus;\n confidence: number | null;\n}\n\n/**\n * Manages agent state and provides real-time updates for active agents\n * Polls for agent status changes and provides reactive streams\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AgentStateService implements OnDestroy {\n private _activeAgents$ = new BehaviorSubject<AgentWithStatus[]>([]);\n private pollSubscription?: Subscription;\n private currentUser?: UserInfo;\n private pollInterval: number = 30000; // Poll every 30 seconds (reduced from 3s to minimize DB load)\n\n // Public observable streams\n public readonly activeAgents$ = this._activeAgents$.asObservable();\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.stopPolling();\n }\n\n /**\n * Starts polling for active agents\n * @param currentUser The current user context\n * @param conversationId Optional conversation ID to filter by\n */\n startPolling(currentUser: UserInfo, conversationId?: string): void {\n this.currentUser = currentUser;\n this.stopPolling();\n\n // Initial load\n this.loadActiveAgents(conversationId);\n\n // Start polling\n this.pollSubscription = interval(this.pollInterval)\n .pipe(switchMap(() => this.loadActiveAgents(conversationId)))\n .subscribe();\n }\n\n /**\n * Stops polling for active agents\n */\n stopPolling(): void {\n if (this.pollSubscription) {\n this.pollSubscription.unsubscribe();\n this.pollSubscription = undefined;\n }\n }\n\n /**\n * Gets active agents as an observable\n * @param conversationId Optional conversation ID to filter by\n */\n getActiveAgents(conversationId?: string): Observable<AgentWithStatus[]> {\n if (conversationId) {\n return this.activeAgents$.pipe(\n map(agents => agents.filter(a => a.run.ConversationID === conversationId)),\n shareReplay(1)\n );\n }\n return this.activeAgents$;\n }\n\n /**\n * Gets a specific agent by ID\n * @param agentRunId The agent run ID\n */\n getAgent(agentRunId: string): AgentWithStatus | undefined {\n return this._activeAgents$.value.find(a => a.run.ID === agentRunId);\n }\n\n /**\n * Manually refreshes active agents\n * @param conversationId Optional conversation ID to filter by\n */\n async refresh(conversationId?: string): Promise<void> {\n await this.loadActiveAgents(conversationId);\n }\n\n /**\n * Loads active agents from the database\n */\n private async loadActiveAgents(conversationId?: string): Promise<void> {\n if (!this.currentUser) {\n return;\n }\n\n const timestamp = new Date().toISOString();\n LogStatusEx({message: `[${timestamp}] 🤖 AgentStateService.loadActiveAgents - Polling for active agents (conversation: ${conversationId || 'ALL'})`, verboseOnly: true});\n\n try {\n const rv = new RunView();\n // Valid statuses: Running, Completed, Paused, Failed, Cancelled\n let filter = `Status IN ('Running', 'Paused')`;\n\n if (conversationId) {\n filter += ` AND ConversationID='${conversationId}'`;\n }\n\n LogStatusEx({message: `[${timestamp}] 🤖 AgentStateService - Executing RunView for AI Agent Runs`, verboseOnly: true});\n const result = await rv.RunView<MJAIAgentRunEntity>(\n {\n EntityName: 'MJ: AI Agent Runs',\n ExtraFilter: filter,\n OrderBy: 'StartedAt DESC',\n MaxRows: 50,\n ResultType: 'entity_object'\n },\n this.currentUser\n );\n\n if (result.Success) {\n const runs = result.Results || [];\n LogStatusEx({message: `[${timestamp}] 🤖 AgentStateService - Found ${runs.length} active agent(s)`, verboseOnly: true});\n const agentsWithStatus = runs.map(run => this.mapRunToAgentWithStatus(run));\n this._activeAgents$.next(agentsWithStatus);\n\n // Stop polling if no active agents (optimization to reduce DB load)\n if (runs.length === 0 && this.pollSubscription) {\n LogStatusEx({message: `[${timestamp}] 🤖 AgentStateService - No active agents, stopping polling`, verboseOnly: true});\n this.stopPolling();\n }\n }\n } catch (error) {\n console.error('Failed to load active agents:', error);\n }\n }\n\n /**\n * Maps an agent run to include status and confidence information\n */\n private mapRunToAgentWithStatus(run: MJAIAgentRunEntity): AgentWithStatus {\n const status = this.determineAgentStatus(run);\n const confidence = this.extractConfidence(run);\n\n return {\n run,\n status,\n confidence\n };\n }\n\n /**\n * Determines the agent status based on the run entity\n */\n private determineAgentStatus(run: MJAIAgentRunEntity): AgentStatus {\n const status = run.Status?.toLowerCase() || 'running';\n\n // Check for errors\n if (status === 'error' || status === 'failed') {\n return 'error';\n }\n\n // Check for completion\n if (status === 'completed' || status === 'complete' || status === 'success') {\n return 'completed';\n }\n\n // Determine stage based on progress or elapsed time\n if (run.StartedAt) {\n const elapsed = Date.now() - new Date(run.StartedAt).getTime();\n const seconds = elapsed / 1000;\n\n // First 5 seconds: acknowledging\n if (seconds < 5) {\n return 'acknowledging';\n }\n\n // Check if nearing completion (has results or output)\n if (run.Result || run.Status === 'Completed') {\n // If there's output, likely completing\n return 'completing';\n }\n\n // Otherwise, working\n return 'working';\n }\n\n // Default to acknowledging if just started\n return 'acknowledging';\n }\n\n /**\n * Extracts confidence score from agent run if available\n */\n private extractConfidence(run: MJAIAgentRunEntity): number | null {\n // Try to parse confidence from Result or other fields\n // This is a placeholder - adjust based on actual data structure\n try {\n if (run.Result) {\n const result = typeof run.Result === 'string' ? JSON.parse(run.Result) : run.Result;\n if (result.confidence != null) {\n return parseFloat(result.confidence);\n }\n }\n } catch {\n // Ignore parse errors\n }\n\n return null;\n }\n\n /**\n * Cancels an agent run\n * @param agentRunId The agent run ID to cancel\n */\n async cancelAgent(agentRunId: string): Promise<boolean> {\n if (!this.currentUser) {\n return false;\n }\n\n try {\n const agent = this.getAgent(agentRunId);\n if (!agent) {\n return false;\n }\n\n agent.run.Status = 'Cancelled';\n const saved = await agent.run.Save();\n\n if (saved) {\n // Refresh the active agents list\n await this.refresh();\n return true;\n }\n } catch (error) {\n console.error('Failed to cancel agent:', error);\n }\n\n return false;\n }\n\n /**\n * Updates the poll interval\n * @param milliseconds The new poll interval in milliseconds\n */\n setPollInterval(milliseconds: number): void {\n this.pollInterval = milliseconds;\n\n // Restart polling if currently active\n if (this.pollSubscription && this.currentUser) {\n this.startPolling(this.currentUser);\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-permission.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-permission.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-permission.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { MJArtifactPermissionEntity, MJArtifactEntity, MJCollectionArtifactEntity } from '@memberjunction/core-entities';\nimport { CollectionPermissionService } from './collection-permission.service';\n\nexport interface ArtifactPermission {\n id: string;\n artifactId: string;\n userId: string;\n userName: string;\n canRead: boolean;\n canEdit: boolean;\n canShare: boolean;\n sharedByUserId: string | null;\n sharedByUserName: string | null;\n sharedAt: Date;\n}\n\nexport interface EffectivePermission extends ArtifactPermission {\n source: 'owner' | 'explicit' | 'collection';\n collectionName?: string; // If inherited from collection\n}\n\nexport interface ArtifactPermissionSet {\n canRead: boolean;\n canEdit: boolean;\n canShare: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ArtifactPermissionService {\n\n constructor(\n private collectionPermissionService: CollectionPermissionService\n ) {}\n\n /**\n * Load all explicit permissions for an artifact\n */\n async loadPermissions(artifactId: string, currentUser: UserInfo): Promise<ArtifactPermission[]> {\n const rv = new RunView();\n const result = await rv.RunView<MJArtifactPermissionEntity>({\n EntityName: 'MJ: Artifact Permissions',\n ExtraFilter: `ArtifactID='${artifactId}'`,\n OrderBy: '__mj_CreatedAt ASC',\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results) {\n return result.Results.map(p => this.mapToPermission(p));\n }\n return [];\n }\n\n /**\n * Check if user has specific permission for an artifact (HYBRID CHECK)\n * Checks in order: Owner > Explicit Permission > Collection Inheritance\n */\n async checkPermission(\n artifactId: string,\n userId: string,\n permission: 'read' | 'edit' | 'share',\n currentUser: UserInfo\n ): Promise<boolean> {\n // 1. Check ownership - owner has all permissions\n const artifact = await this.getArtifact(artifactId, currentUser);\n if (artifact && artifact.UserID === userId) {\n return true;\n }\n\n // 2. Check explicit artifact permission\n const explicit = await this.getExplicitPermission(artifactId, userId, currentUser);\n if (explicit) {\n return this.hasPermission(explicit, permission);\n }\n\n // 3. Check collection permission inheritance\n const collections = await this.getArtifactCollections(artifactId, currentUser);\n for (const collection of collections) {\n const collectionPermission = await this.collectionPermissionService.checkPermission(\n collection.CollectionID,\n userId,\n currentUser\n );\n\n if (collectionPermission && this.hasCollectionPermission(collectionPermission, permission)) {\n return true; // Inherited from collection\n }\n }\n\n // 4. No access\n return false;\n }\n\n /**\n * Get explicit permission record for a user on an artifact\n */\n async getExplicitPermission(\n artifactId: string,\n userId: string,\n currentUser: UserInfo\n ): Promise<ArtifactPermission | null> {\n const rv = new RunView();\n const result = await rv.RunView<MJArtifactPermissionEntity>({\n EntityName: 'MJ: Artifact Permissions',\n ExtraFilter: `ArtifactID='${artifactId}' AND UserID='${userId}'`,\n MaxRows: 1,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results && result.Results.length > 0) {\n return this.mapToPermission(result.Results[0]);\n }\n return null;\n }\n\n /**\n * Get all effective permissions for an artifact (owner + explicit + inherited)\n */\n async getEffectiveUsers(artifactId: string, currentUser: UserInfo): Promise<EffectivePermission[]> {\n const effectivePermissions: EffectivePermission[] = [];\n const seenUsers = new Set<string>();\n\n // 1. Add owner\n const artifact = await this.getArtifact(artifactId, currentUser);\n if (artifact && artifact.UserID) {\n effectivePermissions.push({\n id: '', // No permission record for owner\n artifactId: artifactId,\n userId: artifact.UserID,\n userName: artifact.User || 'Owner',\n canRead: true,\n canEdit: true,\n canShare: true,\n sharedByUserId: null,\n sharedByUserName: null,\n sharedAt: artifact.__mj_CreatedAt,\n source: 'owner'\n });\n seenUsers.add(artifact.UserID);\n }\n\n // 2. Add explicit permissions\n const explicitPerms = await this.loadPermissions(artifactId, currentUser);\n for (const perm of explicitPerms) {\n if (!seenUsers.has(perm.userId)) {\n effectivePermissions.push({\n ...perm,\n source: 'explicit'\n });\n seenUsers.add(perm.userId);\n }\n }\n\n // 3. Add collection-inherited permissions\n const collections = await this.getArtifactCollections(artifactId, currentUser);\n for (const collection of collections) {\n const collectionPerms = await this.collectionPermissionService.loadPermissions(\n collection.CollectionID,\n currentUser\n );\n\n for (const collPerm of collectionPerms) {\n if (!seenUsers.has(collPerm.userId)) {\n effectivePermissions.push({\n id: '',\n artifactId: artifactId,\n userId: collPerm.userId,\n userName: collPerm.userName,\n canRead: collPerm.canRead,\n canEdit: collPerm.canEdit,\n canShare: collPerm.canShare,\n sharedByUserId: collPerm.sharedByUserId,\n sharedByUserName: collPerm.sharedByUserName,\n sharedAt: collPerm.sharedAt,\n source: 'collection',\n collectionName: collection.Collection || 'Unknown Collection'\n });\n seenUsers.add(collPerm.userId);\n }\n }\n }\n\n return effectivePermissions;\n }\n\n /**\n * Grant explicit permission to a user\n */\n async grantPermission(\n artifactId: string,\n userId: string,\n permissions: ArtifactPermissionSet,\n sharedByUserId: string,\n currentUser: UserInfo\n ): Promise<MJArtifactPermissionEntity> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJArtifactPermissionEntity>(\n 'MJ: Artifact Permissions',\n currentUser\n );\n\n permission.ArtifactID = artifactId;\n permission.UserID = userId;\n permission.CanRead = permissions.canRead;\n permission.CanEdit = permissions.canEdit;\n permission.CanShare = permissions.canShare;\n permission.SharedByUserID = sharedByUserId;\n\n const saved = await permission.Save();\n if (!saved) {\n throw new Error(permission.LatestResult?.Message || 'Failed to grant permission');\n }\n\n return permission;\n }\n\n /**\n * Update existing permission\n */\n async updatePermission(\n permissionId: string,\n permissions: ArtifactPermissionSet,\n currentUser: UserInfo\n ): Promise<boolean> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJArtifactPermissionEntity>(\n 'MJ: Artifact Permissions',\n currentUser\n );\n\n await permission.Load(permissionId);\n permission.CanRead = permissions.canRead;\n permission.CanEdit = permissions.canEdit;\n permission.CanShare = permissions.canShare;\n\n return await permission.Save();\n }\n\n /**\n * Revoke explicit permission\n */\n async revokePermission(permissionId: string, currentUser: UserInfo): Promise<boolean> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJArtifactPermissionEntity>(\n 'MJ: Artifact Permissions',\n currentUser\n );\n\n await permission.Load(permissionId);\n return await permission.Delete();\n }\n\n /**\n * Validate that requested permissions don't exceed granter's permissions\n */\n validatePermissions(\n requested: ArtifactPermissionSet,\n granter: ArtifactPermissionSet,\n isOwner: boolean\n ): boolean {\n if (isOwner) return true; // Owner can grant anything\n\n // Can't grant permissions you don't have\n if (requested.canEdit && !granter.canEdit) return false;\n if (requested.canShare && !granter.canShare) return false;\n\n return true;\n }\n\n /**\n * Get available permissions for a user to grant based on their own permissions\n */\n getAvailablePermissions(userPermissions: ArtifactPermissionSet, isOwner: boolean): string[] {\n if (isOwner) {\n return ['Read', 'Edit', 'Share'];\n }\n\n const available = ['Read']; // Always have read\n if (userPermissions.canEdit) available.push('Edit');\n if (userPermissions.canShare) available.push('Share');\n\n return available;\n }\n\n /**\n * Check if user is owner of artifact\n */\n async isOwner(artifactId: string, userId: string, currentUser: UserInfo): Promise<boolean> {\n const artifact = await this.getArtifact(artifactId, currentUser);\n return artifact ? artifact.UserID === userId : false;\n }\n\n /**\n * Get all permissions for current user on an artifact (convenience method for UI)\n */\n async getUserPermissions(artifactId: string, currentUser: UserInfo): Promise<ArtifactPermissionSet> {\n const [canRead, canEdit, canShare] = await Promise.all([\n this.checkPermission(artifactId, currentUser.ID, 'read', currentUser),\n this.checkPermission(artifactId, currentUser.ID, 'edit', currentUser),\n this.checkPermission(artifactId, currentUser.ID, 'share', currentUser)\n ]);\n\n return { canRead, canEdit, canShare };\n }\n\n /**\n * Helper: Get artifact record\n */\n private async getArtifact(artifactId: string, currentUser: UserInfo): Promise<MJArtifactEntity | null> {\n const rv = new RunView();\n const result = await rv.RunView<MJArtifactEntity>({\n EntityName: 'MJ: Artifacts',\n ExtraFilter: `ID='${artifactId}'`,\n MaxRows: 1,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results && result.Results.length > 0) {\n return result.Results[0];\n }\n return null;\n }\n\n /**\n * Helper: Get all collections containing this artifact\n */\n private async getArtifactCollections(\n artifactId: string,\n currentUser: UserInfo\n ): Promise<MJCollectionArtifactEntity[]> {\n const rv = new RunView();\n const result = await rv.RunView<MJCollectionArtifactEntity>({\n EntityName: 'MJ: Collection Artifacts',\n ExtraFilter: `ArtifactVersionID IN (\n SELECT ID FROM [__mj].[vwArtifactVersions] WHERE ArtifactID='${artifactId}'\n )`,\n ResultType: 'entity_object'\n }, currentUser);\n\n return result.Success && result.Results ? result.Results : [];\n }\n\n /**\n * Helper: Check if permission set has specific permission\n */\n private hasPermission(permission: ArtifactPermission, type: 'read' | 'edit' | 'share'): boolean {\n switch (type) {\n case 'read':\n return permission.canRead;\n case 'edit':\n return permission.canEdit;\n case 'share':\n return permission.canShare;\n default:\n return false;\n }\n }\n\n /**\n * Helper: Check if collection permission has specific permission\n */\n private hasCollectionPermission(\n permission: { canRead: boolean; canEdit: boolean; canShare: boolean },\n type: 'read' | 'edit' | 'share'\n ): boolean {\n switch (type) {\n case 'read':\n return permission.canRead;\n case 'edit':\n return permission.canEdit;\n case 'share':\n return permission.canShare;\n default:\n return false;\n }\n }\n\n private mapToPermission(entity: MJArtifactPermissionEntity): ArtifactPermission {\n return {\n id: entity.ID,\n artifactId: entity.ArtifactID,\n userId: entity.UserID,\n userName: entity.User || '',\n canRead: entity.CanRead,\n canEdit: entity.CanEdit,\n canShare: entity.CanShare,\n sharedByUserId: entity.SharedByUserID || null,\n sharedByUserName: entity.SharedByUser || null,\n sharedAt: entity.__mj_CreatedAt\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-state.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-state.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { map, shareReplay } from 'rxjs/operators';\nimport { MJArtifactEntity, MJArtifactVersionEntity } from '@memberjunction/core-entities';\nimport { Metadata, RunView, UserInfo } from '@memberjunction/core';\nimport { ArtifactPermissionService } from './artifact-permission.service';\n\n/**\n * State management for artifacts and the artifact panel\n * Handles artifact CRUD operations and caching with permission enforcement\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ArtifactStateService {\n private _activeArtifactId$ = new BehaviorSubject<string | null>(null);\n private _activeVersionNumber$ = new BehaviorSubject<number | null>(null);\n private _artifacts$ = new BehaviorSubject<Map<string, MJArtifactEntity>>(new Map());\n private _isPanelOpen$ = new BehaviorSubject<boolean>(false);\n private _panelMode$ = new BehaviorSubject<'view' | 'edit'>('view');\n\n // Public observable streams\n public readonly activeArtifactId$ = this._activeArtifactId$.asObservable();\n public readonly activeVersionNumber$ = this._activeVersionNumber$.asObservable();\n public readonly isPanelOpen$ = this._isPanelOpen$.asObservable();\n public readonly panelMode$ = this._panelMode$.asObservable();\n\n // Derived observable for active artifact\n public readonly activeArtifact$: Observable<MJArtifactEntity | null> = combineLatest([\n this.activeArtifactId$,\n this._artifacts$\n ]).pipe(\n map(([id, artifacts]) => id ? artifacts.get(id) || null : null),\n shareReplay(1)\n );\n\n constructor(private artifactPermissionService: ArtifactPermissionService) {}\n\n /**\n * Check if current user can read an artifact\n * @param artifactId The artifact ID\n * @param currentUser The current user context\n * @returns True if user has read permission\n */\n async canReadArtifact(artifactId: string, currentUser: UserInfo): Promise<boolean> {\n return this.artifactPermissionService.checkPermission(artifactId, currentUser.ID, 'read', currentUser);\n }\n\n /**\n * Check if current user can edit an artifact\n * @param artifactId The artifact ID\n * @param currentUser The current user context\n * @returns True if user has edit permission\n */\n async canEditArtifact(artifactId: string, currentUser: UserInfo): Promise<boolean> {\n return this.artifactPermissionService.checkPermission(artifactId, currentUser.ID, 'edit', currentUser);\n }\n\n /**\n * Check if current user can share an artifact\n * @param artifactId The artifact ID\n * @param currentUser The current user context\n * @returns True if user has share permission\n */\n async canShareArtifact(artifactId: string, currentUser: UserInfo): Promise<boolean> {\n return this.artifactPermissionService.checkPermission(artifactId, currentUser.ID, 'share', currentUser);\n }\n\n /**\n * Opens an artifact in the panel\n * @param id The artifact ID\n * @param versionNumber Optional specific version number\n */\n openArtifact(id: string, versionNumber?: number): void {\n this._activeArtifactId$.next(id);\n this._activeVersionNumber$.next(versionNumber || null);\n this._isPanelOpen$.next(true);\n }\n\n /**\n * Opens an artifact by version ID\n * @param versionId The artifact version ID\n */\n async openArtifactByVersionId(versionId: string): Promise<void> {\n try {\n const md = new Metadata();\n const version = await md.GetEntityObject<MJArtifactVersionEntity>('MJ: Artifact Versions');\n const loaded = await version.Load(versionId);\n\n if (loaded) {\n // Open the artifact with the specific version number\n this.openArtifact(version.ArtifactID, version.VersionNumber);\n } else {\n console.error('Failed to load artifact version:', versionId);\n }\n } catch (error) {\n console.error('Error loading artifact version:', error);\n }\n }\n\n /**\n * Closes the artifact panel\n */\n closeArtifact(): void {\n this._activeArtifactId$.next(null);\n this._activeVersionNumber$.next(null);\n this._isPanelOpen$.next(false);\n this._panelMode$.next('view');\n }\n\n /**\n * Toggles the panel open/closed state\n */\n togglePanel(): void {\n this._isPanelOpen$.next(!this._isPanelOpen$.value);\n }\n\n /**\n * Sets the panel mode\n * @param mode The mode ('view' or 'edit')\n */\n setPanelMode(mode: 'view' | 'edit'): void {\n this._panelMode$.next(mode);\n }\n\n /**\n * Caches an artifact in memory\n * @param artifact The artifact to cache\n */\n cacheArtifact(artifact: MJArtifactEntity): void {\n const current = this._artifacts$.value;\n current.set(artifact.ID, artifact);\n this._artifacts$.next(new Map(current));\n }\n\n /**\n * Removes an artifact from cache\n * @param id The artifact ID\n */\n removeCachedArtifact(id: string): void {\n const current = this._artifacts$.value;\n current.delete(id);\n this._artifacts$.next(new Map(current));\n }\n\n /**\n * Clears all cached artifacts\n */\n clearCache(): void {\n this._artifacts$.next(new Map());\n }\n\n /**\n * Loads artifacts for a conversation\n * @param conversationId The conversation ID\n * @param currentUser The current user context\n * @returns Array of artifacts\n */\n async loadArtifactsForConversation(conversationId: string, currentUser: UserInfo): Promise<MJArtifactEntity[]> {\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJArtifactEntity>(\n {\n EntityName: 'MJ: Artifacts',\n ExtraFilter: `ConversationID='${conversationId}'`,\n OrderBy: '__mj_CreatedAt DESC',\n MaxRows: 1000,\n ResultType: 'entity_object'\n },\n currentUser\n );\n\n if (result.Success && result.Results) {\n // Cache all artifacts\n result.Results.forEach(artifact => this.cacheArtifact(artifact));\n return result.Results;\n }\n return [];\n } catch (error) {\n console.error('Error loading artifacts:', error);\n return [];\n }\n }\n\n /**\n * Loads artifacts for a collection\n * @param collectionId The collection ID\n * @param currentUser The current user context\n * @returns Array of artifacts\n */\n async loadArtifactsForCollection(collectionId: string, currentUser: UserInfo): Promise<MJArtifactEntity[]> {\n try {\n const rv = new RunView();\n // Load artifacts through the collection join - use subquery to get artifact IDs from versions\n const artifactsResult = await rv.RunView<MJArtifactEntity>(\n {\n EntityName: 'MJ: Artifacts',\n ExtraFilter: `ID IN (\n SELECT DISTINCT av.ArtifactID\n FROM [__mj].[vwArtifactVersions] av\n INNER JOIN [__mj].[vwCollectionArtifacts] ca ON ca.ArtifactVersionID = av.ID\n WHERE ca.CollectionID = '${collectionId}'\n )`,\n OrderBy: '__mj_CreatedAt DESC',\n ResultType: 'entity_object'\n },\n currentUser\n );\n\n if (artifactsResult.Success && artifactsResult.Results) {\n artifactsResult.Results.forEach(artifact => this.cacheArtifact(artifact));\n return artifactsResult.Results;\n }\n return [];\n } catch (error) {\n console.error('Error loading collection artifacts:', error);\n return [];\n }\n }\n\n /**\n * Loads artifact VERSIONS for a collection (all versions, not deduplicated by artifact ID)\n * This method returns each version as a separate item with its parent artifact metadata\n * @param collectionId The collection ID\n * @param currentUser The current user context\n * @returns Array of objects containing version and parent artifact info\n */\n async loadArtifactVersionsForCollection(\n collectionId: string,\n currentUser: UserInfo\n ): Promise<Array<{ version: MJArtifactVersionEntity; artifact: MJArtifactEntity }>> {\n try {\n const rv = new RunView();\n\n // Load ALL versions in collection (no DISTINCT - each version is separate)\n const versionResult = await rv.RunView<MJArtifactVersionEntity>({\n EntityName: 'MJ: Artifact Versions',\n ExtraFilter: `ID IN (\n SELECT ca.ArtifactVersionID\n FROM [__mj].[vwCollectionArtifacts] ca\n WHERE ca.CollectionID='${collectionId}'\n )`,\n OrderBy: '__mj_UpdatedAt DESC',\n ResultType: 'entity_object'\n }, currentUser);\n\n if (!versionResult.Success || !versionResult.Results) {\n return [];\n }\n\n // Load parent artifacts for display metadata\n const artifactIds = [...new Set(versionResult.Results.map(v => v.ArtifactID))];\n const artifactMap = new Map<string, MJArtifactEntity>();\n\n if (artifactIds.length > 0) {\n const artifactFilter = artifactIds.map(id => `ID='${id}'`).join(' OR ');\n const artifactResult = await rv.RunView<MJArtifactEntity>({\n EntityName: 'MJ: Artifacts',\n ExtraFilter: artifactFilter,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (artifactResult.Success && artifactResult.Results) {\n artifactResult.Results.forEach(a => {\n artifactMap.set(a.ID, a);\n this.cacheArtifact(a); // Cache parent artifacts\n });\n }\n }\n\n // Combine version + artifact\n return versionResult.Results\n .map(version => ({\n version,\n artifact: artifactMap.get(version.ArtifactID)!\n }))\n .filter(item => item.artifact != null);\n } catch (error) {\n console.error('Error loading collection artifact versions:', error);\n return [];\n }\n }\n\n /**\n * Loads a single artifact by ID\n * @param id The artifact ID\n * @param currentUser The current user context\n * @returns The artifact entity or null\n */\n async loadArtifact(id: string, currentUser: UserInfo): Promise<MJArtifactEntity | null> {\n try {\n const md = new Metadata();\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', currentUser);\n const loaded = await artifact.Load(id);\n\n if (loaded) {\n this.cacheArtifact(artifact);\n return artifact;\n }\n return null;\n } catch (error) {\n console.error('Error loading artifact:', error);\n return null;\n }\n }\n\n /**\n * Creates a new artifact\n * @param data Artifact data\n * @param currentUser The current user context\n * @returns The created artifact\n */\n async createArtifact(data: Partial<MJArtifactEntity>, currentUser: UserInfo): Promise<MJArtifactEntity> {\n const md = new Metadata();\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', currentUser);\n\n Object.assign(artifact, data);\n\n const saved = await artifact.Save();\n if (saved) {\n this.cacheArtifact(artifact);\n return artifact;\n } else {\n throw new Error(artifact.LatestResult?.Message || 'Failed to create artifact');\n }\n }\n\n /**\n * Updates an artifact\n * @param id The artifact ID\n * @param updates The fields to update\n * @param currentUser The current user context\n * @returns True if successful\n */\n async updateArtifact(id: string, updates: Partial<MJArtifactEntity>, currentUser: UserInfo): Promise<boolean> {\n // Check edit permission\n const canEdit = await this.artifactPermissionService.checkPermission(id, currentUser.ID, 'edit', currentUser);\n if (!canEdit) {\n throw new Error('You do not have permission to edit this artifact');\n }\n\n const md = new Metadata();\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', currentUser);\n\n const loaded = await artifact.Load(id);\n if (!loaded) {\n throw new Error('Artifact not found');\n }\n\n Object.assign(artifact, updates);\n\n const saved = await artifact.Save();\n if (saved) {\n this.cacheArtifact(artifact);\n return true;\n } else {\n throw new Error(artifact.LatestResult?.Message || 'Failed to update artifact');\n }\n }\n\n /**\n * Deletes an artifact\n * @param id The artifact ID\n * @param currentUser The current user context\n * @returns True if successful\n */\n async deleteArtifact(id: string, currentUser: UserInfo): Promise<boolean> {\n // Check edit permission (required for deletion)\n const canEdit = await this.artifactPermissionService.checkPermission(id, currentUser.ID, 'edit', currentUser);\n if (!canEdit) {\n throw new Error('You do not have permission to delete this artifact');\n }\n\n const md = new Metadata();\n const artifact = await md.GetEntityObject<MJArtifactEntity>('MJ: Artifacts', currentUser);\n\n const loaded = await artifact.Load(id);\n if (!loaded) {\n throw new Error('Artifact not found');\n }\n\n const deleted = await artifact.Delete();\n if (deleted) {\n this.removeCachedArtifact(id);\n if (this._activeArtifactId$.value === id) {\n this.closeArtifact();\n }\n return true;\n } else {\n throw new Error(artifact.LatestResult?.Message || 'Failed to delete artifact');\n }\n }\n\n /**\n * Adds an artifact version to a collection\n * @param artifactId The artifact ID (for permission checking)\n * @param collectionId The collection ID\n * @param currentUser The current user context\n * @param versionId Optional specific version ID. If not provided, uses latest version\n */\n async addToCollection(artifactId: string, collectionId: string, currentUser: UserInfo, versionId?: string): Promise<void> {\n // Check edit permission (required to modify collection membership)\n const canEdit = await this.artifactPermissionService.checkPermission(artifactId, currentUser.ID, 'edit', currentUser);\n if (!canEdit) {\n throw new Error('You do not have permission to add this artifact to a collection');\n }\n\n // Get version ID if not provided\n let targetVersionId = versionId;\n if (!targetVersionId) {\n const rv = new RunView();\n const versionResult = await rv.RunView<any>(\n {\n EntityName: 'MJ: Artifact Versions',\n ExtraFilter: `ArtifactID='${artifactId}'`,\n OrderBy: 'VersionNumber DESC',\n MaxRows: 1,\n ResultType: 'entity_object'\n },\n currentUser\n );\n\n if (!versionResult.Success || !versionResult.Results || versionResult.Results.length === 0) {\n throw new Error('No versions found for artifact');\n }\n\n targetVersionId = versionResult.Results[0].ID;\n }\n\n const md = new Metadata();\n const collectionArtifact = await md.GetEntityObject('MJ: Collection Artifacts', currentUser);\n\n (collectionArtifact as any).CollectionID = collectionId;\n (collectionArtifact as any).ArtifactVersionID = targetVersionId;\n\n const saved = await collectionArtifact.Save();\n if (!saved) {\n throw new Error('Failed to add artifact to collection');\n }\n }\n\n /**\n * Removes all versions of an artifact from a collection\n * @param artifactId The artifact ID\n * @param collectionId The collection ID\n * @param currentUser The current user context\n */\n async removeFromCollection(artifactId: string, collectionId: string, currentUser: UserInfo): Promise<void> {\n // Check edit permission (required to modify collection membership)\n const canEdit = await this.artifactPermissionService.checkPermission(artifactId, currentUser.ID, 'edit', currentUser);\n if (!canEdit) {\n throw new Error('You do not have permission to remove this artifact from a collection');\n }\n\n const rv = new RunView();\n // Find all versions of this artifact in the collection\n const result = await rv.RunView<any>(\n {\n EntityName: 'MJ: Collection Artifacts',\n ExtraFilter: `CollectionID='${collectionId}' AND ArtifactVersionID IN (\n SELECT ID FROM [__mj].[vwArtifactVersions] WHERE ArtifactID='${artifactId}'\n )`,\n ResultType: 'entity_object'\n },\n currentUser\n );\n\n if (!result.Success) {\n throw new Error(result.ErrorMessage || 'Failed to find collection artifact');\n }\n\n if (!result.Results || result.Results.length === 0) {\n throw new Error('Collection artifact link not found');\n }\n\n // Delete all version associations\n for (const collectionArtifact of result.Results) {\n const deleted = await collectionArtifact.Delete();\n if (!deleted) {\n const errorMsg = collectionArtifact.LatestResult?.Message || 'Failed to remove artifact from collection';\n throw new Error(errorMsg);\n }\n }\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-use-tracking.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-use-tracking.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;;AAG1D;;;GAGG;AAIH,MAAM,OAAO,0BAA0B;IACnC;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC5E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC/E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CACpB,iBAAyB,EACzB,WAAqB,EACrB,SAAgE,EAChE,OAAa;QAEb,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBAC7D,OAAO;YACX,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAsB,mBAAmB,CAAC,CAAC;YAEjF,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC5C,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9D,uCAAuC;YACvC,IAAI,CAAC;gBACD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,yDAAyD;QAC7D,CAAC;IACL,CAAC;oHAtEQ,0BAA0B;gEAA1B,0BAA0B,WAA1B,0BAA0B,mBAFvB,MAAM;;iFAET,0BAA0B;cAHtC,UAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB"}
1
+ {"version":3,"file":"artifact-use-tracking.service.js","sourceRoot":"","sources":["../../../src/lib/services/artifact-use-tracking.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAC;;AAG1D;;;GAGG;AAIH,MAAM,OAAO,0BAA0B;IACnC;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC7E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC5E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,iBAAyB,EAAE,WAAqB,EAAE,OAAa;QAC/E,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CACpB,iBAAyB,EACzB,WAAqB,EACrB,SAAgE,EAChE,OAAa;QAEb,IAAI,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;gBAC7D,OAAO;YACX,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,eAAe,CAAsB,mBAAmB,CAAC,CAAC;YAEjF,KAAK,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;YAC5C,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;YAC9B,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAE9D,uCAAuC;YACvC,IAAI,CAAC;gBACD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,yDAAyD;QAC7D,CAAC;IACL,CAAC;oHAtEQ,0BAA0B;gEAA1B,0BAA0B,WAA1B,0BAA0B,mBAFvB,MAAM;;iFAET,0BAA0B;cAHtC,UAAU;eAAC;gBACR,UAAU,EAAE,MAAM;aACrB","sourcesContent":["import { Injectable } from '@angular/core';\nimport { Metadata, UserInfo } from '@memberjunction/core';\nimport { MJArtifactUseEntity } from '@memberjunction/core-entities';\n\n/**\n * Service for tracking artifact usage events.\n * Creates audit trail records for security and analytics.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ArtifactUseTrackingService {\n /**\n * Track that a user viewed an artifact\n */\n async TrackViewed(artifactVersionId: string, currentUser: UserInfo, context?: any): Promise<void> {\n await this.trackUsage(artifactVersionId, currentUser, 'Viewed', context);\n }\n\n /**\n * Track that a user opened an artifact (full interaction)\n */\n async TrackOpened(artifactVersionId: string, currentUser: UserInfo, context?: any): Promise<void> {\n await this.trackUsage(artifactVersionId, currentUser, 'Opened', context);\n }\n\n /**\n * Track that a user shared an artifact\n */\n async TrackShared(artifactVersionId: string, currentUser: UserInfo, context?: any): Promise<void> {\n await this.trackUsage(artifactVersionId, currentUser, 'Shared', context);\n }\n\n /**\n * Track that a user saved/bookmarked an artifact\n */\n async TrackSaved(artifactVersionId: string, currentUser: UserInfo, context?: any): Promise<void> {\n await this.trackUsage(artifactVersionId, currentUser, 'Saved', context);\n }\n\n /**\n * Track that a user exported an artifact\n */\n async TrackExported(artifactVersionId: string, currentUser: UserInfo, context?: any): Promise<void> {\n await this.trackUsage(artifactVersionId, currentUser, 'Exported', context);\n }\n\n /**\n * Internal method to create usage record\n */\n private async trackUsage(\n artifactVersionId: string,\n currentUser: UserInfo,\n usageType: 'Viewed' | 'Opened' | 'Shared' | 'Saved' | 'Exported',\n context?: any\n ): Promise<void> {\n try {\n if (!currentUser) {\n console.warn('Cannot track artifact usage: No current user');\n return;\n }\n\n const md = new Metadata();\n const usage = await md.GetEntityObject<MJArtifactUseEntity>('MJ: Artifact Uses');\n\n usage.ArtifactVersionID = artifactVersionId;\n usage.UserID = currentUser.ID;\n usage.UsageType = usageType;\n usage.UsageContext = context ? JSON.stringify(context) : null;\n\n // Save asynchronously - don't block UI\n try {\n await usage.Save();\n } catch (error) {\n console.error('Failed to track artifact usage:', error);\n }\n\n } catch (error) {\n console.error('Error in trackUsage:', error);\n // Don't throw - usage tracking should never break the UI\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-permission.service.js","sourceRoot":"","sources":["../../../src/lib/services/collection-permission.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collection-permission.service.js","sourceRoot":"","sources":["../../../src/lib/services/collection-permission.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { Injectable } from '@angular/core';\nimport { UserInfo, RunView, Metadata } from '@memberjunction/core';\nimport { MJCollectionPermissionEntity } from '@memberjunction/core-entities';\n\nexport interface CollectionPermission {\n id: string;\n collectionId: string;\n userId: string;\n userName: string;\n canRead: boolean;\n canShare: boolean;\n canEdit: boolean;\n canDelete: boolean;\n sharedByUserId: string | null;\n sharedByUserName: string | null;\n sharedAt: Date;\n}\n\nexport interface PermissionSet {\n canRead: boolean;\n canShare: boolean;\n canEdit: boolean;\n canDelete: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CollectionPermissionService {\n\n /**\n * Load all permissions for a collection\n */\n async loadPermissions(collectionId: string, currentUser: UserInfo): Promise<CollectionPermission[]> {\n const rv = new RunView();\n const result = await rv.RunView<MJCollectionPermissionEntity>({\n EntityName: 'MJ: Collection Permissions',\n ExtraFilter: `CollectionID='${collectionId}'`,\n OrderBy: '__mj_CreatedAt ASC',\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results) {\n return result.Results.map(p => this.mapToPermission(p));\n }\n return [];\n }\n\n /**\n * Check if user has permission for a collection\n */\n async checkPermission(\n collectionId: string,\n userId: string,\n currentUser: UserInfo\n ): Promise<CollectionPermission | null> {\n const rv = new RunView();\n const result = await rv.RunView<MJCollectionPermissionEntity>({\n EntityName: 'MJ: Collection Permissions',\n ExtraFilter: `CollectionID='${collectionId}' AND UserID='${userId}'`,\n MaxRows: 1,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results && result.Results.length > 0) {\n return this.mapToPermission(result.Results[0]);\n }\n return null;\n }\n\n /**\n * Check permissions for multiple collections at once (efficient bulk loading)\n */\n async checkBulkPermissions(\n collectionIds: string[],\n userId: string,\n currentUser: UserInfo\n ): Promise<Map<string, CollectionPermission>> {\n const resultMap = new Map<string, CollectionPermission>();\n\n if (collectionIds.length === 0) {\n return resultMap;\n }\n\n // Build filter for all collection IDs\n const collectionFilter = collectionIds.map(id => `CollectionID='${id}'`).join(' OR ');\n const rv = new RunView();\n const result = await rv.RunView<MJCollectionPermissionEntity>({\n EntityName: 'MJ: Collection Permissions',\n ExtraFilter: `(${collectionFilter}) AND UserID='${userId}'`,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (result.Success && result.Results) {\n for (const entity of result.Results) {\n const permission = this.mapToPermission(entity);\n resultMap.set(entity.CollectionID, permission);\n }\n }\n\n return resultMap;\n }\n\n /**\n * Grant permission to a user\n */\n async grantPermission(\n collectionId: string,\n userId: string,\n permissions: PermissionSet,\n sharedByUserId: string,\n currentUser: UserInfo\n ): Promise<MJCollectionPermissionEntity> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJCollectionPermissionEntity>(\n 'MJ: Collection Permissions',\n currentUser\n );\n\n permission.CollectionID = collectionId;\n permission.UserID = userId;\n permission.CanRead = permissions.canRead;\n permission.CanShare = permissions.canShare;\n permission.CanEdit = permissions.canEdit;\n permission.CanDelete = permissions.canDelete;\n permission.SharedByUserID = sharedByUserId;\n\n const saved = await permission.Save();\n if (!saved) {\n throw new Error(permission.LatestResult?.Message || 'Failed to grant permission');\n }\n\n return permission;\n }\n\n /**\n * Grant permission and cascade to all child collections\n */\n async grantPermissionCascade(\n collectionId: string,\n userId: string,\n permissions: PermissionSet,\n sharedByUserId: string,\n currentUser: UserInfo\n ): Promise<void> {\n // Grant permission on current collection\n await this.grantPermission(collectionId, userId, permissions, sharedByUserId, currentUser);\n\n // Grant permissions on all child collections recursively\n await this.grantChildPermissions(collectionId, userId, permissions, sharedByUserId, currentUser);\n }\n\n /**\n * Recursively grant permissions on all child collections\n */\n private async grantChildPermissions(\n parentCollectionId: string,\n userId: string,\n permissions: PermissionSet,\n sharedByUserId: string,\n currentUser: UserInfo\n ): Promise<void> {\n const rv = new RunView();\n const childrenResult = await rv.RunView({\n EntityName: 'MJ: Collections',\n ExtraFilter: `ParentID='${parentCollectionId}'`,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (childrenResult.Success && childrenResult.Results) {\n for (const child of childrenResult.Results) {\n // Check if permission already exists\n const existing = await this.checkPermission(child.ID, userId, currentUser);\n\n if (existing) {\n // Permission exists, update it instead\n await this.updatePermission(existing.id, permissions, currentUser);\n } else {\n // Grant new permission\n await this.grantPermission(child.ID, userId, permissions, sharedByUserId, currentUser);\n }\n\n // Recursively grant to grandchildren\n await this.grantChildPermissions(child.ID, userId, permissions, sharedByUserId, currentUser);\n }\n }\n }\n\n /**\n * Update existing permission\n */\n async updatePermission(\n permissionId: string,\n permissions: PermissionSet,\n currentUser: UserInfo\n ): Promise<boolean> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJCollectionPermissionEntity>(\n 'MJ: Collection Permissions',\n currentUser\n );\n\n await permission.Load(permissionId);\n permission.CanRead = permissions.canRead;\n permission.CanShare = permissions.canShare;\n permission.CanEdit = permissions.canEdit;\n permission.CanDelete = permissions.canDelete;\n\n return await permission.Save();\n }\n\n /**\n * Update permission and cascade to all child collections\n */\n async updatePermissionCascade(\n collectionId: string,\n userId: string,\n permissions: PermissionSet,\n currentUser: UserInfo\n ): Promise<void> {\n // Update permission on current collection\n const permission = await this.checkPermission(collectionId, userId, currentUser);\n if (permission) {\n await this.updatePermission(permission.id, permissions, currentUser);\n }\n\n // Get all child collections and update recursively\n await this.updateChildPermissions(collectionId, userId, permissions, currentUser);\n }\n\n /**\n * Recursively update permissions on all child collections\n */\n private async updateChildPermissions(\n parentCollectionId: string,\n userId: string,\n permissions: PermissionSet,\n currentUser: UserInfo\n ): Promise<void> {\n const rv = new RunView();\n const childrenResult = await rv.RunView({\n EntityName: 'MJ: Collections',\n ExtraFilter: `ParentID='${parentCollectionId}'`,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (childrenResult.Success && childrenResult.Results) {\n for (const child of childrenResult.Results) {\n // Update permission if it exists for this user on the child collection\n const childPermission = await this.checkPermission(child.ID, userId, currentUser);\n if (childPermission) {\n await this.updatePermission(childPermission.id, permissions, currentUser);\n }\n\n // Recursively update grandchildren\n await this.updateChildPermissions(child.ID, userId, permissions, currentUser);\n }\n }\n }\n\n /**\n * Revoke permission\n */\n async revokePermission(permissionId: string, currentUser: UserInfo): Promise<boolean> {\n const md = new Metadata();\n const permission = await md.GetEntityObject<MJCollectionPermissionEntity>(\n 'MJ: Collection Permissions',\n currentUser\n );\n\n await permission.Load(permissionId);\n return await permission.Delete();\n }\n\n /**\n * Revoke permission and cascade to all child collections\n */\n async revokePermissionCascade(\n collectionId: string,\n userId: string,\n currentUser: UserInfo\n ): Promise<void> {\n // Revoke permission on current collection\n const permission = await this.checkPermission(collectionId, userId, currentUser);\n if (permission) {\n await this.revokePermission(permission.id, currentUser);\n }\n\n // Revoke permissions on all child collections recursively\n await this.revokeChildPermissions(collectionId, userId, currentUser);\n }\n\n /**\n * Recursively revoke permissions on all child collections\n */\n private async revokeChildPermissions(\n parentCollectionId: string,\n userId: string,\n currentUser: UserInfo\n ): Promise<void> {\n const rv = new RunView();\n const childrenResult = await rv.RunView({\n EntityName: 'MJ: Collections',\n ExtraFilter: `ParentID='${parentCollectionId}'`,\n ResultType: 'entity_object'\n }, currentUser);\n\n if (childrenResult.Success && childrenResult.Results) {\n for (const child of childrenResult.Results) {\n // Revoke permission if it exists for this user on the child collection\n const childPermission = await this.checkPermission(child.ID, userId, currentUser);\n if (childPermission) {\n await this.revokePermission(childPermission.id, currentUser);\n }\n\n // Recursively revoke from grandchildren\n await this.revokeChildPermissions(child.ID, userId, currentUser);\n }\n }\n }\n\n /**\n * Validate that requested permissions don't exceed granter's permissions\n */\n validatePermissions(\n requested: PermissionSet,\n granter: PermissionSet,\n isOwner: boolean\n ): boolean {\n if (isOwner) return true; // Owner can grant anything\n\n // Can't grant permissions you don't have\n if (requested.canShare && !granter.canShare) return false;\n if (requested.canEdit && !granter.canEdit) return false;\n if (requested.canDelete && !granter.canDelete) return false;\n\n return true;\n }\n\n /**\n * Get available permissions for a user to grant based on their own permissions\n */\n getAvailablePermissions(userPermissions: PermissionSet, isOwner: boolean): string[] {\n if (isOwner) {\n return ['Read', 'Share', 'Edit', 'Delete'];\n }\n\n const available = ['Read']; // Always have read\n if (userPermissions.canShare) available.push('Share');\n if (userPermissions.canEdit) available.push('Edit');\n if (userPermissions.canDelete) available.push('Delete');\n\n return available;\n }\n\n /**\n * Copy all permissions from parent collection to child collection\n */\n async copyParentPermissions(\n parentCollectionId: string,\n childCollectionId: string,\n currentUser: UserInfo\n ): Promise<void> {\n const parentPermissions = await this.loadPermissions(parentCollectionId, currentUser);\n\n for (const perm of parentPermissions) {\n // Check if permission already exists for this user on the child collection\n const existing = await this.checkPermission(childCollectionId, perm.userId, currentUser);\n\n if (existing) {\n // Permission already exists (e.g., owner permission), skip to avoid duplicate\n console.log(`Skipping duplicate permission for user ${perm.userId} on collection ${childCollectionId}`);\n continue;\n }\n\n await this.grantPermission(\n childCollectionId,\n perm.userId,\n {\n canRead: perm.canRead,\n canShare: perm.canShare,\n canEdit: perm.canEdit,\n canDelete: perm.canDelete\n },\n perm.sharedByUserId || currentUser.ID,\n currentUser\n );\n }\n }\n\n /**\n * Delete all permissions for a collection\n */\n async deleteAllPermissions(collectionId: string, currentUser: UserInfo): Promise<void> {\n const permissions = await this.loadPermissions(collectionId, currentUser);\n\n for (const perm of permissions) {\n await this.revokePermission(perm.id, currentUser);\n }\n }\n\n /**\n * Create owner permission record (all permissions enabled)\n */\n async createOwnerPermission(\n collectionId: string,\n ownerId: string,\n currentUser: UserInfo\n ): Promise<void> {\n await this.grantPermission(\n collectionId,\n ownerId,\n {\n canRead: true,\n canShare: true,\n canEdit: true,\n canDelete: true\n },\n ownerId, // Owner grants to themselves\n currentUser\n );\n }\n\n private mapToPermission(entity: MJCollectionPermissionEntity): CollectionPermission {\n return {\n id: entity.ID,\n collectionId: entity.CollectionID,\n userId: entity.UserID,\n userName: entity.User || '',\n canRead: entity.CanRead,\n canShare: entity.CanShare,\n canEdit: entity.CanEdit,\n canDelete: entity.CanDelete,\n sharedByUserId: entity.SharedByUserID || null,\n sharedByUserName: entity.SharedByUser || null,\n sharedAt: entity.__mj_CreatedAt\n };\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"collection-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/collection-state.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAc,MAAM,MAAM,CAAC;;AAEnD;;;GAGG;AAIH,MAAM,OAAO,sBAAsB;IACzB,oBAAoB,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;IAExE;;OAEG;IACa,mBAAmB,GAA8B,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IAE1G;;OAEG;IACH,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,gBAAe,CAAC;IAEhB;;;OAGG;IACH,mBAAmB,CAAC,EAAiB;QACnC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACzC,CAAC;gHAtCU,sBAAsB;gEAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;;iFAEP,sBAAsB;cAHlC,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB"}
1
+ {"version":3,"file":"collection-state.service.js","sourceRoot":"","sources":["../../../src/lib/services/collection-state.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAc,MAAM,MAAM,CAAC;;AAEnD;;;GAGG;AAIH,MAAM,OAAO,sBAAsB;IACzB,oBAAoB,GAAG,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;IAExE;;OAEG;IACa,mBAAmB,GAA8B,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;IAE1G;;OAEG;IACH,IAAW,kBAAkB;QAC3B,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,gBAAe,CAAC;IAEhB;;;OAGG;IACH,mBAAmB,CAAC,EAAiB;QACnC,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;IACzC,CAAC;gHAtCU,sBAAsB;gEAAtB,sBAAsB,WAAtB,sBAAsB,mBAFrB,MAAM;;iFAEP,sBAAsB;cAHlC,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB","sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * State management service for collections\n * Tracks active collection for deep linking support\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CollectionStateService {\n private _activeCollectionId$ = new BehaviorSubject<string | null>(null);\n\n /**\n * Observable of the active collection ID\n */\n public readonly activeCollectionId$: Observable<string | null> = this._activeCollectionId$.asObservable();\n\n /**\n * Gets the currently active collection ID (synchronous)\n */\n public get activeCollectionId(): string | null {\n return this._activeCollectionId$.value;\n }\n\n constructor() {}\n\n /**\n * Sets the active collection\n * @param id The collection ID to activate (or null to clear)\n */\n setActiveCollection(id: string | null): void {\n console.log('📁 Setting active collection:', id);\n this._activeCollectionId$.next(id);\n }\n\n /**\n * Clears the active collection\n */\n clearActiveCollection(): void {\n this._activeCollectionId$.next(null);\n }\n\n /**\n * Gets the currently active collection ID\n */\n getActiveCollectionId(): string | null {\n return this._activeCollectionId$.value;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-agent.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-agent.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-agent.service.d.ts","sourceRoot":"","sources":["../../../src/lib/services/conversation-agent.service.ts"],"names":[],"mappings":"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"}
@@ -456,14 +456,13 @@ export class ConversationAgentService {
456
456
  console.warn(`⚠️ Agent configuration preset ${agentConfigurationPresetId} not found for agent ${agent.ID}`);
457
457
  }
458
458
  }
459
- // Build conversation messages for the sub-agent
460
- // Note: conversationHistory already includes the current message
461
- const conversationMessages = await this.buildAgentMessages(conversationHistory);
462
- // Prepare parameters with optional payload and progress callback
463
- const params = {
464
- agent: agent,
465
- conversationMessages: conversationMessages,
459
+ // Use fire-and-forget mutation to avoid Azure proxy timeouts (~230s).
460
+ // Server loads conversation history from DB, avoiding large client→server payload.
461
+ // Client receives completion via WebSocket PubSub event.
462
+ const result = await this._aiClient.RunAIAgentFromConversationDetail({
466
463
  conversationDetailId: conversationDetailId,
464
+ agentId: agent.ID,
465
+ maxHistoryMessages: 20,
467
466
  data: {
468
467
  conversationId: conversationId,
469
468
  latestMessageId: message.ID,
@@ -471,10 +470,20 @@ export class ConversationAgentService {
471
470
  },
472
471
  ...(payload ? { payload } : {}),
473
472
  ...(aiConfigurationId ? { configurationId: aiConfigurationId } : {}),
474
- onProgress: onProgress
475
- };
476
- // Run the sub-agent with optional source artifact info for versioning (GraphQL layer only)
477
- const result = await this._aiClient.RunAIAgent(params, sourceArtifactId, sourceArtifactVersionId);
473
+ createArtifacts: true,
474
+ createNotification: true,
475
+ sourceArtifactId: sourceArtifactId,
476
+ sourceArtifactVersionId: sourceArtifactVersionId,
477
+ // Adapt progress callback: GraphQL uses currentStep, AgentExecutionProgressCallback uses step
478
+ onProgress: onProgress ? (progress) => {
479
+ onProgress({
480
+ step: progress.currentStep,
481
+ percentage: progress.percentage,
482
+ message: progress.message,
483
+ metadata: progress.metadata
484
+ });
485
+ } : undefined
486
+ });
478
487
  return result;
479
488
  }
480
489
  catch (error) {