@appaflytech/zeyrek-ai-mcp 0.0.5 → 0.0.6
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 +1 -1
- package/.env.production.example +1 -1
- package/README.md +8 -33
- package/dist/config.js +20 -2
- package/dist/knowledge/backendConstraints.js +897 -0
- package/dist/knowledge/componentCatalog.js +196 -42
- package/dist/knowledge/coverage.js +43 -0
- package/dist/knowledge/flowGuards.js +30 -0
- package/dist/knowledge/guideSections.js +49 -0
- package/dist/knowledge/hydrate.js +97 -0
- package/dist/knowledge/languageCodes.js +36 -0
- package/dist/knowledge/languages.js +105 -0
- package/dist/knowledge/layoutSummary.js +10 -0
- package/dist/knowledge/localization.js +51 -0
- package/dist/knowledge/normalize.js +449 -16
- package/dist/knowledge/outlines.js +136 -12
- package/dist/knowledge/propTypes.js +80 -0
- package/dist/knowledge/rules.js +618 -43
- package/dist/knowledge/schemaGuard.js +199 -0
- package/dist/knowledge/styleResolve.js +63 -4
- package/dist/observability/trace.js +27 -3
- package/dist/platform/errors.js +46 -4
- package/dist/platform/http.js +33 -4
- package/dist/platform/patch.js +27 -0
- package/dist/platform/refs.js +104 -0
- package/dist/platform/responses.js +9 -2
- package/dist/platform/screenshot.js +527 -16
- package/dist/platform/secrets.js +40 -0
- package/dist/platform/tokenVault.js +89 -0
- package/dist/platform/writeDiff.js +281 -0
- package/dist/resources/examples/layout-app-shell.json +1 -1
- package/dist/resources/examples/microservice-table-list.json +2 -4
- package/dist/resources/examples/page-dynamic-form.json +2 -2
- package/dist/resources/examples/page-flex-sections.json +99 -0
- package/dist/resources/examples/page-sign-in.json +3 -2
- package/dist/resources/guides/component.md +69 -8
- package/dist/resources/guides/entity.md +404 -16
- package/dist/resources/guides/expressions.md +44 -2
- package/dist/resources/guides/external-component.md +9 -0
- package/dist/resources/guides/getting-started.md +77 -7
- package/dist/resources/guides/layout.md +53 -10
- package/dist/resources/guides/microservice.md +226 -13
- package/dist/resources/guides/middleware.md +89 -1
- package/dist/resources/guides/page.md +383 -46
- package/dist/resources/guides/translation.md +126 -8
- package/dist/resources/guides/view.md +16 -1
- package/dist/resources/guides/workflow.md +198 -27
- package/dist/resources/knowledge.js +5 -0
- package/dist/resources/rules.js +27 -0
- package/dist/resources/schema-fingerprint.json +8 -0
- package/dist/resources/schemas/CreateBulkRowCommand.json +33 -0
- package/dist/resources/schemas/CreateDatasourceCommand.json +15 -6
- package/dist/resources/schemas/CreateDiscoveredEntitiesCommand.json +19 -8
- package/dist/resources/schemas/CreateEntityCommand.json +52 -12
- package/dist/resources/schemas/CreateMicroserviceCommand.json +26 -2
- package/dist/resources/schemas/CreateQueryCommand.json +56 -3
- package/dist/resources/schemas/CreateRowCommand.json +38 -0
- package/dist/resources/schemas/CreateViewCommand.json +13 -10
- package/dist/resources/schemas/CreateWorkflowCommand.json +95 -14
- package/dist/resources/schemas/GetRowsQuery.json +3 -0
- package/dist/resources/schemas/PreviewMicroserviceCommand.json +16 -0
- package/dist/resources/schemas/PreviewQueryCommand.json +5 -2
- package/dist/resources/schemas/PreviewWorkflowCommand.json +34 -9
- package/dist/resources/schemas/StepDto.json +23 -3
- package/dist/resources/schemas/UpdateBulkRowCommand.json +33 -0
- package/dist/resources/schemas/UpdateDatasourceCommand.json +15 -6
- package/dist/resources/schemas/UpdateEntityCommand.json +49 -10
- package/dist/resources/schemas/UpdateMicroserviceCommand.json +28 -3
- package/dist/resources/schemas/UpdateQueryCommand.json +13 -3
- package/dist/resources/schemas/UpdateRowCommand.json +40 -0
- package/dist/resources/schemas/UpdateViewCommand.json +15 -10
- package/dist/resources/schemas/UpdateWorkflowCommand.json +95 -14
- package/dist/server.js +4 -0
- package/dist/tools/access.js +3 -3
- package/dist/tools/applications.js +1 -1
- package/dist/tools/automations.js +63 -30
- package/dist/tools/common.js +39 -0
- package/dist/tools/components.js +16 -7
- package/dist/tools/datasources.js +83 -21
- package/dist/tools/deployments.js +34 -2
- package/dist/tools/dtos.js +25 -12
- package/dist/tools/entities.js +113 -28
- package/dist/tools/externalComponents.js +9 -3
- package/dist/tools/files.js +20 -6
- package/dist/tools/flows.js +110 -11
- package/dist/tools/folders.js +7 -2
- package/dist/tools/globalFunctions.js +63 -0
- package/dist/tools/layouts.js +103 -29
- package/dist/tools/microservices.js +229 -38
- package/dist/tools/organizations.js +5 -6
- package/dist/tools/pages.js +365 -100
- package/dist/tools/platformInfo.js +152 -11
- package/dist/tools/projects.js +183 -33
- package/dist/tools/queries.js +32 -10
- package/dist/tools/rows.js +159 -45
- package/dist/tools/screenWrite.js +59 -0
- package/dist/tools/screens.js +28 -0
- package/dist/tools/translations.js +24 -8
- package/dist/tools/views.js +20 -10
- package/dist/tools/workflows.js +33 -16
- package/package.json +5 -2
package/.env.example
CHANGED
|
@@ -56,7 +56,7 @@ SCREENSHOT_BROWSER_PATH=
|
|
|
56
56
|
ORG_SWAGGER_URL=
|
|
57
57
|
TENANT_SWAGGER_URL=
|
|
58
58
|
|
|
59
|
-
# Bos = tum moduller (
|
|
59
|
+
# Bos = tum moduller (167 tool / 27 modul). Hazir kumeler: core (veri+mantik, 97), studio
|
|
60
60
|
# (sayfa tasarimi, 59), admin (template/organizasyon/deployment, 16). platform modulu (3 tool)
|
|
61
61
|
# her kumede vardir. Kume ve tekil modul adi karisik yazilabilir.
|
|
62
62
|
# Ornek: core,studio | entity,row,microservice
|
package/.env.production.example
CHANGED
|
@@ -38,7 +38,7 @@ SCREENSHOT_BROWSER_PATH=
|
|
|
38
38
|
ORG_SWAGGER_URL=
|
|
39
39
|
TENANT_SWAGGER_URL=
|
|
40
40
|
|
|
41
|
-
# Bos = tum moduller (
|
|
41
|
+
# Bos = tum moduller (167 tool). Kumeler: core (97) | studio (59) | admin (16).
|
|
42
42
|
MODULES=
|
|
43
43
|
|
|
44
44
|
MCP_PORT=5100
|
package/README.md
CHANGED
|
@@ -4,8 +4,8 @@ Zeyrek (NgApps) platformunu **MCP tool'ları** olarak sunan bağımsız gateway.
|
|
|
4
4
|
oturumu Studio arayüzüne hiç girmeden proje kurabilir, veri modeli çıkarabilir, mikroservis ve
|
|
5
5
|
workflow yazıp çalıştırabilir, sayfa tasarlayabilir.
|
|
6
6
|
|
|
7
|
-
- **
|
|
8
|
-
microservice, query, workflow, automation, dto, view, dependency), Studio tasarım tarafı
|
|
7
|
+
- **167 tool · 27 modül** — veri/mantık tarafı (project, application, datasource, entity, row,
|
|
8
|
+
microservice, query, workflow, automation, global function, dto, view, dependency), Studio tasarım tarafı
|
|
9
9
|
(page, component, external component, flow, layout, variable, folder, file, access,
|
|
10
10
|
translation) ve yönetim (template, organization, deployment).
|
|
11
11
|
- Platform koduna referans vermez: Organization.API ile Tenant.API'yi **HTTP üzerinden** sarar —
|
|
@@ -140,7 +140,7 @@ ya da ikisi karışık (`core,page`). `platform` modülü (3 tool) her kümede v
|
|
|
140
140
|
| `core` | 93 | platform, project, application, datasource, entity, row, microservice, query, workflow, automation, dto, view, dependency |
|
|
141
141
|
| `studio` | 59 | platform, page, component, externalComponent, flow, layout, variable, folder, file, access, translation |
|
|
142
142
|
| `admin` | 16 | platform, template, organization, deployment |
|
|
143
|
-
| (boş) | **
|
|
143
|
+
| (boş) | **167** | 27 modülün tamamı |
|
|
144
144
|
|
|
145
145
|
Bilinmeyen bir modül/küme adı verilirse sunucu açılmaz, geçerli adları listeleyen bir hata yazar.
|
|
146
146
|
|
|
@@ -198,36 +198,11 @@ Tam gövdeyi LLM bağlamına sokmadan çalışma modeli:
|
|
|
198
198
|
|
|
199
199
|
## Tool çağrısı günlüğü
|
|
200
200
|
|
|
201
|
-
Her MCP tool çağrısı, okunmak için biçimlenmiş tek bir blok olarak
|
|
202
|
-
`
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
┌─ #1 · 11:27:27.082 · platform_whoami — Oturum bilgisi
|
|
207
|
-
│ amaç : Gateway'in platformda kimin adına çalıştığını döner; auth kurulumunu doğrulamak için ilk çağrılacak tool.
|
|
208
|
-
│ girdi : (parametresiz)
|
|
209
|
-
│ adımlar:
|
|
210
|
-
│ +2ms kimlik → önbellekte geçerli token yok — POST http://localhost:7000/connect/token · kullanıcı admin@zeyrek.com
|
|
211
|
-
│ +229ms kimlik ← HTTP 200 · token alındı, önbellekte 63158340 sn geçerli
|
|
212
|
-
│ +229ms istek → GET http://localhost:7000/connect/userinfo · org api · env=development
|
|
213
|
-
│ +237ms yanıt ← HTTP 200 · 8 ms · 174 B
|
|
214
|
-
│ gövde: {"sub":"01917edf-…","email":"admin@zeyrek.com","role":["super-admin"]}
|
|
215
|
-
└─ SONUÇ : başarılı · 238 ms · 4 adım · 137 B yanıt
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
Adım etiketleri: `politika` (lint kuralları; `politika ✕` isteği hiç göndermez), `düzeltme`
|
|
219
|
-
(gateway'in gövdeye uyguladığı otomatik düzeltmeler — yanıttaki `gatewayNormalized`),
|
|
220
|
-
`kimlik →/←` (`/connect/token` turu), `istek →/yanıt ←` (platform API turu, tam URL + süre +
|
|
221
|
-
boyut), `kırpma ✂` (yanıt `MAX_RESPONSE_BYTES` sınırını aştı), `tarayıcı →/←`
|
|
222
|
-
(`page_screenshot`'ın headless Chromium turu), `hata ✕` (yakalanan hata: sınıf, HTTP kodu, mesaj,
|
|
223
|
-
ilk 3 stack satırı). Tool gövdesine hiç girmeyen çağrılar — yanlış tool adı ya da parametre
|
|
224
|
-
şemasına takılan gövde — `MCP KATMANI REDDETTİ` bloğu olarak düşer.
|
|
225
|
-
|
|
226
|
-
Arama: `SONUÇ : HATA` tüm başarısız çağrılar, `hata ✕` hata satırları, `#<n>` tek bir çağrı.
|
|
227
|
-
|
|
228
|
-
Adı `pass|secret|token|authorization|api key|credential|connectionString` desenine uyan alanlar
|
|
229
|
-
`***` ile maskelenir. Günlükleme yazma hatası tool çağrısını **düşürmez**: ilk hatada stderr'e
|
|
230
|
-
tek satır yazılıp günlükleme kapatılır.
|
|
201
|
+
Her MCP tool çağrısı, okunmak için biçimlenmiş tek bir blok olarak
|
|
202
|
+
`zeyrek-mcp/logs/gateway-YYYY-MM-DD.log` dosyasına yazılır (`.gitignore`'da; `LOG_LEVEL=detail|summary|off`).
|
|
203
|
+
Hızlı arama: `SONUÇ : HATA` tüm başarısız çağrılar, `#<n>` tek bir çağrı. Blok formatı, adım
|
|
204
|
+
etiketleri, diğer `LOG_*` ayarları ve maskeleme:
|
|
205
|
+
[`docs/30-tool-cagri-gunlugu.md`](docs/30-tool-cagri-gunlugu.md).
|
|
231
206
|
|
|
232
207
|
## Sorun giderme
|
|
233
208
|
|
package/dist/config.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { userInfo } from "node:os";
|
|
1
2
|
import { z } from "zod";
|
|
2
3
|
export const moduleNames = [
|
|
3
4
|
"platform",
|
|
@@ -10,6 +11,7 @@ export const moduleNames = [
|
|
|
10
11
|
"query",
|
|
11
12
|
"workflow",
|
|
12
13
|
"automation",
|
|
14
|
+
"globalFunction",
|
|
13
15
|
"dto",
|
|
14
16
|
"view",
|
|
15
17
|
"page",
|
|
@@ -39,6 +41,7 @@ export const modulePresets = {
|
|
|
39
41
|
"query",
|
|
40
42
|
"workflow",
|
|
41
43
|
"automation",
|
|
44
|
+
"globalFunction",
|
|
42
45
|
"dto",
|
|
43
46
|
"view",
|
|
44
47
|
"dependency",
|
|
@@ -97,8 +100,22 @@ const environmentSchema = z.object({
|
|
|
97
100
|
MCP_PORT: z.coerce.number().int().positive().default(5100),
|
|
98
101
|
STUDIO_BASE_URL: z.string().url().optional(),
|
|
99
102
|
SCREENSHOT_BROWSER_PATH: z.string().min(1).optional(),
|
|
103
|
+
SCREENSHOT_QUEUE_WAIT_MS: z.coerce.number().int().positive().default(120000),
|
|
100
104
|
});
|
|
101
105
|
export const environmentKeys = Object.keys(environmentSchema.shape);
|
|
106
|
+
/**
|
|
107
|
+
* Makine kullanıcısının adı. Windows `USER`/`LOGNAME` tanımlamaz — o ikisi POSIX kabuklarına
|
|
108
|
+
* aittir — bu yüzden `USERNAME` gölgelemesinin HER ZAMAN yaşandığı platformda kıyaslanacak ad
|
|
109
|
+
* yalnız buradan gelir. Kısıtlı ortamlarda çağrı fırlatabildiği için sarılıdır.
|
|
110
|
+
*/
|
|
111
|
+
function machineUserName() {
|
|
112
|
+
try {
|
|
113
|
+
return userInfo().username;
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return undefined;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
102
119
|
/**
|
|
103
120
|
* `.mcp.json` env bloğundan gelen KULLANILAMAZ değerleri süreç ortamından düşürür ki `.env`
|
|
104
121
|
* (dotenv mevcut anahtarları ezmez) ve şema varsayılanları devreye girebilsin. İki hâl
|
|
@@ -114,14 +131,14 @@ export const environmentKeys = Object.keys(environmentSchema.shape);
|
|
|
114
131
|
* sisteminin kullanıcı adıyla AYNIYSA düşürülür: gerçekten o adla giren bir kurulum zaten
|
|
115
132
|
* `.env`/`.mcp.json`'da aynı değeri yazar ve dosyadan geri okunur.
|
|
116
133
|
*/
|
|
117
|
-
export function dropUnusableEnvironment(env) {
|
|
134
|
+
export function dropUnusableEnvironment(env, osUserName = machineUserName()) {
|
|
118
135
|
for (const key of environmentKeys) {
|
|
119
136
|
const value = env[key];
|
|
120
137
|
if (value === "" || (value !== undefined && /^\$\{[^}]*\}$/.test(value))) {
|
|
121
138
|
delete env[key];
|
|
122
139
|
}
|
|
123
140
|
}
|
|
124
|
-
const osUser = env.USER ?? env.LOGNAME;
|
|
141
|
+
const osUser = env.USER ?? env.LOGNAME ?? osUserName;
|
|
125
142
|
if (env.USERNAME !== undefined && env.USERNAME === osUser) {
|
|
126
143
|
delete env.USERNAME;
|
|
127
144
|
}
|
|
@@ -191,5 +208,6 @@ export function loadConfig(env) {
|
|
|
191
208
|
port: values.MCP_PORT,
|
|
192
209
|
studioBaseUrl: values.STUDIO_BASE_URL?.replace(/\/+$/, ""),
|
|
193
210
|
screenshotBrowserPath: values.SCREENSHOT_BROWSER_PATH,
|
|
211
|
+
screenshotQueueWaitMs: values.SCREENSHOT_QUEUE_WAIT_MS,
|
|
194
212
|
};
|
|
195
213
|
}
|