@acorex-platform/module-ai-management-client 0.0.20
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/acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-column.component-BHdDG8z0.mjs +44 -0
- package/fesm2022/acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-column.component-BHdDG8z0.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-edit.component-CMsc3P9O.mjs +259 -0
- package/fesm2022/acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-edit.component-CMsc3P9O.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-column.component-CWUhBvpf.mjs +62 -0
- package/fesm2022/acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-column.component-CWUhBvpf.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-edit.component-Dmi8vzfr.mjs +293 -0
- package/fesm2022/acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-edit.component-Dmi8vzfr.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-contracts.mjs +1038 -0
- package/fesm2022/acorex-platform-module-ai-management-client-contracts.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-ai-command-registry-catalog.query-DHfiKVa2.mjs +106 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-ai-command-registry-catalog.query-DHfiKVa2.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-ai-query-registry-catalog.query-BX0uU1YX.mjs +107 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-ai-query-registry-catalog.query-BX0uU1YX.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-output-contract-transcript-segments.query-BQXySOH_.mjs +54 -0
- package/fesm2022/acorex-platform-module-ai-management-client-list-output-contract-transcript-segments.query-BQXySOH_.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-ai-management-client.mjs +3642 -0
- package/fesm2022/acorex-platform-module-ai-management-client.mjs.map +1 -0
- package/package.json +28 -0
- package/types/acorex-platform-module-ai-management-client-contracts.d.ts +896 -0
- package/types/acorex-platform-module-ai-management-client.d.ts +797 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region ---- Component ----
|
|
7
|
+
class AXMAgentRegistryToolConfiguratorWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.idLabel = computed(() => {
|
|
11
|
+
const widgetNode = this.rawValue;
|
|
12
|
+
const t = widgetNode?.type;
|
|
13
|
+
return typeof t === 'string' && t.trim() ? t.trim() : '';
|
|
14
|
+
}, /* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "idLabel" }] : /* istanbul ignore next */ []));
|
|
16
|
+
}
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAgentRegistryToolConfiguratorWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAgentRegistryToolConfiguratorWidgetColumnComponent, isStandalone: true, selector: "axm-agent-registry-tool-configurator-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
|
19
|
+
@if (idLabel()) {
|
|
20
|
+
<span [title]="idLabel()" class="text-xs font-medium text-muted">{{ idLabel() }}</span>
|
|
21
|
+
} @else {
|
|
22
|
+
<span class="text-muted">—</span>
|
|
23
|
+
}
|
|
24
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAgentRegistryToolConfiguratorWidgetColumnComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'axm-agent-registry-tool-configurator-widget-column',
|
|
30
|
+
template: `
|
|
31
|
+
@if (idLabel()) {
|
|
32
|
+
<span [title]="idLabel()" class="text-xs font-medium text-muted">{{ idLabel() }}</span>
|
|
33
|
+
} @else {
|
|
34
|
+
<span class="text-muted">—</span>
|
|
35
|
+
}
|
|
36
|
+
`,
|
|
37
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38
|
+
imports: [],
|
|
39
|
+
inputs: ['rawValue', 'rowData'],
|
|
40
|
+
}]
|
|
41
|
+
}] });
|
|
42
|
+
|
|
43
|
+
export { AXMAgentRegistryToolConfiguratorWidgetColumnComponent };
|
|
44
|
+
//# sourceMappingURL=acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-column.component-BHdDG8z0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-column.component-BHdDG8z0.mjs","sources":["../../../../libs/modules/ai-management/client/src/lib/features/widgets/agent-registry-tool-configurator/agent-registry-tool-configurator-widget-column.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AXPColumnWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed } from '@angular/core';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-agent-registry-tool-configurator-widget-column',\n template: `\n @if (idLabel()) {\n <span [title]=\"idLabel()\" class=\"text-xs font-medium text-muted\">{{ idLabel() }}</span>\n } @else {\n <span class=\"text-muted\">—</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMAgentRegistryToolConfiguratorWidgetColumnComponent extends AXPColumnWidgetComponent<AXPWidgetNode> {\n protected idLabel = computed<string>(() => {\n const widgetNode = this.rawValue as AXPWidgetNode | undefined;\n const t = widgetNode?.type;\n return typeof t === 'string' && t.trim() ? t.trim() : '';\n });\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAMA;AAEA;AAeM,MAAO,qDAAsD,SAAQ,wBAAuC,CAAA;AAblH,IAAA,WAAA,GAAA;;AAcY,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAS,MAAK;AACxC,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAqC;AAC7D,YAAA,MAAM,CAAC,GAAG,UAAU,EAAE,IAAI;YAC1B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;QAC1D,CAAC;oFAAC;AACH,IAAA;8GANY,qDAAqD,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qDAAqD,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAXtD;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKU,qDAAqD,EAAA,UAAA,EAAA,CAAA;kBAbjE,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oDAAoD;AAC9D,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AAChC,iBAAA;;;;;"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import { sortByMultiLanguageString, runtimeQueryCollectionData } from '@acorex-platform/framework-shared/core';
|
|
2
|
+
import { AXTranslationService } from '@acorex/core/translation';
|
|
3
|
+
import { AXPItemConfiguratorComponent } from '@acorex-platform/framework-client/layout/components';
|
|
4
|
+
import { AXPQueryService } from '@acorex-platform/framework-client/runtime';
|
|
5
|
+
import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
|
|
6
|
+
import * as i0 from '@angular/core';
|
|
7
|
+
import { inject, computed, signal, model, effect, untracked, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
8
|
+
import { get, isEqual } from 'lodash';
|
|
9
|
+
|
|
10
|
+
//#region ---- Imports ----
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region ---- Mapping ----
|
|
13
|
+
const DEFAULT_GROUP = {
|
|
14
|
+
name: 'registry-input-defaults',
|
|
15
|
+
title: 'Default arguments',
|
|
16
|
+
order: 1,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Maps command/query registry {@link AXPPropertyDefinition} rows to item-configurator property fields.
|
|
20
|
+
*/
|
|
21
|
+
function mapInputOptionDefinitionsToWidgetProperties(defs) {
|
|
22
|
+
if (!Array.isArray(defs) || defs.length === 0) {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const properties = [];
|
|
26
|
+
let order = 0;
|
|
27
|
+
for (const def of defs) {
|
|
28
|
+
if (!def?.name) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
order += 1;
|
|
32
|
+
const widgetType = def.interface?.name?.trim() ? def.interface.name.trim() : 'text-editor';
|
|
33
|
+
const title = typeof def.title === 'string' && def.title.trim() ? def.title.trim() : def.name;
|
|
34
|
+
const description = typeof def.description === 'string' ? def.description.trim() : undefined;
|
|
35
|
+
const optionsPath = `options.${def.name}`;
|
|
36
|
+
const property = {
|
|
37
|
+
name: def.name,
|
|
38
|
+
title,
|
|
39
|
+
...(description ? { description } : {}),
|
|
40
|
+
group: DEFAULT_GROUP,
|
|
41
|
+
order,
|
|
42
|
+
schema: {
|
|
43
|
+
dataType: def.dataType ?? 'string',
|
|
44
|
+
interface: {
|
|
45
|
+
path: optionsPath,
|
|
46
|
+
name: def.name,
|
|
47
|
+
type: widgetType,
|
|
48
|
+
options: def.interface?.options ?? {},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
validations: def.validations,
|
|
52
|
+
visible: true,
|
|
53
|
+
};
|
|
54
|
+
properties.push(property);
|
|
55
|
+
}
|
|
56
|
+
return properties;
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
|
|
60
|
+
//#region ---- Imports ----
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region ---- Constants ----
|
|
63
|
+
const LIST_AI_COMMAND_REGISTRY_CATALOG_QUERY = 'AiManagement:ListAiCommandRegistryCatalog';
|
|
64
|
+
const LIST_AI_QUERY_REGISTRY_CATALOG_QUERY = 'AiManagement:ListAiQueryRegistryCatalog';
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region ---- Component ----
|
|
67
|
+
class AXMAgentRegistryToolConfiguratorWidgetEditComponent extends AXPValueWidgetComponent {
|
|
68
|
+
constructor() {
|
|
69
|
+
super(...arguments);
|
|
70
|
+
//#region ---- Services & Dependencies ----
|
|
71
|
+
this.queryService = inject(AXPQueryService);
|
|
72
|
+
this.translation = inject(AXTranslationService);
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region ---- Computed Properties ----
|
|
75
|
+
this.readonly = computed(() => {
|
|
76
|
+
const raw = this.options()['readonly'];
|
|
77
|
+
if (typeof raw === 'string') {
|
|
78
|
+
const normalized = raw.trim().toLowerCase();
|
|
79
|
+
if (normalized === 'true') {
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
if (normalized === 'false') {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return raw === true;
|
|
87
|
+
}, /* @ts-ignore */
|
|
88
|
+
...(ngDevMode ? [{ debugName: "readonly" }] : /* istanbul ignore next */ []));
|
|
89
|
+
this.label = computed(() => {
|
|
90
|
+
const v = this.options()['label'];
|
|
91
|
+
return typeof v === 'string' && v.trim() ? v.trim() : '';
|
|
92
|
+
}, /* @ts-ignore */
|
|
93
|
+
...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
|
|
94
|
+
this.registryKind = computed(() => {
|
|
95
|
+
const k = this.options()['registryKind'];
|
|
96
|
+
return k === 'query' ? 'query' : 'command';
|
|
97
|
+
}, /* @ts-ignore */
|
|
98
|
+
...(ngDevMode ? [{ debugName: "registryKind" }] : /* istanbul ignore next */ []));
|
|
99
|
+
this.dataSourceName = computed(() => {
|
|
100
|
+
const ds = this.options()['dataSource'];
|
|
101
|
+
if (typeof ds === 'string' && ds.trim() !== '') {
|
|
102
|
+
return ds.trim();
|
|
103
|
+
}
|
|
104
|
+
return this.registryKind() === 'query'
|
|
105
|
+
? LIST_AI_QUERY_REGISTRY_CATALOG_QUERY
|
|
106
|
+
: LIST_AI_COMMAND_REGISTRY_CATALOG_QUERY;
|
|
107
|
+
}, /* @ts-ignore */
|
|
108
|
+
...(ngDevMode ? [{ debugName: "dataSourceName" }] : /* istanbul ignore next */ []));
|
|
109
|
+
this.asyncNamedDataSourceItems = signal(undefined, /* @ts-ignore */
|
|
110
|
+
...(ngDevMode ? [{ debugName: "asyncNamedDataSourceItems" }] : /* istanbul ignore next */ []));
|
|
111
|
+
this.listItems = computed(() => {
|
|
112
|
+
const rows = this.asyncNamedDataSourceItems() ?? [];
|
|
113
|
+
const list = [];
|
|
114
|
+
for (const row of rows) {
|
|
115
|
+
const idRaw = get(row, 'id');
|
|
116
|
+
const id = idRaw != null ? String(idRaw).trim() : '';
|
|
117
|
+
if (!id) {
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
const titleRaw = get(row, 'catalogTitle');
|
|
121
|
+
const title = titleRaw != null ? String(titleRaw).trim() : id;
|
|
122
|
+
const descriptionRaw = get(row, 'description');
|
|
123
|
+
const description = descriptionRaw != null ? String(descriptionRaw) : undefined;
|
|
124
|
+
const iconRaw = get(row, 'icon');
|
|
125
|
+
const icon = iconRaw != null ? String(iconRaw) : undefined;
|
|
126
|
+
const defsRaw = get(row, 'inputOptionDefinitions');
|
|
127
|
+
const propertyDefinitions = mapInputOptionDefinitionsToWidgetProperties(Array.isArray(defsRaw) ? defsRaw : []);
|
|
128
|
+
list.push({ id, title, description, icon, propertyDefinitions });
|
|
129
|
+
}
|
|
130
|
+
return sortByMultiLanguageString(list, (item) => item.title, this.translation.getActiveLang());
|
|
131
|
+
}, /* @ts-ignore */
|
|
132
|
+
...(ngDevMode ? [{ debugName: "listItems" }] : /* istanbul ignore next */ []));
|
|
133
|
+
//#endregion
|
|
134
|
+
//#region ---- State ----
|
|
135
|
+
this.isInitialized = signal(false, /* @ts-ignore */
|
|
136
|
+
...(ngDevMode ? [{ debugName: "isInitialized" }] : /* istanbul ignore next */ []));
|
|
137
|
+
//#endregion
|
|
138
|
+
//#region ---- Models ----
|
|
139
|
+
this.selectedItemIdModel = model('', /* @ts-ignore */
|
|
140
|
+
...(ngDevMode ? [{ debugName: "selectedItemIdModel" }] : /* istanbul ignore next */ []));
|
|
141
|
+
this.valuesModel = model({}, /* @ts-ignore */
|
|
142
|
+
...(ngDevMode ? [{ debugName: "valuesModel" }] : /* istanbul ignore next */ []));
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region ---- Effects ----
|
|
145
|
+
this.loadNamedDataSourceEffect = effect((onCleanup) => {
|
|
146
|
+
const name = this.dataSourceName();
|
|
147
|
+
let cancelled = false;
|
|
148
|
+
onCleanup(() => {
|
|
149
|
+
cancelled = true;
|
|
150
|
+
});
|
|
151
|
+
void (async () => {
|
|
152
|
+
try {
|
|
153
|
+
if (!this.queryService.exists(name)) {
|
|
154
|
+
this.asyncNamedDataSourceItems.set([]);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const result = await this.queryService.fetch(name, { skip: 0, take: 500 });
|
|
158
|
+
if (cancelled) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const page = runtimeQueryCollectionData(result);
|
|
162
|
+
this.asyncNamedDataSourceItems.set(page?.items ?? []);
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
if (!cancelled) {
|
|
166
|
+
this.asyncNamedDataSourceItems.set([]);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
})();
|
|
170
|
+
}, /* @ts-ignore */
|
|
171
|
+
...(ngDevMode ? [{ debugName: "loadNamedDataSourceEffect" }] : /* istanbul ignore next */ []));
|
|
172
|
+
this.syncValueToConfigurator = effect(() => {
|
|
173
|
+
const value = this.getValue();
|
|
174
|
+
if (value && value.type) {
|
|
175
|
+
const currentSelected = untracked(() => this.selectedItemIdModel());
|
|
176
|
+
const currentValues = untracked(() => this.valuesModel());
|
|
177
|
+
const nextOptions = (value.options ?? {});
|
|
178
|
+
if (value.type !== currentSelected || !isEqual(nextOptions, currentValues)) {
|
|
179
|
+
untracked(() => {
|
|
180
|
+
this.selectedItemIdModel.set(value.type);
|
|
181
|
+
this.valuesModel.set(nextOptions);
|
|
182
|
+
this.isInitialized.set(true);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
untracked(() => {
|
|
188
|
+
if (!this.isInitialized()) {
|
|
189
|
+
this.selectedItemIdModel.set('');
|
|
190
|
+
this.valuesModel.set({});
|
|
191
|
+
this.isInitialized.set(true);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}, /* @ts-ignore */
|
|
195
|
+
...(ngDevMode ? [{ debugName: "syncValueToConfigurator" }] : /* istanbul ignore next */ []));
|
|
196
|
+
this.syncConfiguratorToValue = effect(() => {
|
|
197
|
+
const selectedId = this.selectedItemIdModel();
|
|
198
|
+
const values = this.valuesModel();
|
|
199
|
+
if (!untracked(() => this.isInitialized())) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const currentValue = untracked(() => this.getValue());
|
|
203
|
+
const empty = { type: '', options: {} };
|
|
204
|
+
if (!selectedId) {
|
|
205
|
+
if (!isEqual(currentValue ?? empty, empty)) {
|
|
206
|
+
untracked(() => {
|
|
207
|
+
this.setValue(empty);
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
const next = {
|
|
213
|
+
...(currentValue && typeof currentValue === 'object' ? currentValue : {}),
|
|
214
|
+
type: selectedId,
|
|
215
|
+
options: values,
|
|
216
|
+
};
|
|
217
|
+
if (!isEqual(next, currentValue)) {
|
|
218
|
+
untracked(() => {
|
|
219
|
+
this.setValue(next);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}, /* @ts-ignore */
|
|
223
|
+
...(ngDevMode ? [{ debugName: "syncConfiguratorToValue" }] : /* istanbul ignore next */ []));
|
|
224
|
+
}
|
|
225
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAgentRegistryToolConfiguratorWidgetEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
226
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAgentRegistryToolConfiguratorWidgetEditComponent, isStandalone: true, selector: "axm-agent-registry-tool-configurator-widget-edit", inputs: { selectedItemIdModel: { classPropertyName: "selectedItemIdModel", publicName: "selectedItemIdModel", isSignal: true, isRequired: false, transformFunction: null }, valuesModel: { classPropertyName: "valuesModel", publicName: "valuesModel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItemIdModel: "selectedItemIdModelChange", valuesModel: "valuesModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
227
|
+
@if (isInitialized()) {
|
|
228
|
+
<axp-item-configurator
|
|
229
|
+
[(selectedItemId)]="selectedItemIdModel"
|
|
230
|
+
[(values)]="valuesModel"
|
|
231
|
+
[label]="label()"
|
|
232
|
+
[readonly]="readonly()"
|
|
233
|
+
[items]="listItems()"
|
|
234
|
+
></axp-item-configurator>
|
|
235
|
+
}
|
|
236
|
+
`, isInline: true, dependencies: [{ kind: "component", type: AXPItemConfiguratorComponent, selector: "axp-item-configurator", inputs: ["selectedItemId", "values", "label", "readonly", "items", "headerActions"], outputs: ["selectedItemIdChange", "valuesChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
237
|
+
}
|
|
238
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAgentRegistryToolConfiguratorWidgetEditComponent, decorators: [{
|
|
239
|
+
type: Component,
|
|
240
|
+
args: [{
|
|
241
|
+
selector: 'axm-agent-registry-tool-configurator-widget-edit',
|
|
242
|
+
template: `
|
|
243
|
+
@if (isInitialized()) {
|
|
244
|
+
<axp-item-configurator
|
|
245
|
+
[(selectedItemId)]="selectedItemIdModel"
|
|
246
|
+
[(values)]="valuesModel"
|
|
247
|
+
[label]="label()"
|
|
248
|
+
[readonly]="readonly()"
|
|
249
|
+
[items]="listItems()"
|
|
250
|
+
></axp-item-configurator>
|
|
251
|
+
}
|
|
252
|
+
`,
|
|
253
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
254
|
+
imports: [AXPItemConfiguratorComponent],
|
|
255
|
+
}]
|
|
256
|
+
}], propDecorators: { selectedItemIdModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItemIdModel", required: false }] }, { type: i0.Output, args: ["selectedItemIdModelChange"] }], valuesModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "valuesModel", required: false }] }, { type: i0.Output, args: ["valuesModelChange"] }] } });
|
|
257
|
+
|
|
258
|
+
export { AXMAgentRegistryToolConfiguratorWidgetEditComponent };
|
|
259
|
+
//# sourceMappingURL=acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-edit.component-CMsc3P9O.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-ai-management-client-agent-registry-tool-configurator-widget-edit.component-CMsc3P9O.mjs","sources":["../../../../libs/modules/ai-management/client/src/lib/features/widgets/agent-registry-tool-configurator/input-option-definitions-to-widget-properties.ts","../../../../libs/modules/ai-management/client/src/lib/features/widgets/agent-registry-tool-configurator/agent-registry-tool-configurator-widget-edit.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPWidgetProperty, AXPWidgetPropertyGroup } from '@acorex-platform/framework-shared/widget-core';\nimport type { AXPPropertyDefinition } from '@acorex-platform/framework-shared/domain';\n\n//#endregion\n\n//#region ---- Mapping ----\n\nconst DEFAULT_GROUP: AXPWidgetPropertyGroup = {\n name: 'registry-input-defaults',\n title: 'Default arguments',\n order: 1,\n};\n\n/**\n * Maps command/query registry {@link AXPPropertyDefinition} rows to item-configurator property fields.\n */\nexport function mapInputOptionDefinitionsToWidgetProperties(\n defs: AXPPropertyDefinition[] | null | undefined,\n): AXPWidgetProperty[] {\n if (!Array.isArray(defs) || defs.length === 0) {\n return [];\n }\n\n const properties: AXPWidgetProperty[] = [];\n let order = 0;\n\n for (const def of defs) {\n if (!def?.name) {\n continue;\n }\n order += 1;\n const widgetType = def.interface?.name?.trim() ? def.interface.name.trim() : 'text-editor';\n const title = typeof def.title === 'string' && def.title.trim() ? def.title.trim() : def.name;\n const description = typeof def.description === 'string' ? def.description.trim() : undefined;\n\n const optionsPath = `options.${def.name}`;\n\n const property: AXPWidgetProperty = {\n name: def.name,\n title,\n ...(description ? { description } : {}),\n group: DEFAULT_GROUP,\n order,\n schema: {\n dataType: def.dataType ?? 'string',\n interface: {\n path: optionsPath,\n name: def.name,\n type: widgetType,\n options: def.interface?.options ?? {},\n },\n },\n validations: def.validations,\n visible: true,\n };\n\n properties.push(property);\n }\n\n return properties;\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXPOptionsData, type AXPWidgetNode, runtimeQueryCollectionData, sortByMultiLanguageString } from '@acorex-platform/framework-shared/core';\nimport { AXTranslationService } from '@acorex/core/translation';\n\nimport type { AXPPropertyDefinition } from '@acorex-platform/framework-shared/domain';\nimport { AXPItemConfiguratorComponent, ItemConfiguratorListItem } from '@acorex-platform/framework-client/layout/components';\nimport { AXPQueryService } from '@acorex-platform/framework-client/runtime';\nimport { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, effect, inject, model, signal, untracked } from '@angular/core';\nimport { get, isEqual } from 'lodash';\nimport { mapInputOptionDefinitionsToWidgetProperties } from './input-option-definitions-to-widget-properties';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst LIST_AI_COMMAND_REGISTRY_CATALOG_QUERY = 'AiManagement:ListAiCommandRegistryCatalog';\nconst LIST_AI_QUERY_REGISTRY_CATALOG_QUERY = 'AiManagement:ListAiQueryRegistryCatalog';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-agent-registry-tool-configurator-widget-edit',\n template: `\n @if (isInitialized()) {\n <axp-item-configurator\n [(selectedItemId)]=\"selectedItemIdModel\"\n [(values)]=\"valuesModel\"\n [label]=\"label()\"\n [readonly]=\"readonly()\"\n [items]=\"listItems()\"\n ></axp-item-configurator>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [AXPItemConfiguratorComponent],\n})\nexport class AXMAgentRegistryToolConfiguratorWidgetEditComponent extends AXPValueWidgetComponent<AXPWidgetNode> {\n //#region ---- Services & Dependencies ----\n\n private readonly queryService = inject(AXPQueryService);\n private readonly translation = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Computed Properties ----\n\n protected readonly = computed<boolean>(() => {\n const raw = this.options()['readonly'];\n if (typeof raw === 'string') {\n const normalized = raw.trim().toLowerCase();\n if (normalized === 'true') {\n return true;\n }\n if (normalized === 'false') {\n return false;\n }\n }\n return raw === true;\n });\n\n protected label = computed<string>(() => {\n const v = this.options()['label'];\n return typeof v === 'string' && v.trim() ? v.trim() : '';\n });\n\n private readonly registryKind = computed<'command' | 'query'>(() => {\n const k = this.options()['registryKind'];\n return k === 'query' ? 'query' : 'command';\n });\n\n private readonly dataSourceName = computed<string>(() => {\n const ds = this.options()['dataSource'];\n if (typeof ds === 'string' && ds.trim() !== '') {\n return ds.trim();\n }\n return this.registryKind() === 'query'\n ? LIST_AI_QUERY_REGISTRY_CATALOG_QUERY\n : LIST_AI_COMMAND_REGISTRY_CATALOG_QUERY;\n });\n\n private readonly asyncNamedDataSourceItems = signal<unknown[] | undefined>(undefined);\n\n protected listItems = computed<ItemConfiguratorListItem[]>(() => {\n const rows = this.asyncNamedDataSourceItems() ?? [];\n const list: ItemConfiguratorListItem[] = [];\n\n for (const row of rows) {\n const idRaw = get(row as object, 'id');\n const id = idRaw != null ? String(idRaw).trim() : '';\n if (!id) {\n continue;\n }\n\n const titleRaw = get(row as object, 'catalogTitle');\n const title = titleRaw != null ? String(titleRaw).trim() : id;\n const descriptionRaw = get(row as object, 'description');\n const description = descriptionRaw != null ? String(descriptionRaw) : undefined;\n const iconRaw = get(row as object, 'icon');\n const icon = iconRaw != null ? String(iconRaw) : undefined;\n const defsRaw = get(row as object, 'inputOptionDefinitions');\n const propertyDefinitions = mapInputOptionDefinitionsToWidgetProperties(\n Array.isArray(defsRaw) ? (defsRaw as AXPPropertyDefinition[]) : [],\n );\n\n list.push({ id, title, description, icon, propertyDefinitions });\n }\n\n return sortByMultiLanguageString(list, (item) => item.title, this.translation.getActiveLang());\n });\n\n //#endregion\n\n //#region ---- State ----\n\n protected isInitialized = signal(false);\n\n //#endregion\n\n //#region ---- Models ----\n\n protected selectedItemIdModel = model<string>('');\n protected valuesModel = model<Record<string, unknown>>({});\n\n //#endregion\n\n //#region ---- Effects ----\n\n private loadNamedDataSourceEffect = effect((onCleanup) => {\n const name = this.dataSourceName();\n let cancelled = false;\n onCleanup(() => {\n cancelled = true;\n });\n\n void (async () => {\n try {\n if (!this.queryService.exists(name)) {\n this.asyncNamedDataSourceItems.set([]);\n return;\n }\n\n const result = await this.queryService.fetch(name, { skip: 0, take: 500 });\n if (cancelled) {\n return;\n }\n const page = runtimeQueryCollectionData(result);\n this.asyncNamedDataSourceItems.set(page?.items ?? []);\n } catch {\n if (!cancelled) {\n this.asyncNamedDataSourceItems.set([]);\n }\n }\n })();\n });\n\n private syncValueToConfigurator = effect(() => {\n const value = this.getValue();\n\n if (value && value.type) {\n const currentSelected = untracked(() => this.selectedItemIdModel());\n const currentValues = untracked(() => this.valuesModel());\n const nextOptions = (value.options ?? {}) as Record<string, unknown>;\n\n if (value.type !== currentSelected || !isEqual(nextOptions, currentValues)) {\n untracked(() => {\n this.selectedItemIdModel.set(value.type);\n this.valuesModel.set(nextOptions);\n this.isInitialized.set(true);\n });\n }\n return;\n }\n\n untracked(() => {\n if (!this.isInitialized()) {\n this.selectedItemIdModel.set('');\n this.valuesModel.set({});\n this.isInitialized.set(true);\n }\n });\n });\n\n private syncConfiguratorToValue = effect(() => {\n const selectedId = this.selectedItemIdModel();\n const values = this.valuesModel();\n\n if (!untracked(() => this.isInitialized())) {\n return;\n }\n\n const currentValue = untracked(() => this.getValue());\n const empty: AXPWidgetNode = { type: '', options: {} };\n\n if (!selectedId) {\n if (!isEqual(currentValue ?? empty, empty)) {\n untracked(() => {\n this.setValue(empty);\n });\n }\n return;\n }\n\n const next: AXPWidgetNode = {\n ...(currentValue && typeof currentValue === 'object' ? currentValue : {}),\n type: selectedId,\n options: values as AXPOptionsData,\n };\n\n if (!isEqual(next, currentValue)) {\n untracked(() => {\n this.setValue(next);\n });\n }\n });\n\n //#endregion\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { AXPColumnWidgetComponent, AXPWidgetRegistryService } from '@acorex-platform/framework-client/layout/widget-core';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
import { inject, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
+
|
|
5
|
+
//#endregion
|
|
6
|
+
//#region ---- Component ----
|
|
7
|
+
class AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent extends AXPColumnWidgetComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.widgetRegistry = inject(AXPWidgetRegistryService);
|
|
11
|
+
this.widget = computed(() => {
|
|
12
|
+
const widgetNode = this.rawValue;
|
|
13
|
+
if (!widgetNode?.type) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
return this.widgetRegistry.resolve(widgetNode.type);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}, /* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [{ debugName: "widget" }] : /* istanbul ignore next */ []));
|
|
24
|
+
this.fallbackLabel = computed(() => {
|
|
25
|
+
const widgetNode = this.rawValue;
|
|
26
|
+
if (!widgetNode?.type) {
|
|
27
|
+
return '---';
|
|
28
|
+
}
|
|
29
|
+
return widgetNode.type;
|
|
30
|
+
}, /* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [{ debugName: "fallbackLabel" }] : /* istanbul ignore next */ []));
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent, isStandalone: true, selector: "axm-assist-delegated-agent-configurator-widget-column", inputs: { rawValue: "rawValue", rowData: "rowData" }, usesInheritance: true, ngImport: i0, template: `
|
|
35
|
+
@if (widget()) {
|
|
36
|
+
<i [class]="widget()?.icon" class="fa-fw"></i>
|
|
37
|
+
<span [title]="$safeNavigationMigration(widget()?.title)" class="text-xs font-medium">{{ widget()?.title }}</span>
|
|
38
|
+
} @else {
|
|
39
|
+
<span class="text-muted">{{ fallbackLabel() }}</span>
|
|
40
|
+
}
|
|
41
|
+
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: 'axm-assist-delegated-agent-configurator-widget-column',
|
|
47
|
+
template: `
|
|
48
|
+
@if (widget()) {
|
|
49
|
+
<i [class]="widget()?.icon" class="fa-fw"></i>
|
|
50
|
+
<span [title]="$safeNavigationMigration(widget()?.title)" class="text-xs font-medium">{{ widget()?.title }}</span>
|
|
51
|
+
} @else {
|
|
52
|
+
<span class="text-muted">{{ fallbackLabel() }}</span>
|
|
53
|
+
}
|
|
54
|
+
`,
|
|
55
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
56
|
+
imports: [],
|
|
57
|
+
inputs: ['rawValue', 'rowData'],
|
|
58
|
+
}]
|
|
59
|
+
}] });
|
|
60
|
+
|
|
61
|
+
export { AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent };
|
|
62
|
+
//# sourceMappingURL=acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-column.component-CWUhBvpf.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-platform-module-ai-management-client-assist-delegated-agent-configurator-widget-column.component-CWUhBvpf.mjs","sources":["../../../../libs/modules/ai-management/client/src/lib/features/widgets/assist-delegated-agent-configurator/assist-delegated-agent-configurator-widget-column.component.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';\nimport type { AXPWidgetNode } from '@acorex-platform/framework-shared/core';\nimport { AXPColumnWidgetComponent, AXPWidgetRegistryService } from '@acorex-platform/framework-client/layout/widget-core';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\n\n//#endregion\n\n//#region ---- Component ----\n\n@Component({\n selector: 'axm-assist-delegated-agent-configurator-widget-column',\n template: `\n @if (widget()) {\n <i [class]=\"widget()?.icon\" class=\"fa-fw\"></i> \n <span [title]=\"$safeNavigationMigration(widget()?.title)\" class=\"text-xs font-medium\">{{ widget()?.title }}</span>\n } @else {\n <span class=\"text-muted\">{{ fallbackLabel() }}</span>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n inputs: ['rawValue', 'rowData'],\n})\nexport class AXMAssistDelegatedAgentConfiguratorWidgetColumnComponent extends AXPColumnWidgetComponent<AXPWidgetNode> {\n private readonly widgetRegistry = inject(AXPWidgetRegistryService);\n\n protected widget = computed<AXPWidgetConfig | undefined>(() => {\n const widgetNode = this.rawValue as AXPWidgetNode | undefined;\n if (!widgetNode?.type) {\n return undefined;\n }\n try {\n return this.widgetRegistry.resolve(widgetNode.type);\n } catch {\n return undefined;\n }\n });\n\n protected fallbackLabel = computed<string>(() => {\n const widgetNode = this.rawValue as AXPWidgetNode | undefined;\n if (!widgetNode?.type) {\n return '---';\n }\n return widgetNode.type;\n });\n}\n\n//#endregion\n"],"names":[],"mappings":";;;;AAOA;AAEA;AAgBM,MAAO,wDAAyD,SAAQ,wBAAuC,CAAA;AAdrH,IAAA,WAAA,GAAA;;AAemB,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAExD,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAA8B,MAAK;AAC5D,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAqC;AAC7D,YAAA,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AACrB,gBAAA,OAAO,SAAS;YAClB;AACA,YAAA,IAAI;gBACF,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACrD;AAAE,YAAA,MAAM;AACN,gBAAA,OAAO,SAAS;YAClB;QACF,CAAC;mFAAC;AAEQ,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAS,MAAK;AAC9C,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,QAAqC;AAC7D,YAAA,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE;AACrB,gBAAA,OAAO,KAAK;YACd;YACA,OAAO,UAAU,CAAC,IAAI;QACxB,CAAC;0FAAC;AACH,IAAA;8GAtBY,wDAAwD,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wDAAwD,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uDAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAZzD;;;;;;;AAOT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKU,wDAAwD,EAAA,UAAA,EAAA,CAAA;kBAdpE,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uDAAuD;AACjE,oBAAA,QAAQ,EAAE;;;;;;;AAOT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;AAChC,iBAAA;;;;;"}
|