@appaflytech/wappa-mcp 0.0.1
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/.env.example +5 -0
- package/LICENSE +21 -0
- package/README.md +200 -0
- package/dist/auth.d.ts +20 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +58 -0
- package/dist/auth.js.map +1 -0
- package/dist/base-components.d.ts +52 -0
- package/dist/base-components.d.ts.map +1 -0
- package/dist/base-components.js +552 -0
- package/dist/base-components.js.map +1 -0
- package/dist/client.d.ts +141 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +341 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +287 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/components.d.ts +217 -0
- package/dist/tools/components.d.ts.map +1 -0
- package/dist/tools/components.js +258 -0
- package/dist/tools/components.js.map +1 -0
- package/dist/tools/dynamic-entities.d.ts +308 -0
- package/dist/tools/dynamic-entities.d.ts.map +1 -0
- package/dist/tools/dynamic-entities.js +278 -0
- package/dist/tools/dynamic-entities.js.map +1 -0
- package/dist/tools/entities.d.ts +212 -0
- package/dist/tools/entities.d.ts.map +1 -0
- package/dist/tools/entities.js +223 -0
- package/dist/tools/entities.js.map +1 -0
- package/dist/tools/general.d.ts +93 -0
- package/dist/tools/general.d.ts.map +1 -0
- package/dist/tools/general.js +218 -0
- package/dist/tools/general.js.map +1 -0
- package/dist/tools/languages.d.ts +157 -0
- package/dist/tools/languages.d.ts.map +1 -0
- package/dist/tools/languages.js +142 -0
- package/dist/tools/languages.js.map +1 -0
- package/dist/tools/layouts.d.ts +244 -0
- package/dist/tools/layouts.d.ts.map +1 -0
- package/dist/tools/layouts.js +218 -0
- package/dist/tools/layouts.js.map +1 -0
- package/dist/tools/menus.d.ts +154 -0
- package/dist/tools/menus.d.ts.map +1 -0
- package/dist/tools/menus.js +173 -0
- package/dist/tools/menus.js.map +1 -0
- package/dist/tools/pages.d.ts +472 -0
- package/dist/tools/pages.d.ts.map +1 -0
- package/dist/tools/pages.js +465 -0
- package/dist/tools/pages.js.map +1 -0
- package/dist/tools/queries.d.ts +221 -0
- package/dist/tools/queries.d.ts.map +1 -0
- package/dist/tools/queries.js +210 -0
- package/dist/tools/queries.js.map +1 -0
- package/dist/tools/sites.d.ts +187 -0
- package/dist/tools/sites.d.ts.map +1 -0
- package/dist/tools/sites.js +167 -0
- package/dist/tools/sites.js.map +1 -0
- package/dist/tools/themes.d.ts +182 -0
- package/dist/tools/themes.d.ts.map +1 -0
- package/dist/tools/themes.js +175 -0
- package/dist/tools/themes.js.map +1 -0
- package/dist/tools/widgets.d.ts +216 -0
- package/dist/tools/widgets.d.ts.map +1 -0
- package/dist/tools/widgets.js +182 -0
- package/dist/tools/widgets.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools for WAP Entity Schema CRUD operations
|
|
3
|
+
* Entities = database table schema definitions (columns, relations, UI flows)
|
|
4
|
+
* NOT to be confused with DynamicEntities which are the actual data records.
|
|
5
|
+
*/
|
|
6
|
+
export function getEntityTools(client) {
|
|
7
|
+
return {
|
|
8
|
+
// ─── List Entities ────────────────────────────────────
|
|
9
|
+
list_entities: {
|
|
10
|
+
description: `WAP entity şemalarını listeler. Entity'ler, veritabanı tablo tanımlarıdır.
|
|
11
|
+
Her entity; kolonlar, ilişkiler ve UI akış tanımları (schema.flows) içerir.
|
|
12
|
+
Gerçek veri kayıtları için "list_dynamic_entity_records" kullanın.`,
|
|
13
|
+
inputSchema: {
|
|
14
|
+
type: "object",
|
|
15
|
+
properties: {
|
|
16
|
+
title: { type: "string", description: "Entity başlığı ile filtrele" },
|
|
17
|
+
table: { type: "string", description: "Tablo adı ile filtrele" },
|
|
18
|
+
hasPageRelation: {
|
|
19
|
+
type: "boolean",
|
|
20
|
+
description: "Sayfa ilişkisi olan entity'leri filtrele",
|
|
21
|
+
},
|
|
22
|
+
pageIndex: {
|
|
23
|
+
type: "number",
|
|
24
|
+
description: "Sayfa numarası (0-based)",
|
|
25
|
+
},
|
|
26
|
+
pageLength: { type: "number", description: "Sayfa boyutu" },
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
handler: async (args) => {
|
|
30
|
+
const params = {};
|
|
31
|
+
if (args.title)
|
|
32
|
+
params.title = args.title;
|
|
33
|
+
if (args.table)
|
|
34
|
+
params.table = args.table;
|
|
35
|
+
if (args.hasPageRelation !== undefined)
|
|
36
|
+
params.hasPageRelation = String(args.hasPageRelation);
|
|
37
|
+
if (args.pageIndex !== undefined)
|
|
38
|
+
params.pageIndex = String(args.pageIndex);
|
|
39
|
+
if (args.pageLength !== undefined)
|
|
40
|
+
params.pageLength = String(args.pageLength);
|
|
41
|
+
const result = await client.getEntities(params);
|
|
42
|
+
return {
|
|
43
|
+
content: [
|
|
44
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
45
|
+
],
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
// ─── Get Entity ───────────────────────────────────────
|
|
50
|
+
get_entity: {
|
|
51
|
+
description: "Belirli bir entity şemasının tüm detaylarını getirir: kolonlar, ilişkiler, UI akış tanımları.",
|
|
52
|
+
inputSchema: {
|
|
53
|
+
type: "object",
|
|
54
|
+
properties: {
|
|
55
|
+
id: { type: "string", description: "Entity ID (GUID)" },
|
|
56
|
+
},
|
|
57
|
+
required: ["id"],
|
|
58
|
+
},
|
|
59
|
+
handler: async (args) => {
|
|
60
|
+
const result = await client.getEntity(args.id);
|
|
61
|
+
return {
|
|
62
|
+
content: [
|
|
63
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
64
|
+
],
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
},
|
|
68
|
+
// ─── Create Entity ────────────────────────────────────
|
|
69
|
+
create_entity: {
|
|
70
|
+
description: `Yeni bir entity şeması oluşturur ve veritabanında ilgili tabloyu migrate eder.
|
|
71
|
+
'table': PostgreSQL tablo adı (snake_case, örn: "blog_posts").
|
|
72
|
+
'columns': Her kolon için tip, zorunluluk, ilişki bilgileri.
|
|
73
|
+
'schema': UI akış tanımları (admin paneli form/liste görünümü için).
|
|
74
|
+
'hasPageRelation': Bu entity sayfalarla ilişkilendirilebilir mi (URL slugs için).
|
|
75
|
+
Column tipleri: string, number, boolean, date, datetime, file, image, relation, array.`,
|
|
76
|
+
inputSchema: {
|
|
77
|
+
type: "object",
|
|
78
|
+
properties: {
|
|
79
|
+
title: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: 'Entity başlığı (Türkçe, örn: "Blog Yazıları")',
|
|
82
|
+
},
|
|
83
|
+
table: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: 'PostgreSQL tablo adı (snake_case, örn: "blog_posts")',
|
|
86
|
+
},
|
|
87
|
+
hasPageRelation: {
|
|
88
|
+
type: "boolean",
|
|
89
|
+
description: "Sayfalarla ilişkilendirilebilir mi? (slug/URL için)",
|
|
90
|
+
},
|
|
91
|
+
isCommonData: {
|
|
92
|
+
type: "boolean",
|
|
93
|
+
description: "Ortak veri mi? (tüm sitelerin erişebildiği global data)",
|
|
94
|
+
},
|
|
95
|
+
accessType: {
|
|
96
|
+
type: "number",
|
|
97
|
+
description: "Erişim tipi: 0=public, 1=private",
|
|
98
|
+
},
|
|
99
|
+
columns: {
|
|
100
|
+
type: "array",
|
|
101
|
+
description: `Kolon tanımları. Her kolon: {
|
|
102
|
+
name: string (kolon adı, camelCase),
|
|
103
|
+
title: string (görünen ad),
|
|
104
|
+
type: string (string|number|boolean|date|datetime|file|image|relation|array),
|
|
105
|
+
isRequired: boolean,
|
|
106
|
+
isMultiple: boolean (array tipli alanlar için),
|
|
107
|
+
relationEntityId: string (relation tipi için entity GUID),
|
|
108
|
+
order: number
|
|
109
|
+
}`,
|
|
110
|
+
},
|
|
111
|
+
schema: {
|
|
112
|
+
type: "object",
|
|
113
|
+
description: "Admin UI akış tanımı (nodes, flows). Genellikle boş bırakın, otomatik oluşturulur.",
|
|
114
|
+
},
|
|
115
|
+
selectedSiteIds: {
|
|
116
|
+
type: "array",
|
|
117
|
+
description: "Bu entity'nin erişilebileceği site ID'leri (boşsa tüm siteler)",
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
required: ["title", "table"],
|
|
121
|
+
},
|
|
122
|
+
handler: async (args) => {
|
|
123
|
+
const result = await client.createEntity(args);
|
|
124
|
+
return {
|
|
125
|
+
content: [
|
|
126
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
// ─── Update Entity ────────────────────────────────────
|
|
132
|
+
update_entity: {
|
|
133
|
+
description: `Mevcut bir entity şemasını günceller. Kolon ekleme/kaldırma veritabanını migrate eder.
|
|
134
|
+
DİKKAT: Kolon silmek veritabanındaki o kolonun verisini siler.`,
|
|
135
|
+
inputSchema: {
|
|
136
|
+
type: "object",
|
|
137
|
+
properties: {
|
|
138
|
+
id: { type: "string", description: "Güncellenecek entity ID" },
|
|
139
|
+
title: { type: "string", description: "Yeni başlık" },
|
|
140
|
+
columns: {
|
|
141
|
+
type: "array",
|
|
142
|
+
description: "Güncellenmiş kolon listesi (tüm kolonları gönderin)",
|
|
143
|
+
},
|
|
144
|
+
accessType: {
|
|
145
|
+
type: "number",
|
|
146
|
+
description: "Erişim tipi: 0=public, 1=private",
|
|
147
|
+
},
|
|
148
|
+
selectedSiteIds: {
|
|
149
|
+
type: "array",
|
|
150
|
+
description: "Erişilebilecek site ID'leri",
|
|
151
|
+
},
|
|
152
|
+
schema: {
|
|
153
|
+
type: "object",
|
|
154
|
+
description: "Güncellenmiş UI akış tanımı",
|
|
155
|
+
},
|
|
156
|
+
isCommonData: { type: "boolean", description: "Ortak veri mi?" },
|
|
157
|
+
},
|
|
158
|
+
required: ["id"],
|
|
159
|
+
},
|
|
160
|
+
handler: async (args) => {
|
|
161
|
+
const { id, ...data } = args;
|
|
162
|
+
const result = await client.updateEntity(id, data);
|
|
163
|
+
return {
|
|
164
|
+
content: [
|
|
165
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
166
|
+
],
|
|
167
|
+
};
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
// ─── Delete Entity ────────────────────────────────────
|
|
171
|
+
delete_entity: {
|
|
172
|
+
description: "Bir entity şemasını ve ilişkili veritabanı tablosunu siler. DİKKAT: Tüm veriler silinir.",
|
|
173
|
+
inputSchema: {
|
|
174
|
+
type: "object",
|
|
175
|
+
properties: {
|
|
176
|
+
id: { type: "string", description: "Silinecek entity ID" },
|
|
177
|
+
},
|
|
178
|
+
required: ["id"],
|
|
179
|
+
},
|
|
180
|
+
handler: async (args) => {
|
|
181
|
+
const result = await client.deleteEntity(args.id);
|
|
182
|
+
return {
|
|
183
|
+
content: [
|
|
184
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
185
|
+
],
|
|
186
|
+
};
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
// ─── Get Entity Relations ─────────────────────────────
|
|
190
|
+
get_entity_relations: {
|
|
191
|
+
description: "Bir entity'nin diğer entity'lerle olan ilişkilerini getirir.",
|
|
192
|
+
inputSchema: {
|
|
193
|
+
type: "object",
|
|
194
|
+
properties: {
|
|
195
|
+
id: { type: "string", description: "Entity ID" },
|
|
196
|
+
isRecurrent: {
|
|
197
|
+
type: "boolean",
|
|
198
|
+
description: "Özyinelemeli ilişkileri dahil et",
|
|
199
|
+
},
|
|
200
|
+
includeSystemFields: {
|
|
201
|
+
type: "boolean",
|
|
202
|
+
description: "Sistem alanlarını dahil et",
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
required: ["id"],
|
|
206
|
+
},
|
|
207
|
+
handler: async (args) => {
|
|
208
|
+
const params = {};
|
|
209
|
+
if (args.isRecurrent !== undefined)
|
|
210
|
+
params.isRecurrent = String(args.isRecurrent);
|
|
211
|
+
if (args.includeSystemFields !== undefined)
|
|
212
|
+
params.includeSystemFields = String(args.includeSystemFields);
|
|
213
|
+
const result = await client.getEntityRelations(args.id, params);
|
|
214
|
+
return {
|
|
215
|
+
content: [
|
|
216
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
217
|
+
],
|
|
218
|
+
};
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=entities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/tools/entities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools for general WAP Admin API operations
|
|
3
|
+
* - App Settings (global site configuration)
|
|
4
|
+
* - Custom API requests (escape hatch for any endpoint)
|
|
5
|
+
*/
|
|
6
|
+
import { WapClient } from "../client.js";
|
|
7
|
+
export declare function getGeneralTools(client: WapClient): {
|
|
8
|
+
list_capabilities: {
|
|
9
|
+
description: string;
|
|
10
|
+
inputSchema: {
|
|
11
|
+
type: "object";
|
|
12
|
+
properties: {};
|
|
13
|
+
};
|
|
14
|
+
handler: () => Promise<{
|
|
15
|
+
content: {
|
|
16
|
+
type: "text";
|
|
17
|
+
text: string;
|
|
18
|
+
}[];
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
get_app_settings: {
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: {
|
|
24
|
+
type: "object";
|
|
25
|
+
properties: {};
|
|
26
|
+
};
|
|
27
|
+
handler: () => Promise<{
|
|
28
|
+
content: {
|
|
29
|
+
type: "text";
|
|
30
|
+
text: string;
|
|
31
|
+
}[];
|
|
32
|
+
}>;
|
|
33
|
+
};
|
|
34
|
+
update_app_settings: {
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: "object";
|
|
38
|
+
properties: {
|
|
39
|
+
settings: {
|
|
40
|
+
type: string;
|
|
41
|
+
description: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
required: string[];
|
|
45
|
+
};
|
|
46
|
+
handler: (args: {
|
|
47
|
+
settings: Record<string, unknown>;
|
|
48
|
+
}) => Promise<{
|
|
49
|
+
content: {
|
|
50
|
+
type: "text";
|
|
51
|
+
text: string;
|
|
52
|
+
}[];
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
custom_request: {
|
|
56
|
+
description: string;
|
|
57
|
+
inputSchema: {
|
|
58
|
+
type: "object";
|
|
59
|
+
properties: {
|
|
60
|
+
method: {
|
|
61
|
+
type: string;
|
|
62
|
+
description: string;
|
|
63
|
+
enum: string[];
|
|
64
|
+
};
|
|
65
|
+
path: {
|
|
66
|
+
type: string;
|
|
67
|
+
description: string;
|
|
68
|
+
};
|
|
69
|
+
body: {
|
|
70
|
+
type: string;
|
|
71
|
+
description: string;
|
|
72
|
+
};
|
|
73
|
+
queryParams: {
|
|
74
|
+
type: string;
|
|
75
|
+
description: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
required: string[];
|
|
79
|
+
};
|
|
80
|
+
handler: (args: {
|
|
81
|
+
method: string;
|
|
82
|
+
path: string;
|
|
83
|
+
body?: Record<string, unknown>;
|
|
84
|
+
queryParams?: Record<string, string>;
|
|
85
|
+
}) => Promise<{
|
|
86
|
+
content: {
|
|
87
|
+
type: "text";
|
|
88
|
+
text: string;
|
|
89
|
+
}[];
|
|
90
|
+
}>;
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=general.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../src/tools/general.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0JrB;YAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAqDrC;YACpB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC/B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtC;;;;;;;EAeN"}
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tools for general WAP Admin API operations
|
|
3
|
+
* - App Settings (global site configuration)
|
|
4
|
+
* - Custom API requests (escape hatch for any endpoint)
|
|
5
|
+
*/
|
|
6
|
+
export function getGeneralTools(client) {
|
|
7
|
+
return {
|
|
8
|
+
// ─── Capabilities ─────────────────────────────────────
|
|
9
|
+
list_capabilities: {
|
|
10
|
+
description: "Bu MCP sunucusunun yapabileceklerini kategorilere göre listeler. 'Neler yapabiliyorsun?' gibi sorularda kullan.",
|
|
11
|
+
inputSchema: {
|
|
12
|
+
type: "object",
|
|
13
|
+
properties: {},
|
|
14
|
+
},
|
|
15
|
+
handler: async () => {
|
|
16
|
+
const capabilities = {
|
|
17
|
+
description: "WAPPA Admin API MCP Sunucusu — Kullanılabilir Araçlar",
|
|
18
|
+
categories: {
|
|
19
|
+
"📄 Sayfa Yönetimi": [
|
|
20
|
+
"wappa_create_page — Yeni sayfa oluşturur",
|
|
21
|
+
"wappa_update_page — Mevcut sayfayı günceller (title, layout, views, refs vb.)",
|
|
22
|
+
"wappa_publish_page — Sayfayı yayınlar (Draft → Published)",
|
|
23
|
+
"wappa_unpublish_page — Sayfayı yayından kaldırır (Published → Draft)",
|
|
24
|
+
"wappa_delete_page — Sayfayı siler",
|
|
25
|
+
"wappa_get_page — Sayfa detaylarını getirir",
|
|
26
|
+
"wappa_list_pages — Sayfaları listeler",
|
|
27
|
+
"wappa_get_page_versions — Sayfa versiyonlarını listeler",
|
|
28
|
+
"wappa_create_page_localization — Sayfanın dil çevirisini oluşturur",
|
|
29
|
+
"wappa_generate_page_path — Sayfa için URL path üretir",
|
|
30
|
+
],
|
|
31
|
+
"🧩 Bileşen Yönetimi": [
|
|
32
|
+
"wappa_create_component — Yeni bileşen oluşturur",
|
|
33
|
+
"wappa_update_component — Bileşeni günceller",
|
|
34
|
+
"wappa_delete_component — Bileşeni siler",
|
|
35
|
+
"wappa_get_component — Bileşen detaylarını getirir",
|
|
36
|
+
"wappa_list_components — Bileşenleri listeler",
|
|
37
|
+
"wappa_list_base_components — Temel (base) bileşenleri listeler",
|
|
38
|
+
],
|
|
39
|
+
"🎨 Layout Yönetimi": [
|
|
40
|
+
"wappa_create_layout — Yeni layout oluşturur",
|
|
41
|
+
"wappa_update_layout — Layout'u günceller",
|
|
42
|
+
"wappa_delete_layout — Layout'u siler",
|
|
43
|
+
"wappa_get_layout — Layout detaylarını getirir",
|
|
44
|
+
"wappa_list_layouts — Layout'ları listeler",
|
|
45
|
+
"wappa_clone_layout — Layout'u klonlar",
|
|
46
|
+
"wappa_clone_layout_to_site — Layout'u başka siteye klonlar",
|
|
47
|
+
],
|
|
48
|
+
"🪟 Widget Yönetimi": [
|
|
49
|
+
"wappa_create_widget — Yeni widget oluşturur",
|
|
50
|
+
"wappa_update_widget — Widget'ı günceller",
|
|
51
|
+
"wappa_delete_widget — Widget'ı siler",
|
|
52
|
+
"wappa_get_widget — Widget detaylarını getirir",
|
|
53
|
+
"wappa_list_widgets — Widget'ları listeler",
|
|
54
|
+
],
|
|
55
|
+
"🌐 Site Yönetimi": [
|
|
56
|
+
"wappa_create_site — Yeni site (tenant) oluşturur",
|
|
57
|
+
"wappa_update_site — Siteyi günceller",
|
|
58
|
+
"wappa_delete_site — Siteyi siler",
|
|
59
|
+
"wappa_get_site — Site detaylarını getirir",
|
|
60
|
+
"wappa_list_sites — Tüm siteleri listeler",
|
|
61
|
+
"wappa_get_sites_with_entities — Entity'lerle birlikte siteleri getirir",
|
|
62
|
+
],
|
|
63
|
+
"🗃️ Entity & Dinamik Veri": [
|
|
64
|
+
"wappa_create_entity — Yeni entity şeması oluşturur",
|
|
65
|
+
"wappa_update_entity — Entity şemasını günceller",
|
|
66
|
+
"wappa_delete_entity — Entity şemasını siler",
|
|
67
|
+
"wappa_get_entity — Entity detaylarını getirir",
|
|
68
|
+
"wappa_list_entities — Entity'leri listeler",
|
|
69
|
+
"wappa_get_entity_relations — Entity ilişkilerini getirir",
|
|
70
|
+
"wappa_create_dynamic_entity_record — Entity kaydı oluşturur",
|
|
71
|
+
"wappa_update_dynamic_entity_record — Entity kaydını günceller",
|
|
72
|
+
"wappa_delete_dynamic_entity_record — Entity kaydını siler",
|
|
73
|
+
"wappa_get_dynamic_entity_record — Entity kaydını getirir",
|
|
74
|
+
"wappa_list_dynamic_entity_records — Entity kayıtlarını listeler",
|
|
75
|
+
"wappa_update_dynamic_entity_status — Entity kaydı durumunu günceller",
|
|
76
|
+
"wappa_get_dynamic_entity_versions — Entity kaydı versiyonlarını getirir",
|
|
77
|
+
"wappa_create_dynamic_entity_localization — Entity kaydının dil çevirisini oluşturur",
|
|
78
|
+
"wappa_clone_dynamic_entity_record — Entity kaydını klonlar",
|
|
79
|
+
],
|
|
80
|
+
"🔍 Query Yönetimi": [
|
|
81
|
+
"wappa_create_query — Yeni sorgu şablonu oluşturur",
|
|
82
|
+
"wappa_update_query — Sorguyu günceller",
|
|
83
|
+
"wappa_delete_query — Sorguyu siler",
|
|
84
|
+
"wappa_get_query — Sorgu detaylarını getirir",
|
|
85
|
+
"wappa_list_queries — Sorguları listeler",
|
|
86
|
+
"wappa_run_query — Sorguyu çalıştırır",
|
|
87
|
+
],
|
|
88
|
+
"📋 Menü Yönetimi": [
|
|
89
|
+
"wappa_create_menu — Yeni menü oluşturur",
|
|
90
|
+
"wappa_update_menu — Menüyü günceller",
|
|
91
|
+
"wappa_delete_menu — Menüyü siler",
|
|
92
|
+
"wappa_get_menu — Menü detaylarını getirir",
|
|
93
|
+
"wappa_list_menus — Menüleri listeler",
|
|
94
|
+
"wappa_clone_menu — Menüyü klonlar",
|
|
95
|
+
],
|
|
96
|
+
"🎨 Tema Yönetimi": [
|
|
97
|
+
"wappa_create_theme — Yeni tema oluşturur",
|
|
98
|
+
"wappa_update_theme — Temayı günceller",
|
|
99
|
+
"wappa_delete_theme — Temayı siler",
|
|
100
|
+
"wappa_get_theme — Tema detaylarını getirir",
|
|
101
|
+
"wappa_list_themes — Temaları listeler",
|
|
102
|
+
],
|
|
103
|
+
"🌍 Dil Yönetimi": [
|
|
104
|
+
"wappa_create_language — Yeni dil ekler",
|
|
105
|
+
"wappa_update_language — Dili günceller",
|
|
106
|
+
"wappa_delete_language — Dili siler",
|
|
107
|
+
"wappa_get_language — Dil detaylarını getirir",
|
|
108
|
+
"wappa_list_languages — Dilleri listeler",
|
|
109
|
+
],
|
|
110
|
+
"⚙️ Genel": [
|
|
111
|
+
"wappa_get_app_settings — Site uygulama ayarlarını getirir",
|
|
112
|
+
"wappa_update_app_settings — Site uygulama ayarlarını günceller",
|
|
113
|
+
"wappa_list_capabilities — Bu listeyi gösterir",
|
|
114
|
+
"wappa_custom_request — ⚠️ Fallback: Dedicated tool olmayan endpoint'ler için",
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
content: [
|
|
120
|
+
{
|
|
121
|
+
type: "text",
|
|
122
|
+
text: JSON.stringify(capabilities, null, 2),
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
};
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
// ─── App Settings ─────────────────────────────────────
|
|
129
|
+
get_app_settings: {
|
|
130
|
+
description: "Sitenin genel uygulama ayarlarını getirir (Google Analytics, meta etiketler, sosyal medya linkleri vb.).",
|
|
131
|
+
inputSchema: {
|
|
132
|
+
type: "object",
|
|
133
|
+
properties: {},
|
|
134
|
+
},
|
|
135
|
+
handler: async () => {
|
|
136
|
+
const result = await client.getAppSettings();
|
|
137
|
+
return {
|
|
138
|
+
content: [
|
|
139
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
140
|
+
],
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
update_app_settings: {
|
|
145
|
+
description: "Sitenin genel uygulama ayarlarını günceller.",
|
|
146
|
+
inputSchema: {
|
|
147
|
+
type: "object",
|
|
148
|
+
properties: {
|
|
149
|
+
settings: {
|
|
150
|
+
type: "object",
|
|
151
|
+
description: "Güncellenecek ayarlar (key-value obje)",
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
required: ["settings"],
|
|
155
|
+
},
|
|
156
|
+
handler: async (args) => {
|
|
157
|
+
const result = await client.updateAppSettings(args.settings);
|
|
158
|
+
return {
|
|
159
|
+
content: [
|
|
160
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
// ─── Custom Request (escape hatch) ───────────────────
|
|
166
|
+
custom_request: {
|
|
167
|
+
description: `⚠️ FALLBACK TOOL — Yalnızca aşağıdaki işlemler için ÖZEL bir tool YOKSA kullan.
|
|
168
|
+
|
|
169
|
+
DEDICATED TOOL VARSA ONU KULLAN (wap_custom_request KULLANMA):
|
|
170
|
+
• Sayfa işlemleri → wappa_create_page, wappa_update_page, wappa_publish_page, wappa_unpublish_page, wappa_delete_page, wappa_get_page, wappa_list_pages
|
|
171
|
+
• Bileşenler → wappa_create_component, wappa_update_component, wappa_delete_component, wappa_get_component, wappa_list_components
|
|
172
|
+
• Layout → wappa_create_layout, wappa_update_layout, wappa_delete_layout, wappa_get_layout, wappa_list_layouts
|
|
173
|
+
• Widget → wappa_create_widget, wappa_update_widget, wappa_delete_widget, wappa_get_widget, wappa_list_widgets
|
|
174
|
+
• Site → wappa_create_site, wappa_update_site, wappa_delete_site, wappa_get_site, wappa_list_sites
|
|
175
|
+
• Entity → wappa_create_entity, wappa_update_entity, wappa_delete_entity, wappa_get_entity, wappa_list_entities
|
|
176
|
+
• Dynamic Entity → wappa_create_dynamic_entity_record, wappa_update_dynamic_entity_record, wappa_delete_dynamic_entity_record, wappa_list_dynamic_entity_records
|
|
177
|
+
• Query → wappa_create_query, wappa_update_query, wappa_delete_query, wappa_get_query, wappa_list_queries
|
|
178
|
+
• Menü → wappa_create_menu, wappa_update_menu, wappa_delete_menu, wappa_get_menu, wappa_list_menus
|
|
179
|
+
• Tema → wappa_create_theme, wappa_update_theme, wappa_delete_theme, wappa_get_theme, wappa_list_themes
|
|
180
|
+
• Dil → wappa_create_language, wappa_update_language, wappa_delete_language, wappa_get_language, wappa_list_languages
|
|
181
|
+
|
|
182
|
+
Yalnızca yukarıdaki listede karşılığı olmayan endpoint'ler için kullan.
|
|
183
|
+
Path'te {site} placeholder'ı otomatik olarak yapılandırılmış site ID ile değiştirilir.`,
|
|
184
|
+
inputSchema: {
|
|
185
|
+
type: "object",
|
|
186
|
+
properties: {
|
|
187
|
+
method: {
|
|
188
|
+
type: "string",
|
|
189
|
+
description: "HTTP method (GET, POST, PUT, DELETE, PATCH)",
|
|
190
|
+
enum: ["GET", "POST", "PUT", "DELETE", "PATCH"],
|
|
191
|
+
},
|
|
192
|
+
path: {
|
|
193
|
+
type: "string",
|
|
194
|
+
description: 'API path (örn: "/{site}/Components" veya "/{site}/Pages/{id}/versions")',
|
|
195
|
+
},
|
|
196
|
+
body: {
|
|
197
|
+
type: "object",
|
|
198
|
+
description: "Request body (POST/PUT/PATCH için)",
|
|
199
|
+
},
|
|
200
|
+
queryParams: {
|
|
201
|
+
type: "object",
|
|
202
|
+
description: "Query parametreleri (key-value)",
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
required: ["method", "path"],
|
|
206
|
+
},
|
|
207
|
+
handler: async (args) => {
|
|
208
|
+
const result = await client.customRequest(args.method, args.path, args.body, args.queryParams);
|
|
209
|
+
return {
|
|
210
|
+
content: [
|
|
211
|
+
{ type: "text", text: JSON.stringify(result, null, 2) },
|
|
212
|
+
],
|
|
213
|
+
};
|
|
214
|
+
},
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=general.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/tools/general.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,OAAO;QACL,yDAAyD;QACzD,iBAAiB,EAAE;YACjB,WAAW,EACT,iHAAiH;YACnH,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,YAAY,GAAG;oBACnB,WAAW,EAAE,uDAAuD;oBACpE,UAAU,EAAE;wBACV,mBAAmB,EAAE;4BACnB,0CAA0C;4BAC1C,+EAA+E;4BAC/E,2DAA2D;4BAC3D,sEAAsE;4BACtE,mCAAmC;4BACnC,4CAA4C;4BAC5C,uCAAuC;4BACvC,yDAAyD;4BACzD,oEAAoE;4BACpE,uDAAuD;yBACxD;wBACD,qBAAqB,EAAE;4BACrB,iDAAiD;4BACjD,6CAA6C;4BAC7C,yCAAyC;4BACzC,mDAAmD;4BACnD,8CAA8C;4BAC9C,gEAAgE;yBACjE;wBACD,oBAAoB,EAAE;4BACpB,6CAA6C;4BAC7C,0CAA0C;4BAC1C,sCAAsC;4BACtC,+CAA+C;4BAC/C,2CAA2C;4BAC3C,uCAAuC;4BACvC,4DAA4D;yBAC7D;wBACD,oBAAoB,EAAE;4BACpB,6CAA6C;4BAC7C,0CAA0C;4BAC1C,sCAAsC;4BACtC,+CAA+C;4BAC/C,2CAA2C;yBAC5C;wBACD,kBAAkB,EAAE;4BAClB,kDAAkD;4BAClD,sCAAsC;4BACtC,kCAAkC;4BAClC,2CAA2C;4BAC3C,0CAA0C;4BAC1C,wEAAwE;yBACzE;wBACD,2BAA2B,EAAE;4BAC3B,oDAAoD;4BACpD,iDAAiD;4BACjD,6CAA6C;4BAC7C,+CAA+C;4BAC/C,4CAA4C;4BAC5C,0DAA0D;4BAC1D,6DAA6D;4BAC7D,+DAA+D;4BAC/D,2DAA2D;4BAC3D,0DAA0D;4BAC1D,iEAAiE;4BACjE,sEAAsE;4BACtE,yEAAyE;4BACzE,qFAAqF;4BACrF,4DAA4D;yBAC7D;wBACD,mBAAmB,EAAE;4BACnB,mDAAmD;4BACnD,wCAAwC;4BACxC,oCAAoC;4BACpC,6CAA6C;4BAC7C,yCAAyC;4BACzC,sCAAsC;yBACvC;wBACD,kBAAkB,EAAE;4BAClB,yCAAyC;4BACzC,sCAAsC;4BACtC,kCAAkC;4BAClC,2CAA2C;4BAC3C,sCAAsC;4BACtC,mCAAmC;yBACpC;wBACD,kBAAkB,EAAE;4BAClB,0CAA0C;4BAC1C,uCAAuC;4BACvC,mCAAmC;4BACnC,4CAA4C;4BAC5C,uCAAuC;yBACxC;wBACD,iBAAiB,EAAE;4BACjB,wCAAwC;4BACxC,wCAAwC;4BACxC,oCAAoC;4BACpC,8CAA8C;4BAC9C,yCAAyC;yBAC1C;wBACD,UAAU,EAAE;4BACV,2DAA2D;4BAC3D,gEAAgE;4BAChE,+CAA+C;4BAC/C,8EAA8E;yBAC/E;qBACF;iBACF,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;yBAC5C;qBACF;iBACF,CAAC;YACJ,CAAC;SACF;QAED,yDAAyD;QACzD,gBAAgB,EAAE;YAChB,WAAW,EACT,0GAA0G;YAC5G,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE,EAAE;aACf;YACD,OAAO,EAAE,KAAK,IAAI,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC7C,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACjE;iBACF,CAAC;YACJ,CAAC;SACF;QAED,mBAAmB,EAAE;YACnB,WAAW,EAAE,8CAA8C;YAC3D,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,wCAAwC;qBACtD;iBACF;gBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;aACvB;YACD,OAAO,EAAE,KAAK,EAAE,IAA2C,EAAE,EAAE;gBAC7D,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7D,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACjE;iBACF,CAAC;YACJ,CAAC;SACF;QAED,wDAAwD;QACxD,cAAc,EAAE;YACd,WAAW,EAAE;;;;;;;;;;;;;;;;uFAgBoE;YACjF,WAAW,EAAE;gBACX,IAAI,EAAE,QAAiB;gBACvB,UAAU,EAAE;oBACV,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6CAA6C;wBAC1D,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;qBAChD;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EACT,yEAAyE;qBAC5E;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,oCAAoC;qBAClD;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iCAAiC;qBAC/C;iBACF;gBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;aAC7B;YACD,OAAO,EAAE,KAAK,EAAE,IAKf,EAAE,EAAE;gBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CACvC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;qBACjE;iBACF,CAAC;YACJ,CAAC;SACF;KACF,CAAC;AACJ,CAAC"}
|