@appaflytech/zeyrek-ai-mcp 0.0.5 → 0.0.7

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 (145) hide show
  1. package/.env.example +2 -2
  2. package/.env.production.example +9 -1
  3. package/README.md +14 -38
  4. package/dist/config.js +36 -3
  5. package/dist/knowledge/backendConstraints.js +982 -0
  6. package/dist/knowledge/componentCatalog.js +549 -92
  7. package/dist/knowledge/componentEvents.js +120 -25
  8. package/dist/knowledge/coverage.js +43 -0
  9. package/dist/knowledge/flowGuards.js +30 -0
  10. package/dist/knowledge/functionGuards.js +134 -0
  11. package/dist/knowledge/guideSections.js +49 -0
  12. package/dist/knowledge/hydrate.js +97 -0
  13. package/dist/knowledge/languageCodes.js +36 -0
  14. package/dist/knowledge/languages.js +105 -0
  15. package/dist/knowledge/layoutSummary.js +10 -0
  16. package/dist/knowledge/localization.js +51 -0
  17. package/dist/knowledge/normalize.js +500 -16
  18. package/dist/knowledge/outlines.js +167 -12
  19. package/dist/knowledge/policy.js +14 -5
  20. package/dist/knowledge/propTypes.js +80 -0
  21. package/dist/knowledge/rules.js +961 -44
  22. package/dist/knowledge/schemaGuard.js +199 -0
  23. package/dist/knowledge/styleResolve.js +63 -4
  24. package/dist/observability/trace.js +27 -3
  25. package/dist/platform/csv.js +123 -0
  26. package/dist/platform/errors.js +107 -6
  27. package/dist/platform/http.js +34 -4
  28. package/dist/platform/patch.js +27 -0
  29. package/dist/platform/refs.js +104 -0
  30. package/dist/platform/responses.js +25 -6
  31. package/dist/platform/screenshot.js +544 -16
  32. package/dist/platform/secrets.js +40 -0
  33. package/dist/platform/tokenVault.js +89 -0
  34. package/dist/platform/writeDiff.js +281 -0
  35. package/dist/resources/examples/flow-call-function.json +66 -0
  36. package/dist/resources/examples/function-total.json +70 -0
  37. package/dist/resources/examples/layout-app-shell.json +1 -1
  38. package/dist/resources/examples/microfunction-node-sum.json +56 -0
  39. package/dist/resources/examples/microservice-table-list.json +2 -4
  40. package/dist/resources/examples/page-dynamic-form.json +3 -3
  41. package/dist/resources/examples/page-flex-sections.json +99 -0
  42. package/dist/resources/examples/page-sign-in.json +4 -3
  43. package/dist/resources/guides/component.md +81 -8
  44. package/dist/resources/guides/entity.md +712 -20
  45. package/dist/resources/guides/expressions.md +47 -2
  46. package/dist/resources/guides/external-component.md +9 -0
  47. package/dist/resources/guides/functions.md +262 -0
  48. package/dist/resources/guides/getting-started.md +82 -7
  49. package/dist/resources/guides/layout.md +53 -10
  50. package/dist/resources/guides/merge.md +231 -0
  51. package/dist/resources/guides/microfunction.md +166 -0
  52. package/dist/resources/guides/microservice.md +287 -15
  53. package/dist/resources/guides/middleware.md +89 -1
  54. package/dist/resources/guides/modify-existing.md +23 -0
  55. package/dist/resources/guides/page.md +402 -49
  56. package/dist/resources/guides/translation.md +150 -8
  57. package/dist/resources/guides/view.md +16 -1
  58. package/dist/resources/guides/workflow.md +199 -28
  59. package/dist/resources/knowledge.js +5 -0
  60. package/dist/resources/rules.js +27 -0
  61. package/dist/resources/schema-fingerprint.json +8 -0
  62. package/dist/resources/schemas/AnalyzeImportQuery.json +51 -0
  63. package/dist/resources/schemas/ApplyMergePlanCommand.json +19 -0
  64. package/dist/resources/schemas/CreateBulkRowCommand.json +36 -0
  65. package/dist/resources/schemas/CreateDatasourceCommand.json +15 -6
  66. package/dist/resources/schemas/CreateDiscoveredEntitiesCommand.json +19 -8
  67. package/dist/resources/schemas/CreateEntityCommand.json +52 -12
  68. package/dist/resources/schemas/CreateEnvironmentCommand.json +31 -0
  69. package/dist/resources/schemas/CreateGlobalFunctionCommand.json +95 -0
  70. package/dist/resources/schemas/CreateImportPlanCommand.json +278 -0
  71. package/dist/resources/schemas/CreateMergePlanCommand.json +34 -0
  72. package/dist/resources/schemas/CreateMicrofunctionCommand.json +117 -0
  73. package/dist/resources/schemas/CreateMicrofunctionRuntimeCommand.json +51 -0
  74. package/dist/resources/schemas/CreateMicroserviceCommand.json +145 -3
  75. package/dist/resources/schemas/CreateQueryCommand.json +56 -3
  76. package/dist/resources/schemas/CreateRowCommand.json +38 -0
  77. package/dist/resources/schemas/CreateViewCommand.json +13 -10
  78. package/dist/resources/schemas/CreateWorkflowCommand.json +106 -14
  79. package/dist/resources/schemas/DataJobDto.json +267 -0
  80. package/dist/resources/schemas/ExportRowsCommand.json +172 -0
  81. package/dist/resources/schemas/Filter.json +3 -1
  82. package/dist/resources/schemas/GetRowsQuery.json +6 -1
  83. package/dist/resources/schemas/GlobalFunctionDto.json +89 -0
  84. package/dist/resources/schemas/GlobalFunctionUpdateResultDto.json +249 -0
  85. package/dist/resources/schemas/ImportAnalysisDto.json +401 -0
  86. package/dist/resources/schemas/ImportPlanDto.json +260 -0
  87. package/dist/resources/schemas/ImportSampleDto.json +90 -0
  88. package/dist/resources/schemas/InvokeMicrofunctionCommand.json +25 -0
  89. package/dist/resources/schemas/PreviewMicroserviceCommand.json +135 -1
  90. package/dist/resources/schemas/PreviewQueryCommand.json +5 -2
  91. package/dist/resources/schemas/PreviewWorkflowCommand.json +45 -9
  92. package/dist/resources/schemas/ResolveMergeConflictsCommand.json +58 -0
  93. package/dist/resources/schemas/RevertMergePlanCommand.json +19 -0
  94. package/dist/resources/schemas/RunImportCommand.json +62 -0
  95. package/dist/resources/schemas/StepDto.json +34 -3
  96. package/dist/resources/schemas/UpdateBulkRowCommand.json +36 -0
  97. package/dist/resources/schemas/UpdateDatasourceCommand.json +15 -6
  98. package/dist/resources/schemas/UpdateEntityCommand.json +52 -11
  99. package/dist/resources/schemas/UpdateGlobalFunctionCommand.json +66 -0
  100. package/dist/resources/schemas/UpdateMicrofunctionCommand.json +121 -0
  101. package/dist/resources/schemas/UpdateMicrofunctionRuntimeCommand.json +54 -0
  102. package/dist/resources/schemas/UpdateMicroserviceCommand.json +147 -4
  103. package/dist/resources/schemas/UpdateQueryCommand.json +13 -3
  104. package/dist/resources/schemas/UpdateRowCommand.json +40 -0
  105. package/dist/resources/schemas/UpdateViewCommand.json +15 -10
  106. package/dist/resources/schemas/UpdateWorkflowCommand.json +106 -14
  107. package/dist/server.js +17 -1
  108. package/dist/tools/access.js +3 -3
  109. package/dist/tools/activities.js +40 -0
  110. package/dist/tools/applications.js +1 -1
  111. package/dist/tools/automations.js +76 -34
  112. package/dist/tools/common.js +55 -0
  113. package/dist/tools/components.js +16 -7
  114. package/dist/tools/datasources.js +83 -21
  115. package/dist/tools/dependencies.js +1 -1
  116. package/dist/tools/deployments.js +34 -2
  117. package/dist/tools/dtos.js +25 -12
  118. package/dist/tools/entities.js +113 -28
  119. package/dist/tools/environments.js +52 -0
  120. package/dist/tools/externalComponents.js +9 -3
  121. package/dist/tools/files.js +57 -42
  122. package/dist/tools/flows.js +205 -13
  123. package/dist/tools/folders.js +7 -2
  124. package/dist/tools/functions.js +331 -0
  125. package/dist/tools/globalFunctions.js +63 -0
  126. package/dist/tools/importSchemas.js +79 -0
  127. package/dist/tools/imports.js +241 -0
  128. package/dist/tools/layouts.js +103 -29
  129. package/dist/tools/merges.js +113 -0
  130. package/dist/tools/microfunctions.js +155 -0
  131. package/dist/tools/microservices.js +270 -40
  132. package/dist/tools/organizations.js +5 -6
  133. package/dist/tools/pages.js +421 -104
  134. package/dist/tools/platformInfo.js +155 -11
  135. package/dist/tools/projects.js +183 -33
  136. package/dist/tools/queries.js +32 -10
  137. package/dist/tools/revisions.js +94 -0
  138. package/dist/tools/rows.js +484 -50
  139. package/dist/tools/screenWrite.js +68 -0
  140. package/dist/tools/screens.js +28 -0
  141. package/dist/tools/templates.js +32 -5
  142. package/dist/tools/translations.js +24 -8
  143. package/dist/tools/views.js +20 -10
  144. package/dist/tools/workflows.js +56 -21
  145. package/package.json +7 -2
package/.env.example CHANGED
@@ -56,8 +56,8 @@ 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
60
- # (sayfa tasarimi, 59), admin (template/organizasyon/deployment, 16). platform modulu (3 tool)
59
+ # Bos = tum moduller (172 tool / 28 modul). Hazir kumeler: core (veri+mantik, 97), studio
60
+ # (sayfa tasarimi + kullanici fonksiyonlari, 66), admin (template/organizasyon/deployment, 15). platform modulu (3 tool)
61
61
  # her kumede vardir. Kume ve tekil modul adi karisik yazilabilir.
62
62
  # Ornek: core,studio | entity,row,microservice
63
63
  MODULES=
@@ -12,6 +12,14 @@ TENANT_API_BASE_URL=https://new-zeyrek.glomil.com/api
12
12
  ORGANIZATION=new-zeyrek
13
13
  HOST_SUFFIX=glomil.com
14
14
 
15
+ # Ikinci uzak kurulum (wappa kumesi, ayri veritabani; docs/ortam.md). Ona baglanmak icin
16
+ # yukaridaki dort satiri ve asagidaki STUDIO_BASE_URL'i bunlarla degistirin:
17
+ # ORG_API_BASE_URL=https://zeyrek.appaflytech.com/api/org
18
+ # TENANT_API_BASE_URL=https://zeyrek.appaflytech.com/api
19
+ # ORGANIZATION=zeyrek
20
+ # HOST_SUFFIX=appaflytech.com
21
+ # STUDIO_BASE_URL=https://zeyrek.appaflytech.com
22
+
15
23
  # ZORUNLU. Gomulu varsayilan yok.
16
24
  DEFAULT_ENVIRONMENT=development
17
25
  DEFAULT_PROJECT=
@@ -38,7 +46,7 @@ SCREENSHOT_BROWSER_PATH=
38
46
  ORG_SWAGGER_URL=
39
47
  TENANT_SWAGGER_URL=
40
48
 
41
- # Bos = tum moduller (162 tool). Kumeler: core (93) | studio (59) | admin (16).
49
+ # Bos = tum moduller (167 tool). Kumeler: core (97) | studio (59) | admin (16).
42
50
  MODULES=
43
51
 
44
52
  MCP_PORT=5100
package/README.md CHANGED
@@ -4,10 +4,11 @@ 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ı
9
- (page, component, external component, flow, layout, variable, folder, file, access,
10
- translation) ve yönetim (template, organization, deployment).
7
+ - **191 tool · 32 modül** — veri/mantık tarafı (project, application, datasource, entity, row,
8
+ import, microservice, query, workflow, automation, function, dto, view, dependency), Studio
9
+ tasarım tarafı (page, component, external component, flow, layout, variable, function, folder,
10
+ file, access, translation), yönetim (template, organization, deployment) ve proje dallanması
11
+ (environment, merge).
11
12
  - Platform koduna referans vermez: Organization.API ile Tenant.API'yi **HTTP üzerinden** sarar —
12
13
  istekler MVC binding'den geçtiği için FluentValidation aynen çalışır.
13
14
  - Üstünde bir **bilgi katmanı** vardır (rehber + altın örnek + politika lint'i): platformun
@@ -137,10 +138,10 @@ ya da ikisi karışık (`core,page`). `platform` modülü (3 tool) her kümede v
137
138
 
138
139
  | Küme | Tool | Modüller |
139
140
  |---|---|---|
140
- | `core` | 93 | platform, project, application, datasource, entity, row, microservice, query, workflow, automation, dto, view, dependency |
141
- | `studio` | 59 | platform, page, component, externalComponent, flow, layout, variable, folder, file, access, translation |
142
- | `admin` | 16 | platform, template, organization, deployment |
143
- | (boş) | **162** | 26 modülün tamamı |
141
+ | `core` | 111 | platform, project, application, datasource, entity, row, microservice, query, workflow, automation, function, dto, view, dependency, environment, merge, activity, revision |
142
+ | `studio` | 69 | platform, page, component, externalComponent, flow, layout, variable, function, folder, file, access, translation, revision |
143
+ | `admin` | 26 | platform, template, organization, deployment, environment, merge, activity |
144
+ | (boş) | **185** | 32 modülün tamamı |
144
145
 
145
146
  Bilinmeyen bir modül/küme adı verilirse sunucu açılmaz, geçerli adları listeleyen bir hata yazar.
146
147
 
@@ -198,36 +199,11 @@ Tam gövdeyi LLM bağlamına sokmadan çalışma modeli:
198
199
 
199
200
  ## Tool çağrısı günlüğü
200
201
 
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.
202
+ Her MCP tool çağrısı, okunmak için biçimlenmiş tek bir blok olarak
203
+ `zeyrek-mcp/logs/gateway-YYYY-MM-DD.log` dosyasına yazılır (`.gitignore`'da; `LOG_LEVEL=detail|summary|off`).
204
+ Hızlı arama: `SONUÇ : HATA` tüm başarısız çağrılar, `#<n>` tek bir çağrı. Blok formatı, adım
205
+ etiketleri, diğer `LOG_*` ayarları ve maskeleme:
206
+ [`docs/30-tool-cagri-gunlugu.md`](docs/30-tool-cagri-gunlugu.md).
231
207
 
232
208
  ## Sorun giderme
233
209
 
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",
@@ -6,7 +7,9 @@ export const moduleNames = [
6
7
  "datasource",
7
8
  "entity",
8
9
  "row",
10
+ "import",
9
11
  "microservice",
12
+ "microfunction",
10
13
  "query",
11
14
  "workflow",
12
15
  "automation",
@@ -18,6 +21,7 @@ export const moduleNames = [
18
21
  "flow",
19
22
  "layout",
20
23
  "variable",
24
+ "function",
21
25
  "folder",
22
26
  "file",
23
27
  "access",
@@ -26,6 +30,10 @@ export const moduleNames = [
26
30
  "organization",
27
31
  "dependency",
28
32
  "deployment",
33
+ "environment",
34
+ "merge",
35
+ "activity",
36
+ "revision",
29
37
  ];
30
38
  export const modulePresets = {
31
39
  core: [
@@ -35,13 +43,20 @@ export const modulePresets = {
35
43
  "datasource",
36
44
  "entity",
37
45
  "row",
46
+ "import",
38
47
  "microservice",
48
+ "microfunction",
39
49
  "query",
40
50
  "workflow",
41
51
  "automation",
52
+ "function",
42
53
  "dto",
43
54
  "view",
44
55
  "dependency",
56
+ "environment",
57
+ "merge",
58
+ "activity",
59
+ "revision",
45
60
  ],
46
61
  studio: [
47
62
  "platform",
@@ -51,12 +66,15 @@ export const modulePresets = {
51
66
  "flow",
52
67
  "layout",
53
68
  "variable",
69
+ "function",
54
70
  "folder",
55
71
  "file",
72
+ "import",
56
73
  "access",
57
74
  "translation",
75
+ "revision",
58
76
  ],
59
- admin: ["platform", "template", "organization", "deployment"],
77
+ admin: ["platform", "template", "organization", "deployment", "environment", "merge", "activity"],
60
78
  };
61
79
  function expandModuleNames(entries) {
62
80
  const modules = [];
@@ -97,8 +115,22 @@ const environmentSchema = z.object({
97
115
  MCP_PORT: z.coerce.number().int().positive().default(5100),
98
116
  STUDIO_BASE_URL: z.string().url().optional(),
99
117
  SCREENSHOT_BROWSER_PATH: z.string().min(1).optional(),
118
+ SCREENSHOT_QUEUE_WAIT_MS: z.coerce.number().int().positive().default(120000),
100
119
  });
101
120
  export const environmentKeys = Object.keys(environmentSchema.shape);
121
+ /**
122
+ * Makine kullanıcısının adı. Windows `USER`/`LOGNAME` tanımlamaz — o ikisi POSIX kabuklarına
123
+ * aittir — bu yüzden `USERNAME` gölgelemesinin HER ZAMAN yaşandığı platformda kıyaslanacak ad
124
+ * yalnız buradan gelir. Kısıtlı ortamlarda çağrı fırlatabildiği için sarılıdır.
125
+ */
126
+ function machineUserName() {
127
+ try {
128
+ return userInfo().username;
129
+ }
130
+ catch {
131
+ return undefined;
132
+ }
133
+ }
102
134
  /**
103
135
  * `.mcp.json` env bloğundan gelen KULLANILAMAZ değerleri süreç ortamından düşürür ki `.env`
104
136
  * (dotenv mevcut anahtarları ezmez) ve şema varsayılanları devreye girebilsin. İki hâl
@@ -114,14 +146,14 @@ export const environmentKeys = Object.keys(environmentSchema.shape);
114
146
  * sisteminin kullanıcı adıyla AYNIYSA düşürülür: gerçekten o adla giren bir kurulum zaten
115
147
  * `.env`/`.mcp.json`'da aynı değeri yazar ve dosyadan geri okunur.
116
148
  */
117
- export function dropUnusableEnvironment(env) {
149
+ export function dropUnusableEnvironment(env, osUserName = machineUserName()) {
118
150
  for (const key of environmentKeys) {
119
151
  const value = env[key];
120
152
  if (value === "" || (value !== undefined && /^\$\{[^}]*\}$/.test(value))) {
121
153
  delete env[key];
122
154
  }
123
155
  }
124
- const osUser = env.USER ?? env.LOGNAME;
156
+ const osUser = env.USER ?? env.LOGNAME ?? osUserName;
125
157
  if (env.USERNAME !== undefined && env.USERNAME === osUser) {
126
158
  delete env.USERNAME;
127
159
  }
@@ -191,5 +223,6 @@ export function loadConfig(env) {
191
223
  port: values.MCP_PORT,
192
224
  studioBaseUrl: values.STUDIO_BASE_URL?.replace(/\/+$/, ""),
193
225
  screenshotBrowserPath: values.SCREENSHOT_BROWSER_PATH,
226
+ screenshotQueueWaitMs: values.SCREENSHOT_QUEUE_WAIT_MS,
194
227
  };
195
228
  }