@modudraft/core 0.1.3 → 0.1.5

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 (51) hide show
  1. package/dist/catalog/archetypes.json +613 -0
  2. package/dist/catalog/protocols.json +8 -0
  3. package/dist/catalog/tools.json +1142 -0
  4. package/dist/catalog-schema.d.ts +70 -0
  5. package/dist/catalog-schema.d.ts.map +1 -0
  6. package/dist/catalog-schema.js +31 -0
  7. package/dist/catalog.d.ts +11 -0
  8. package/dist/catalog.d.ts.map +1 -0
  9. package/dist/catalog.js +12 -0
  10. package/dist/color.d.ts +2 -0
  11. package/dist/color.d.ts.map +1 -0
  12. package/dist/color.js +82 -0
  13. package/dist/grouping.d.ts +4 -0
  14. package/dist/grouping.d.ts.map +1 -0
  15. package/dist/grouping.js +95 -0
  16. package/dist/icons.d.ts +9 -0
  17. package/dist/icons.d.ts.map +1 -0
  18. package/dist/icons.generated.d.ts +4 -0
  19. package/dist/icons.generated.d.ts.map +1 -0
  20. package/dist/icons.generated.js +127 -0
  21. package/dist/icons.js +23 -0
  22. package/dist/index.d.ts +11 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/{src/index.ts → dist/index.js} +0 -1
  25. package/dist/layout.d.ts +8 -0
  26. package/dist/layout.d.ts.map +1 -0
  27. package/dist/layout.js +71 -0
  28. package/dist/mermaid-import.d.ts +12 -0
  29. package/dist/mermaid-import.d.ts.map +1 -0
  30. package/dist/mermaid-import.js +102 -0
  31. package/dist/sysdraw-file.d.ts +123 -0
  32. package/dist/sysdraw-file.d.ts.map +1 -0
  33. package/dist/sysdraw-file.js +215 -0
  34. package/dist/types.d.ts +70 -0
  35. package/dist/types.d.ts.map +1 -0
  36. package/dist/types.js +1 -0
  37. package/package.json +4 -1
  38. package/src/catalog/archetypes.json +0 -613
  39. package/src/catalog/protocols.json +0 -8
  40. package/src/catalog/tools.json +0 -1142
  41. package/src/catalog-schema.ts +0 -45
  42. package/src/catalog.ts +0 -29
  43. package/src/color.ts +0 -89
  44. package/src/grouping.ts +0 -108
  45. package/src/icons.generated.ts +0 -252
  46. package/src/icons.ts +0 -28
  47. package/src/layout.ts +0 -104
  48. package/src/mermaid-import.ts +0 -118
  49. package/src/sysdraw-file.ts +0 -250
  50. package/src/types.ts +0 -75
  51. package/tsconfig.json +0 -17
@@ -1,613 +0,0 @@
1
- {
2
- "database": {
3
- "label": "Database",
4
- "brandColor": "#7dd3fc",
5
- "symbolViewBox": "0 0 64 72",
6
- "symbolSvg": "<ellipse cx='32' cy='12' rx='24' ry='9' fill='none' stroke='currentColor' stroke-width='4'/><path d='M8 12 v44 a24 9 0 0 0 48 0 v-44' fill='none' stroke='currentColor' stroke-width='4'/>",
7
- "defaultTool": "postgresql",
8
- "attributes": [
9
- {
10
- "key": "replication",
11
- "label": "Replication",
12
- "type": "enum",
13
- "options": ["none", "primary-replica", "multi-primary", "read-replicas"]
14
- },
15
- {
16
- "key": "partitioning",
17
- "label": "Partitioning",
18
- "type": "enum",
19
- "options": ["none", "hash", "range", "list"]
20
- },
21
- { "key": "shards", "label": "Shards", "type": "number" },
22
- {
23
- "key": "consistency",
24
- "label": "Consistency",
25
- "type": "enum",
26
- "options": ["strong", "eventual", "causal"]
27
- },
28
- { "key": "backups", "label": "Backups", "type": "boolean" },
29
- { "key": "engine-version", "label": "Engine Version", "type": "text" },
30
- {
31
- "key": "storage-size",
32
- "label": "Storage Size",
33
- "type": "text",
34
- "suggestions": ["10GB", "100GB", "1TB", "10TB"]
35
- },
36
- { "key": "indexes", "label": "Indexes", "type": "text" },
37
- { "key": "connection-pool", "label": "Connection Pool", "type": "number" }
38
- ]
39
- },
40
- "queue": {
41
- "label": "Queue",
42
- "brandColor": "#fbbf24",
43
- "symbolViewBox": "0 0 88 40",
44
- "symbolSvg": "<rect x='2' y='8' width='84' height='24' fill='none' stroke='currentColor' stroke-width='4' rx='2'/><line x1='23' y1='8' x2='23' y2='32' stroke='currentColor' stroke-width='3'/><line x1='44' y1='8' x2='44' y2='32' stroke='currentColor' stroke-width='3'/><line x1='65' y1='8' x2='65' y2='32' stroke='currentColor' stroke-width='3'/>",
45
- "defaultTool": "kafka",
46
- "attributes": [
47
- { "key": "partitions", "label": "Partitions", "type": "number" },
48
- {
49
- "key": "ordering",
50
- "label": "Ordering",
51
- "type": "enum",
52
- "options": ["none", "per-partition", "global-fifo"]
53
- },
54
- {
55
- "key": "delivery",
56
- "label": "Delivery",
57
- "type": "enum",
58
- "options": ["at-most-once", "at-least-once", "exactly-once"]
59
- },
60
- { "key": "dlq", "label": "DLQ", "type": "boolean" },
61
- {
62
- "key": "retention",
63
- "label": "Retention",
64
- "type": "text",
65
- "suggestions": ["1d", "7d", "30d", "infinite"]
66
- },
67
- {
68
- "key": "throughput",
69
- "label": "Throughput",
70
- "type": "text",
71
- "suggestions": ["1k/s", "10k/s", "100k/s"]
72
- },
73
- {
74
- "key": "max-message-size",
75
- "label": "Max Message Size",
76
- "type": "text",
77
- "suggestions": ["1KB", "256KB", "1MB", "10MB"]
78
- }
79
- ]
80
- },
81
- "compute": {
82
- "label": "Compute",
83
- "brandColor": "#86efac",
84
- "symbolViewBox": "0 0 72 48",
85
- "symbolSvg": "<rect x='2' y='2' width='68' height='44' fill='none' stroke='currentColor' stroke-width='4' rx='4'/><circle cx='14' cy='14' r='3' fill='currentColor'/>",
86
- "defaultTool": "docker",
87
- "attributes": [
88
- { "key": "replicas", "label": "Replicas", "type": "number" },
89
- {
90
- "key": "autoscaling",
91
- "label": "Autoscaling",
92
- "type": "enum",
93
- "options": ["none", "horizontal", "vertical"]
94
- },
95
- { "key": "stateless", "label": "Stateless", "type": "boolean" },
96
- {
97
- "key": "language",
98
- "label": "Language",
99
- "type": "text",
100
- "suggestions": ["go", "java", "python", "node", "rust"]
101
- },
102
- {
103
- "key": "memory",
104
- "label": "Memory",
105
- "type": "text",
106
- "suggestions": ["512MB", "1GB", "4GB"]
107
- },
108
- {
109
- "key": "cpu",
110
- "label": "CPU",
111
- "type": "text",
112
- "suggestions": ["0.25 vCPU", "1 vCPU", "4 vCPU", "16 vCPU"]
113
- }
114
- ]
115
- },
116
- "cache": {
117
- "label": "Cache",
118
- "brandColor": "#f0abfc",
119
- "symbolViewBox": "0 0 64 52",
120
- "symbolSvg": "<rect x='6' y='36' width='52' height='12' fill='none' stroke='currentColor' stroke-width='3' rx='2'/><rect x='6' y='20' width='52' height='12' fill='none' stroke='currentColor' stroke-width='3' rx='2'/><rect x='6' y='4' width='52' height='12' fill='none' stroke='currentColor' stroke-width='3' rx='2'/>",
121
- "defaultTool": "redis",
122
- "attributes": [
123
- {
124
- "key": "eviction",
125
- "label": "Eviction",
126
- "type": "enum",
127
- "options": ["lru", "lfu", "fifo", "ttl-only"]
128
- },
129
- {
130
- "key": "ttl",
131
- "label": "TTL",
132
- "type": "text",
133
- "suggestions": ["60s", "5m", "1h", "24h"]
134
- },
135
- {
136
- "key": "strategy",
137
- "label": "Strategy",
138
- "type": "enum",
139
- "options": [
140
- "cache-aside",
141
- "write-through",
142
- "write-behind",
143
- "read-through"
144
- ]
145
- },
146
- {
147
- "key": "size",
148
- "label": "Size",
149
- "type": "text",
150
- "suggestions": ["512MB", "2GB", "8GB", "64GB"]
151
- }
152
- ]
153
- },
154
- "gateway": {
155
- "label": "Gateway",
156
- "brandColor": "#fda4af",
157
- "symbolViewBox": "0 0 64 56",
158
- "symbolSvg": "<path d='M4 28 h20 M24 28 L50 10 M24 28 L50 28 M24 28 L50 46' fill='none' stroke='currentColor' stroke-width='4'/><path d='M48 4 l12 6 -12 6z M48 22 l12 6 -12 6z M48 40 l12 6 -12 6z' fill='currentColor'/>",
159
- "defaultTool": "nginx",
160
- "attributes": [
161
- {
162
- "key": "lb-algorithm",
163
- "label": "LB Algorithm",
164
- "type": "enum",
165
- "options": ["round-robin", "least-connections", "ip-hash", "weighted"]
166
- },
167
- {
168
- "key": "rate-limit",
169
- "label": "Rate Limit",
170
- "type": "text",
171
- "suggestions": ["100/s", "1k/s", "10k/s"]
172
- },
173
- {
174
- "key": "tls-termination",
175
- "label": "TLS Termination",
176
- "type": "boolean"
177
- },
178
- { "key": "auth-offload", "label": "Auth Offload", "type": "boolean" },
179
- {
180
- "key": "timeout",
181
- "label": "Timeout",
182
- "type": "text",
183
- "suggestions": ["5s", "30s", "60s", "300s"]
184
- }
185
- ]
186
- },
187
- "observability": {
188
- "label": "Observability",
189
- "brandColor": "#fdba74",
190
- "symbolViewBox": "0 0 64 40",
191
- "symbolSvg": "<path d='M2 20 h12 l6 -14 l8 28 l6 -14 h28' fill='none' stroke='currentColor' stroke-width='4' stroke-linejoin='round'/>",
192
- "defaultTool": "prometheus",
193
- "attributes": [
194
- {
195
- "key": "signal",
196
- "label": "Signal",
197
- "type": "enum",
198
- "options": ["metrics", "logs", "traces", "all"]
199
- },
200
- {
201
- "key": "retention",
202
- "label": "Retention",
203
- "type": "text",
204
- "suggestions": ["7d", "30d", "90d", "1y"]
205
- },
206
- {
207
- "key": "sampling",
208
- "label": "Sampling",
209
- "type": "text",
210
- "suggestions": ["1%", "10%", "100%"]
211
- },
212
- { "key": "alerting", "label": "Alerting", "type": "boolean" }
213
- ]
214
- },
215
- "storage": {
216
- "label": "Object Storage",
217
- "brandColor": "#a5b4fc",
218
- "symbolViewBox": "0 0 64 56",
219
- "symbolSvg": "<path d='M8 8 h48 l-6 40 a8 6 0 0 1 -8 6 h-20 a8 6 0 0 1 -8 -6 z' fill='none' stroke='currentColor' stroke-width='4'/><line x1='8' y1='18' x2='56' y2='18' stroke='currentColor' stroke-width='3'/>",
220
- "defaultTool": "minio",
221
- "attributes": [
222
- {
223
- "key": "class",
224
- "label": "Class",
225
- "type": "enum",
226
- "options": ["hot", "warm", "cold", "archive"]
227
- },
228
- { "key": "versioning", "label": "Versioning", "type": "boolean" },
229
- { "key": "encryption", "label": "Encryption", "type": "boolean" },
230
- { "key": "lifecycle", "label": "Lifecycle Policy", "type": "text" },
231
- {
232
- "key": "region-replication",
233
- "label": "Region Replication",
234
- "type": "enum",
235
- "options": ["single-region", "multi-region"]
236
- }
237
- ]
238
- },
239
- "search": {
240
- "label": "Search",
241
- "brandColor": "#5eead4",
242
- "symbolViewBox": "0 0 56 56",
243
- "symbolSvg": "<circle cx='24' cy='24' r='16' fill='none' stroke='currentColor' stroke-width='4'/><line x1='36' y1='36' x2='52' y2='52' stroke='currentColor' stroke-width='5' stroke-linecap='round'/>",
244
- "defaultTool": "elasticsearch",
245
- "attributes": [
246
- { "key": "replicas", "label": "Replicas", "type": "number" },
247
- { "key": "index-count", "label": "Index Count", "type": "number" },
248
- { "key": "analyzer", "label": "Analyzer", "type": "text" },
249
- { "key": "full-text", "label": "Full-text", "type": "boolean" }
250
- ]
251
- },
252
- "cdn": {
253
- "label": "CDN",
254
- "brandColor": "#93c5fd",
255
- "symbolViewBox": "0 0 56 56",
256
- "symbolSvg": "<circle cx='28' cy='28' r='24' fill='none' stroke='currentColor' stroke-width='3.5'/><ellipse cx='28' cy='28' rx='11' ry='24' fill='none' stroke='currentColor' stroke-width='3'/><line x1='4' y1='28' x2='52' y2='28' stroke='currentColor' stroke-width='3'/>",
257
- "defaultTool": "cloudflare",
258
- "attributes": [
259
- { "key": "edge-locations", "label": "Edge Locations", "type": "number" },
260
- { "key": "waf", "label": "WAF", "type": "boolean" },
261
- { "key": "cache-policy", "label": "Cache Policy", "type": "text" },
262
- { "key": "ttl", "label": "TTL", "type": "text" },
263
- { "key": "invalidation", "label": "Invalidation", "type": "text" }
264
- ]
265
- },
266
- "client": {
267
- "label": "Client",
268
- "brandColor": "#d9f99d",
269
- "symbolViewBox": "0 0 48 56",
270
- "symbolSvg": "<circle cx='24' cy='14' r='10' fill='none' stroke='currentColor' stroke-width='4'/><path d='M4 52 a20 14 0 0 1 40 0' fill='none' stroke='currentColor' stroke-width='4'/>",
271
- "defaultTool": "web-client",
272
- "attributes": [
273
- {
274
- "key": "platform",
275
- "label": "Platform",
276
- "type": "enum",
277
- "options": ["web", "ios", "android", "desktop", "cli", "iot"]
278
- },
279
- { "key": "offline", "label": "Offline", "type": "boolean" },
280
- {
281
- "key": "framework",
282
- "label": "Framework",
283
- "type": "text",
284
- "suggestions": ["react", "vue", "flutter", "swiftui", "kotlin"]
285
- },
286
- {
287
- "key": "auth-method",
288
- "label": "Auth Method",
289
- "type": "enum",
290
- "options": ["session-cookie", "jwt", "api-key", "oauth2"]
291
- }
292
- ]
293
- },
294
- "auth": {
295
- "label": "Auth / Identity",
296
- "brandColor": "#fcd34d",
297
- "symbolViewBox": "0 0 48 56",
298
- "symbolSvg": "<path d='M24 2 L44 10 v16 c0 14 -9 22 -20 26 C13 48 4 40 4 26 V10 z' fill='none' stroke='currentColor' stroke-width='4'/><circle cx='24' cy='24' r='5' fill='none' stroke='currentColor' stroke-width='3'/><line x1='24' y1='29' x2='24' y2='38' stroke='currentColor' stroke-width='3'/>",
299
- "defaultTool": "keycloak",
300
- "attributes": [
301
- {
302
- "key": "protocol",
303
- "label": "Protocol",
304
- "type": "enum",
305
- "options": ["oauth2", "oidc", "saml", "ldap", "jwt"]
306
- },
307
- { "key": "mfa", "label": "MFA", "type": "boolean" },
308
- {
309
- "key": "sessions",
310
- "label": "Sessions",
311
- "type": "enum",
312
- "options": ["stateless-jwt", "server-session"]
313
- },
314
- { "key": "sso", "label": "SSO", "type": "boolean" },
315
- {
316
- "key": "token-ttl",
317
- "label": "Token TTL",
318
- "type": "text",
319
- "suggestions": ["15m", "1h", "24h", "7d"]
320
- }
321
- ]
322
- },
323
- "ml": {
324
- "label": "AI / ML",
325
- "brandColor": "#c4b5fd",
326
- "symbolViewBox": "0 0 60 56",
327
- "symbolSvg": "<circle cx='12' cy='12' r='6' fill='none' stroke='currentColor' stroke-width='4'/><circle cx='12' cy='44' r='6' fill='none' stroke='currentColor' stroke-width='4'/><circle cx='48' cy='28' r='6' fill='none' stroke='currentColor' stroke-width='4'/><line x1='17' y1='15' x2='43' y2='25' stroke='currentColor' stroke-width='3'/><line x1='17' y1='41' x2='43' y2='31' stroke='currentColor' stroke-width='3'/>",
328
- "defaultTool": "openai",
329
- "attributes": [
330
- {
331
- "key": "modality",
332
- "label": "Modality",
333
- "type": "enum",
334
- "options": ["llm", "vision", "speech", "embedding", "classic-ml"]
335
- },
336
- {
337
- "key": "serving",
338
- "label": "Serving",
339
- "type": "enum",
340
- "options": ["api", "self-hosted", "edge"]
341
- },
342
- { "key": "gpu", "label": "GPU", "type": "boolean" },
343
- { "key": "model", "label": "Model", "type": "text" },
344
- {
345
- "key": "context",
346
- "label": "Context",
347
- "type": "text",
348
- "suggestions": ["8k", "128k", "200k", "1M"]
349
- },
350
- {
351
- "key": "latency-slo",
352
- "label": "Latency SLO",
353
- "type": "text",
354
- "suggestions": ["<100ms", "<500ms", "<2s", "<10s"]
355
- }
356
- ]
357
- },
358
- "warehouse": {
359
- "label": "Analytics / Warehouse",
360
- "brandColor": "#fca5a5",
361
- "symbolViewBox": "0 0 56 48",
362
- "symbolSvg": "<line x1='4' y1='44' x2='52' y2='44' stroke='currentColor' stroke-width='4'/><rect x='8' y='28' width='10' height='16' fill='none' stroke='currentColor' stroke-width='3'/><rect x='23' y='18' width='10' height='26' fill='none' stroke='currentColor' stroke-width='3'/><rect x='38' y='8' width='10' height='36' fill='none' stroke='currentColor' stroke-width='3'/>",
363
- "defaultTool": "snowflake",
364
- "attributes": [
365
- {
366
- "key": "storage-format",
367
- "label": "Storage Format",
368
- "type": "enum",
369
- "options": ["columnar", "row", "lakehouse"]
370
- },
371
- {
372
- "key": "refresh",
373
- "label": "Refresh",
374
- "type": "enum",
375
- "options": ["batch", "streaming", "hybrid"]
376
- },
377
- {
378
- "key": "size",
379
- "label": "Size",
380
- "type": "text",
381
- "suggestions": ["GBs", "TBs", "PBs"]
382
- },
383
- { "key": "partitioned", "label": "Partitioned", "type": "boolean" }
384
- ]
385
- },
386
- "pipeline": {
387
- "label": "Data Pipeline",
388
- "brandColor": "#67e8f9",
389
- "symbolViewBox": "0 0 56 56",
390
- "symbolSvg": "<path d='M6 8 h44 L40 28 L50 48 H6 L16 28 Z' fill='none' stroke='currentColor' stroke-width='4' stroke-linejoin='round'/>",
391
- "defaultTool": "spark",
392
- "attributes": [
393
- {
394
- "key": "mode",
395
- "label": "Mode",
396
- "type": "enum",
397
- "options": ["batch", "streaming", "micro-batch"]
398
- },
399
- {
400
- "key": "orchestration",
401
- "label": "Orchestration",
402
- "type": "enum",
403
- "options": ["scheduled", "event-driven", "manual"]
404
- },
405
- { "key": "parallelism", "label": "Parallelism", "type": "number" },
406
- { "key": "checkpointing", "label": "Checkpointing", "type": "boolean" }
407
- ]
408
- },
409
- "cicd": {
410
- "label": "CI / CD",
411
- "brandColor": "#bef264",
412
- "symbolViewBox": "0 0 56 56",
413
- "symbolSvg": "<path d='M28 10 a18 18 0 0 1 16 10' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/><path d='M44 20 l4 -8 -8 -2' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/><path d='M28 46 a18 18 0 0 1 -16 -10' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/><path d='M12 36 l-4 8 8 2' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/>",
414
- "defaultTool": "githubactions",
415
- "attributes": [
416
- {
417
- "key": "trigger",
418
- "label": "Trigger",
419
- "type": "enum",
420
- "options": ["push", "pr", "schedule", "manual"]
421
- },
422
- {
423
- "key": "environments",
424
- "label": "Environments",
425
- "type": "text",
426
- "suggestions": ["dev", "staging", "prod"]
427
- },
428
- { "key": "approval", "label": "Approval", "type": "boolean" },
429
- { "key": "parallelism", "label": "Parallelism", "type": "number" }
430
- ]
431
- },
432
- "iac": {
433
- "label": "Infra as Code",
434
- "brandColor": "#fdba74",
435
- "symbolViewBox": "0 0 64 48",
436
- "symbolSvg": "<rect x='4' y='4' width='56' height='40' fill='none' stroke='currentColor' stroke-width='4' rx='3'/><path d='M22 24 l-8 -6 8 -6' fill='none' stroke='currentColor' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/><path d='M42 24 l8 -6 -8 -6' fill='none' stroke='currentColor' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'/><line x1='30' y1='30' x2='34' y2='18' stroke='currentColor' stroke-width='3' stroke-linecap='round'/>",
437
- "defaultTool": "terraform",
438
- "attributes": [
439
- {
440
- "key": "state",
441
- "label": "State",
442
- "type": "enum",
443
- "options": ["remote", "local", "managed"]
444
- },
445
- {
446
- "key": "drift-detection",
447
- "label": "Drift Detection",
448
- "type": "boolean"
449
- },
450
- { "key": "plan-preview", "label": "Plan Preview", "type": "boolean" },
451
- { "key": "modules", "label": "Modules", "type": "number" }
452
- ]
453
- },
454
- "serverless": {
455
- "label": "Serverless",
456
- "brandColor": "#f9a8d4",
457
- "symbolViewBox": "0 0 48 56",
458
- "symbolSvg": "<path d='M10 8 l10 20 -8 0 l10 20' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/>",
459
- "defaultTool": "cloudflareworkers",
460
- "attributes": [
461
- {
462
- "key": "trigger",
463
- "label": "Trigger",
464
- "type": "enum",
465
- "options": ["http", "queue", "schedule", "event"]
466
- },
467
- {
468
- "key": "cold-start",
469
- "label": "Cold Start",
470
- "type": "text",
471
- "suggestions": ["<100ms", "<1s", ">1s"]
472
- },
473
- {
474
- "key": "memory",
475
- "label": "Memory",
476
- "type": "text",
477
- "suggestions": ["128MB", "512MB", "1GB"]
478
- },
479
- { "key": "concurrency", "label": "Concurrency", "type": "number" },
480
- {
481
- "key": "timeout",
482
- "label": "Timeout",
483
- "type": "text",
484
- "suggestions": ["3s", "30s", "5m", "15m"]
485
- }
486
- ]
487
- },
488
- "secrets": {
489
- "label": "Secrets",
490
- "brandColor": "#fde047",
491
- "symbolViewBox": "0 0 64 32",
492
- "symbolSvg": "<circle cx='16' cy='16' r='10' fill='none' stroke='currentColor' stroke-width='4'/><line x1='26' y1='16' x2='58' y2='16' stroke='currentColor' stroke-width='4'/><line x1='46' y1='16' x2='46' y2='24' stroke='currentColor' stroke-width='3.5'/><line x1='54' y1='16' x2='54' y2='22' stroke='currentColor' stroke-width='3.5'/>",
493
- "defaultTool": "vault",
494
- "attributes": [
495
- {
496
- "key": "rotation",
497
- "label": "Rotation",
498
- "type": "enum",
499
- "options": ["none", "manual", "automatic"]
500
- },
501
- {
502
- "key": "access",
503
- "label": "Access",
504
- "type": "enum",
505
- "options": ["iam", "token", "mtls"]
506
- },
507
- { "key": "audit-log", "label": "Audit Log", "type": "boolean" },
508
- { "key": "versioning", "label": "Versioning", "type": "boolean" }
509
- ]
510
- },
511
- "external": {
512
- "label": "External Service",
513
- "brandColor": "#cbd5e1",
514
- "symbolViewBox": "0 0 64 56",
515
- "symbolSvg": "<rect x='4' y='8' width='40' height='40' fill='none' stroke='currentColor' stroke-width='4' rx='3'/><path d='M44 28 h16' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/><path d='M52 20 l8 8 -8 8' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/>",
516
- "defaultTool": "stripe",
517
- "attributes": [
518
- {
519
- "key": "provider-sla",
520
- "label": "SLA",
521
- "type": "text",
522
- "suggestions": ["99.9%", "99.95%", "99.99%"]
523
- },
524
- {
525
- "key": "auth",
526
- "label": "Auth",
527
- "type": "enum",
528
- "options": ["api-key", "oauth2", "hmac", "none"]
529
- },
530
- { "key": "rate-limit", "label": "Rate Limit", "type": "text" },
531
- {
532
- "key": "webhook-callbacks",
533
- "label": "Webhook Callbacks",
534
- "type": "boolean"
535
- }
536
- ]
537
- },
538
- "notification": {
539
- "label": "Notifications",
540
- "brandColor": "#f9a8d4",
541
- "symbolViewBox": "0 0 56 64",
542
- "symbolSvg": "<path d='M28 4 a16 16 0 0 1 16 16 v16 l6 8 H6 l6 -8 V20 a16 16 0 0 1 16 -16 z' fill='none' stroke='currentColor' stroke-width='4' stroke-linejoin='round'/><path d='M22 52 a6 6 0 0 0 12 0' fill='none' stroke='currentColor' stroke-width='4'/>",
543
- "defaultTool": "fcm",
544
- "attributes": [
545
- {
546
- "key": "channel",
547
- "label": "Channel",
548
- "type": "enum",
549
- "options": ["push", "email", "sms", "multi"]
550
- },
551
- { "key": "batching", "label": "Batching", "type": "boolean" },
552
- {
553
- "key": "priority",
554
- "label": "Priority",
555
- "type": "enum",
556
- "options": ["high", "normal", "low"]
557
- },
558
- {
559
- "key": "delivery-guarantee",
560
- "label": "Delivery Guarantee",
561
- "type": "enum",
562
- "options": ["at-most-once", "at-least-once", "exactly-once"]
563
- }
564
- ]
565
- },
566
- "realtime": {
567
- "label": "Realtime",
568
- "brandColor": "#7dd3fc",
569
- "symbolViewBox": "0 0 64 56",
570
- "symbolSvg": "<circle cx='32' cy='36' r='4' fill='currentColor'/><path d='M20 48 a16 16 0 0 1 24 0' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/><path d='M12 56 a24 24 0 0 1 40 0' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/><path d='M28 24 a8 8 0 0 1 8 0' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round'/>",
571
- "defaultTool": "pusher",
572
- "attributes": [
573
- {
574
- "key": "transport",
575
- "label": "Transport",
576
- "type": "enum",
577
- "options": ["websocket", "sse", "webrtc"]
578
- },
579
- {
580
- "key": "fanout",
581
- "label": "Fanout",
582
- "type": "text",
583
- "suggestions": ["1:1", "1:N", "broadcast"]
584
- },
585
- {
586
- "key": "scale",
587
- "label": "Scale",
588
- "type": "text",
589
- "suggestions": ["1k conns", "100k conns", "1M conns"]
590
- },
591
- { "key": "presence", "label": "Presence", "type": "boolean" }
592
- ]
593
- },
594
- "workflow": {
595
- "label": "Workflow / Scheduler",
596
- "brandColor": "#fcd34d",
597
- "symbolViewBox": "0 0 64 64",
598
- "symbolSvg": "<circle cx='32' cy='32' r='26' fill='none' stroke='currentColor' stroke-width='4'/><path d='M32 16 v16 l10 6' fill='none' stroke='currentColor' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'/><path d='M52 10 a26 26 0 0 1 6 18' fill='none' stroke='currentColor' stroke-width='3.5' stroke-linecap='round'/><path d='M54 6 l4 8 -8 0' fill='currentColor'/>",
599
- "defaultTool": "temporal",
600
- "attributes": [
601
- {
602
- "key": "schedule",
603
- "label": "Schedule",
604
- "type": "text",
605
- "suggestions": ["cron", "event-driven", "manual"]
606
- },
607
- { "key": "retries", "label": "Retries", "type": "number" },
608
- { "key": "durable", "label": "Durable state", "type": "boolean" },
609
- { "key": "timeout", "label": "Timeout", "type": "text" },
610
- { "key": "idempotency", "label": "Idempotency", "type": "boolean" }
611
- ]
612
- }
613
- }
@@ -1,8 +0,0 @@
1
- {
2
- "HTTP": ["HTTPS", "REST", "GraphQL", "SOAP", "Webhook"],
3
- "RPC": ["gRPC", "Thrift"],
4
- "Realtime": ["WebSocket", "SSE"],
5
- "Transport": ["TCP", "UDP"],
6
- "Messaging": ["AMQP", "MQTT"],
7
- "Data": ["CDC Stream", "ETL", "Batch"]
8
- }