@appaflytech/wappa-mcp 0.0.11 → 0.0.13
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/dist/base-components.d.ts +3 -0
- package/dist/base-components.d.ts.map +1 -1
- package/dist/base-components.js +130 -1
- package/dist/base-components.js.map +1 -1
- package/dist/client.d.ts +9 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +63 -7
- package/dist/client.js.map +1 -1
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +38 -0
- package/dist/factory.js.map +1 -1
- package/dist/tools/ai-chat-sessions.d.ts +143 -0
- package/dist/tools/ai-chat-sessions.d.ts.map +1 -0
- package/dist/tools/ai-chat-sessions.js +144 -0
- package/dist/tools/ai-chat-sessions.js.map +1 -0
- package/dist/tools/app-users.d.ts +440 -0
- package/dist/tools/app-users.d.ts.map +1 -0
- package/dist/tools/app-users.js +347 -0
- package/dist/tools/app-users.js.map +1 -0
- package/dist/tools/component-categories.d.ts +157 -0
- package/dist/tools/component-categories.d.ts.map +1 -0
- package/dist/tools/component-categories.js +162 -0
- package/dist/tools/component-categories.js.map +1 -0
- package/dist/tools/components.js +2 -2
- package/dist/tools/components.js.map +1 -1
- package/dist/tools/countries.d.ts +148 -0
- package/dist/tools/countries.d.ts.map +1 -0
- package/dist/tools/countries.js +142 -0
- package/dist/tools/countries.js.map +1 -0
- package/dist/tools/db-routines.d.ts +229 -0
- package/dist/tools/db-routines.d.ts.map +1 -0
- package/dist/tools/db-routines.js +233 -0
- package/dist/tools/db-routines.js.map +1 -0
- package/dist/tools/dynamic-entities.d.ts +228 -0
- package/dist/tools/dynamic-entities.d.ts.map +1 -1
- package/dist/tools/dynamic-entities.js +292 -14
- package/dist/tools/dynamic-entities.js.map +1 -1
- package/dist/tools/entities.d.ts +119 -0
- package/dist/tools/entities.d.ts.map +1 -1
- package/dist/tools/entities.js +266 -38
- package/dist/tools/entities.js.map +1 -1
- package/dist/tools/error-logs.d.ts +67 -0
- package/dist/tools/error-logs.d.ts.map +1 -0
- package/dist/tools/error-logs.js +74 -0
- package/dist/tools/error-logs.js.map +1 -0
- package/dist/tools/general.d.ts.map +1 -1
- package/dist/tools/general.js +218 -0
- package/dist/tools/general.js.map +1 -1
- package/dist/tools/layouts.d.ts +21 -0
- package/dist/tools/layouts.d.ts.map +1 -1
- package/dist/tools/layouts.js +19 -0
- package/dist/tools/layouts.js.map +1 -1
- package/dist/tools/operations.d.ts +184 -0
- package/dist/tools/operations.d.ts.map +1 -0
- package/dist/tools/operations.js +217 -0
- package/dist/tools/operations.js.map +1 -0
- package/dist/tools/page-entities.d.ts +522 -0
- package/dist/tools/page-entities.d.ts.map +1 -0
- package/dist/tools/page-entities.js +535 -0
- package/dist/tools/page-entities.js.map +1 -0
- package/dist/tools/pages.d.ts +226 -0
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +194 -0
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/plugins.d.ts +230 -0
- package/dist/tools/plugins.d.ts.map +1 -0
- package/dist/tools/plugins.js +218 -0
- package/dist/tools/plugins.js.map +1 -0
- package/dist/tools/queries.d.ts +266 -0
- package/dist/tools/queries.d.ts.map +1 -1
- package/dist/tools/queries.js +288 -0
- package/dist/tools/queries.js.map +1 -1
- package/dist/tools/query-categories.d.ts +192 -0
- package/dist/tools/query-categories.d.ts.map +1 -0
- package/dist/tools/query-categories.js +204 -0
- package/dist/tools/query-categories.js.map +1 -0
- package/dist/tools/regions.d.ts +148 -0
- package/dist/tools/regions.d.ts.map +1 -0
- package/dist/tools/regions.js +148 -0
- package/dist/tools/regions.js.map +1 -0
- package/dist/tools/roles.d.ts +284 -0
- package/dist/tools/roles.d.ts.map +1 -0
- package/dist/tools/roles.js +291 -0
- package/dist/tools/roles.js.map +1 -0
- package/dist/tools/settings.d.ts +160 -0
- package/dist/tools/settings.d.ts.map +1 -0
- package/dist/tools/settings.js +187 -0
- package/dist/tools/settings.js.map +1 -0
- package/dist/tools/showcases.d.ts +184 -0
- package/dist/tools/showcases.d.ts.map +1 -0
- package/dist/tools/showcases.js +179 -0
- package/dist/tools/showcases.js.map +1 -0
- package/dist/tools/storage.d.ts +297 -0
- package/dist/tools/storage.d.ts.map +1 -0
- package/dist/tools/storage.js +302 -0
- package/dist/tools/storage.js.map +1 -0
- package/dist/tools/system-tools.d.ts +124 -0
- package/dist/tools/system-tools.d.ts.map +1 -0
- package/dist/tools/system-tools.js +147 -0
- package/dist/tools/system-tools.js.map +1 -0
- package/dist/tools/system-variables.d.ts +167 -0
- package/dist/tools/system-variables.d.ts.map +1 -0
- package/dist/tools/system-variables.js +176 -0
- package/dist/tools/system-variables.js.map +1 -0
- package/dist/tools/users.d.ts +266 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +235 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/workflows.d.ts +278 -0
- package/dist/tools/workflows.d.ts.map +1 -0
- package/dist/tools/workflows.js +267 -0
- package/dist/tools/workflows.js.map +1 -0
- package/package.json +2 -2
|
@@ -97,6 +97,10 @@ export declare function getDynamicEntityTools(client: WapClient): {
|
|
|
97
97
|
type: string;
|
|
98
98
|
description: string;
|
|
99
99
|
};
|
|
100
|
+
language: {
|
|
101
|
+
type: string;
|
|
102
|
+
description: string;
|
|
103
|
+
};
|
|
100
104
|
};
|
|
101
105
|
required: string[];
|
|
102
106
|
};
|
|
@@ -104,6 +108,7 @@ export declare function getDynamicEntityTools(client: WapClient): {
|
|
|
104
108
|
entityId: string;
|
|
105
109
|
status?: string;
|
|
106
110
|
columns: unknown[];
|
|
111
|
+
language?: string;
|
|
107
112
|
}) => Promise<{
|
|
108
113
|
content: {
|
|
109
114
|
type: "text";
|
|
@@ -133,6 +138,10 @@ export declare function getDynamicEntityTools(client: WapClient): {
|
|
|
133
138
|
type: string;
|
|
134
139
|
description: string;
|
|
135
140
|
};
|
|
141
|
+
language: {
|
|
142
|
+
type: string;
|
|
143
|
+
description: string;
|
|
144
|
+
};
|
|
136
145
|
};
|
|
137
146
|
required: string[];
|
|
138
147
|
};
|
|
@@ -141,6 +150,59 @@ export declare function getDynamicEntityTools(client: WapClient): {
|
|
|
141
150
|
id: string;
|
|
142
151
|
status?: string;
|
|
143
152
|
columns: unknown[];
|
|
153
|
+
language?: string;
|
|
154
|
+
}) => Promise<{
|
|
155
|
+
content: {
|
|
156
|
+
type: "text";
|
|
157
|
+
text: string;
|
|
158
|
+
}[];
|
|
159
|
+
}>;
|
|
160
|
+
};
|
|
161
|
+
link_many_to_many_records: {
|
|
162
|
+
description: string;
|
|
163
|
+
inputSchema: {
|
|
164
|
+
type: "object";
|
|
165
|
+
properties: {
|
|
166
|
+
entityId: {
|
|
167
|
+
type: string;
|
|
168
|
+
description: string;
|
|
169
|
+
};
|
|
170
|
+
recordId: {
|
|
171
|
+
type: string;
|
|
172
|
+
description: string;
|
|
173
|
+
};
|
|
174
|
+
columnName: {
|
|
175
|
+
type: string;
|
|
176
|
+
description: string;
|
|
177
|
+
};
|
|
178
|
+
links: {
|
|
179
|
+
type: string;
|
|
180
|
+
description: string;
|
|
181
|
+
};
|
|
182
|
+
status: {
|
|
183
|
+
type: string;
|
|
184
|
+
description: string;
|
|
185
|
+
enum: string[];
|
|
186
|
+
};
|
|
187
|
+
extraColumns: {
|
|
188
|
+
type: string;
|
|
189
|
+
description: string;
|
|
190
|
+
};
|
|
191
|
+
language: {
|
|
192
|
+
type: string;
|
|
193
|
+
description: string;
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
required: string[];
|
|
197
|
+
};
|
|
198
|
+
handler: (args: {
|
|
199
|
+
entityId: string;
|
|
200
|
+
recordId?: string;
|
|
201
|
+
columnName: string;
|
|
202
|
+
links: unknown[];
|
|
203
|
+
status?: string;
|
|
204
|
+
extraColumns?: unknown[];
|
|
205
|
+
language?: string;
|
|
144
206
|
}) => Promise<{
|
|
145
207
|
content: {
|
|
146
208
|
type: "text";
|
|
@@ -314,5 +376,171 @@ export declare function getDynamicEntityTools(client: WapClient): {
|
|
|
314
376
|
}[];
|
|
315
377
|
}>;
|
|
316
378
|
};
|
|
379
|
+
bulk_create_dynamic_entity_localizations: {
|
|
380
|
+
description: string;
|
|
381
|
+
inputSchema: {
|
|
382
|
+
type: "object";
|
|
383
|
+
properties: {
|
|
384
|
+
entityId: {
|
|
385
|
+
type: string;
|
|
386
|
+
description: string;
|
|
387
|
+
};
|
|
388
|
+
sourceLanguageId: {
|
|
389
|
+
type: string;
|
|
390
|
+
description: string;
|
|
391
|
+
};
|
|
392
|
+
useTranslateApi: {
|
|
393
|
+
type: string;
|
|
394
|
+
description: string;
|
|
395
|
+
};
|
|
396
|
+
};
|
|
397
|
+
required: string[];
|
|
398
|
+
};
|
|
399
|
+
handler: (args: {
|
|
400
|
+
entityId: string;
|
|
401
|
+
sourceLanguageId: string;
|
|
402
|
+
useTranslateApi?: boolean;
|
|
403
|
+
}) => Promise<{
|
|
404
|
+
content: {
|
|
405
|
+
type: "text";
|
|
406
|
+
text: string;
|
|
407
|
+
}[];
|
|
408
|
+
}>;
|
|
409
|
+
};
|
|
410
|
+
get_dynamic_entity_as_query: {
|
|
411
|
+
description: string;
|
|
412
|
+
inputSchema: {
|
|
413
|
+
type: "object";
|
|
414
|
+
properties: {
|
|
415
|
+
entityId: {
|
|
416
|
+
type: string;
|
|
417
|
+
description: string;
|
|
418
|
+
};
|
|
419
|
+
status: {
|
|
420
|
+
type: string;
|
|
421
|
+
description: string;
|
|
422
|
+
enum: string[];
|
|
423
|
+
};
|
|
424
|
+
pageIndex: {
|
|
425
|
+
type: string;
|
|
426
|
+
description: string;
|
|
427
|
+
};
|
|
428
|
+
pageLength: {
|
|
429
|
+
type: string;
|
|
430
|
+
description: string;
|
|
431
|
+
};
|
|
432
|
+
order: {
|
|
433
|
+
type: string;
|
|
434
|
+
description: string;
|
|
435
|
+
};
|
|
436
|
+
isDescending: {
|
|
437
|
+
type: string;
|
|
438
|
+
description: string;
|
|
439
|
+
};
|
|
440
|
+
filters: {
|
|
441
|
+
type: string;
|
|
442
|
+
description: string;
|
|
443
|
+
};
|
|
444
|
+
};
|
|
445
|
+
required: string[];
|
|
446
|
+
};
|
|
447
|
+
handler: (args: {
|
|
448
|
+
entityId: string;
|
|
449
|
+
status?: string;
|
|
450
|
+
pageIndex?: number;
|
|
451
|
+
pageLength?: number;
|
|
452
|
+
order?: string;
|
|
453
|
+
isDescending?: boolean;
|
|
454
|
+
filters?: Record<string, unknown>;
|
|
455
|
+
}) => Promise<{
|
|
456
|
+
content: {
|
|
457
|
+
type: "text";
|
|
458
|
+
text: string;
|
|
459
|
+
}[];
|
|
460
|
+
}>;
|
|
461
|
+
};
|
|
462
|
+
list_dynamic_entity_drafts: {
|
|
463
|
+
description: string;
|
|
464
|
+
inputSchema: {
|
|
465
|
+
type: "object";
|
|
466
|
+
properties: {
|
|
467
|
+
entityId: {
|
|
468
|
+
type: string;
|
|
469
|
+
description: string;
|
|
470
|
+
};
|
|
471
|
+
id: {
|
|
472
|
+
type: string;
|
|
473
|
+
description: string;
|
|
474
|
+
};
|
|
475
|
+
pageIndex: {
|
|
476
|
+
type: string;
|
|
477
|
+
description: string;
|
|
478
|
+
};
|
|
479
|
+
pageLength: {
|
|
480
|
+
type: string;
|
|
481
|
+
description: string;
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
required: string[];
|
|
485
|
+
};
|
|
486
|
+
handler: (args: {
|
|
487
|
+
entityId: string;
|
|
488
|
+
id: string;
|
|
489
|
+
pageIndex?: number;
|
|
490
|
+
pageLength?: number;
|
|
491
|
+
}) => Promise<{
|
|
492
|
+
content: {
|
|
493
|
+
type: "text";
|
|
494
|
+
text: string;
|
|
495
|
+
}[];
|
|
496
|
+
}>;
|
|
497
|
+
};
|
|
498
|
+
delete_dynamic_entity_version: {
|
|
499
|
+
description: string;
|
|
500
|
+
inputSchema: {
|
|
501
|
+
type: "object";
|
|
502
|
+
properties: {
|
|
503
|
+
entityId: {
|
|
504
|
+
type: string;
|
|
505
|
+
description: string;
|
|
506
|
+
};
|
|
507
|
+
id: {
|
|
508
|
+
type: string;
|
|
509
|
+
description: string;
|
|
510
|
+
};
|
|
511
|
+
};
|
|
512
|
+
required: string[];
|
|
513
|
+
};
|
|
514
|
+
handler: (args: {
|
|
515
|
+
entityId: string;
|
|
516
|
+
id: string;
|
|
517
|
+
}) => Promise<{
|
|
518
|
+
content: {
|
|
519
|
+
type: "text";
|
|
520
|
+
text: string;
|
|
521
|
+
}[];
|
|
522
|
+
}>;
|
|
523
|
+
};
|
|
524
|
+
get_dynamic_entity_order_info: {
|
|
525
|
+
description: string;
|
|
526
|
+
inputSchema: {
|
|
527
|
+
type: "object";
|
|
528
|
+
properties: {
|
|
529
|
+
entityId: {
|
|
530
|
+
type: string;
|
|
531
|
+
description: string;
|
|
532
|
+
};
|
|
533
|
+
};
|
|
534
|
+
required: string[];
|
|
535
|
+
};
|
|
536
|
+
handler: (args: {
|
|
537
|
+
entityId: string;
|
|
538
|
+
}) => Promise<{
|
|
539
|
+
content: {
|
|
540
|
+
type: "text";
|
|
541
|
+
text: string;
|
|
542
|
+
}[];
|
|
543
|
+
}>;
|
|
544
|
+
};
|
|
317
545
|
};
|
|
318
546
|
//# sourceMappingURL=dynamic-entities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-entities.d.ts","sourceRoot":"","sources":["../../src/tools/dynamic-entities.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic-entities.d.ts","sourceRoot":"","sources":["../../src/tools/dynamic-entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,11 +4,60 @@
|
|
|
4
4
|
* entityId = the Entity schema GUID (table definition)
|
|
5
5
|
* id = the individual record GUID
|
|
6
6
|
*/
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Maps caller column inputs to the API's `{ name, data }` shape.
|
|
9
|
+
*
|
|
10
|
+
* Three input shapes, distinguished by EXPLICIT signal fields (so a plain
|
|
11
|
+
* scalar — even one whose value is an array, e.g. a multiple Image gallery —
|
|
12
|
+
* is never misclassified):
|
|
13
|
+
*
|
|
14
|
+
* 1. Scalar (default): { key|name, value }
|
|
15
|
+
* → data: { refs: [], value }
|
|
16
|
+
* 2. Single reference: { key|name, refId } (one-to-one / one-to-many)
|
|
17
|
+
* → data: { refs: [refId], value: refId } (refId = referenced RECORD id; null clears)
|
|
18
|
+
* 3. Many-to-many links: { key|name, links: [ ... ] } (one element = one junction/ara-tablo row)
|
|
19
|
+
* → data: [ { type, label, value, refs, columns }, ... ]
|
|
20
|
+
* each link is a record-id string, or { value|ref|id, label?, columns? } where
|
|
21
|
+
* `columns` are per-link extra junction column VALUES ([{ key|name, value }]).
|
|
22
|
+
*/
|
|
23
|
+
const mapJunctionColumns = (cols) => Array.isArray(cols)
|
|
24
|
+
? cols.map((c) => ({
|
|
25
|
+
name: c.key ?? c.name,
|
|
26
|
+
data: { refs: [], value: c.value ?? null },
|
|
27
|
+
}))
|
|
28
|
+
: [];
|
|
29
|
+
const mapLink = (link) => {
|
|
30
|
+
const isObj = link !== null && typeof link === "object";
|
|
31
|
+
const l = (isObj ? link : {});
|
|
32
|
+
const id = isObj ? (l.value ?? l.ref ?? l.id) : link;
|
|
33
|
+
return {
|
|
34
|
+
type: l.type ?? "category",
|
|
35
|
+
label: l.label ?? "",
|
|
36
|
+
value: id ?? null,
|
|
37
|
+
refs: id === undefined || id === null ? [] : [id],
|
|
38
|
+
columns: mapJunctionColumns(l.columns),
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
const mapColumnsForApi = (columns) => columns.map((col) => {
|
|
42
|
+
const name = col.key ?? col.name;
|
|
43
|
+
// Many-to-many: explicit `links` array → one junction row per element.
|
|
44
|
+
if (Array.isArray(col.links)) {
|
|
45
|
+
return { name, data: col.links.map(mapLink) };
|
|
46
|
+
}
|
|
47
|
+
// Single reference (one-to-one / one-to-many): explicit `refId`.
|
|
48
|
+
if ("refId" in col) {
|
|
49
|
+
const id = col.refId;
|
|
50
|
+
return {
|
|
51
|
+
name,
|
|
52
|
+
data: {
|
|
53
|
+
refs: id === null || id === undefined ? [] : [id],
|
|
54
|
+
value: id ?? null,
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
// Scalar (default — unchanged shape).
|
|
59
|
+
return { name, data: { refs: [], value: col.value ?? null } };
|
|
60
|
+
});
|
|
12
61
|
export function getDynamicEntityTools(client) {
|
|
13
62
|
return {
|
|
14
63
|
// ─── List Records ─────────────────────────────────────
|
|
@@ -85,16 +134,23 @@ export function getDynamicEntityTools(client) {
|
|
|
85
134
|
// ─── Create Record ────────────────────────────────────
|
|
86
135
|
create_dynamic_entity_record: {
|
|
87
136
|
description: `Yeni bir entity kaydı oluşturur.
|
|
88
|
-
'columns': Entity şemasındaki kolonlara göre doldurulacak alanlar.
|
|
89
|
-
|
|
137
|
+
'columns': Entity şemasındaki kolonlara göre doldurulacak alanlar. Üç kolon biçimi:
|
|
138
|
+
1) Normal alan: { "key": "kolonAdı", "value": "değer" }
|
|
139
|
+
2) Tekil ilişki: { "key": "kolonAdı", "refId": "<hedefKayıtId>" } (birebir / bireçok reference kolonu; hedef ENTITY KAYIT ID'si)
|
|
140
|
+
3) Çoka çok ilişki: { "key": "kolonAdı", "links": ["<hedefKayıtId1>", { "value": "<hedefKayıtId2>", "columns": [{ "key": "Weight", "value": 5 }] }] }
|
|
141
|
+
- links'teki her eleman ara (junction) tabloda bir satırdır
|
|
142
|
+
- link'in opsiyonel 'columns' alanı = o bağlantıya ait ara tablo EK kolon değerleri
|
|
90
143
|
'status': "Published" (yayında) veya "Draft" (taslak).
|
|
91
144
|
|
|
92
145
|
Örnek columns:
|
|
93
146
|
[
|
|
94
147
|
{ "key": "Title", "value": "Merhaba Dünya" },
|
|
95
|
-
{ "key": "
|
|
148
|
+
{ "key": "Author", "refId": "a1b2-...-author-record-id" },
|
|
149
|
+
{ "key": "Tags", "links": ["tag-id-1", { "value": "tag-id-2", "columns": [{ "key": "Weight", "value": 5 }] }] },
|
|
96
150
|
{ "key": "Order", "value": 0 }
|
|
97
|
-
]
|
|
151
|
+
]
|
|
152
|
+
|
|
153
|
+
ÇOK DİLLİ (localization): 'language' verilirse kayıt o hedef dil için yazılır (Accept-Language). Hem localized MAIN kolonlar hem de çoka çok ARA TABLOSUNDAKİ localized ek kolonlar bu dilde yazılır. Localized ara-tablo kolonunu yazmak için değeri link'in 'columns' dizisine normal şekilde koyman yeterli — backend, entity şemasındaki o sub-kolonun localization bayrağına göre değeri {junction}_Localization tablosuna yönlendirir. Tipik akış: önce varsayılan dilde oluştur, sonra her hedef dil için 'language' ile güncelle.`,
|
|
98
154
|
inputSchema: {
|
|
99
155
|
type: "object",
|
|
100
156
|
properties: {
|
|
@@ -106,7 +162,11 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
106
162
|
},
|
|
107
163
|
columns: {
|
|
108
164
|
type: "array",
|
|
109
|
-
description: 'Kolon değerleri:
|
|
165
|
+
description: 'Kolon değerleri: normal { key, value }; tekil ilişki { key, refId }; çoka çok { key, links:[...] }',
|
|
166
|
+
},
|
|
167
|
+
language: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: 'Opsiyonel hedef dil (Accept-Language), örn: "en-us". Verilmezse istemcinin varsayılan dili. Localized kolonları ve ara-tablo localized ek kolonlarını bu dilde yazmak için kullanın.',
|
|
110
170
|
},
|
|
111
171
|
},
|
|
112
172
|
required: ["entityId", "columns"],
|
|
@@ -115,7 +175,7 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
115
175
|
const result = await client.createDynamicEntity(args.entityId, {
|
|
116
176
|
status: args.status ?? "Published",
|
|
117
177
|
columns: mapColumnsForApi(args.columns),
|
|
118
|
-
});
|
|
178
|
+
}, args.language);
|
|
119
179
|
return {
|
|
120
180
|
content: [
|
|
121
181
|
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
@@ -125,7 +185,10 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
125
185
|
},
|
|
126
186
|
// ─── Update Record ────────────────────────────────────
|
|
127
187
|
update_dynamic_entity_record: {
|
|
128
|
-
description:
|
|
188
|
+
description: `Mevcut bir entity kaydını günceller. Tüm alanları içeren columns dizisi gönderin.
|
|
189
|
+
Kolon biçimleri create_dynamic_entity_record ile aynı: normal { key, value }; tekil ilişki { key, refId }; çoka çok { key, links:[...] }.
|
|
190
|
+
DİKKAT: Bir çoka çok kolonu için gönderilen 'links' o kolonun bağlantılarını TAM olarak değiştirir (listede olmayan eski bağlantılar kaldırılır).
|
|
191
|
+
ÇOK DİLLİ: 'language' verilirse güncelleme o hedef dil için yapılır; localized main kolonlar ve ara-tablo localized ek kolonları o dile yazılır (mevcut çoka çok bağlantısının {junction}_Localization satırı eklenir).`,
|
|
129
192
|
inputSchema: {
|
|
130
193
|
type: "object",
|
|
131
194
|
properties: {
|
|
@@ -138,7 +201,11 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
138
201
|
},
|
|
139
202
|
columns: {
|
|
140
203
|
type: "array",
|
|
141
|
-
description: 'Güncellenmiş kolon değerleri:
|
|
204
|
+
description: 'Güncellenmiş kolon değerleri: normal { key, value }; tekil ilişki { key, refId }; çoka çok { key, links:[...] }',
|
|
205
|
+
},
|
|
206
|
+
language: {
|
|
207
|
+
type: "string",
|
|
208
|
+
description: 'Opsiyonel hedef dil (Accept-Language), örn: "en-us". Localized kolonları/ara-tablo localized ek kolonlarını bu dilde yazmak için kullanın.',
|
|
142
209
|
},
|
|
143
210
|
},
|
|
144
211
|
required: ["entityId", "id", "columns"],
|
|
@@ -147,7 +214,71 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
147
214
|
const result = await client.updateDynamicEntity(args.entityId, args.id, {
|
|
148
215
|
status: args.status ?? "Published",
|
|
149
216
|
columns: mapColumnsForApi(args.columns),
|
|
150
|
-
});
|
|
217
|
+
}, args.language);
|
|
218
|
+
return {
|
|
219
|
+
content: [
|
|
220
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
221
|
+
],
|
|
222
|
+
};
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
// ─── Link Many-to-Many Records (junction / ara tablo) ──
|
|
226
|
+
link_many_to_many_records: {
|
|
227
|
+
description: `Bir kaydın ÇOKA ÇOK (many-to-many) ilişki kolonuna bağlı hedef kayıtları ayarlar — ara (junction) tabloya satır ekler/günceller.
|
|
228
|
+
'columnName': Kaynak entity'deki reference (type:11, relationType:2) kolonunun adı.
|
|
229
|
+
'links': Bağlanacak HEDEF kayıt ID'leri. Her eleman ara tabloda bir satırdır:
|
|
230
|
+
- sadece ID: "<hedefKayıtId>"
|
|
231
|
+
- ek kolonlu: { "value": "<hedefKayıtId>", "columns": [{ "key": "Weight", "value": 5 }] }
|
|
232
|
+
'recordId' verilirse mevcut kayıt güncellenir ve o kolonun bağlantıları TAM olarak bu listeyle değiştirilir (listede olmayanlar kaldırılır → bağlantı silmek için kalan listeyi gönderin, hepsini silmek için links:[]).
|
|
233
|
+
'recordId' verilmezse yeni bir kayıt oluşturulur; bu durumda zorunlu diğer alanları 'extraColumns' ile gönderin.
|
|
234
|
+
ÇOK DİLLİ ARA TABLO: Ara tablonun LOCALIZED ek kolonu varsa, değeri ilgili link'in 'columns' dizisine koyup 'language' (hedef dil) verin — backend o değeri {junction}_Localization tablosuna ilgili dilde yazar. Önce varsayılan dilde bağla, sonra her dil için 'language' ile tekrar çağır.
|
|
235
|
+
Not: Bu tool, create/update_dynamic_entity_record ile aynı kayıt endpoint'ini kullanan ergonomik bir kısayoldur; ayrı bir junction endpoint'i yoktur (admin-ui ile birebir).`,
|
|
236
|
+
inputSchema: {
|
|
237
|
+
type: "object",
|
|
238
|
+
properties: {
|
|
239
|
+
entityId: {
|
|
240
|
+
type: "string",
|
|
241
|
+
description: "Kaynak entity şema ID (GUID)",
|
|
242
|
+
},
|
|
243
|
+
recordId: {
|
|
244
|
+
type: "string",
|
|
245
|
+
description: "Güncellenecek kayıt ID. Verilmezse yeni kayıt oluşturulur.",
|
|
246
|
+
},
|
|
247
|
+
columnName: {
|
|
248
|
+
type: "string",
|
|
249
|
+
description: "Çoka çok reference kolonunun adı",
|
|
250
|
+
},
|
|
251
|
+
links: {
|
|
252
|
+
type: "array",
|
|
253
|
+
description: 'Hedef kayıt ID listesi: ["id1", { "value": "id2", "columns": [{ "key": "...", "value": ... }] }]. Localized ara-tablo ek kolonu için değeri link\'in columns dizisine koyun + language verin.',
|
|
254
|
+
},
|
|
255
|
+
status: {
|
|
256
|
+
type: "string",
|
|
257
|
+
description: "Kayıt durumu: Published | Draft",
|
|
258
|
+
enum: ["Published", "Draft"],
|
|
259
|
+
},
|
|
260
|
+
extraColumns: {
|
|
261
|
+
type: "array",
|
|
262
|
+
description: 'Yeni kayıt oluştururken ana kaydın diğer kolon değerleri: [{ "key": "...", "value": ... }]',
|
|
263
|
+
},
|
|
264
|
+
language: {
|
|
265
|
+
type: "string",
|
|
266
|
+
description: 'Opsiyonel hedef dil (Accept-Language), örn: "en-us". Ara tablonun localized ek kolonlarını bu dilde yazmak için kullanın.',
|
|
267
|
+
},
|
|
268
|
+
},
|
|
269
|
+
required: ["entityId", "columnName", "links"],
|
|
270
|
+
},
|
|
271
|
+
handler: async (args) => {
|
|
272
|
+
const body = {
|
|
273
|
+
status: args.status ?? "Published",
|
|
274
|
+
columns: mapColumnsForApi([
|
|
275
|
+
{ name: args.columnName, links: args.links },
|
|
276
|
+
...(args.extraColumns ?? []),
|
|
277
|
+
]),
|
|
278
|
+
};
|
|
279
|
+
const result = args.recordId
|
|
280
|
+
? await client.updateDynamicEntity(args.entityId, args.recordId, body, args.language)
|
|
281
|
+
: await client.createDynamicEntity(args.entityId, body, args.language);
|
|
151
282
|
return {
|
|
152
283
|
content: [
|
|
153
284
|
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
@@ -353,6 +484,153 @@ Her kolon: { key: "kolonAdı", value: "değer" } formatında.
|
|
|
353
484
|
};
|
|
354
485
|
},
|
|
355
486
|
},
|
|
487
|
+
// ─── Bulk Localizations ───────────────────────────────
|
|
488
|
+
bulk_create_dynamic_entity_localizations: {
|
|
489
|
+
description: "Bir entity'deki tüm kayıtların belirli bir dile toplu çevirisini oluşturur. Opsiyonel olarak otomatik çeviri API kullanır. Sonuç: oluşturulan/atlanan/başarısız kayıt sayıları.",
|
|
490
|
+
inputSchema: {
|
|
491
|
+
type: "object",
|
|
492
|
+
properties: {
|
|
493
|
+
entityId: { type: "string", description: "Entity şema ID (GUID)" },
|
|
494
|
+
sourceLanguageId: {
|
|
495
|
+
type: "string",
|
|
496
|
+
description: 'Kaynak dil kodu (örn: "tr-tr", "en-us")',
|
|
497
|
+
},
|
|
498
|
+
useTranslateApi: {
|
|
499
|
+
type: "boolean",
|
|
500
|
+
description: "Otomatik çeviri API kullanılsın mı?",
|
|
501
|
+
},
|
|
502
|
+
},
|
|
503
|
+
required: ["entityId", "sourceLanguageId"],
|
|
504
|
+
},
|
|
505
|
+
handler: async (args) => {
|
|
506
|
+
const result = await client.request("POST", `/{site}/DynamicEntities/${args.entityId}/bulk-localizations`, {
|
|
507
|
+
sourceLanguageId: args.sourceLanguageId,
|
|
508
|
+
useTranslateApi: args.useTranslateApi,
|
|
509
|
+
});
|
|
510
|
+
return {
|
|
511
|
+
content: [
|
|
512
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
513
|
+
],
|
|
514
|
+
};
|
|
515
|
+
},
|
|
516
|
+
},
|
|
517
|
+
// ─── Get As Query ─────────────────────────────────────
|
|
518
|
+
get_dynamic_entity_as_query: {
|
|
519
|
+
description: `Bir entity'nin kayıtlarını query (sorgu) formatında getirir.
|
|
520
|
+
'entityId': Entity şema ID'si.
|
|
521
|
+
Sonuç, query çıktısına uygun düz yapıda döner. Filtreleme için ek query parametreleri kolon adlarıyla gönderilebilir.`,
|
|
522
|
+
inputSchema: {
|
|
523
|
+
type: "object",
|
|
524
|
+
properties: {
|
|
525
|
+
entityId: { type: "string", description: "Entity şema ID (GUID)" },
|
|
526
|
+
status: {
|
|
527
|
+
type: "string",
|
|
528
|
+
description: "Durum filtresi: Published | Draft | Deleted",
|
|
529
|
+
enum: ["Published", "Draft", "Deleted"],
|
|
530
|
+
},
|
|
531
|
+
pageIndex: { type: "number", description: "Sayfa numarası (0-based)" },
|
|
532
|
+
pageLength: { type: "number", description: "Sayfa boyutu" },
|
|
533
|
+
order: { type: "string", description: "Sıralama alanı" },
|
|
534
|
+
isDescending: { type: "boolean", description: "Azalan sıralama mı?" },
|
|
535
|
+
filters: {
|
|
536
|
+
type: "object",
|
|
537
|
+
description: 'Opsiyonel ek filtreler. Kolon adı -> değer (örn: { "Title": "abc" }) query string olarak eklenir.',
|
|
538
|
+
},
|
|
539
|
+
},
|
|
540
|
+
required: ["entityId"],
|
|
541
|
+
},
|
|
542
|
+
handler: async (args) => {
|
|
543
|
+
const params = {};
|
|
544
|
+
if (args.status)
|
|
545
|
+
params.status = args.status;
|
|
546
|
+
if (args.pageIndex !== undefined)
|
|
547
|
+
params.pageIndex = String(args.pageIndex);
|
|
548
|
+
if (args.pageLength !== undefined)
|
|
549
|
+
params.pageLength = String(args.pageLength);
|
|
550
|
+
if (args.order)
|
|
551
|
+
params.order = args.order;
|
|
552
|
+
if (args.isDescending !== undefined)
|
|
553
|
+
params.isDescending = String(args.isDescending);
|
|
554
|
+
if (args.filters) {
|
|
555
|
+
for (const [k, v] of Object.entries(args.filters)) {
|
|
556
|
+
if (v !== undefined && v !== null)
|
|
557
|
+
params[k] = String(v);
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
const result = await client.request("GET", `/{site}/DynamicEntities/${args.entityId}/get-as-query`, undefined, params);
|
|
561
|
+
return {
|
|
562
|
+
content: [
|
|
563
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
564
|
+
],
|
|
565
|
+
};
|
|
566
|
+
},
|
|
567
|
+
},
|
|
568
|
+
// ─── List Drafts ──────────────────────────────────────
|
|
569
|
+
list_dynamic_entity_drafts: {
|
|
570
|
+
description: "Bir entity kaydının taslak (draft) versiyonlarını listeler. 'id' canlı kaydın ID'si.",
|
|
571
|
+
inputSchema: {
|
|
572
|
+
type: "object",
|
|
573
|
+
properties: {
|
|
574
|
+
entityId: { type: "string", description: "Entity şema ID (GUID)" },
|
|
575
|
+
id: { type: "string", description: "Kayıt ID (GUID)" },
|
|
576
|
+
pageIndex: { type: "number", description: "Sayfa numarası (0-based)" },
|
|
577
|
+
pageLength: { type: "number", description: "Sayfa boyutu" },
|
|
578
|
+
},
|
|
579
|
+
required: ["entityId", "id"],
|
|
580
|
+
},
|
|
581
|
+
handler: async (args) => {
|
|
582
|
+
const params = {};
|
|
583
|
+
if (args.pageIndex !== undefined)
|
|
584
|
+
params.pageIndex = String(args.pageIndex);
|
|
585
|
+
if (args.pageLength !== undefined)
|
|
586
|
+
params.pageLength = String(args.pageLength);
|
|
587
|
+
const result = await client.request("GET", `/{site}/DynamicEntities/${args.entityId}/${args.id}/drafts`, undefined, params);
|
|
588
|
+
return {
|
|
589
|
+
content: [
|
|
590
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
591
|
+
],
|
|
592
|
+
};
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
// ─── Delete Version ───────────────────────────────────
|
|
596
|
+
delete_dynamic_entity_version: {
|
|
597
|
+
description: "Bir entity kaydının belirli bir versiyonunu (history) siler. 'id' versiyon (history) ID'sidir.",
|
|
598
|
+
inputSchema: {
|
|
599
|
+
type: "object",
|
|
600
|
+
properties: {
|
|
601
|
+
entityId: { type: "string", description: "Entity şema ID (GUID)" },
|
|
602
|
+
id: { type: "string", description: "Silinecek versiyon (history) ID" },
|
|
603
|
+
},
|
|
604
|
+
required: ["entityId", "id"],
|
|
605
|
+
},
|
|
606
|
+
handler: async (args) => {
|
|
607
|
+
const result = await client.request("DELETE", `/{site}/DynamicEntities/${args.entityId}/versions/${args.id}`);
|
|
608
|
+
return {
|
|
609
|
+
content: [
|
|
610
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
611
|
+
],
|
|
612
|
+
};
|
|
613
|
+
},
|
|
614
|
+
},
|
|
615
|
+
// ─── Order Info ───────────────────────────────────────
|
|
616
|
+
get_dynamic_entity_order_info: {
|
|
617
|
+
description: "Bir entity'nin sıralama (order) bilgisini getirir; yeni kayıt için maksimum sıra değeri gibi bilgileri döner.",
|
|
618
|
+
inputSchema: {
|
|
619
|
+
type: "object",
|
|
620
|
+
properties: {
|
|
621
|
+
entityId: { type: "string", description: "Entity şema ID (GUID)" },
|
|
622
|
+
},
|
|
623
|
+
required: ["entityId"],
|
|
624
|
+
},
|
|
625
|
+
handler: async (args) => {
|
|
626
|
+
const result = await client.request("GET", `/{site}/DynamicEntities/${args.entityId}/order-info`);
|
|
627
|
+
return {
|
|
628
|
+
content: [
|
|
629
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
630
|
+
],
|
|
631
|
+
};
|
|
632
|
+
},
|
|
633
|
+
},
|
|
356
634
|
};
|
|
357
635
|
}
|
|
358
636
|
//# sourceMappingURL=dynamic-entities.js.map
|