@sftech/ng-orchestrator 0.0.17 → 0.0.19

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 (33) hide show
  1. package/fesm2022/sftech-ng-orchestrator-agent-rag-upload.component-iqEbrzkb.mjs +189 -0
  2. package/fesm2022/sftech-ng-orchestrator-agent-rag-upload.component-iqEbrzkb.mjs.map +1 -0
  3. package/fesm2022/{sftech-ng-orchestrator-agents.routes-B9GSWOIz.mjs → sftech-ng-orchestrator-agents.routes-CVcxzNAE.mjs} +70 -13
  4. package/fesm2022/sftech-ng-orchestrator-agents.routes-CVcxzNAE.mjs.map +1 -0
  5. package/fesm2022/sftech-ng-orchestrator-chats.routes-BDe9JC4m.mjs +625 -0
  6. package/fesm2022/sftech-ng-orchestrator-chats.routes-BDe9JC4m.mjs.map +1 -0
  7. package/fesm2022/{sftech-ng-orchestrator-prompt-display.component-Cd6Ff3KE.mjs → sftech-ng-orchestrator-prompt-display.component-BkSLQgGU.mjs} +2 -2
  8. package/fesm2022/{sftech-ng-orchestrator-prompt-display.component-Cd6Ff3KE.mjs.map → sftech-ng-orchestrator-prompt-display.component-BkSLQgGU.mjs.map} +1 -1
  9. package/fesm2022/{sftech-ng-orchestrator-prompts.routes-DQZ_Hmjs.mjs → sftech-ng-orchestrator-prompts.routes-DeR6lppF.mjs} +2 -2
  10. package/fesm2022/{sftech-ng-orchestrator-prompts.routes-DQZ_Hmjs.mjs.map → sftech-ng-orchestrator-prompts.routes-DeR6lppF.mjs.map} +1 -1
  11. package/fesm2022/{sftech-ng-orchestrator-sftech-ng-orchestrator-CJMmRHC-.mjs → sftech-ng-orchestrator-sftech-ng-orchestrator-D9fLhC24.mjs} +66 -7
  12. package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-D9fLhC24.mjs.map +1 -0
  13. package/fesm2022/sftech-ng-orchestrator.mjs +1 -1
  14. package/lib/ng-orchestrator/admin/agents/components/agent/agent-rag-upload/agent-rag-upload.component.d.ts +21 -0
  15. package/lib/ng-orchestrator/admin/agents/components/agent/agents-list/agents-list.component.d.ts +2 -0
  16. package/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input/agent-chat-message-human-input.component.d.ts +6 -5
  17. package/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input-initial/agent-chat-message-human-input-initial.component.d.ts +20 -0
  18. package/lib/ng-orchestrator/chats/agent-chat/agent-chat.component.d.ts +7 -1
  19. package/lib/ng-orchestrator/core/configuration/orchestrator-config.interface.d.ts +2 -0
  20. package/lib/ng-orchestrator/core/dtos/agent-create-request.dto.d.ts +2 -0
  21. package/lib/ng-orchestrator/core/dtos/agent-response.dto.d.ts +2 -0
  22. package/lib/ng-orchestrator/core/dtos/agent-update-request.dto.d.ts +2 -0
  23. package/lib/ng-orchestrator/core/dtos/rag-ingest-config.dto.d.ts +4 -0
  24. package/lib/ng-orchestrator/core/models/agent.model.d.ts +2 -0
  25. package/lib/ng-orchestrator/core/service/orchestrator.service.d.ts +3 -0
  26. package/lib/ng-orchestrator/core/validators/rag.validator.d.ts +2 -0
  27. package/package.json +1 -1
  28. package/fesm2022/sftech-ng-orchestrator-agent.service-DPJMw8a4.mjs +0 -106
  29. package/fesm2022/sftech-ng-orchestrator-agent.service-DPJMw8a4.mjs.map +0 -1
  30. package/fesm2022/sftech-ng-orchestrator-agents.routes-B9GSWOIz.mjs.map +0 -1
  31. package/fesm2022/sftech-ng-orchestrator-chats.routes-BLGhykMM.mjs +0 -556
  32. package/fesm2022/sftech-ng-orchestrator-chats.routes-BLGhykMM.mjs.map +0 -1
  33. package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-CJMmRHC-.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sftech-ng-orchestrator-chats.routes-BDe9JC4m.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/agent-run.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/chat.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/dataprovider/orchestrator-icon.provider.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/core/dataprovider/agent-run-icon-text.dataprovider.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input-initial/agent-chat-message-human-input-initial.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input-initial/agent-chat-message-human-input-initial.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input/agent-chat-message-human-input.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message-human-input/agent-chat-message-human-input.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message/agent-chat-message.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat-message/agent-chat-message.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-chat/agent-chat.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-selection/agent-selection.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/agent-selection/agent-selection.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/chats.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/chats/chats.routes.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService, MappedApiError, MappedApiResponse } from '@sftech/ng-shared';\r\nimport { Observable } from 'rxjs';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IAgentRunCreateRequestDto } from '../dtos/agent-run-create-request.dto';\r\nimport { IAgentRunResponseDto } from '../dtos/agent-run-response.dto';\r\nimport { AgentRun } from '../models/agent-run.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AgentRunService extends BaseDbApiService<AgentRun, IAgentRunCreateRequestDto, IAgentRunResponseDto, IAgentRunResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/agent-runs`;\r\n }\r\n\r\n // biome-ignore lint/correctness/noUnusedVariables: <explanation>\r\n override insert(dto: IAgentRunCreateRequestDto): Observable<MappedApiResponse<AgentRun> | MappedApiError> {\r\n throw new Error('Method not implemented');\r\n }\r\n\r\n // biome-ignore lint/correctness/noUnusedVariables: <explanation>\r\n override update(id: number, dto: IAgentRunResponseDto): Observable<MappedApiResponse<AgentRun> | MappedApiError> {\r\n throw new Error('Method not implemented');\r\n }\r\n\r\n // biome-ignore lint/correctness/noUnusedVariables: <explanation>\r\n override delete(id: number): Observable<MappedApiResponse<AgentRun> | MappedApiError> {\r\n throw new Error('Method not implemented');\r\n }\r\n\r\n protected getNewModel(): AgentRun {\r\n return new AgentRun();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService, IApiResponse, IOdataResponseDto, MappedApiError, MappedApiResponse, MappedOdataResponse, OData } from '@sftech/ng-shared';\r\nimport { Observable, catchError, map } from 'rxjs';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IChatCreateRequestDto } from '../dtos/chat-create-request.dto';\r\nimport { IChatResponseDto } from '../dtos/chat-response.dto';\r\nimport { IChatUpdateRequestDto } from '../dtos/chat-update-request.dto';\r\nimport { Chat } from '../models/chat.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ChatService extends BaseDbApiService<Chat, IChatCreateRequestDto, IChatUpdateRequestDto, IChatResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/chats`;\r\n }\r\n\r\n public override odata(odataQuery: OData): Observable<MappedOdataResponse<Chat> | MappedApiError> {\r\n return this.http.get<IApiResponse<IOdataResponseDto<IChatResponseDto>>>(`${this.url}/${odataQuery.toGetParameter()}`).pipe(\r\n map((response: IApiResponse<IOdataResponseDto<IChatResponseDto>>) => this.responseOdataMapping(response)),\r\n catchError((error) => {\r\n return this.httpErrorToApiResponse(error);\r\n }),\r\n );\r\n }\r\n\r\n public override insert(dto: IChatCreateRequestDto): Observable<MappedApiResponse<Chat> | MappedApiError> {\r\n return this.http.post<IApiResponse<IChatResponseDto>>(this.url, dto).pipe(\r\n map((response: IApiResponse<IChatResponseDto>) => this.responseMapping(response)),\r\n catchError((error) => {\r\n return this.httpErrorToApiResponse(error);\r\n }),\r\n );\r\n }\r\n\r\n // biome-ignore lint/correctness/noUnusedVariables: <explanation>\r\n public override update(id: number, dto: IChatUpdateRequestDto): Observable<MappedApiResponse<Chat> | MappedApiError> {\r\n throw new Error('update of a chat is not allowed');\r\n }\r\n\r\n protected override getNewModel(): Chat {\r\n return new Chat();\r\n }\r\n}\r\n","import { faBrain, faCheck, faCircleQuestion, faClipboardCheck, faCog, faLaptop, faNetworkWired, faNoteSticky, faSpinner, faUser, faXmark } from '@fortawesome/free-solid-svg-icons';\r\nimport { IconProvider } from '@sftech/ng-shared';\r\n\r\nexport class OrchestratorIconProvider extends IconProvider {\r\n public static readonly agentRunStatusInit = faNoteSticky;\r\n public static readonly agentRunStatusRunning = faCog;\r\n public static readonly agentRunStatusCompleted = faCheck;\r\n public static readonly agentRunStatusFailed = faXmark;\r\n public static readonly agentRunStatusPrerun = faSpinner;\r\n public static readonly agentRunStatusPostrun = faClipboardCheck;\r\n public static readonly agentRunStatusClarify = faCircleQuestion;\r\n\r\n public static readonly messageTypeAI = faBrain;\r\n public static readonly messageTypeHuman = faUser;\r\n public static readonly messageTypeSystem = faNetworkWired;\r\n}\r\n","import { IconDefinition } from '@fortawesome/angular-fontawesome';\r\nimport { IconProvider } from '@sftech/ng-shared';\r\nimport { OrchestratorIconProvider } from '../../../core/dataprovider/orchestrator-icon.provider';\r\nimport { EAgentRunStatus } from '../../../core/enums/agent-run-status.enum';\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class AgentRunIconTextDataprovider {\r\n private static readonly UNKNOWN_TEXT = 'Unbekannt';\r\n\r\n public static getTextForStatus(status: EAgentRunStatus | undefined): string {\r\n if (!status) {\r\n return AgentRunIconTextDataprovider.UNKNOWN_TEXT;\r\n }\r\n switch (status) {\r\n case EAgentRunStatus.INIT:\r\n return 'Anlage';\r\n case EAgentRunStatus.RUNNING:\r\n return 'In Bearbeitung';\r\n case EAgentRunStatus.COMPLETED:\r\n return 'Abgeschlossen';\r\n case EAgentRunStatus.FAILED:\r\n return 'Fehlgeschlagen';\r\n case EAgentRunStatus.CLARIFICATION_NEEDED:\r\n return 'Rückfrage';\r\n case EAgentRunStatus.PRERUNNING:\r\n return 'Vorbereitung';\r\n case EAgentRunStatus.POSTRUNNING:\r\n return 'Nachbereitung';\r\n default:\r\n return AgentRunIconTextDataprovider.UNKNOWN_TEXT;\r\n }\r\n }\r\n\r\n public static getIconForStatus(status: EAgentRunStatus | undefined): IconDefinition {\r\n if (!status) {\r\n return IconProvider.unknown;\r\n }\r\n switch (status) {\r\n case EAgentRunStatus.INIT:\r\n return OrchestratorIconProvider.agentRunStatusInit;\r\n case EAgentRunStatus.RUNNING:\r\n return OrchestratorIconProvider.agentRunStatusRunning;\r\n case EAgentRunStatus.COMPLETED:\r\n return OrchestratorIconProvider.agentRunStatusCompleted;\r\n case EAgentRunStatus.FAILED:\r\n return OrchestratorIconProvider.agentRunStatusFailed;\r\n case EAgentRunStatus.CLARIFICATION_NEEDED:\r\n return OrchestratorIconProvider.agentRunStatusClarify;\r\n case EAgentRunStatus.PRERUNNING:\r\n return OrchestratorIconProvider.agentRunStatusPrerun;\r\n case EAgentRunStatus.POSTRUNNING:\r\n return OrchestratorIconProvider.agentRunStatusPostrun;\r\n default:\r\n return IconProvider.unknown;\r\n }\r\n }\r\n\r\n public static getIconClassesForStatus(status: EAgentRunStatus | undefined): string {\r\n if (!status) {\r\n return AgentRunIconTextDataprovider.UNKNOWN_TEXT;\r\n }\r\n switch (status) {\r\n case EAgentRunStatus.INIT:\r\n return '';\r\n case EAgentRunStatus.RUNNING:\r\n return 'text-primary-600';\r\n case EAgentRunStatus.COMPLETED:\r\n return 'text-green-600';\r\n case EAgentRunStatus.FAILED:\r\n return 'text-red-600';\r\n case EAgentRunStatus.CLARIFICATION_NEEDED:\r\n return '';\r\n case EAgentRunStatus.PRERUNNING:\r\n return '';\r\n case EAgentRunStatus.POSTRUNNING:\r\n return '';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n public static getIconForMessageType(messageType: string): IconDefinition {\r\n switch (messageType) {\r\n case 'system':\r\n return OrchestratorIconProvider.messageTypeSystem;\r\n case 'human':\r\n return OrchestratorIconProvider.messageTypeHuman;\r\n case 'ai':\r\n return OrchestratorIconProvider.messageTypeAI;\r\n default:\r\n return IconProvider.unknown;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Output, effect, inject, input } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { FormErrorDisplayComponent, MappedApiError } from '@sftech/ng-shared';\r\nimport { AgentRunIconTextDataprovider } from 'libs/ng-orchestrator/src/lib/ng-orchestrator/chats/core/dataprovider/agent-run-icon-text.dataprovider';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Agent } from '../../../core/models/agent.model';\r\n\r\nimport { OrchestratorService } from '../../../core/service/orchestrator.service';\r\n\r\n@Component({\r\n selector: 'sftech-agent-chat-message-human-input-initial',\r\n imports: [FaIconComponent, Button, FloatLabel, FormErrorDisplayComponent, InputText, ReactiveFormsModule],\r\n templateUrl: './agent-chat-message-human-input-initial.component.html',\r\n styleUrl: './agent-chat-message-human-input-initial.component.css',\r\n})\r\nexport class AgentChatMessageHumanInputInitialComponent {\r\n public agent = input<Agent>();\r\n\r\n @Output() agentRunIdReceived = new EventEmitter<number>();\r\n\r\n public messageService = inject(MessageService);\r\n public orchestratorService = inject(OrchestratorService);\r\n\r\n public form = new FormGroup({});\r\n\r\n private _agentChanged$ = effect(() => {\r\n this.agent()!\r\n .llmUserPrompt?.template.match(/{{(.*?)}}/g)\r\n ?.forEach((m: string) => {\r\n const key = m.slice(2, -2);\r\n this.form.addControl(key, new FormControl('', [Validators.required]));\r\n });\r\n });\r\n\r\n protected readonly iconTextMapper = AgentRunIconTextDataprovider;\r\n\r\n public run(): void {\r\n if (this.form!.valid && this.form!.valid) {\r\n this.orchestratorService\r\n .runAgent({\r\n agentIdentifier: this.agent()!.identifier,\r\n userInput: this.form!.value,\r\n })\r\n .subscribe((res) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({ severity: 'error', summary: 'Error', detail: res.messages.join('|') });\r\n return;\r\n }\r\n this.agentRunIdReceived.emit(res);\r\n });\r\n } else {\r\n console.error('Form is invalid');\r\n }\r\n }\r\n\r\n public getInputFormControlNames(): string[] {\r\n return Object.keys(this.form!.controls);\r\n }\r\n}\r\n","<div class=\"my-2 p-4 rounded bg-white flex border-1 flex-row items-center text-right border-gray-600 flex-row-reverse\">\r\n <div class=\"me-4 ms-4 text-gray-600\">\r\n <fa-icon [icon]=\"iconTextMapper.getIconForMessageType('human')\" size=\"2x\"></fa-icon>\r\n </div>\r\n <div class=\"m-0 flex-grow\">\r\n <div class=\"template border-b-1 border-gray-600 p-3\">{{this.agent()!.llmUserPrompt?.template}}</div>\r\n <hr />\r\n <div class=\"inputs mt-2\">\r\n <form [formGroup]=\"form!\">\r\n <div class=\"flex justify-end\">\r\n @for (controlName of getInputFormControlNames(); track controlName) {\r\n <div>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"{{ controlName}}\" formControlName=\"{{ controlName }}\" pInputText\r\n class=\"w-full\"/>\r\n <label for=\"{{ controlName }}\">{{ controlName }}</label>\r\n </p-floatlabel>\r\n <sftech-form-error-display [control]=\"form!.get(controlName)!\"\r\n [label]=\"controlName\"></sftech-form-error-display>\r\n </div>\r\n }\r\n </div>\r\n <div class=\"mt-2\">\r\n <p-button type=\"submit\" label=\"Senden\" (onClick)=\"run()\" tabindex=\"1\"/>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>","import { Component, EventEmitter, Output, inject, input } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { FormErrorDisplayComponent, MappedApiError } from '@sftech/ng-shared';\r\nimport { AgentRunIconTextDataprovider } from 'libs/ng-orchestrator/src/lib/ng-orchestrator/chats/core/dataprovider/agent-run-icon-text.dataprovider';\r\nimport { MessageService } from 'primeng/api';\r\nimport { Button } from 'primeng/button';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Agent } from '../../../core/models/agent.model';\r\nimport { OrchestratorService } from '../../../core/service/orchestrator.service';\r\n\r\n@Component({\r\n selector: 'sftech-agent-chat-message-human-input',\r\n imports: [FaIconComponent, Button, FloatLabel, FormErrorDisplayComponent, InputText, ReactiveFormsModule],\r\n templateUrl: './agent-chat-message-human-input.component.html',\r\n styleUrl: './agent-chat-message-human-input.component.css',\r\n})\r\nexport class AgentChatMessageHumanInputComponent {\r\n public agent = input<Agent>();\r\n public agentRunId = input<number>();\r\n\r\n @Output() agentRunIdReceived = new EventEmitter<number>();\r\n\r\n public messageService = inject(MessageService);\r\n public orchestratorService = inject(OrchestratorService);\r\n\r\n public form = new FormGroup({\r\n message: new FormControl('', [Validators.required]),\r\n });\r\n\r\n protected readonly iconTextMapper = AgentRunIconTextDataprovider;\r\n\r\n public run(): void {\r\n if (this.form.valid) {\r\n const message = this.form.value.message as string;\r\n this.orchestratorService.chatAgent(this.agentRunId()!, message).subscribe((res) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({ severity: 'error', summary: 'Error', detail: res.messages.join('|') });\r\n return;\r\n }\r\n this.form.reset();\r\n this.agentRunIdReceived.emit(res);\r\n });\r\n }\r\n }\r\n}\r\n","<div class=\"my-2 p-4 rounded bg-white flex border-1 flex-row items-center text-right border-gray-600 flex-row-reverse\">\r\n <div class=\"me-4 ms-4 text-gray-600\">\r\n <fa-icon [icon]=\"iconTextMapper.getIconForMessageType('human')\" size=\"2x\"></fa-icon>\r\n </div>\r\n <div class=\"m-0 flex-grow\">\r\n <div class=\"inputs mt-2\">\r\n <form [formGroup]=\"form\">\r\n <div class=\"flex justify-end\">\r\n <div class=\"w-full\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\"\r\n id=\"message\"\r\n formControlName=\"message\"\r\n pInputText\r\n class=\"w-full\"/>\r\n <label for=\"message\">Nachricht</label>\r\n </p-floatlabel>\r\n <sftech-form-error-display [control]=\"form.get('message')!\"\r\n label=\"Nachricht\"></sftech-form-error-display>\r\n </div>\r\n </div>\r\n <div class=\"mt-2\">\r\n <p-button type=\"submit\" label=\"Senden\" (onClick)=\"run()\" tabindex=\"1\"></p-button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, input } from '@angular/core';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { MarkdownComponent } from 'ngx-markdown';\r\nimport { AgentRunIconTextDataprovider } from '../../core/dataprovider/agent-run-icon-text.dataprovider';\r\n\r\n@Component({\r\n selector: 'sftech-agent-chat-message',\r\n imports: [NgClass, FaIconComponent, MarkdownComponent],\r\n templateUrl: './agent-chat-message.component.html',\r\n styleUrl: './agent-chat-message.component.css',\r\n})\r\nexport class AgentChatMessageComponent {\r\n public message = input('message');\r\n public type = input('type');\r\n\r\n public iconTextMapper = AgentRunIconTextDataprovider;\r\n\r\n public extractJson(message: string): string {\r\n const jsonMatch = message.match(/```json\\s*([\\s\\S]*?)\\s*```/);\r\n if (jsonMatch && jsonMatch[1]) {\r\n try {\r\n const data = JSON.parse(jsonMatch[1]);\r\n const md = this._toMarkdownFromJson(data);\r\n return md;\r\n } catch (e) {\r\n console.error('Failed to parse JSON:', e);\r\n return 'Invalid JSON';\r\n }\r\n }\r\n return 'No JSON found';\r\n }\r\n\r\n private _toMarkdownFromJson(obj: any): string {\r\n let md = '';\r\n\r\n for (const key of Object.keys(obj)) {\r\n const value = obj[key];\r\n\r\n // Überschrift für jede Kategorie\r\n md += `\\n### ${key}\\n\\n`;\r\n\r\n if (Array.isArray(value) && value.length && typeof value[0] === 'object') {\r\n // Tabellen-Header\r\n const headers = Object.keys(value[0]);\r\n md += `| ${headers.join(' | ')} |\\n`;\r\n md += `| ${headers.map(() => '---').join(' | ')} |\\n`;\r\n\r\n // Tabellen-Zeilen\r\n for (const row of value) {\r\n md += `| ${headers.map((h) => row[h]).join(' | ')} |\\n`;\r\n }\r\n md += '\\n';\r\n } else if (typeof value === 'object') {\r\n // Rekursiver Aufruf bei verschachtelten Objekten\r\n md += this._toMarkdownFromJson(value);\r\n } else {\r\n // Einfaches Feld\r\n md += `- **${key}:** ${value}\\n`;\r\n }\r\n }\r\n\r\n return md;\r\n }\r\n}\r\n","@if (type() === 'ai_loading') {\r\n <div class=\"flex items-center p-4 rounded-xl bg-green-50 shadow-sm border border-green-200\">\r\n <div class=\"me-4 ms-2 text-green-600\">\r\n <fa-icon [icon]=\"iconTextMapper.getIconForMessageType('ai')\" size=\"lg\"></fa-icon>\r\n </div>\r\n <div class=\"flex items-center space-x-3 text-gray-600\">\r\n <span class=\"text-sm\">Die Antwort wird ermittelt...</span>\r\n <div class=\"flex space-x-1\">\r\n <div class=\"w-2.5 h-2.5 bg-green-600 rounded-full animate-bounceDelay\"></div>\r\n <div class=\"w-2.5 h-2.5 bg-green-600 rounded-full animate-bounceDelay [animation-delay:-0.32s]\"></div>\r\n <div class=\"w-2.5 h-2.5 bg-green-600 rounded-full animate-bounceDelay [animation-delay:-0.16s]\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n}\r\n\r\n@else if (type() === 'ai_failed') {\r\n <div class=\"flex items-center p-4 rounded-xl bg-red-50 shadow-sm border border-red-200\">\r\n <div class=\"me-4 ms-2 text-red-600\">\r\n <fa-icon [icon]=\"iconTextMapper.getIconForMessageType('ai')\" size=\"lg\"></fa-icon>\r\n </div>\r\n <div class=\"text-sm text-red-700\">\r\n {{ message() }}\r\n </div>\r\n </div>\r\n}\r\n\r\n@else {\r\n <div\r\n class=\"w-full p-4 rounded-xl shadow-sm flex gap-3\"\r\n [ngClass]=\"{\r\n 'bg-green-50 border border-green-200': type() === 'ai',\r\n 'bg-gray-100 border border-gray-200 flex-row-reverse text-right': type() === 'human',\r\n 'bg-yellow-50 border border-yellow-200': type() === 'system',\r\n }\"\r\n >\r\n <div\r\n class=\"flex-shrink-0 mt-1\"\r\n [ngClass]=\"{\r\n 'text-green-600': type() === 'ai',\r\n 'text-gray-500': type() === 'human',\r\n 'text-yellow-600': type() === 'system',\r\n }\"\r\n >\r\n <fa-icon [icon]=\"iconTextMapper.getIconForMessageType(type())\" size=\"lg\"></fa-icon>\r\n </div>\r\n\r\n <div class=\"w-full text-sm leading-relaxed\">\r\n @if (message().includes('```json')) {\r\n <div class=\"p-3 rounded-md text-gray-100 overflow-x-auto text-xs font-mono\">\r\n <markdown class=\"markdown-body\">{{ extractJson(message()) }}</markdown>\r\n </div>\r\n } @else {\r\n <markdown class=\"markdown-body\">{{ message() }}</markdown>\r\n }\r\n </div>\r\n </div>\r\n}","import { DatePipe } from '@angular/common';\r\nimport { Component, ElementRef, OnDestroy, OnInit, ViewChild, computed, effect, inject, signal } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\r\nimport { EFilterOperator, EFilterTypes, ESortDirection, IconProvider, MappedApiError, MappedOdataResponse, OData, OdataFilter } from '@sftech/ng-shared';\r\nimport { MessageService } from 'primeng/api';\r\nimport { ButtonDirective } from 'primeng/button';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Tooltip } from 'primeng/tooltip';\r\nimport { Subscription, map } from 'rxjs';\r\nimport { AgentRagUploadComponent } from '../../admin/agents/components/agent/agent-rag-upload/agent-rag-upload.component';\r\nimport { IChatMessageResponseDto } from '../../core/dtos/chat-message-response.dto';\r\nimport { EAgentRunStatus } from '../../core/enums/agent-run-status.enum';\r\nimport { AgentRun } from '../../core/models/agent-run.model';\r\nimport { Agent } from '../../core/models/agent.model';\r\nimport { ChatMessage } from '../../core/models/chat-message.model';\r\nimport { Chat } from '../../core/models/chat.model';\r\nimport { AgentRunService } from '../../core/service/agent-run.service';\r\nimport { AgentService } from '../../core/service/agent.service';\r\nimport { ChatService } from '../../core/service/chat.service';\r\nimport { OrchestratorService } from '../../core/service/orchestrator.service';\r\nimport { AgentRunIconTextDataprovider } from '../core/dataprovider/agent-run-icon-text.dataprovider';\r\nimport { AgentChatMessageHumanInputInitialComponent } from './agent-chat-message-human-input-initial/agent-chat-message-human-input-initial.component';\r\nimport { AgentChatMessageHumanInputComponent } from './agent-chat-message-human-input/agent-chat-message-human-input.component';\r\nimport { AgentChatMessageComponent } from './agent-chat-message/agent-chat-message.component';\r\n\r\n@Component({\r\n selector: 'sftech-agent-chat',\r\n imports: [ButtonDirective, AgentChatMessageComponent, DatePipe, FaIconComponent, AgentChatMessageHumanInputInitialComponent, AgentChatMessageHumanInputComponent, Tooltip],\r\n providers: [DialogService],\r\n templateUrl: './agent-chat.component.html',\r\n styleUrl: './agent-chat.component.css',\r\n})\r\nexport class AgentChatComponent implements OnInit, OnDestroy {\r\n protected readonly activeRoute = inject(ActivatedRoute);\r\n protected readonly router = inject(Router);\r\n\r\n protected readonly agentService = inject(AgentService);\r\n protected readonly agentRunService = inject(AgentRunService);\r\n protected readonly chatService = inject(ChatService);\r\n protected readonly orchestratorService = inject(OrchestratorService);\r\n protected readonly messageService = inject(MessageService);\r\n private readonly dialogService = inject(DialogService);\r\n\r\n protected agent!: Agent;\r\n\r\n protected readonly agentRuns = signal<AgentRun[] | undefined>(undefined);\r\n\r\n protected selectedAgentRun = signal<AgentRun | undefined>(undefined);\r\n protected selectedAgent = signal<Agent | undefined>(undefined);\r\n\r\n @ViewChild('chatContainer') chatContainer?: ElementRef;\r\n\r\n public iconProvider = IconProvider;\r\n public iconTextMapper = AgentRunIconTextDataprovider;\r\n public agentRunStatus = EAgentRunStatus;\r\n\r\n public subscriptions: Subscription[] = [];\r\n\r\n protected selectedAgentRunChanged$ = effect(() => {\r\n if (!this.selectedAgentRun()) {\r\n return;\r\n }\r\n this._loadChat();\r\n });\r\n\r\n protected chatMessagesChanged$ = effect(() => {\r\n const messages = this.selectedAgentRun()?.chat?.messages;\r\n if (messages && messages.length > 0) {\r\n this.startScrollingStrategy();\r\n }\r\n });\r\n\r\n public loading = computed(() => {\r\n if (!this.selectedAgentRun()?.status) {\r\n return false;\r\n }\r\n return ![EAgentRunStatus.COMPLETED, EAgentRunStatus.CLARIFICATION_NEEDED, EAgentRunStatus.FAILED, EAgentRunStatus.INIT].includes(this.selectedAgentRun()!.status);\r\n });\r\n\r\n public ngOnInit(): void {\r\n const agentId = Number(this.activeRoute.snapshot.paramMap.get('agentId'));\r\n const agentRunId = Number(this.activeRoute.snapshot.paramMap.get('agentRunId'));\r\n if (agentId) {\r\n const odata = new OData();\r\n odata.filter.addAnd(new OdataFilter('agentId', agentId, EFilterOperator.EQUALS, EFilterTypes.NUMERIC));\r\n odata.order.column = 'updatedAt';\r\n odata.order.direction = ESortDirection.DESC;\r\n this.agentRunService\r\n .odata(odata)\r\n .pipe(\r\n map((res: MappedOdataResponse<AgentRun> | MappedApiError) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Error',\r\n detail: 'Fehler beim Laden der Chat-Daten',\r\n });\r\n throw new Error(res.messages.join('|'));\r\n }\r\n this.selectedAgentRun.set(res.data.items.find((ar) => agentRunId == ar.id));\r\n this.agentRuns.set(res.data.items);\r\n }),\r\n )\r\n .subscribe();\r\n this.agentService.get(agentId, true).subscribe((res) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Error',\r\n detail: 'Fehler beim Laden des Agenten-Daten',\r\n });\r\n throw new Error(res.messages.join('|'));\r\n }\r\n this.selectedAgent.set(res.data as Agent);\r\n });\r\n } else {\r\n this.messageService.add({ severity: 'error', summary: 'Error', detail: 'Fehler beim Laden des Agenten' });\r\n // this.router.navigate(['../chats']);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n\r\n public startNewRun(): void {\r\n if (!this.selectedAgent()) {\r\n return;\r\n }\r\n const agentRun = new AgentRun();\r\n agentRun.agentId = this.selectedAgent()!.id;\r\n agentRun.agent = this.selectedAgent();\r\n agentRun.status = EAgentRunStatus.INIT;\r\n agentRun.createdAt = new Date();\r\n agentRun.chat = new Chat();\r\n const systemContextMessage = new ChatMessage();\r\n systemContextMessage.messageType = 'system';\r\n systemContextMessage.message = `${this.selectedAgent()!.llmSystemPrompt?.template}Antworte nach folgender Spezifikation:<br>${this.selectedAgent()?.answerSpecification}`;\r\n agentRun.chat.messages = [systemContextMessage];\r\n this.selectedAgentRun.set(agentRun);\r\n }\r\n\r\n public selectAgentRun(agentRun: AgentRun): void {\r\n this.selectedAgentRun.set(agentRun);\r\n\r\n if (this.selectedAgentRun()!.id) {\r\n this._setRelativeUrl();\r\n }\r\n }\r\n\r\n public startObservingAgentRun(agentRunId: number) {\r\n this.subscriptions.push(\r\n this.orchestratorService.observeAgentRun(agentRunId).subscribe({\r\n next: (update: AgentRun | MappedApiError) => {\r\n if (update instanceof MappedApiError) {\r\n this.messageService.add({ severity: 'error', summary: 'Error', detail: 'Fehler beim Beobachten des Agentenlaufs' });\r\n return;\r\n }\r\n this.selectedAgentRun.update((agentRun) => {\r\n return this._mapUpdateOnAgentRun(agentRun!, update);\r\n });\r\n if (update.id && this.agentRuns()?.filter((ars) => ars.id === update.id).length === 0) {\r\n this.agentRuns.update((ars) => {\r\n ars?.unshift(update);\r\n return ars;\r\n });\r\n }\r\n },\r\n error: (err) => {\r\n this.messageService.add({ severity: 'error', summary: 'Error', detail: 'Fehler beim Beobachten des Agentenlaufs' });\r\n console.error('Error observing agent run:', err);\r\n },\r\n complete: () => {\r\n console.log('Completed observing agent run');\r\n },\r\n }),\r\n );\r\n }\r\n\r\n public goBack() {\r\n const index = this.router.url.indexOf('/agent/');\r\n const result = this.router.url.substring(0, index);\r\n this.router.navigateByUrl(result);\r\n }\r\n\r\n private _loadChat(): void {\r\n if (!this.selectedAgentRun() || !this.selectedAgentRun()!.chatId) {\r\n return;\r\n }\r\n this.chatService.get(this.selectedAgentRun()!.chatId!, true).subscribe((res) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Error',\r\n detail: 'Fehler beim Laden der Chat-Daten',\r\n });\r\n return;\r\n }\r\n this.selectedAgentRun.update((ar) => {\r\n ar!.chat = res.data as Chat;\r\n return ar;\r\n });\r\n this.startScrollingStrategy();\r\n });\r\n }\r\n\r\n private _setRelativeUrl() {\r\n let relativeUrl: string;\r\n if (this.router.url.includes('/r/')) {\r\n const index = this.router.url.indexOf('/r/') + 3; // 3 = Länge von \"/r/\"\r\n const result = this.router.url.substring(0, index);\r\n\r\n relativeUrl = `${result}${this.selectedAgentRun()!.id}`;\r\n } else {\r\n relativeUrl = `r/${this.selectedAgentRun()!.id}`;\r\n }\r\n this.router.navigate([relativeUrl], {\r\n relativeTo: this.activeRoute,\r\n replaceUrl: true, // überschreibt den Verlauf\r\n skipLocationChange: false, // false = URL sichtbar, true = nur intern\r\n });\r\n }\r\n\r\n private _mapUpdateOnAgentRun(agentRun: AgentRun, update: AgentRun): AgentRun {\r\n if (!agentRun.chat?.messages && !update.chat?.messages) {\r\n return update;\r\n }\r\n\r\n if (!update.chat && agentRun.chat) {\r\n update.chat = agentRun.chat;\r\n }\r\n\r\n if (agentRun.chat?.messages && update.chat!.messages.length <= agentRun.chat!.messages.length) {\r\n update.chat!.messages = agentRun.chat!.messages;\r\n }\r\n console.log('Mapped AgentRun:', update.chat!.messages.length, agentRun.chat!.messages.length);\r\n return update;\r\n }\r\n\r\n public openRagUploadModal(): void {\r\n const agent = this.selectedAgent();\r\n const chatId = this.selectedAgentRun()?.chatId;\r\n\r\n if (!agent) {\r\n this.messageService.add({\r\n severity: 'error',\r\n summary: 'Fehler',\r\n detail: 'Agent nicht gefunden',\r\n });\r\n return;\r\n }\r\n\r\n const header = chatId ? 'RAG-Dokumente für Chat hochladen' : 'RAG-Dokumente für Agent hochladen';\r\n\r\n this.dialogService.open(AgentRagUploadComponent, {\r\n inputValues: { agentId: agent.id, chatId },\r\n focusOnShow: false,\r\n modal: true,\r\n dismissableMask: true,\r\n header: header,\r\n width: '50%',\r\n contentStyle: { overflow: 'auto' },\r\n });\r\n }\r\n\r\n private startScrollingStrategy(): void {\r\n this.scrollToBottom();\r\n\r\n // Fallback-Scrolls für langsames Markdown-Rendering\r\n [100, 500, 1000, 2000].forEach((delay) => {\r\n setTimeout(() => this.scrollToBottom(), delay);\r\n });\r\n }\r\n\r\n private scrollToBottom(): void {\r\n if (!this.chatContainer?.nativeElement) {\r\n return;\r\n }\r\n\r\n const container = this.chatContainer.nativeElement;\r\n container.scrollTop = container.scrollHeight - container.clientHeight;\r\n }\r\n}\r\n","<div class=\"flex flex-col h-full shadow-lg\">\r\n <!-- Header über gesamte Breite -->\r\n @if (selectedAgent()) {\r\n <div class=\"border-b border-gray-300 px-4 py-3 flex items-center bg-white\">\r\n <div class=\"flex items-center gap-3 flex-1\">\r\n <button pButton\r\n type=\"button\"\r\n class=\"p-button-text p-button-rounded\"\r\n (click)=\"goBack()\"\r\n [pTooltip]=\"'Zurück'\"\r\n tooltipPosition=\"bottom\"\r\n tabindex=\"2\">\r\n <fa-icon [icon]=\"iconProvider.back\" size=\"lg\"></fa-icon>\r\n </button>\r\n @if (selectedAgentRun()) {\r\n <h2 class=\"text-xl font-semibold\">\r\n Agent: {{ selectedAgent()?.name }}\r\n vom {{ (selectedAgentRun()?.createdAt ?? selectedAgentRun()?.startedAt | date:'dd.MM.yyyy - hh:mm') }}\r\n </h2>\r\n } @else {\r\n <h2 class=\"text-xl font-semibold\">\r\n Agent: {{ selectedAgent()?.name }}\r\n </h2>\r\n }\r\n </div>\r\n <button pButton\r\n type=\"button\"\r\n class=\"p-button-sm\"\r\n (click)=\"startNewRun()\"\r\n tabindex=\"3\">\r\n <fa-icon [icon]=\"iconProvider.add\" class=\"mr-2\"></fa-icon>\r\n Neuer Chat\r\n </button>\r\n <div class=\"flex items-center gap-3 flex-1 justify-end\">\r\n @if (selectedAgentRun()) {\r\n @if (selectedAgent()?.ragProvider && selectedAgent()?.ragModel) {\r\n <button pButton\r\n type=\"button\"\r\n class=\"p-button-text p-button-rounded\"\r\n (click)=\"openRagUploadModal()\"\r\n [pTooltip]=\"'RAG-Dokumente hochladen'\"\r\n tooltipPosition=\"bottom\">\r\n <fa-icon [icon]=\"iconProvider.documentAdd\" size=\"lg\"></fa-icon>\r\n </button>\r\n }\r\n <div [pTooltip]=\"'Status: ' + iconTextMapper.getTextForStatus(selectedAgentRun()?.status)\"\r\n tooltipPosition=\"bottom\"\r\n class=\"cursor-help\">\r\n <fa-icon [icon]=\"iconTextMapper.getIconForStatus(selectedAgentRun()?.status)\"\r\n [classList]=\"iconTextMapper.getIconClassesForStatus(selectedAgentRun()?.status)\"\r\n [animation]=\"selectedAgentRun()?.status === 'running' ? 'spin' : undefined\"\r\n size=\"lg\"></fa-icon>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n\r\n <!-- Sidebar + Chat nebeneinander -->\r\n <div class=\"flex flex-1 min-h-0 overflow-hidden\">\r\n <div class=\"chats-panel border-r-1 border-gray-300 p-4 w-[250px] h-full flex-shrink-0 overflow-y-auto\">\r\n @if (agentRuns() === undefined) {\r\n <p class=\"m-0\">\r\n Die Chats werden geladen...\r\n </p>\r\n } @else if (!agentRuns()?.length) {\r\n <p class=\"m-0\">\r\n Bisher noch keine Chats vorhanden\r\n </p>\r\n } @else {\r\n <div class=\"flex flex-col gap-1\">\r\n @for (agentRun of agentRuns(); track agentRun) {\r\n <div class=\"border border-gray-300 rounded-lg p-4 hover:shadow-lg transition cursor-pointer\"\r\n (click)=\"selectAgentRun(agentRun)\"\r\n [class.bg-blue-100]=\"selectedAgentRun()?.id === agentRun.id\">\r\n <div class=\"text-sm text-gray-500\">{{ agentRun.createdAt | date:'dd.MM.YY - hh:mm' }}</div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <div class=\"chat bg-gray-50 flex-1 relative\">\r\n @if (selectedAgentRun() === undefined) {\r\n <div class=\"flex items-center justify-center h-full\">\r\n <p class=\"m-0 text-gray-500\">\r\n Bitte einen Chat aus der linken Liste auswählen\r\n </p>\r\n </div>\r\n } @else if (selectedAgent() === undefined) {\r\n <div class=\"flex items-center justify-center h-full\">\r\n <p class=\"m-0 text-gray-500\">\r\n Die Chat-Daten werden geladen...\r\n </p>\r\n </div>\r\n } @else {\r\n <div class=\"absolute inset-0 overflow-y-auto p-3\" #chatContainer>\r\n @if (selectedAgentRun()!.chat) {\r\n @for (message of selectedAgentRun()!.chat!.messages; track message.id) {\r\n <div class=\"mb-2\">\r\n <sftech-agent-chat-message [message]=\"message.message\"\r\n [type]=\"message.messageType\"></sftech-agent-chat-message>\r\n </div>\r\n }\r\n }\r\n @if (selectedAgentRun()!.status === agentRunStatus.INIT) {\r\n <sftech-agent-chat-message-human-input-initial [agent]=\"selectedAgent()\"\r\n (agentRunIdReceived)=\"startObservingAgentRun($event)\"></sftech-agent-chat-message-human-input-initial>\r\n }\r\n @if (loading()) {\r\n <div class=\"mb-2\">\r\n <sftech-agent-chat-message [message]=\"'Am Überlegen'\"\r\n [type]=\"'ai_loading'\"></sftech-agent-chat-message>\r\n </div>\r\n }\r\n @if (selectedAgentRun()?.status === agentRunStatus.FAILED) {\r\n <div class=\"mb-2\">\r\n <sftech-agent-chat-message\r\n [message]=\"'Es ist ein Fehler aufgetreten! Bitte versuche es zu einem späteren Zeitpunkt erneut.'\"\r\n [type]=\"'ai_failed'\"></sftech-agent-chat-message>\r\n </div>\r\n }\r\n @if (selectedAgentRun()!.status === agentRunStatus.COMPLETED) {\r\n <sftech-agent-chat-message-human-input [agent]=\"selectedAgent()\"\r\n [agentRunId]=\"selectedAgentRun()!.id\"\r\n (agentRunIdReceived)=\"startObservingAgentRun(selectedAgentRun()!.id!)\"></sftech-agent-chat-message-human-input>\r\n }\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, inject, signal } from '@angular/core';\r\nimport { RouterLink } from '@angular/router';\r\nimport { BaseListComponent, IconProvider, MappedApiError } from '@sftech/ng-shared';\r\nimport { MessageService } from 'primeng/api';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Panel } from 'primeng/panel';\r\nimport { IAgentCreateDto } from '../../core/dtos/agent-create-request.dto';\r\nimport { IAgentResponseDto } from '../../core/dtos/agent-response.dto';\r\nimport { Agent } from '../../core/models/agent.model';\r\nimport { McpTool } from '../../core/models/mcp-tool.model';\r\nimport { AgentService } from '../../core/service/agent.service';\r\nimport { OrchestratorService } from '../../core/service/orchestrator.service';\r\n\r\n@Component({\r\n selector: 'sftech-agent-selection',\r\n imports: [Panel, RouterLink],\r\n providers: [DialogService],\r\n templateUrl: './agent-selection.component.html',\r\n styleUrl: './agent-selection.component.css',\r\n})\r\nexport class AgentSelectionComponent extends BaseListComponent<Agent, IAgentCreateDto, IAgentCreateDto, IAgentResponseDto> implements OnInit {\r\n protected _repo = inject(AgentService);\r\n protected _route = 'chats/agents';\r\n\r\n protected orchestratorService = inject(OrchestratorService);\r\n protected messageService = inject(MessageService);\r\n protected iconProvider = IconProvider;\r\n\r\n public tools = signal<McpTool[] | undefined>(undefined);\r\n\r\n public override ngOnInit() {\r\n super.ngOnInit();\r\n this.orchestratorService.getTools().subscribe((res) => {\r\n if (res instanceof MappedApiError) {\r\n this.messageService.add({ severity: 'error', summary: 'Fehler', detail: res.messages.join('|') });\r\n return;\r\n }\r\n this.tools.set(res.data);\r\n });\r\n }\r\n\r\n public getToolNames(agent: Agent) {\r\n if (!agent.tools || agent.tools.length === 0) {\r\n return 'Keine Tools';\r\n }\r\n return agent.tools\r\n .map((tool) => this.tools()?.find((t) => t.identifier === tool)?.name)\r\n .filter((name) => !!name)\r\n .join(' | ');\r\n }\r\n}\r\n","<div class=\"p-2\">\r\n\r\n <h2 class=\"pt-4 text-2xl font-bold mb-4\">Agenten Auswahl</h2>\r\n\r\n @if (data() === undefined) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n } @else if (!data()?.length) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Keine Daten vorhanden\r\n </p>\r\n </p-panel>\r\n } @else {\r\n <div class=\"grid gap-6 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\r\n @for (agent of data(); track agent) {\r\n <div\r\n class=\"aspect-square flex flex-col justify-between p-5 rounded-xl bg-white shadow-md border border-gray-200 hover:shadow-lg hover:scale-[1.02] transition cursor-pointer\"\r\n [routerLink]=\"['agent/' + agent.id]\"\r\n >\r\n <div>\r\n <div class=\"flex items-center gap-2 mb-4\">\r\n <div class=\"w-10 h-10 rounded-full bg-primary-100 text-primary-700 flex items-center justify-center font-bold\">\r\n {{ agent.name[0] }}\r\n </div>\r\n <h2 class=\"text-lg font-semibold\">{{ agent.name }}</h2>\r\n </div>\r\n <p class=\"text-gray-600 text-sm leading-snug line-clamp-3\">{{ agent.description }}</p>\r\n </div>\r\n <div class=\"flex flex-wrap gap-2 mt-4 border-t-1 border-gray-200 pt-2\">\r\n <span class=\"text-gray-500 text-xs font-medium px-2 py-0.5 rounded\">{{ getToolNames(agent) }}</span>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sftech-chats',\r\n imports: [RouterOutlet],\r\n template: '<router-outlet></router-outlet>',\r\n styles: ':host { display: block; height: 100%; overflow: hidden; }',\r\n})\r\nexport class ChatsComponent {}\r\n","import { AuthenticationGuard } from '@sftech/ng-auth';\r\nimport { AgentChatComponent } from './agent-chat/agent-chat.component';\r\nimport { AgentSelectionComponent } from './agent-selection/agent-selection.component';\r\nimport { ChatsComponent } from './chats.component';\r\n\r\nexport const chatsRoutes = [\r\n {\r\n path: '',\r\n component: ChatsComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: AgentSelectionComponent,\r\n },\r\n {\r\n path: 'agent/:agentId/r/:agentRunId',\r\n component: AgentChatComponent,\r\n },\r\n {\r\n path: 'agent/:agentId',\r\n component: AgentChatComponent,\r\n },\r\n ],\r\n canActivate: [AuthenticationGuard],\r\n },\r\n];\r\n"],"names":["AgentRunIconTextDataprovider","i1"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { InputText } from 'primeng/inputtext';
12
12
  import { Textarea } from 'primeng/textarea';
13
13
  import { P as Prompt, a as PromptHistory } from './sftech-ng-orchestrator-prompt.model-DhASegzq.mjs';
14
14
  import * as i1 from '@angular/common/http';
15
- import { O as ORCHESTRATOR_CONFIGURATION } from './sftech-ng-orchestrator-sftech-ng-orchestrator-CJMmRHC-.mjs';
15
+ import { O as ORCHESTRATOR_CONFIGURATION } from './sftech-ng-orchestrator-sftech-ng-orchestrator-D9fLhC24.mjs';
16
16
  import { DatePipe } from '@angular/common';
17
17
  import { Panel } from 'primeng/panel';
18
18
  import * as i1$2 from 'primeng/table';
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
159
159
  }], ctorParameters: () => [] });
160
160
 
161
161
  export { PromptService as P, PromptDisplayComponent as a };
162
- //# sourceMappingURL=sftech-ng-orchestrator-prompt-display.component-Cd6Ff3KE.mjs.map
162
+ //# sourceMappingURL=sftech-ng-orchestrator-prompt-display.component-BkSLQgGU.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sftech-ng-orchestrator-prompt-display.component-Cd6Ff3KE.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/prompt.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/prompt-history.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompt-display/prompt-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompt-display/prompt-display.component.html"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IPromptResponseDto } from '../dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../dtos/prompt-update.dto';\r\nimport { Prompt } from '../models/prompt.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptService extends BaseDbApiService<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts`;\r\n }\r\n\r\n protected getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IPromptHistoryResponseDto } from '../dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../models/prompt-history.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptHistoryService extends BaseDbApiService<PromptHistory, IPromptHistoryUpdateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts/histories`;\r\n }\r\n\r\n protected getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n}\r\n","import { Component, OnInit, inject } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent } from '@sftech/ng-shared';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptHistoryCreateDto } from '../../../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../../../core/service/prompt-history.service';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-display',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, BaseDialogComponent, DatePicker, FloatLabel, InputText, Textarea],\r\n templateUrl: './prompt-history-display.component.html',\r\n styleUrl: './prompt-history-display.component.css',\r\n})\r\nexport class PromptHistoryDisplayComponent extends BaseDisplayComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompts/history';\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model()!.id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model()!.createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model()!.identifier, disabled: true }),\r\n template: new FormControl({ value: this.model()!.template, disabled: this.canEdit }),\r\n name: new FormControl({ value: this.model()!.name, disabled: this.canEdit }),\r\n promptId: new FormControl({ value: this.model()!.promptId, disabled: this.canEdit }),\r\n });\r\n }\r\n protected override getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptHistoryUpdateDto {\r\n throw new Error('Edit of PromptHistory is not supported');\r\n }\r\n protected override mapFormToCreateDto(): IPromptHistoryCreateDto {\r\n throw new Error('Manual creation of PromptHistory is not supported');\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\n <ng-template #header>\n <div class=\"flex justify-between\">\n <h2 class=\"text-xl font-semibold\">\n Prompt\n @if (model()) {\n <span class=\"ms-1\">{{ this.model()!.identifier }}</span>\n }\n </h2>\n </div>\n </ng-template>\n <ng-template #body>\n @if (model()) {\n <form [formGroup]=\"form\">\n <div class=\"grid grid-cols-4 mb-2 gap-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\n <label for=\"id\">{{ this.model()!.getUiNameForProperty('id') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"promptId\" formControlName=\"promptId\" pInputText class=\"w-full\"/>\n <label for=\"promptId\">{{ this.model()!.getUiNameForProperty('promptId') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\n <label for=\"identifier\">{{ this.model()!.getUiNameForProperty('identifier') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\n <label for=\"createdAt\">{{ this.model()!.getUiNameForProperty('createdAt') }}</label>\n </p-floatlabel>\n </div>\n <div class=\"w-full mb-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\n <label for=\"name\">{{ this.model()!.getUiNameForProperty('name') }}</label>\n </p-floatlabel>\n </div>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\n <label for=\"template\">{{ this.model()!.getUiNameForProperty('template') }}</label>\n </p-floatlabel>\n </form>\n }\n </ng-template>\n <ng-template #footer>\n </ng-template>\n</sftech-base-dialog>","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, inject } from '@angular/core';\r\nimport { BaseListComponent, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptHistoryCreateDto } from '../../../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../../../core/service/prompt-history.service';\r\nimport { PromptHistoryDisplayComponent } from '../prompt-history-display/prompt-history-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-list',\r\n standalone: true,\r\n imports: [PaginatorComponent, DatePipe, Panel, TableModule],\r\n templateUrl: './prompt-history-list.component.html',\r\n styleUrl: './prompt-history-list.component.scss',\r\n})\r\nexport class PromptHistoryListComponent extends BaseListComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompting/prompt-history';\r\n protected override _modalComponent = PromptHistoryDisplayComponent;\r\n protected override detailModalHeaderText = 'Prompt-Details';\r\n}\r\n","@if (!data()) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Daten werden geladen...\n </p>\n </p-panel>\n} @else if (data()!.length === 0) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Es sind keine Prompts vorhanden.\n </p>\n </p-panel>\n} @else if (data()!.length > 0) {\n <p-table [value]=\"data()!\"\n stripedRows\n [tableStyle]=\"{ 'min-width': '50rem' }\"\n selectionMode=\"single\"\n [resizableColumns]=\"true\"\n dataKey=\"id\"\n >\n <ng-template #header>\n <tr>\n @for(column of data()![0].propertiesToShow; track column) {\n <th>\n {{ data()![0].getUiNameForProperty(column) }}\n </th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-prompt>\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\n @for(column of data()![0].propertiesToShow; track column) {\n <td style=\"white-space: pre-wrap\">\n @if (column === 'createdAt') {\n {{ prompt.getPropertyValue(column) | date: 'dd.MM.yyyy - HH:mm' }}\n } @else {\n {{ prompt.getPropertyValue(column) }}\n }\n </td>\n }\n </tr>\n </ng-template>\n </p-table>\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\n}\n\n","import { Component, effect, inject, signal } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent, EFilterOperator, EFilterTypes, ESortDirection, OData, ODataOrder, OdataFilter, OdataFilterCollection } from '@sftech/ng-shared';\r\nimport { AutoFocus } from 'primeng/autofocus';\r\nimport { Button } from 'primeng/button';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptResponseDto } from '../../../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../../../core/service/prompt.service';\r\nimport { PromptHistoryListComponent } from '../../prompt-history/prompt-history-list/prompt-history-list.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-display',\r\n imports: [ReactiveFormsModule, InputText, AutoFocus, FloatLabel, DatePicker, Textarea, Button, BaseDialogComponent, PromptHistoryListComponent],\r\n providers: [DialogService],\r\n templateUrl: './prompt-display.component.html',\r\n styleUrl: './prompt-display.component.css',\r\n})\r\nexport class PromptDisplayComponent extends BaseDisplayComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected override _repo = inject(PromptService);\r\n protected override _route = 'prompt';\r\n\r\n public odataForHistories = signal<OData | undefined>(undefined);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.model()?.id) {\r\n this.odataForHistories.set(this.getOdataForHistories());\r\n }\r\n });\r\n }\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model()!.id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model()!.createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model()!.identifier, disabled: true }),\r\n template: new FormControl(this.model()?.template),\r\n name: new FormControl(this.model()?.name),\r\n });\r\n }\r\n protected override getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptUpdateDto {\r\n return {\r\n identifier: this.form.get('identifier')!.value,\r\n template: this.form.get('template')!.value,\r\n name: this.form.get('name')!.value,\r\n };\r\n }\r\n protected override mapFormToCreateDto(): IPromptUpdateDto {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n public getOdataForHistories(): OData {\r\n const odata = new OData();\r\n odata.filter = new OdataFilterCollection();\r\n odata.filter.addAnd(new OdataFilter('promptId', this.model()!.id!, EFilterOperator.EQUALS, EFilterTypes.NUMERIC));\r\n odata.order = new ODataOrder();\r\n odata.order.column = 'createdAt';\r\n odata.order.direction = ESortDirection.DESC;\r\n return odata;\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\r\n <ng-template #header>\r\n <div class=\"flex justify-between\">\r\n <h2 class=\"text-xl font-semibold\">\r\n Prompt\r\n @if (model()) {\r\n <span class=\"ms-1\">{{ this.model()!.identifier }}</span>\r\n }\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <ng-template #body>\r\n @if (model()) {\r\n <form [formGroup]=\"form\" [pAutoFocus]=\"true\" class=\"mb-5\">\r\n <div class=\"grid grid-cols-3 mb-2 gap-2\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\" />\r\n <label for=\"id\">{{ this.model()!.getUiNameForProperty('id') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\" />\r\n <label for=\"identifier\">{{ this.model()!.getUiNameForProperty('identifier') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\r\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\r\n <label for=\"createdAt\">{{ this.model()!.getUiNameForProperty('createdAt') }}</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-floatlabel variant=\"in\" class=\"w-full mb-2\">\r\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\r\n <label for=\"name\">{{ this.model()!.getUiNameForProperty('name') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\r\n <label for=\"template\">{{ this.model()!.getUiNameForProperty('template') }}</label>\r\n </p-floatlabel>\r\n <div class=\"flex justify-end mt-2\">\r\n <p-button label=\"Speichern\" type=\"submit\" (onClick)=\"submitForm()\" (keyup.enter)=\"submitForm()\" [disabled]=\"!form.dirty\"></p-button>\r\n </div>\r\n </form>\r\n @if (odataForHistories()) {\r\n <hr class=\"text-gray-200 my-3 w-full\" />\r\n <h2 class=\"font-bold mt-2 mb-5\">Prompt-History</h2>\r\n <sftech-prompt-history-list [odata]=\"odataForHistories()!\" [canEdit]=\"false\" [openDisplayAsModal]=\"true\"></sftech-prompt-history-list>\r\n }\r\n }\r\n </ng-template>\r\n <ng-template #footer>\r\n\r\n </ng-template>\r\n</sftech-base-dialog>\r\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"sftech-ng-orchestrator-prompt-display.component-BkSLQgGU.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/prompt.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/prompt-history.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-display/prompt-history-display.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt-history/prompt-history-list/prompt-history-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompt-display/prompt-display.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompt-display/prompt-display.component.html"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IPromptResponseDto } from '../dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../dtos/prompt-update.dto';\r\nimport { Prompt } from '../models/prompt.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptService extends BaseDbApiService<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts`;\r\n }\r\n\r\n protected getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BaseDbApiService } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { IPromptHistoryResponseDto } from '../dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../models/prompt-history.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class PromptHistoryService extends BaseDbApiService<PromptHistory, IPromptHistoryUpdateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> {\r\n constructor(\r\n protected override readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) protected override readonly config: IOrchestratorConfig,\r\n ) {\r\n super(http, config);\r\n this.url = `${this.config.orchestratorDbUrl}/prompts/histories`;\r\n }\r\n\r\n protected getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n}\r\n","import { Component, OnInit, inject } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent } from '@sftech/ng-shared';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptHistoryCreateDto } from '../../../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../../../core/service/prompt-history.service';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-display',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, BaseDialogComponent, DatePicker, FloatLabel, InputText, Textarea],\r\n templateUrl: './prompt-history-display.component.html',\r\n styleUrl: './prompt-history-display.component.css',\r\n})\r\nexport class PromptHistoryDisplayComponent extends BaseDisplayComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompts/history';\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model()!.id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model()!.createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model()!.identifier, disabled: true }),\r\n template: new FormControl({ value: this.model()!.template, disabled: this.canEdit }),\r\n name: new FormControl({ value: this.model()!.name, disabled: this.canEdit }),\r\n promptId: new FormControl({ value: this.model()!.promptId, disabled: this.canEdit }),\r\n });\r\n }\r\n protected override getNewModel(): PromptHistory {\r\n return new PromptHistory();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptHistoryUpdateDto {\r\n throw new Error('Edit of PromptHistory is not supported');\r\n }\r\n protected override mapFormToCreateDto(): IPromptHistoryCreateDto {\r\n throw new Error('Manual creation of PromptHistory is not supported');\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\n <ng-template #header>\n <div class=\"flex justify-between\">\n <h2 class=\"text-xl font-semibold\">\n Prompt\n @if (model()) {\n <span class=\"ms-1\">{{ this.model()!.identifier }}</span>\n }\n </h2>\n </div>\n </ng-template>\n <ng-template #body>\n @if (model()) {\n <form [formGroup]=\"form\">\n <div class=\"grid grid-cols-4 mb-2 gap-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\"/>\n <label for=\"id\">{{ this.model()!.getUiNameForProperty('id') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"promptId\" formControlName=\"promptId\" pInputText class=\"w-full\"/>\n <label for=\"promptId\">{{ this.model()!.getUiNameForProperty('promptId') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\"/>\n <label for=\"identifier\">{{ this.model()!.getUiNameForProperty('identifier') }}</label>\n </p-floatlabel>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\n <label for=\"createdAt\">{{ this.model()!.getUiNameForProperty('createdAt') }}</label>\n </p-floatlabel>\n </div>\n <div class=\"w-full mb-2\">\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\n <label for=\"name\">{{ this.model()!.getUiNameForProperty('name') }}</label>\n </p-floatlabel>\n </div>\n <p-floatlabel variant=\"in\" class=\"w-full\">\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\n <label for=\"template\">{{ this.model()!.getUiNameForProperty('template') }}</label>\n </p-floatlabel>\n </form>\n }\n </ng-template>\n <ng-template #footer>\n </ng-template>\n</sftech-base-dialog>","import { DatePipe } from '@angular/common';\r\nimport { Component, OnInit, inject } from '@angular/core';\r\nimport { BaseListComponent, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptHistoryCreateDto } from '../../../../../core/dtos/prompt-history-create.dto';\r\nimport { IPromptHistoryResponseDto } from '../../../../../core/dtos/prompt-history-response.dto';\r\nimport { IPromptHistoryUpdateDto } from '../../../../../core/dtos/prompt-history-update.dto';\r\nimport { PromptHistory } from '../../../../../core/models/prompt-history.model';\r\nimport { PromptHistoryService } from '../../../../../core/service/prompt-history.service';\r\nimport { PromptHistoryDisplayComponent } from '../prompt-history-display/prompt-history-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-history-list',\r\n standalone: true,\r\n imports: [PaginatorComponent, DatePipe, Panel, TableModule],\r\n templateUrl: './prompt-history-list.component.html',\r\n styleUrl: './prompt-history-list.component.scss',\r\n})\r\nexport class PromptHistoryListComponent extends BaseListComponent<PromptHistory, IPromptHistoryCreateDto, IPromptHistoryUpdateDto, IPromptHistoryResponseDto> implements OnInit {\r\n protected override _repo = inject(PromptHistoryService);\r\n protected override _route = '/prompting/prompt-history';\r\n protected override _modalComponent = PromptHistoryDisplayComponent;\r\n protected override detailModalHeaderText = 'Prompt-Details';\r\n}\r\n","@if (!data()) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Daten werden geladen...\n </p>\n </p-panel>\n} @else if (data()!.length === 0) {\n <p-panel [toggleable]=\"false\">\n <p class=\"m-0\">\n Es sind keine Prompts vorhanden.\n </p>\n </p-panel>\n} @else if (data()!.length > 0) {\n <p-table [value]=\"data()!\"\n stripedRows\n [tableStyle]=\"{ 'min-width': '50rem' }\"\n selectionMode=\"single\"\n [resizableColumns]=\"true\"\n dataKey=\"id\"\n >\n <ng-template #header>\n <tr>\n @for(column of data()![0].propertiesToShow; track column) {\n <th>\n {{ data()![0].getUiNameForProperty(column) }}\n </th>\n }\n </tr>\n </ng-template>\n <ng-template #body let-prompt>\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\n @for(column of data()![0].propertiesToShow; track column) {\n <td style=\"white-space: pre-wrap\">\n @if (column === 'createdAt') {\n {{ prompt.getPropertyValue(column) | date: 'dd.MM.yyyy - HH:mm' }}\n } @else {\n {{ prompt.getPropertyValue(column) }}\n }\n </td>\n }\n </tr>\n </ng-template>\n </p-table>\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\n}\n\n","import { Component, effect, inject, signal } from '@angular/core';\r\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { BaseDialogComponent, BaseDisplayComponent, EFilterOperator, EFilterTypes, ESortDirection, OData, ODataOrder, OdataFilter, OdataFilterCollection } from '@sftech/ng-shared';\r\nimport { AutoFocus } from 'primeng/autofocus';\r\nimport { Button } from 'primeng/button';\r\nimport { DatePicker } from 'primeng/datepicker';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { FloatLabel } from 'primeng/floatlabel';\r\nimport { InputText } from 'primeng/inputtext';\r\nimport { Textarea } from 'primeng/textarea';\r\nimport { IPromptResponseDto } from '../../../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../../../core/service/prompt.service';\r\nimport { PromptHistoryListComponent } from '../../prompt-history/prompt-history-list/prompt-history-list.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompt-display',\r\n imports: [ReactiveFormsModule, InputText, AutoFocus, FloatLabel, DatePicker, Textarea, Button, BaseDialogComponent, PromptHistoryListComponent],\r\n providers: [DialogService],\r\n templateUrl: './prompt-display.component.html',\r\n styleUrl: './prompt-display.component.css',\r\n})\r\nexport class PromptDisplayComponent extends BaseDisplayComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected override _repo = inject(PromptService);\r\n protected override _route = 'prompt';\r\n\r\n public odataForHistories = signal<OData | undefined>(undefined);\r\n\r\n constructor() {\r\n super();\r\n effect(() => {\r\n if (this.model()?.id) {\r\n this.odataForHistories.set(this.getOdataForHistories());\r\n }\r\n });\r\n }\r\n\r\n protected override initializeForm(): FormGroup {\r\n return new FormGroup({\r\n id: new FormControl({ value: this.model()!.id, disabled: true }),\r\n createdAt: new FormControl({ value: this.model()!.createdAt, disabled: true }),\r\n identifier: new FormControl({ value: this.model()!.identifier, disabled: true }),\r\n template: new FormControl(this.model()?.template),\r\n name: new FormControl(this.model()?.name),\r\n });\r\n }\r\n protected override getNewModel(): Prompt {\r\n return new Prompt();\r\n }\r\n protected override mapFormToUpdateDto(): IPromptUpdateDto {\r\n return {\r\n identifier: this.form.get('identifier')!.value,\r\n template: this.form.get('template')!.value,\r\n name: this.form.get('name')!.value,\r\n };\r\n }\r\n protected override mapFormToCreateDto(): IPromptUpdateDto {\r\n throw new Error('Method not implemented.');\r\n }\r\n\r\n public getOdataForHistories(): OData {\r\n const odata = new OData();\r\n odata.filter = new OdataFilterCollection();\r\n odata.filter.addAnd(new OdataFilter('promptId', this.model()!.id!, EFilterOperator.EQUALS, EFilterTypes.NUMERIC));\r\n odata.order = new ODataOrder();\r\n odata.order.column = 'createdAt';\r\n odata.order.direction = ESortDirection.DESC;\r\n return odata;\r\n }\r\n}\r\n","<sftech-base-dialog [hasHeader]=\"true\" (closed)=\"close({ operation: 'aborted' })\">\r\n <ng-template #header>\r\n <div class=\"flex justify-between\">\r\n <h2 class=\"text-xl font-semibold\">\r\n Prompt\r\n @if (model()) {\r\n <span class=\"ms-1\">{{ this.model()!.identifier }}</span>\r\n }\r\n </h2>\r\n </div>\r\n </ng-template>\r\n <ng-template #body>\r\n @if (model()) {\r\n <form [formGroup]=\"form\" [pAutoFocus]=\"true\" class=\"mb-5\">\r\n <div class=\"grid grid-cols-3 mb-2 gap-2\">\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"id\" formControlName=\"id\" pInputText class=\"w-full\" />\r\n <label for=\"id\">{{ this.model()!.getUiNameForProperty('id') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <input type=\"text\" id=\"identifier\" formControlName=\"identifier\" pInputText class=\"w-full\" />\r\n <label for=\"identifier\">{{ this.model()!.getUiNameForProperty('identifier') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <p-datePicker id=\"createdAt\" formControlName=\"createdAt\" dateFormat=\"dd.mm.yy\" [showTime]=\"true\"\r\n [hourFormat]=\"'24'\" [style]=\"{'width': '100%'}\"></p-datePicker>\r\n <label for=\"createdAt\">{{ this.model()!.getUiNameForProperty('createdAt') }}</label>\r\n </p-floatlabel>\r\n </div>\r\n <p-floatlabel variant=\"in\" class=\"w-full mb-2\">\r\n <input type=\"text\" id=\"name\" formControlName=\"name\" pInputText class=\"w-full\"/>\r\n <label for=\"name\">{{ this.model()!.getUiNameForProperty('name') }}</label>\r\n </p-floatlabel>\r\n <p-floatlabel variant=\"in\" class=\"w-full\">\r\n <textarea rows=\"5\" id=\"template\" formControlName=\"template\" pTextarea class=\"w-full\"></textarea>\r\n <label for=\"template\">{{ this.model()!.getUiNameForProperty('template') }}</label>\r\n </p-floatlabel>\r\n <div class=\"flex justify-end mt-2\">\r\n <p-button label=\"Speichern\" type=\"submit\" (onClick)=\"submitForm()\" (keyup.enter)=\"submitForm()\" [disabled]=\"!form.dirty\"></p-button>\r\n </div>\r\n </form>\r\n @if (odataForHistories()) {\r\n <hr class=\"text-gray-200 my-3 w-full\" />\r\n <h2 class=\"font-bold mt-2 mb-5\">Prompt-History</h2>\r\n <sftech-prompt-history-list [odata]=\"odataForHistories()!\" [canEdit]=\"false\" [openDisplayAsModal]=\"true\"></sftech-prompt-history-list>\r\n }\r\n }\r\n </ng-template>\r\n <ng-template #footer>\r\n\r\n </ng-template>\r\n</sftech-base-dialog>\r\n"],"names":["i1"],"mappings":"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"}
@@ -5,7 +5,7 @@ import { DialogService } from 'primeng/dynamicdialog';
5
5
  import { Panel } from 'primeng/panel';
6
6
  import * as i1 from 'primeng/table';
7
7
  import { TableModule } from 'primeng/table';
8
- import { P as PromptService, a as PromptDisplayComponent } from './sftech-ng-orchestrator-prompt-display.component-Cd6Ff3KE.mjs';
8
+ import { P as PromptService, a as PromptDisplayComponent } from './sftech-ng-orchestrator-prompt-display.component-BkSLQgGU.mjs';
9
9
  import { RouterOutlet } from '@angular/router';
10
10
 
11
11
  class PromptsListComponent extends BaseListComponent {
@@ -48,4 +48,4 @@ const promptsRoutes = [
48
48
  ];
49
49
 
50
50
  export { promptsRoutes };
51
- //# sourceMappingURL=sftech-ng-orchestrator-prompts.routes-DQZ_Hmjs.mjs.map
51
+ //# sourceMappingURL=sftech-ng-orchestrator-prompts.routes-DeR6lppF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"sftech-ng-orchestrator-prompts.routes-DQZ_Hmjs.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompts-list/prompts-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompts-list/prompts-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.routes.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { BaseListComponent, IconProvider, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptResponseDto } from '../../../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../../../core/service/prompt.service';\r\nimport { PromptDisplayComponent } from '../prompt-display/prompt-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompts-list',\r\n imports: [PaginatorComponent, Panel, TableModule],\r\n providers: [DialogService],\r\n templateUrl: './prompts-list.component.html',\r\n styleUrl: './prompts-list.component.css',\r\n})\r\nexport class PromptsListComponent extends BaseListComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected _repo = inject(PromptService);\r\n protected _route = 'prompts';\r\n protected override _modalComponent = PromptDisplayComponent;\r\n protected override detailModalHeaderText = 'Prompt-Details';\r\n\r\n public iconProvider = IconProvider;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<h1 class=\"text-primary-900 font-bold text-xl p-2 my-4\">Prompt-Übersicht</h1>\r\n@if (!data()) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length === 0) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Es sind keine Prompts vorhanden.\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length > 0) {\r\n <p-table [value]=\"data()!\"\r\n stripedRows\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n selectionMode=\"single\"\r\n [resizableColumns]=\"true\"\r\n dataKey=\"id\"\r\n >\r\n <ng-template #header>\r\n <tr>\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <th>{{ data()![0].getUiNameForProperty(column) }}</th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-prompt>\r\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <td style=\"white-space: pre-wrap\">\r\n {{ prompt.getPropertyValue(column) }}\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sftech-prompts',\r\n imports: [RouterOutlet],\r\n templateUrl: './prompts.component.html',\r\n styleUrl: './prompts.component.css',\r\n})\r\nexport class PromptsComponent {}\r\n","<router-outlet></router-outlet>\r\n\r\n","import { PromptsListComponent } from './components/prompt/prompts-list/prompts-list.component';\r\nimport { PromptsComponent } from './prompts.component';\r\n\r\nexport const promptsRoutes = [\r\n {\r\n path: '',\r\n component: PromptsComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PromptsListComponent,\r\n },\r\n ],\r\n },\r\n];\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sftech-ng-orchestrator-prompts.routes-DeR6lppF.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompts-list/prompts-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/components/prompt/prompts-list/prompts-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/admin/prompts/prompts.routes.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\r\nimport { BaseListComponent, IconProvider, PaginatorComponent } from '@sftech/ng-shared';\r\nimport { DialogService } from 'primeng/dynamicdialog';\r\nimport { Panel } from 'primeng/panel';\r\nimport { TableModule } from 'primeng/table';\r\nimport { IPromptResponseDto } from '../../../../../core/dtos/prompt-request.dto';\r\nimport { IPromptUpdateDto } from '../../../../../core/dtos/prompt-update.dto';\r\nimport { Prompt } from '../../../../../core/models/prompt.model';\r\nimport { PromptService } from '../../../../../core/service/prompt.service';\r\nimport { PromptDisplayComponent } from '../prompt-display/prompt-display.component';\r\n\r\n@Component({\r\n selector: 'sftech-prompts-list',\r\n imports: [PaginatorComponent, Panel, TableModule],\r\n providers: [DialogService],\r\n templateUrl: './prompts-list.component.html',\r\n styleUrl: './prompts-list.component.css',\r\n})\r\nexport class PromptsListComponent extends BaseListComponent<Prompt, IPromptUpdateDto, IPromptUpdateDto, IPromptResponseDto> {\r\n protected _repo = inject(PromptService);\r\n protected _route = 'prompts';\r\n protected override _modalComponent = PromptDisplayComponent;\r\n protected override detailModalHeaderText = 'Prompt-Details';\r\n\r\n public iconProvider = IconProvider;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","<h1 class=\"text-primary-900 font-bold text-xl p-2 my-4\">Prompt-Übersicht</h1>\r\n@if (!data()) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Daten werden geladen...\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length === 0) {\r\n <p-panel [toggleable]=\"false\">\r\n <p class=\"m-0\">\r\n Es sind keine Prompts vorhanden.\r\n </p>\r\n </p-panel>\r\n} @else if (data()!.length > 0) {\r\n <p-table [value]=\"data()!\"\r\n stripedRows\r\n [tableStyle]=\"{ 'min-width': '50rem' }\"\r\n selectionMode=\"single\"\r\n [resizableColumns]=\"true\"\r\n dataKey=\"id\"\r\n >\r\n <ng-template #header>\r\n <tr>\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <th>{{ data()![0].getUiNameForProperty(column) }}</th>\r\n }\r\n </tr>\r\n </ng-template>\r\n <ng-template #body let-prompt>\r\n <tr (click)=\"openDisplay(prompt.id)\" [pSelectableRow]=\"prompt\">\r\n @for(column of data()![0].propertiesToShow; track column) {\r\n <td style=\"white-space: pre-wrap\">\r\n {{ prompt.getPropertyValue(column) }}\r\n </td>\r\n }\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n <sftech-paginator [pagination]=\"odata().pagination\" (odataChanged)=\"updatePagination($event)\"></sftech-paginator>\r\n}\r\n\r\n","import { Component } from '@angular/core';\r\nimport { RouterOutlet } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'sftech-prompts',\r\n imports: [RouterOutlet],\r\n templateUrl: './prompts.component.html',\r\n styleUrl: './prompts.component.css',\r\n})\r\nexport class PromptsComponent {}\r\n","<router-outlet></router-outlet>\r\n\r\n","import { PromptsListComponent } from './components/prompt/prompts-list/prompts-list.component';\r\nimport { PromptsComponent } from './prompts.component';\r\n\r\nexport const promptsRoutes = [\r\n {\r\n path: '',\r\n component: PromptsComponent,\r\n children: [\r\n {\r\n path: '',\r\n component: PromptsListComponent,\r\n },\r\n ],\r\n },\r\n];\r\n"],"names":[],"mappings":"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"}
@@ -21,12 +21,25 @@ class OrchestratorConfigMapper {
21
21
  defaultLlmTimeout: config['DEFAULT_LLM_TIMEOUT'],
22
22
  defaultLlmRetries: config['DEFAULT_LLM_RETRIES'],
23
23
  defaultLlmMaxTokens: config['DEFAULT_LLM_MAX_TOKENS'],
24
+ defaultRagModel: config['DEFAULT_RAG_PROVIDER'],
25
+ defaultRagProvider: config['DEFAULT_RAG_MODEL'],
24
26
  };
25
27
  }
26
28
  }
27
29
 
28
30
  const ORCHESTRATOR_CONFIGURATION = new InjectionToken('ORCHESTRATOR_CONFIGURATION');
29
31
 
32
+ var EAgentRunStatus;
33
+ (function (EAgentRunStatus) {
34
+ EAgentRunStatus["INIT"] = "init";
35
+ EAgentRunStatus["PRERUNNING"] = "pre_running";
36
+ EAgentRunStatus["RUNNING"] = "running";
37
+ EAgentRunStatus["POSTRUNNING"] = "post_running";
38
+ EAgentRunStatus["CLARIFICATION_NEEDED"] = "clarification_needed";
39
+ EAgentRunStatus["COMPLETED"] = "completed";
40
+ EAgentRunStatus["FAILED"] = "failed";
41
+ })(EAgentRunStatus || (EAgentRunStatus = {}));
42
+
30
43
  class ChatMessage extends BaseDbModel {
31
44
  message;
32
45
  messageType;
@@ -133,11 +146,20 @@ class OrchestratorService {
133
146
  eventSource.onmessage = (event) => {
134
147
  this.zone.run(() => {
135
148
  const agentRun = new AgentRun();
136
- observer.next(agentRun.fromDto(JSON.parse(event.data)));
149
+ const result = agentRun.fromDto(JSON.parse(event.data));
150
+ observer.next(result);
151
+ // Close EventSource when agent run is completed
152
+ if (result.status === EAgentRunStatus.COMPLETED || result.status === EAgentRunStatus.FAILED) {
153
+ eventSource.close();
154
+ observer.complete();
155
+ }
137
156
  });
138
157
  };
139
158
  eventSource.onerror = (error) => {
140
- this.zone.run(() => observer.error(error));
159
+ this.zone.run(() => {
160
+ eventSource.close();
161
+ observer.error(error);
162
+ });
141
163
  };
142
164
  // Cleanup, wenn unsubscribed wird
143
165
  return () => eventSource.close();
@@ -161,6 +183,43 @@ class OrchestratorService {
161
183
  return of(error);
162
184
  }));
163
185
  }
186
+ storeRagDocuments(files, ragInfo) {
187
+ const url = `${this.config.orchestratorUrl}/rag/store`;
188
+ const formData = new FormData();
189
+ // Add all files to FormData
190
+ files.forEach((file) => {
191
+ formData.append('files', file);
192
+ });
193
+ // Add ragInfo as JSON string or separate fields
194
+ formData.append('agentIdentifier', ragInfo.agentIdentifier);
195
+ if (ragInfo.chatId) {
196
+ formData.append('chatId', ragInfo.chatId.toString());
197
+ }
198
+ return this.http.post(url, formData).pipe(map((res) => {
199
+ console.log(res);
200
+ return res.data;
201
+ }), catchError((err) => {
202
+ console.error('Error storing RAG documents:', err);
203
+ const error = new MappedApiError();
204
+ error.messages = err.messages ? err.messages : [];
205
+ error.status = err.status ? err.status : 500;
206
+ error.isError = true;
207
+ return of(error);
208
+ }));
209
+ }
210
+ chatAgent(agentRunId, message) {
211
+ const url = `${this.config.orchestratorUrl}/generic/chat/${agentRunId}`;
212
+ return this.http.post(url, { message }).pipe(map((res) => {
213
+ return res.data;
214
+ }), catchError((err) => {
215
+ console.error('Error sending chat message:', err);
216
+ const error = new MappedApiError();
217
+ error.messages = err.messages ? err.messages : [];
218
+ error.status = err.status ? err.status : 500;
219
+ error.isError = true;
220
+ return of(error);
221
+ }));
222
+ }
164
223
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorService, deps: [{ token: i1.HttpClient }, { token: i0.NgZone }, { token: ORCHESTRATOR_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
165
224
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorService });
166
225
  }
@@ -200,16 +259,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
200
259
  const orchestratorRoutes = [
201
260
  {
202
261
  path: 'chats',
203
- loadChildren: () => import('./sftech-ng-orchestrator-chats.routes-BLGhykMM.mjs').then((m) => m.chatsRoutes),
262
+ loadChildren: () => import('./sftech-ng-orchestrator-chats.routes-BDe9JC4m.mjs').then((m) => m.chatsRoutes),
204
263
  },
205
264
  {
206
265
  path: 'admin/prompts',
207
- loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-DQZ_Hmjs.mjs').then((m) => m.promptsRoutes),
266
+ loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-DeR6lppF.mjs').then((m) => m.promptsRoutes),
208
267
  canActivate: [AdminGuard],
209
268
  },
210
269
  {
211
270
  path: 'admin/agents',
212
- loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-B9GSWOIz.mjs').then((m) => m.agentsRoutes),
271
+ loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-CVcxzNAE.mjs').then((m) => m.agentsRoutes),
213
272
  canActivate: [AdminGuard],
214
273
  },
215
274
  ];
@@ -218,5 +277,5 @@ const orchestratorRoutes = [
218
277
  * Generated bundle index. Do not edit.
219
278
  */
220
279
 
221
- export { AgentRun as A, Chat as C, ORCHESTRATOR_CONFIGURATION as O, OrchestratorService as a, ChatMessage as b, OrchestratorModule as c, orchestratorRoutes as o };
222
- //# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-CJMmRHC-.mjs.map
280
+ export { AgentRun as A, Chat as C, EAgentRunStatus as E, ORCHESTRATOR_CONFIGURATION as O, OrchestratorService as a, ChatMessage as b, OrchestratorModule as c, orchestratorRoutes as o };
281
+ //# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-D9fLhC24.mjs.map