@sftech/ng-orchestrator 0.0.10 → 0.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{sftech-ng-orchestrator-agent.service-w7yNia2v.mjs → sftech-ng-orchestrator-agent.service-CM9cDrXP.mjs} +12 -6
- package/fesm2022/sftech-ng-orchestrator-agent.service-CM9cDrXP.mjs.map +1 -0
- package/fesm2022/sftech-ng-orchestrator-agents.routes-GsOhn5LG.mjs +159 -0
- package/fesm2022/sftech-ng-orchestrator-agents.routes-GsOhn5LG.mjs.map +1 -0
- package/fesm2022/{sftech-ng-orchestrator-chat.routes-D4nOLrzi.mjs → sftech-ng-orchestrator-chat.routes-BiKjhPDt.mjs} +10 -10
- package/fesm2022/{sftech-ng-orchestrator-chat.routes-D4nOLrzi.mjs.map → sftech-ng-orchestrator-chat.routes-BiKjhPDt.mjs.map} +1 -1
- package/fesm2022/{sftech-ng-orchestrator-prompt-display.component-C2jx7jgq.mjs → sftech-ng-orchestrator-prompt-display.component-5a8wT14o.mjs} +11 -11
- package/fesm2022/{sftech-ng-orchestrator-prompt-display.component-C2jx7jgq.mjs.map → sftech-ng-orchestrator-prompt-display.component-5a8wT14o.mjs.map} +1 -1
- package/fesm2022/{sftech-ng-orchestrator-prompt.service-DXvM-ziS.mjs → sftech-ng-orchestrator-prompt.service-BQ9cKQCm.mjs} +8 -8
- package/fesm2022/{sftech-ng-orchestrator-prompt.service-DXvM-ziS.mjs.map → sftech-ng-orchestrator-prompt.service-BQ9cKQCm.mjs.map} +1 -1
- package/fesm2022/{sftech-ng-orchestrator-prompts.routes-CO3W8D4y.mjs → sftech-ng-orchestrator-prompts.routes-DLAz29Gn.mjs} +9 -9
- package/fesm2022/{sftech-ng-orchestrator-prompts.routes-CO3W8D4y.mjs.map → sftech-ng-orchestrator-prompts.routes-DLAz29Gn.mjs.map} +1 -1
- package/fesm2022/{sftech-ng-orchestrator-sftech-ng-orchestrator-CgBxpVr9.mjs → sftech-ng-orchestrator-sftech-ng-orchestrator-QxboGYpc.mjs} +42 -17
- package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-QxboGYpc.mjs.map +1 -0
- package/fesm2022/sftech-ng-orchestrator.mjs +1 -1
- package/lib/ng-orchestrator/agents/components/agent/agent-display/agent-display.component.d.ts +4 -3
- package/lib/ng-orchestrator/agents/core/dtos/agent-create-request.dto.d.ts +3 -2
- package/lib/ng-orchestrator/agents/core/dtos/agent-response.dto.d.ts +2 -0
- package/lib/ng-orchestrator/agents/core/dtos/agent-update-request.dto.d.ts +1 -0
- package/lib/ng-orchestrator/agents/core/models/agent.model.d.ts +2 -0
- package/lib/ng-orchestrator/core/configuration/orchestrator-config.interface.d.ts +1 -1
- package/lib/ng-orchestrator/core/dtos/mcp-tool-response.dto.d.ts +1 -0
- package/lib/ng-orchestrator/core/models/mcp-tool.model.d.ts +7 -0
- package/lib/ng-orchestrator/core/service/orcherstrator.service.d.ts +8 -8
- package/package.json +1 -1
- package/fesm2022/sftech-ng-orchestrator-agent.service-w7yNia2v.mjs.map +0 -1
- package/fesm2022/sftech-ng-orchestrator-agents.routes-BnMYwh1T.mjs +0 -148
- package/fesm2022/sftech-ng-orchestrator-agents.routes-BnMYwh1T.mjs.map +0 -1
- package/fesm2022/sftech-ng-orchestrator-sftech-ng-orchestrator-CgBxpVr9.mjs.map +0 -1
|
@@ -5,8 +5,8 @@ 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 } from './sftech-ng-orchestrator-prompt.service-
|
|
9
|
-
import { P as PromptDisplayComponent } from './sftech-ng-orchestrator-prompt-display.component-
|
|
8
|
+
import { P as PromptService } from './sftech-ng-orchestrator-prompt.service-BQ9cKQCm.mjs';
|
|
9
|
+
import { P as PromptDisplayComponent } from './sftech-ng-orchestrator-prompt-display.component-5a8wT14o.mjs';
|
|
10
10
|
import { RouterOutlet } from '@angular/router';
|
|
11
11
|
|
|
12
12
|
class PromptsListComponent extends BaseListComponent {
|
|
@@ -18,19 +18,19 @@ class PromptsListComponent extends BaseListComponent {
|
|
|
18
18
|
constructor() {
|
|
19
19
|
super();
|
|
20
20
|
}
|
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PromptsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.14", type: PromptsListComponent, isStandalone: true, selector: "sftech-prompts-list", providers: [DialogService], usesInheritance: true, ngImport: i0, template: "<h1 class=\"text-primary-900 font-bold text-xl p-2 my-4\">Prompt-\u00DCbersicht</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", styles: [""], dependencies: [{ kind: "component", type: PaginatorComponent, selector: "sftech-paginator", inputs: ["pagination"], outputs: ["odataChanged"] }, { kind: "component", type: Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions", "toggleButtonProps"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "style", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "scrollDirection", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "responsive", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "autoLayout", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "virtualRowHeight", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i1.SelectableRow, selector: "[pSelectableRow]", inputs: ["pSelectableRow", "pSelectableRowIndex", "pSelectableRowDisabled"] }] });
|
|
23
23
|
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PromptsListComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: 'sftech-prompts-list', imports: [PaginatorComponent, Panel, TableModule], providers: [DialogService], template: "<h1 class=\"text-primary-900 font-bold text-xl p-2 my-4\">Prompt-\u00DCbersicht</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" }]
|
|
27
27
|
}], ctorParameters: () => [] });
|
|
28
28
|
|
|
29
29
|
class PromptsComponent {
|
|
30
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PromptsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: PromptsComponent, isStandalone: true, selector: "sftech-prompts", ngImport: i0, template: "<router-outlet></router-outlet>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PromptsComponent, decorators: [{
|
|
34
34
|
type: Component,
|
|
35
35
|
args: [{ selector: 'sftech-prompts', imports: [RouterOutlet], template: "<router-outlet></router-outlet>\r\n\r\n" }]
|
|
36
36
|
}] });
|
|
@@ -49,4 +49,4 @@ const promptsRoutes = [
|
|
|
49
49
|
];
|
|
50
50
|
|
|
51
51
|
export { promptsRoutes };
|
|
52
|
-
//# sourceMappingURL=sftech-ng-orchestrator-prompts.routes-
|
|
52
|
+
//# sourceMappingURL=sftech-ng-orchestrator-prompts.routes-DLAz29Gn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sftech-ng-orchestrator-prompts.routes-
|
|
1
|
+
{"version":3,"file":"sftech-ng-orchestrator-prompts.routes-DLAz29Gn.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompts-list/prompts-list.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/components/prompt/prompts-list/prompts-list.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/prompts.component.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/prompts/prompts.component.html","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/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/services/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 _modalComponent = PromptDisplayComponent;\r\n protected 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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"}
|
|
@@ -2,8 +2,8 @@ import { CommonModule } from '@angular/common';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, Inject, Injectable, NgModule } from '@angular/core';
|
|
4
4
|
import * as i1 from '@angular/common/http';
|
|
5
|
+
import { MappedApiResponseRaw, MappedApiError } from '@sftech/ng-shared';
|
|
5
6
|
import { map, catchError, of } from 'rxjs';
|
|
6
|
-
import { MappedApiResponseRaw } from '@sftech/ng-shared';
|
|
7
7
|
|
|
8
8
|
// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>
|
|
9
9
|
class OrchestratorConfigMapper {
|
|
@@ -11,8 +11,8 @@ class OrchestratorConfigMapper {
|
|
|
11
11
|
return {
|
|
12
12
|
orchestratorUrl: config['ORCHESTRATOR_URL'],
|
|
13
13
|
orchestratorDbUrl: config['ORCHESTRATOR_DB_URL'],
|
|
14
|
-
mcpToolUrl: config['MCP_TOOL_URL'],
|
|
15
14
|
defaultConnectorUrl: config['DEFAULT_CONNECTOR_URL'],
|
|
15
|
+
defaultAnswerSpecification: config['DEFAULT_ANSWER_SPECIFICATION'],
|
|
16
16
|
defaultLlmProvider: config['DEFAULT_LLM_PROVIDER'],
|
|
17
17
|
defaultLlmModel: config['DEFAULT_LLM_MODEL'],
|
|
18
18
|
defaultLlmTemperature: config['DEFAULT_LLM_TEMPERATURE'],
|
|
@@ -48,6 +48,19 @@ class LlmTokens {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
+
class McpTool {
|
|
52
|
+
name;
|
|
53
|
+
identifier;
|
|
54
|
+
desceription;
|
|
55
|
+
static fromDto(dto) {
|
|
56
|
+
const tool = new McpTool();
|
|
57
|
+
tool.name = dto.name;
|
|
58
|
+
tool.identifier = dto.identifier;
|
|
59
|
+
tool.desceription = dto.description;
|
|
60
|
+
return tool;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
51
64
|
class OrcherstratorService {
|
|
52
65
|
http;
|
|
53
66
|
config;
|
|
@@ -57,7 +70,7 @@ class OrcherstratorService {
|
|
|
57
70
|
}
|
|
58
71
|
runAgent(runConfig) {
|
|
59
72
|
const url = `${this.config.orchestratorUrl}/generic/run`;
|
|
60
|
-
return this.http.post(url, runConfig).pipe(map(res => {
|
|
73
|
+
return this.http.post(url, runConfig).pipe(map((res) => {
|
|
61
74
|
console.log(res);
|
|
62
75
|
const apiResponse = new MappedApiResponseRaw();
|
|
63
76
|
apiResponse.status = res.status;
|
|
@@ -68,16 +81,28 @@ class OrcherstratorService {
|
|
|
68
81
|
}));
|
|
69
82
|
}
|
|
70
83
|
getTools() {
|
|
71
|
-
const url = `${this.config.
|
|
72
|
-
return this.http.get(url).pipe(
|
|
84
|
+
const url = `${this.config.orchestratorUrl}/tools`;
|
|
85
|
+
return this.http.get(url).pipe(map((res) => {
|
|
86
|
+
console.log(res);
|
|
87
|
+
const apiResponse = new MappedApiResponseRaw();
|
|
88
|
+
apiResponse.status = res.status;
|
|
89
|
+
apiResponse.messages = res.messages ? res.messages : [];
|
|
90
|
+
apiResponse.isError = false;
|
|
91
|
+
apiResponse.data = res.data.map((t) => McpTool.fromDto(t));
|
|
92
|
+
return apiResponse;
|
|
93
|
+
}), catchError((err) => {
|
|
73
94
|
console.error('Error fetching tools:', err);
|
|
74
|
-
|
|
95
|
+
const error = new MappedApiError();
|
|
96
|
+
error.messages = err.messages ? err.messages : [];
|
|
97
|
+
error.status = err.status ? err.status : 500;
|
|
98
|
+
error.isError = true;
|
|
99
|
+
return of(error);
|
|
75
100
|
}));
|
|
76
101
|
}
|
|
77
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
78
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
102
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrcherstratorService, deps: [{ token: i1.HttpClient }, { token: ORCHESTRATOR_CONFIGURATION }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
103
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrcherstratorService });
|
|
79
104
|
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
105
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrcherstratorService, decorators: [{
|
|
81
106
|
type: Injectable
|
|
82
107
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
|
|
83
108
|
type: Inject,
|
|
@@ -98,11 +123,11 @@ class OrchestratorModule {
|
|
|
98
123
|
],
|
|
99
124
|
};
|
|
100
125
|
}
|
|
101
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
102
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
103
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
126
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
127
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorModule, imports: [CommonModule] });
|
|
128
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorModule, imports: [CommonModule] });
|
|
104
129
|
}
|
|
105
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: OrchestratorModule, decorators: [{
|
|
106
131
|
type: NgModule,
|
|
107
132
|
args: [{
|
|
108
133
|
declarations: [],
|
|
@@ -113,15 +138,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.11", ngImpo
|
|
|
113
138
|
const orchestratorRoutes = [
|
|
114
139
|
{
|
|
115
140
|
path: 'chats',
|
|
116
|
-
loadChildren: () => import('./sftech-ng-orchestrator-chat.routes-
|
|
141
|
+
loadChildren: () => import('./sftech-ng-orchestrator-chat.routes-BiKjhPDt.mjs').then(m => m.chatRoutes)
|
|
117
142
|
},
|
|
118
143
|
{
|
|
119
144
|
path: 'prompts',
|
|
120
|
-
loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-
|
|
145
|
+
loadChildren: () => import('./sftech-ng-orchestrator-prompts.routes-DLAz29Gn.mjs').then(m => m.promptsRoutes)
|
|
121
146
|
},
|
|
122
147
|
{
|
|
123
148
|
path: 'agents',
|
|
124
|
-
loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-
|
|
149
|
+
loadChildren: () => import('./sftech-ng-orchestrator-agents.routes-GsOhn5LG.mjs').then(m => m.agentsRoutes)
|
|
125
150
|
},
|
|
126
151
|
];
|
|
127
152
|
|
|
@@ -130,4 +155,4 @@ const orchestratorRoutes = [
|
|
|
130
155
|
*/
|
|
131
156
|
|
|
132
157
|
export { OrcherstratorService as O, ORCHESTRATOR_CONFIGURATION as a, OrchestratorModule as b, orchestratorRoutes as o };
|
|
133
|
-
//# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-
|
|
158
|
+
//# sourceMappingURL=sftech-ng-orchestrator-sftech-ng-orchestrator-QxboGYpc.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sftech-ng-orchestrator-sftech-ng-orchestrator-QxboGYpc.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/configuration/orchestrator-config.mapper.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/configuration/orchestrator-configuration.token.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/models/llm-response.model.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/models/mcp-tool.model.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/core/service/orcherstrator.service.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/orchestrator.module.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/orchestrator.routes.ts","../../../../libs/ng-orchestrator/src/sftech-ng-orchestrator.ts"],"sourcesContent":["import { IAppConfig } from '@sftech/ng-shared';\r\nimport { IOrchestratorConfig } from './orchestrator-config.interface';\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class OrchestratorConfigMapper {\r\n public static map(config: IAppConfig): IOrchestratorConfig {\r\n return {\r\n orchestratorUrl: config['ORCHESTRATOR_URL'] as string,\r\n orchestratorDbUrl: config['ORCHESTRATOR_DB_URL'] as string,\r\n defaultConnectorUrl: config['DEFAULT_CONNECTOR_URL'] as string,\r\n defaultAnswerSpecification: config['DEFAULT_ANSWER_SPECIFICATION'] as string,\r\n defaultLlmProvider: config['DEFAULT_LLM_PROVIDER'] as string,\r\n defaultLlmModel: config['DEFAULT_LLM_MODEL'] as string,\r\n defaultLlmTemperature: config['DEFAULT_LLM_TEMPERATURE'] as number,\r\n defaultLlmTimeout: config['DEFAULT_LLM_TIMEOUT'] as number,\r\n defaultLlmRetries: config['DEFAULT_LLM_RETRIES'] as number,\r\n defaultLlmMaxTokens: config['DEFAULT_LLM_MAX_TOKENS'] as number,\r\n };\r\n }\r\n}\r\n","import {InjectionToken} from \"@angular/core\";\r\nimport {IOrchestratorConfig} from \"./orchestrator-config.interface\";\r\n\r\nexport const ORCHESTRATOR_CONFIGURATION = new InjectionToken<IOrchestratorConfig>('ORCHESTRATOR_CONFIGURATION');","import {ILlmResponseDto, ILlmTokensDto} from \"../dtos/llm-response.dto\";\r\n\r\nexport class LlmResponse {\r\n message!: string;\r\n tokens?: LlmTokens\r\n\r\n public static fromDto(dto: ILlmResponseDto): LlmResponse {\r\n const model = new LlmResponse();\r\n model.message = dto.message;\r\n model.tokens = dto.tokens ? LlmTokens.fromDto(dto.tokens) : undefined;\r\n return model;\r\n }\r\n}\r\n\r\nexport class LlmTokens {\r\n public input!: number;\r\n public output!: number;\r\n public total!: number;\r\n\r\n public static fromDto(dto: ILlmTokensDto): LlmTokens {\r\n const model = new LlmTokens();\r\n model.input = dto.input;\r\n model.output = dto.output;\r\n model.total = dto.total;\r\n return model;\r\n }\r\n}","import {IMcpToolResponseDto} from \"../dtos/mcp-tool-response.dto\";\r\n\r\nexport class McpTool {\r\n name!: string;\r\n identifier!: string;\r\n desceription!: string;\r\n\r\n public static fromDto(dto: IMcpToolResponseDto): McpTool {\r\n const tool = new McpTool();\r\n tool.name = dto.name;\r\n tool.identifier = dto.identifier;\r\n tool.desceription = dto.description;\r\n return tool;\r\n }\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport {IApiResponse, MappedApiError, MappedApiResponse, MappedApiResponseRaw} from '@sftech/ng-shared';\r\nimport { Observable, catchError, map, of } from 'rxjs';\r\nimport { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../configuration/orchestrator-configuration.token';\r\nimport { ILlmResponseDto } from '../dtos/llm-response.dto';\r\nimport { IMcpToolResponseDto } from '../dtos/mcp-tool-response.dto';\r\nimport { IOrchestratorRunDto } from '../dtos/orchestrator-run.dto';\r\nimport { LlmResponse } from '../models/llm-response.model';\r\nimport {McpTool} from \"../models/mcp-tool.model\";\r\n\r\n@Injectable()\r\nexport class OrcherstratorService {\r\n public constructor(\r\n private readonly http: HttpClient,\r\n @Inject(ORCHESTRATOR_CONFIGURATION) private readonly config: IOrchestratorConfig,\r\n ) {}\r\n\r\n public runAgent(runConfig: IOrchestratorRunDto): Observable<MappedApiResponseRaw<LlmResponse>> {\r\n const url = `${this.config.orchestratorUrl}/generic/run`;\r\n return this.http.post<IApiResponse<ILlmResponseDto>>(url, runConfig).pipe(\r\n map((res) => {\r\n console.log(res);\r\n const apiResponse = new MappedApiResponseRaw<LlmResponse>();\r\n apiResponse.status = res.status;\r\n apiResponse.messages = res.messages ? res.messages : [];\r\n apiResponse.isError = false;\r\n apiResponse.data = LlmResponse.fromDto(res.data as ILlmResponseDto);\r\n return apiResponse;\r\n }),\r\n // catchError((err) => {\r\n // const error = new MappedApiError()\r\n // error.messages = err.messages ? err.messages : [];\r\n // return of(new MappedApiError())\r\n // })\r\n );\r\n }\r\n\r\n public getTools(): Observable<MappedApiResponseRaw<McpTool[]>> {\r\n const url = `${this.config.orchestratorUrl}/tools`;\r\n return this.http.get<IApiResponse<IMcpToolResponseDto[]>>(url).pipe(\r\n map((res) => {\r\n console.log(res);\r\n const apiResponse = new MappedApiResponseRaw<McpTool[]>();\r\n apiResponse.status = res.status;\r\n apiResponse.messages = res.messages ? res.messages : [];\r\n apiResponse.isError = false;\r\n apiResponse.data = (res.data as IMcpToolResponseDto[]).map((t) => McpTool.fromDto(t));\r\n return apiResponse;\r\n }),\r\n catchError((err) => {\r\n console.error('Error fetching tools:', err);\r\n const error = new MappedApiError();\r\n error.messages = err.messages ? err.messages : [];\r\n error.status = err.status ? err.status : 500;\r\n error.isError = true;\r\n return of(error);\r\n }),\r\n );\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { IAppConfig } from '@sftech/ng-shared';\r\nimport { OrchestratorConfigMapper } from './core/configuration/orchestrator-config.mapper';\r\nimport { ORCHESTRATOR_CONFIGURATION } from './core/configuration/orchestrator-configuration.token';\r\nimport { OrcherstratorService } from './core/service/orcherstrator.service';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [CommonModule],\r\n})\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class OrchestratorModule {\r\n public static forRoot(config: IAppConfig): ModuleWithProviders<OrchestratorModule> {\r\n return {\r\n ngModule: OrchestratorModule,\r\n providers: [\r\n {\r\n provide: ORCHESTRATOR_CONFIGURATION,\r\n useValue: OrchestratorConfigMapper.map(config),\r\n },\r\n OrcherstratorService,\r\n ],\r\n };\r\n }\r\n}\r\n","import {Route} from '@angular/router';\r\n\r\nexport const orchestratorRoutes: Route[] = [\r\n {\r\n path: 'chats',\r\n loadChildren: () => import('./chat/chat.routes').then(m => m.chatRoutes)\r\n },\r\n {\r\n path: 'prompts',\r\n loadChildren: () => import('./prompts/prompts.routes').then(m => m.promptsRoutes)\r\n },\r\n {\r\n path: 'agents',\r\n loadChildren: () => import('./agents/agents.routes').then(m => m.agentsRoutes)\r\n },\r\n];\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { b as OrchestratorModule, o as orchestratorRoutes } from './sftech-ng-orchestrator-sftech-ng-orchestrator-
|
|
1
|
+
export { b as OrchestratorModule, o as orchestratorRoutes } from './sftech-ng-orchestrator-sftech-ng-orchestrator-QxboGYpc.mjs';
|
|
2
2
|
//# sourceMappingURL=sftech-ng-orchestrator.mjs.map
|
package/lib/ng-orchestrator/agents/components/agent/agent-display/agent-display.component.d.ts
CHANGED
|
@@ -7,20 +7,21 @@ import { IAgentUpdateDto } from '../../../core/dtos/agent-update-request.dto';
|
|
|
7
7
|
import { Agent } from '../../../core/models/agent.model';
|
|
8
8
|
import { AgentService } from '../../../core/services/agent.service';
|
|
9
9
|
import { OrcherstratorService } from "../../../../core/service/orcherstrator.service";
|
|
10
|
-
import {
|
|
10
|
+
import { IAgentCreateDto } from "../../../core/dtos/agent-create-request.dto";
|
|
11
|
+
import { McpTool } from "../../../../core/models/mcp-tool.model";
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export declare class AgentDisplayComponent extends BaseDisplayComponent<Agent, IAgentUpdateDto, IAgentUpdateDto, IAgentResponseDto> implements OnInit {
|
|
13
14
|
protected _repo: AgentService;
|
|
14
15
|
protected _route: string;
|
|
15
16
|
protected _orchestratorService: OrcherstratorService;
|
|
16
|
-
tools: import("@angular/core").WritableSignal<
|
|
17
|
+
tools: import("@angular/core").WritableSignal<McpTool[] | undefined>;
|
|
17
18
|
protected dialog: DialogService;
|
|
18
19
|
private _options;
|
|
19
20
|
ngOnInit(): void;
|
|
20
21
|
protected initializeForm(): FormGroup;
|
|
21
22
|
protected getNewModel(): Agent;
|
|
22
23
|
protected mapFormToUpdateDto(): IAgentUpdateDto;
|
|
23
|
-
protected mapFormToCreateDto():
|
|
24
|
+
protected mapFormToCreateDto(): IAgentCreateDto;
|
|
24
25
|
openPromptModal(promptId: number | undefined): void;
|
|
25
26
|
static ɵfac: i0.ɵɵFactoryDeclaration<AgentDisplayComponent, never>;
|
|
26
27
|
static ɵcmp: i0.ɵɵComponentDeclaration<AgentDisplayComponent, "sftech-prompt-display", never, {}, {}, never, never, true, never>;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export interface IAgentCreateDto extends
|
|
1
|
+
import { IBaseDbCreateDto } from '@sftech/ng-shared';
|
|
2
|
+
export interface IAgentCreateDto extends IBaseDbCreateDto {
|
|
3
3
|
description: string;
|
|
4
4
|
name: string;
|
|
5
5
|
connectorUrl: string;
|
|
6
|
+
answerSpecification: string;
|
|
6
7
|
tools?: string[];
|
|
7
8
|
llmProvider: string;
|
|
8
9
|
llmModel: string;
|
|
@@ -2,8 +2,8 @@ import { IAppConfig } from '@sftech/ng-shared';
|
|
|
2
2
|
export interface IOrchestratorConfig extends IAppConfig {
|
|
3
3
|
orchestratorUrl: string;
|
|
4
4
|
orchestratorDbUrl: string;
|
|
5
|
-
mcpToolUrl: string;
|
|
6
5
|
defaultConnectorUrl: string;
|
|
6
|
+
defaultAnswerSpecification: string;
|
|
7
7
|
defaultLlmProvider: string;
|
|
8
8
|
defaultLlmModel: string;
|
|
9
9
|
defaultLlmTemperature: number;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { HttpClient } from
|
|
2
|
-
import {
|
|
3
|
-
import { Observable } from
|
|
4
|
-
import { IOrchestratorConfig } from
|
|
5
|
-
import {
|
|
6
|
-
import { LlmResponse } from
|
|
7
|
-
import {
|
|
1
|
+
import { HttpClient } from '@angular/common/http';
|
|
2
|
+
import { MappedApiResponseRaw } from '@sftech/ng-shared';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { IOrchestratorConfig } from '../configuration/orchestrator-config.interface';
|
|
5
|
+
import { IOrchestratorRunDto } from '../dtos/orchestrator-run.dto';
|
|
6
|
+
import { LlmResponse } from '../models/llm-response.model';
|
|
7
|
+
import { McpTool } from "../models/mcp-tool.model";
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
9
9
|
export declare class OrcherstratorService {
|
|
10
10
|
private readonly http;
|
|
11
11
|
private readonly config;
|
|
12
12
|
constructor(http: HttpClient, config: IOrchestratorConfig);
|
|
13
13
|
runAgent(runConfig: IOrchestratorRunDto): Observable<MappedApiResponseRaw<LlmResponse>>;
|
|
14
|
-
getTools(): Observable<
|
|
14
|
+
getTools(): Observable<MappedApiResponseRaw<McpTool[]>>;
|
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<OrcherstratorService, never>;
|
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<OrcherstratorService>;
|
|
17
17
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sftech-ng-orchestrator-agent.service-w7yNia2v.mjs","sources":["../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/agents/core/models/agent.model.ts","../../../../libs/ng-orchestrator/src/lib/ng-orchestrator/agents/core/services/agent.service.ts"],"sourcesContent":["import { BaseDbModel, EFilterTypes, IBaseDbResponseDto } from '@sftech/ng-shared';\r\nimport { IAgentResponseDto } from '../dtos/agent-response.dto';\r\nimport {IPromptHistoryResponseDto} from \"../../../prompts/core/dtos/prompt-history-response.dto\";\r\nimport {Prompt} from \"../../../prompts/core/models/prompt.model\";\r\nimport {PromptHistory} from \"../../../prompts/core/models/prompt-history.model\";\r\n\r\nexport class Agent extends BaseDbModel {\r\n public identifier!: string;\r\n\r\n public description!: string;\r\n\r\n public name!: string;\r\n\r\n public connectorUrl!: string;\r\n\r\n public tools!: string[];\r\n\r\n public llmProvider!: string;\r\n\r\n public llmModel!: string;\r\n\r\n public llmTemperature!: number;\r\n\r\n public llmTimeout?: number;\r\n\r\n public llmRetries?: number;\r\n\r\n public llmMaxTokens?: number;\r\n\r\n public llmUserPromptId!: number;\r\n\r\n public llmUserPrompt?: Prompt;\r\n\r\n public llmSystemPromptId!: number;\r\n\r\n public llmSystemPrompt?: Prompt;\r\n\r\n public llmUserPromptHistoryId?: number;\r\n\r\n public llmUserPromptHistory?: PromptHistory;\r\n\r\n public llmSystemPromptHistoryId?: number;\r\n\r\n public llmSystemPromptHistory?: PromptHistory;\r\n\r\n public override propertiesToShow = ['name', 'identifier', 'description'];\r\n\r\n public override propertyUINames = new Map<string, string>([\r\n ['name', 'Name'],\r\n ['description', 'Beschreibung'],\r\n ['identifier', 'identifier'],\r\n ['llmUserPromptTemplateIdentifier', 'User Prompt Identifier'],\r\n ['connectorUrl', 'Connector-Url'],\r\n ['tools', 'LLM-Tools'],\r\n ['llmProvider', 'LLM-Provider'],\r\n ['llmModel', 'LLM-Model'],\r\n ['llmTemperature', 'LLM-Temperature'],\r\n ['llmTimeout', 'LLM-Timeout'],\r\n ['llmRetries', 'LLM-Retries'],\r\n ['llmMaxTokens', 'LLM-Max-Tokens'],\r\n ['llmUserPromptId', 'User Prompt ID'],\r\n ['llmUserPrompt', 'User Prompt Template'],\r\n ['llmSystemPromptId', 'System Prompt ID'],\r\n ['llmSystemPrompt', 'System Prompt Template'],\r\n ]);\r\n\r\n public override propertyFilterType = new Map<string, EFilterTypes>([\r\n ['name', EFilterTypes.STRING],\r\n ['template', EFilterTypes.STRING],\r\n ['identifier', EFilterTypes.STRING],\r\n ]);\r\n\r\n public override fromDto(dto: IAgentResponseDto): Agent {\r\n const model = new Agent();\r\n model.id = dto.id;\r\n model.createdAt = new Date(dto.createdAt);\r\n model.name = dto.name;\r\n model.identifier = dto.identifier;\r\n model.description = dto.description;\r\n model.connectorUrl = dto.connectorUrl;\r\n model.tools = dto.tools ? dto.tools : [];\r\n model.llmProvider = dto.llmProvider;\r\n model.llmModel = dto.llmModel;\r\n model.llmTemperature = dto.llmTemperature;\r\n model.llmTimeout = dto.llmTimeout;\r\n model.llmRetries = dto.llmRetries;\r\n model.llmMaxTokens = dto.llmMaxTokens;\r\n model.llmUserPrompt = dto.llmUserPrompt ? Prompt.fromDto(dto.llmUserPrompt) as Prompt : undefined;\r\n model.llmUserPromptId = dto.llmUserPromptId;\r\n model.llmSystemPrompt = dto.llmSystemPrompt ? Prompt.fromDto(dto.llmSystemPrompt) as Prompt : undefined;\r\n model.llmSystemPromptId = dto.llmSystemPromptId;\r\n model.llmUserPromptHistory = dto.llmUserPromptHistory ? Prompt.fromDto(dto.llmUserPromptHistory) as PromptHistory : undefined;\r\n model.llmUserPromptHistoryId = dto.llmUserPromptHistoryId;\r\n model.llmSystemPromptHistory = dto.llmSystemPromptHistory ? Prompt.fromDto(dto.llmSystemPromptHistory) as PromptHistory : undefined;\r\n model.llmSystemPromptHistoryId = dto.llmSystemPromptHistoryId;\r\n return model;\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 '../../../core/configuration/orchestrator-config.interface';\r\nimport { ORCHESTRATOR_CONFIGURATION } from '../../../core/configuration/orchestrator-configuration.token';\r\nimport { IAgentCreateDto } from '../dtos/agent-create-request.dto';\r\nimport { IAgentResponseDto } from '../dtos/agent-response.dto';\r\nimport { IAgentUpdateDto } from '../dtos/agent-update-request.dto';\r\nimport { Agent } from '../models/agent.model';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AgentService extends BaseDbApiService<Agent, IAgentCreateDto, IAgentUpdateDto, IAgentResponseDto> {\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}/agents`;\r\n }\r\n\r\n protected getNewModel(): Agent {\r\n return new Agent();\r\n }\r\n}\r\n"],"names":[],"mappings":"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"}
|