@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.
Files changed (101) hide show
  1. package/.env.example +1 -1
  2. package/.env.production.example +1 -1
  3. package/README.md +8 -33
  4. package/dist/config.js +20 -2
  5. package/dist/knowledge/backendConstraints.js +897 -0
  6. package/dist/knowledge/componentCatalog.js +196 -42
  7. package/dist/knowledge/coverage.js +43 -0
  8. package/dist/knowledge/flowGuards.js +30 -0
  9. package/dist/knowledge/guideSections.js +49 -0
  10. package/dist/knowledge/hydrate.js +97 -0
  11. package/dist/knowledge/languageCodes.js +36 -0
  12. package/dist/knowledge/languages.js +105 -0
  13. package/dist/knowledge/layoutSummary.js +10 -0
  14. package/dist/knowledge/localization.js +51 -0
  15. package/dist/knowledge/normalize.js +449 -16
  16. package/dist/knowledge/outlines.js +136 -12
  17. package/dist/knowledge/propTypes.js +80 -0
  18. package/dist/knowledge/rules.js +618 -43
  19. package/dist/knowledge/schemaGuard.js +199 -0
  20. package/dist/knowledge/styleResolve.js +63 -4
  21. package/dist/observability/trace.js +27 -3
  22. package/dist/platform/errors.js +46 -4
  23. package/dist/platform/http.js +33 -4
  24. package/dist/platform/patch.js +27 -0
  25. package/dist/platform/refs.js +104 -0
  26. package/dist/platform/responses.js +9 -2
  27. package/dist/platform/screenshot.js +527 -16
  28. package/dist/platform/secrets.js +40 -0
  29. package/dist/platform/tokenVault.js +89 -0
  30. package/dist/platform/writeDiff.js +281 -0
  31. package/dist/resources/examples/layout-app-shell.json +1 -1
  32. package/dist/resources/examples/microservice-table-list.json +2 -4
  33. package/dist/resources/examples/page-dynamic-form.json +2 -2
  34. package/dist/resources/examples/page-flex-sections.json +99 -0
  35. package/dist/resources/examples/page-sign-in.json +3 -2
  36. package/dist/resources/guides/component.md +69 -8
  37. package/dist/resources/guides/entity.md +404 -16
  38. package/dist/resources/guides/expressions.md +44 -2
  39. package/dist/resources/guides/external-component.md +9 -0
  40. package/dist/resources/guides/getting-started.md +77 -7
  41. package/dist/resources/guides/layout.md +53 -10
  42. package/dist/resources/guides/microservice.md +226 -13
  43. package/dist/resources/guides/middleware.md +89 -1
  44. package/dist/resources/guides/page.md +383 -46
  45. package/dist/resources/guides/translation.md +126 -8
  46. package/dist/resources/guides/view.md +16 -1
  47. package/dist/resources/guides/workflow.md +198 -27
  48. package/dist/resources/knowledge.js +5 -0
  49. package/dist/resources/rules.js +27 -0
  50. package/dist/resources/schema-fingerprint.json +8 -0
  51. package/dist/resources/schemas/CreateBulkRowCommand.json +33 -0
  52. package/dist/resources/schemas/CreateDatasourceCommand.json +15 -6
  53. package/dist/resources/schemas/CreateDiscoveredEntitiesCommand.json +19 -8
  54. package/dist/resources/schemas/CreateEntityCommand.json +52 -12
  55. package/dist/resources/schemas/CreateMicroserviceCommand.json +26 -2
  56. package/dist/resources/schemas/CreateQueryCommand.json +56 -3
  57. package/dist/resources/schemas/CreateRowCommand.json +38 -0
  58. package/dist/resources/schemas/CreateViewCommand.json +13 -10
  59. package/dist/resources/schemas/CreateWorkflowCommand.json +95 -14
  60. package/dist/resources/schemas/GetRowsQuery.json +3 -0
  61. package/dist/resources/schemas/PreviewMicroserviceCommand.json +16 -0
  62. package/dist/resources/schemas/PreviewQueryCommand.json +5 -2
  63. package/dist/resources/schemas/PreviewWorkflowCommand.json +34 -9
  64. package/dist/resources/schemas/StepDto.json +23 -3
  65. package/dist/resources/schemas/UpdateBulkRowCommand.json +33 -0
  66. package/dist/resources/schemas/UpdateDatasourceCommand.json +15 -6
  67. package/dist/resources/schemas/UpdateEntityCommand.json +49 -10
  68. package/dist/resources/schemas/UpdateMicroserviceCommand.json +28 -3
  69. package/dist/resources/schemas/UpdateQueryCommand.json +13 -3
  70. package/dist/resources/schemas/UpdateRowCommand.json +40 -0
  71. package/dist/resources/schemas/UpdateViewCommand.json +15 -10
  72. package/dist/resources/schemas/UpdateWorkflowCommand.json +95 -14
  73. package/dist/server.js +4 -0
  74. package/dist/tools/access.js +3 -3
  75. package/dist/tools/applications.js +1 -1
  76. package/dist/tools/automations.js +63 -30
  77. package/dist/tools/common.js +39 -0
  78. package/dist/tools/components.js +16 -7
  79. package/dist/tools/datasources.js +83 -21
  80. package/dist/tools/deployments.js +34 -2
  81. package/dist/tools/dtos.js +25 -12
  82. package/dist/tools/entities.js +113 -28
  83. package/dist/tools/externalComponents.js +9 -3
  84. package/dist/tools/files.js +20 -6
  85. package/dist/tools/flows.js +110 -11
  86. package/dist/tools/folders.js +7 -2
  87. package/dist/tools/globalFunctions.js +63 -0
  88. package/dist/tools/layouts.js +103 -29
  89. package/dist/tools/microservices.js +229 -38
  90. package/dist/tools/organizations.js +5 -6
  91. package/dist/tools/pages.js +365 -100
  92. package/dist/tools/platformInfo.js +152 -11
  93. package/dist/tools/projects.js +183 -33
  94. package/dist/tools/queries.js +32 -10
  95. package/dist/tools/rows.js +159 -45
  96. package/dist/tools/screenWrite.js +59 -0
  97. package/dist/tools/screens.js +28 -0
  98. package/dist/tools/translations.js +24 -8
  99. package/dist/tools/views.js +20 -10
  100. package/dist/tools/workflows.js +33 -16
  101. 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 (162 tool / 26 modul). Hazir kumeler: core (veri+mantik, 93), studio
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
@@ -38,7 +38,7 @@ SCREENSHOT_BROWSER_PATH=
38
38
  ORG_SWAGGER_URL=
39
39
  TENANT_SWAGGER_URL=
40
40
 
41
- # Bos = tum moduller (162 tool). Kumeler: core (93) | studio (59) | admin (16).
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
- - **162 tool · 26 modül** — veri/mantık tarafı (project, application, datasource, entity, row,
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ş) | **162** | 26 modülün tamamı |
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 dosyaya yazılır — varsayılan
202
- `{LOG_DIR}/gateway-YYYY-AA-GG.log`. Amaç: bir çağrının ne yapmaya çalıştığını, hangi duraklardan
203
- geçtiğini ve nerede patladığını **koda inmeden** okuyabilmek.
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
  }