likec4 1.48.0 → 1.50.0

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 (118) hide show
  1. package/README.md +11 -1
  2. package/__app__/src/likec4.js +5941 -4496
  3. package/__app__/src/routes/index.js +3 -153
  4. package/__app__/src/routes/projects.js +21 -1087
  5. package/__app__/src/routes/single.js +1228 -16
  6. package/__app__/src/style.css +1 -1
  7. package/__app__/src/vendors.js +4649 -1897
  8. package/__app__/src/webcomponent.js +1 -1
  9. package/config/schema.json +169 -141
  10. package/dist/THIRD-PARTY-LICENSES.md +1769 -0
  11. package/dist/_chunks/LikeC4.mjs +1154 -202
  12. package/dist/_chunks/binary.mjs +72 -0
  13. package/dist/_chunks/index.d.mts +234 -140
  14. package/dist/_chunks/index2.d.mts +2043 -1828
  15. package/dist/_chunks/libs/@chevrotain/cst-dts-gen.mjs +30 -0
  16. package/dist/_chunks/libs/@chevrotain/regexp-to-ast.mjs +9 -785
  17. package/dist/_chunks/libs/@chevrotain/utils.mjs +1 -37
  18. package/dist/_chunks/libs/@hono/mcp.mjs +34 -0
  19. package/dist/_chunks/libs/@hono/node-server.mjs +1 -436
  20. package/dist/_chunks/libs/@logtape/logtape.d.mts +741 -0
  21. package/dist/_chunks/libs/@logtape/logtape.mjs +6 -1354
  22. package/dist/_chunks/libs/@lume/kiwi.mjs +1 -1355
  23. package/dist/_chunks/libs/@modelcontextprotocol/sdk.d.mts +114 -14
  24. package/dist/_chunks/libs/@modelcontextprotocol/sdk.mjs +12 -25105
  25. package/dist/_chunks/libs/@msgpack/msgpack.mjs +1 -1503
  26. package/dist/_chunks/libs/@nanostores/react.d.mts +61 -1
  27. package/dist/_chunks/libs/@nanostores/react.mjs +1 -30
  28. package/dist/_chunks/libs/@smithy/is-array-buffer.mjs +1 -10
  29. package/dist/_chunks/libs/@smithy/util-base64.mjs +1 -100
  30. package/dist/_chunks/libs/ajv.mjs +1 -777
  31. package/dist/_chunks/libs/atomically.mjs +1 -362
  32. package/dist/_chunks/libs/birpc.mjs +1 -201
  33. package/dist/_chunks/libs/chevrotain-allstar.mjs +2 -850
  34. package/dist/_chunks/libs/chevrotain.mjs +55 -6229
  35. package/dist/_chunks/libs/conf.mjs +1 -2258
  36. package/dist/_chunks/libs/defu.mjs +1 -42
  37. package/dist/_chunks/libs/esm-env.mjs +1 -5
  38. package/dist/_chunks/libs/eventemitter3.mjs +1 -243
  39. package/dist/_chunks/libs/fast-equals.mjs +1 -446
  40. package/dist/_chunks/libs/find-up-simple.mjs +1 -24
  41. package/dist/_chunks/libs/get-port.mjs +1 -107
  42. package/dist/_chunks/libs/is-docker.mjs +1 -26
  43. package/dist/_chunks/libs/is-error-instance.mjs +1 -26
  44. package/dist/_chunks/libs/is-inside-container.mjs +1 -20
  45. package/dist/_chunks/libs/is-plain-obj.mjs +1 -9
  46. package/dist/_chunks/libs/isexe.mjs +1 -127
  47. package/dist/_chunks/libs/json5.mjs +14 -959
  48. package/dist/_chunks/libs/khroma.mjs +1 -605
  49. package/dist/_chunks/libs/ky.mjs +2 -807
  50. package/dist/_chunks/libs/langium.d.mts +2913 -2876
  51. package/dist/_chunks/libs/langium.mjs +33 -20351
  52. package/dist/_chunks/libs/merge-error-cause.mjs +2 -746
  53. package/dist/_chunks/libs/p-limit.mjs +1 -120
  54. package/dist/_chunks/libs/p-queue.mjs +1 -449
  55. package/dist/_chunks/libs/package-manager-detector.mjs +1 -559
  56. package/dist/_chunks/libs/package-up.mjs +1 -10
  57. package/dist/_chunks/libs/pako.mjs +1 -0
  58. package/dist/_chunks/libs/parse-ms.mjs +1 -36
  59. package/dist/_chunks/libs/pathe.mjs +1 -0
  60. package/dist/_chunks/libs/picomatch.mjs +1 -1673
  61. package/dist/_chunks/libs/pretty-ms.mjs +1 -80
  62. package/dist/_chunks/libs/remeda.mjs +2 -690
  63. package/dist/_chunks/libs/safe-stringify.mjs +1 -21
  64. package/dist/_chunks/libs/strip-indent.mjs +1 -15
  65. package/dist/_chunks/libs/tinyrainbow.mjs +1 -88
  66. package/dist/_chunks/libs/ts-graphviz.mjs +4 -725
  67. package/dist/_chunks/libs/ufo.mjs +1 -240
  68. package/dist/_chunks/libs/which.mjs +1 -84
  69. package/dist/_chunks/libs/word-wrap.mjs +12 -43
  70. package/dist/_chunks/rolldown-runtime.mjs +1 -48
  71. package/dist/_chunks/sequence.mjs +1 -0
  72. package/dist/_chunks/src.mjs +15 -0
  73. package/dist/_chunks/src2.mjs +499 -0
  74. package/dist/cli/index.mjs +77 -1952
  75. package/dist/config/index.d.mts +2 -2
  76. package/dist/config/index.mjs +1 -6
  77. package/dist/index.d.mts +150 -7
  78. package/dist/index.mjs +1 -21
  79. package/dist/model/builder.mjs +1 -3
  80. package/dist/model/index.d.mts +57 -3
  81. package/dist/model/index.mjs +1 -5
  82. package/dist/vite-plugin/index.d.mts +7 -3
  83. package/dist/vite-plugin/index.mjs +1 -22
  84. package/dist/vite-plugin/internal.d.mts +6 -7
  85. package/dist/vite-plugin/internal.mjs +1 -68
  86. package/package.json +64 -45
  87. package/react/{index.d.ts → index.d.mts} +114 -72
  88. package/react/{index.js → index.mjs} +21320 -22041
  89. package/react/package.json +2 -5
  90. package/vite-plugin-modules.d.ts +10 -5
  91. package/dist/_chunks/LikeC4.d.mts +0 -121
  92. package/dist/_chunks/config-app.prod.d.mts +0 -18
  93. package/dist/_chunks/config-app.prod.mjs +0 -188
  94. package/dist/_chunks/config-webcomponent.prod.mjs +0 -71
  95. package/dist/_chunks/define-config.mjs +0 -409
  96. package/dist/_chunks/index3.d.mts +0 -60
  97. package/dist/_chunks/libs/@chevrotain/gast.mjs +0 -3969
  98. package/dist/_chunks/libs/hono.mjs +0 -1829
  99. package/dist/_chunks/libs/nanoid.mjs +0 -29
  100. package/dist/_chunks/libs/nanostores.d.mts +0 -63
  101. package/dist/_chunks/libs/nanostores.mjs +0 -198
  102. package/dist/_chunks/model.mjs +0 -12
  103. package/dist/_chunks/module.d.mts +0 -71
  104. package/dist/_chunks/module.mjs +0 -18657
  105. package/dist/_chunks/plugin.mjs +0 -996
  106. package/dist/_chunks/sequence-view.mjs +0 -575
  107. package/dist/_chunks/vite-build.mjs +0 -69
  108. package/dist/_chunks/vite-dev.mjs +0 -79
  109. package/dist/_chunks/vite-preview.mjs +0 -27
  110. package/dist/language/module.d.mts +0 -5
  111. package/dist/language/module.mjs +0 -20
  112. package/dist/vite/vite-build.d.mts +0 -26
  113. package/dist/vite/vite-build.mjs +0 -27
  114. package/dist/vite/vite-dev.d.mts +0 -34
  115. package/dist/vite/vite-dev.mjs +0 -29
  116. package/dist/vite/vite-preview.d.mts +0 -20
  117. package/dist/vite/vite-preview.mjs +0 -26
  118. /package/dist/_chunks/{index4.d.mts → libs/@chevrotain/types.d.mts} +0 -0
@@ -2,7 +2,7 @@ import { jsx } from "react/jsx-runtime";
2
2
  import { LikeC4View as LikeC4View$1 } from "likec4:react";
3
3
  import { createRoot } from "react-dom/client";
4
4
  import { ComponentName } from "./const.js";
5
- import { dw as object, dx as literal, dy as stringbool, dz as string, dA as formatError } from "./vendors.js";
5
+ import { dF as object, dG as literal, dH as stringbool, dI as string, dJ as formatError } from "./vendors.js";
6
6
  const propsSchema = object({
7
7
  viewId: string().default("index"),
8
8
  browser: stringbool().default(!0),
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "description": "LikeC4 project configuration",
3
+ "id": "LikeC4ProjectConfig",
4
+ "description": "LikeC4 Project Configuration",
4
5
  "type": "object",
5
6
  "properties": {
6
7
  "name": {
@@ -8,6 +9,23 @@
8
9
  "type": "string",
9
10
  "minLength": 1
10
11
  },
12
+ "extends": {
13
+ "description": "Extend styles from other config files",
14
+ "anyOf": [
15
+ {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ {
20
+ "minItems": 1,
21
+ "type": "array",
22
+ "items": {
23
+ "type": "string",
24
+ "minLength": 1
25
+ }
26
+ }
27
+ ]
28
+ },
11
29
  "title": {
12
30
  "description": "A human readable title for the project",
13
31
  "type": "string",
@@ -18,25 +36,39 @@
18
36
  "type": "string",
19
37
  "minLength": 1
20
38
  },
21
- "imageAliases": {
22
- "description": "Map of image alias prefixes to relative paths (keys must match /^@\\w+$/; values must be relative paths without protocol or leading slash).",
39
+ "metadata": {
40
+ "description": "Arbitrary metadata as key-value pairs for custom project information",
23
41
  "type": "object",
24
42
  "propertyNames": {
25
43
  "type": "string"
26
44
  },
27
- "additionalProperties": {
28
- "type": "string",
29
- "minLength": 1,
30
- "pattern": "^(?!\\/|[A-Za-z]:[\\\\\\/])(?!.*:\\/\\/).*$"
31
- }
45
+ "additionalProperties": {}
46
+ },
47
+ "styles": {
48
+ "description": "Project styles customization",
49
+ "type": "object",
50
+ "properties": {
51
+ "theme": {
52
+ "description": "Project theme customization",
53
+ "$ref": "#/$defs/ThemeCustomization"
54
+ },
55
+ "defaults": {
56
+ "description": "Override default values for style properties\nThese values will be used if such property is not defined",
57
+ "$ref": "#/$defs/DefaultStyleValues"
58
+ },
59
+ "customCss": {
60
+ "description": "Custom CSS (or list of CSS files) to be included in the generated diagrams",
61
+ "$ref": "#/$defs/CustomStylesheets"
62
+ }
63
+ },
64
+ "additionalProperties": false
65
+ },
66
+ "imageAliases": {
67
+ "$ref": "#/$defs/ImageAliases"
32
68
  },
33
69
  "include": {
34
- "description": "Configuration for including additional LikeC4 source files from other directories.\nExample: { \"paths\": [\"../shared\", \"../common/specs\"], \"maxDepth\": 5, \"fileThreshold\": 50 }",
35
70
  "$ref": "#/$defs/include-config"
36
71
  },
37
- "styles": {
38
- "$ref": "#/$defs/StylesConfiguration"
39
- },
40
72
  "exclude": {
41
73
  "description": "List of file patterns to exclude from the project, default is [\"**/node_modules/**\"]",
42
74
  "type": "array",
@@ -45,103 +77,76 @@
45
77
  }
46
78
  },
47
79
  "manualLayouts": {
48
- "$ref": "#/$defs/manual-layouts-config"
80
+ "$ref": "#/$defs/ManualLayoutsConfig"
81
+ },
82
+ "inferTechnologyFromIcon": {
83
+ "description": "Automatically derive element technology from icon name when technology is not set explicitly.\nApplies to aws:, azure:, gcp:, and tech: icons. Bootstrap icons are excluded.\nDefaults to true.",
84
+ "type": "boolean"
85
+ },
86
+ "implicitViews": {
87
+ "description": "Auto-generate scoped views for elements without explicit views. Defaults to true.",
88
+ "type": "boolean"
49
89
  }
50
90
  },
51
91
  "required": [
52
92
  "name"
53
93
  ],
54
94
  "$defs": {
55
- "include-config": {
56
- "id": "include-config",
57
- "description": "Configuration for including additional LikeC4 source files",
58
- "type": "object",
59
- "properties": {
60
- "paths": {
61
- "description": "Additional relative directory paths to include LikeC4 source files from, searched recursively.\nPaths are relative to the project folder (the folder containing this config file).\nExample: [\"../shared\", \"../common/specs\"]",
62
- "minItems": 1,
63
- "type": "array",
64
- "items": {
65
- "type": "string",
66
- "minLength": 1,
67
- "pattern": "^(?!\\/|[A-Za-z]:[\\\\\\/])(?!.*:\\/\\/).*$"
68
- }
69
- },
70
- "maxDepth": {
71
- "description": "Maximum directory depth to scan when searching for .c4 files in include paths.\nPrevents excessive scanning of deeply nested directories.\nDefault: 3",
72
- "default": 3,
73
- "type": "integer",
74
- "minimum": 1,
75
- "maximum": 20
76
- },
77
- "fileThreshold": {
78
- "description": "Maximum number of files to load from include paths before warning.\nHelps identify performance issues from accidentally including large directories.\nDefault: 30",
79
- "default": 30,
80
- "type": "integer",
81
- "minimum": 1,
82
- "maximum": 9007199254740991
83
- }
84
- },
85
- "required": [
86
- "paths"
87
- ],
88
- "additionalProperties": false
89
- },
90
- "StylesConfiguration": {
91
- "id": "StylesConfiguration",
92
- "description": "Project styles customization",
93
- "type": "object",
94
- "properties": {
95
- "theme": {
96
- "$ref": "#/$defs/ThemeCustomization"
97
- },
98
- "defaults": {
99
- "$ref": "#/$defs/DefaultStyleValues"
100
- },
101
- "customCss": {
102
- "$ref": "#/$defs/CustomStylesheets"
103
- }
104
- },
105
- "additionalProperties": false
106
- },
107
95
  "ThemeCustomization": {
108
96
  "id": "ThemeCustomization",
109
- "description": "Theme customization",
97
+ "description": "Customize theme colors and sizes",
110
98
  "type": "object",
111
99
  "properties": {
112
100
  "colors": {
113
- "$ref": "#/$defs/ThemeColors"
101
+ "description": "Override theme colors",
102
+ "type": "object",
103
+ "propertyNames": {
104
+ "anyOf": [
105
+ {
106
+ "$ref": "#/$defs/ColorName"
107
+ },
108
+ {
109
+ "not": {}
110
+ }
111
+ ]
112
+ },
113
+ "additionalProperties": {
114
+ "$ref": "#/$defs/ThemeColorValues"
115
+ }
114
116
  },
115
117
  "sizes": {
116
- "$ref": "#/$defs/ThemeSizes"
118
+ "description": "Override theme sizes",
119
+ "type": "object",
120
+ "propertyNames": {
121
+ "anyOf": [
122
+ {
123
+ "$ref": "#/$defs/ElementSize"
124
+ },
125
+ {
126
+ "not": {}
127
+ }
128
+ ]
129
+ },
130
+ "additionalProperties": {
131
+ "$ref": "#/$defs/Dimensions"
132
+ }
117
133
  }
118
134
  },
119
135
  "additionalProperties": false
120
136
  },
121
- "ThemeColors": {
122
- "id": "ThemeColors",
123
- "description": "Override theme colors",
124
- "type": "object",
125
- "propertyNames": {
126
- "$ref": "#/$defs/ColorName"
127
- },
128
- "additionalProperties": {
129
- "$ref": "#/$defs/ThemeColorValues"
130
- }
131
- },
132
137
  "ColorName": {
133
138
  "id": "ColorName",
134
139
  "anyOf": [
135
140
  {
136
- "$ref": "#/$defs/ThemeColor"
141
+ "$ref": "#/$defs/ThemeColorName"
137
142
  },
138
143
  {
139
144
  "$ref": "#/$defs/CustomColorName"
140
145
  }
141
146
  ]
142
147
  },
143
- "ThemeColor": {
144
- "id": "ThemeColor",
148
+ "ThemeColorName": {
149
+ "id": "ThemeColorName",
145
150
  "type": "string",
146
151
  "enum": [
147
152
  "amber",
@@ -158,51 +163,44 @@
158
163
  ]
159
164
  },
160
165
  "CustomColorName": {
161
- "id": "CustomColorName",
162
- "type": "string",
163
- "minLength": 1
166
+ "id": "CustomColorName"
164
167
  },
165
168
  "ThemeColorValues": {
166
169
  "id": "ThemeColorValues",
167
170
  "description": "Exact value (hex, rgb, rgba, hsl, hsla ...) or break down of specific color values",
168
171
  "anyOf": [
169
172
  {
170
- "$ref": "#/$defs/ColorLiteral"
173
+ "$ref": "#/$defs/StrictThemeColorValues"
171
174
  },
172
175
  {
173
- "$ref": "#/$defs/StrictThemeColorValues"
176
+ "$ref": "#/$defs/ColorLiteral"
174
177
  }
175
178
  ]
176
179
  },
177
- "ColorLiteral": {
178
- "id": "ColorLiteral",
179
- "description": "Color value in any valid CSS format: hex, rgb, rgba, hsl, hsla ...",
180
- "type": "string",
181
- "minLength": 1
182
- },
183
180
  "StrictThemeColorValues": {
184
181
  "id": "StrictThemeColorValues",
182
+ "description": "Exact color value (hex, rgb, rgba, hsl, hsla ...) or break down of specific color value",
185
183
  "type": "object",
186
184
  "properties": {
187
185
  "elements": {
188
- "description": "Element color value (or a breakdown of specific color values)",
186
+ "description": "Exact color value (hex, rgb, rgba, hsl, hsla ...) or break down of specific color values",
189
187
  "anyOf": [
190
188
  {
191
- "$ref": "#/$defs/ColorLiteral"
189
+ "$ref": "#/$defs/ElementColorValues"
192
190
  },
193
191
  {
194
- "$ref": "#/$defs/ElementColorValues"
192
+ "$ref": "#/$defs/ColorLiteral"
195
193
  }
196
194
  ]
197
195
  },
198
196
  "relationships": {
199
- "description": "Relationship color value (or a breakdown of specific color values)",
197
+ "description": "Exact color value (hex, rgb, rgba, hsl, hsla ...) or break down of specific color values",
200
198
  "anyOf": [
201
199
  {
202
- "$ref": "#/$defs/ColorLiteral"
200
+ "$ref": "#/$defs/RelationshipColorValues"
203
201
  },
204
202
  {
205
- "$ref": "#/$defs/RelationshipColorValues"
203
+ "$ref": "#/$defs/ColorLiteral"
206
204
  }
207
205
  ]
208
206
  }
@@ -242,6 +240,11 @@
242
240
  ],
243
241
  "additionalProperties": false
244
242
  },
243
+ "ColorLiteral": {
244
+ "id": "ColorLiteral",
245
+ "type": "string",
246
+ "minLength": 1
247
+ },
245
248
  "RelationshipColorValues": {
246
249
  "id": "RelationshipColorValues",
247
250
  "type": "object",
@@ -256,6 +259,7 @@
256
259
  },
257
260
  "labelBg": {
258
261
  "description": "Label background color",
262
+ "default": "rgba(0, 0, 0, 0.5)",
259
263
  "$ref": "#/$defs/ColorLiteral"
260
264
  }
261
265
  },
@@ -265,32 +269,20 @@
265
269
  ],
266
270
  "additionalProperties": false
267
271
  },
268
- "ThemeSizes": {
269
- "id": "ThemeSizes",
270
- "description": "Override theme sizes",
271
- "type": "object",
272
- "properties": {
273
- "xs": {
274
- "$ref": "#/$defs/Dimensions"
275
- },
276
- "sm": {
277
- "$ref": "#/$defs/Dimensions"
278
- },
279
- "md": {
280
- "$ref": "#/$defs/Dimensions"
281
- },
282
- "lg": {
283
- "$ref": "#/$defs/Dimensions"
284
- },
285
- "xl": {
286
- "$ref": "#/$defs/Dimensions"
287
- }
288
- },
289
- "additionalProperties": false
272
+ "ElementSize": {
273
+ "id": "ElementSize",
274
+ "type": "string",
275
+ "enum": [
276
+ "xs",
277
+ "sm",
278
+ "md",
279
+ "lg",
280
+ "xl"
281
+ ]
290
282
  },
291
283
  "Dimensions": {
292
284
  "id": "Dimensions",
293
- "description": "Dimensions",
285
+ "description": "Defines dimensions for theme size",
294
286
  "type": "object",
295
287
  "properties": {
296
288
  "width": {
@@ -310,7 +302,6 @@
310
302
  },
311
303
  "DefaultStyleValues": {
312
304
  "id": "DefaultStyleValues",
313
- "description": "Override default values for style properties\nThese values will be used if such property is not defined",
314
305
  "type": "object",
315
306
  "properties": {
316
307
  "color": {
@@ -338,11 +329,11 @@
338
329
  "$ref": "#/$defs/IconPosition"
339
330
  },
340
331
  "group": {
341
- "description": "Default style values for groups",
332
+ "description": "Override default values for group style properties\nThese values will be used if such property is not defined",
342
333
  "$ref": "#/$defs/GroupDefaultStyleValues"
343
334
  },
344
335
  "relationship": {
345
- "description": "Default style values for relationships",
336
+ "description": "Override default values for relationship style properties\nThese values will be used if such property is not defined",
346
337
  "$ref": "#/$defs/RelationshipDefaultStyleValues"
347
338
  }
348
339
  },
@@ -365,17 +356,6 @@
365
356
  "none"
366
357
  ]
367
358
  },
368
- "ElementSize": {
369
- "id": "ElementSize",
370
- "type": "string",
371
- "enum": [
372
- "xs",
373
- "sm",
374
- "md",
375
- "lg",
376
- "xl"
377
- ]
378
- },
379
359
  "ElementShape": {
380
360
  "id": "ElementShape",
381
361
  "type": "string",
@@ -388,7 +368,8 @@
388
368
  "storage",
389
369
  "queue",
390
370
  "bucket",
391
- "document"
371
+ "document",
372
+ "component"
392
373
  ]
393
374
  },
394
375
  "IconPosition": {
@@ -403,7 +384,6 @@
403
384
  },
404
385
  "GroupDefaultStyleValues": {
405
386
  "id": "GroupDefaultStyleValues",
406
- "description": "Override default values for group style properties\nThese values will be used if such property is not defined",
407
387
  "type": "object",
408
388
  "properties": {
409
389
  "color": {
@@ -468,7 +448,6 @@
468
448
  },
469
449
  "CustomStylesheets": {
470
450
  "id": "CustomStylesheets",
471
- "description": "Custom CSS (or list of CSS files) to be included in the generated diagrams",
472
451
  "anyOf": [
473
452
  {
474
453
  "type": "string",
@@ -483,8 +462,57 @@
483
462
  }
484
463
  ]
485
464
  },
486
- "manual-layouts-config": {
487
- "id": "manual-layouts-config",
465
+ "ImageAliases": {
466
+ "id": "ImageAliases",
467
+ "description": "Map of image alias prefixes to relative paths (keys must match /^@\\w+$/; values must be relative paths without protocol or leading slash).",
468
+ "type": "object",
469
+ "propertyNames": {
470
+ "type": "string",
471
+ "minLength": 1,
472
+ "pattern": "^@[A-Za-z0-9_-]*$"
473
+ },
474
+ "additionalProperties": {
475
+ "type": "string",
476
+ "minLength": 1,
477
+ "pattern": "^(?!\\/|[A-Za-z]:[\\\\\\/])(?!.*:\\/\\/).*$"
478
+ }
479
+ },
480
+ "include-config": {
481
+ "id": "include-config",
482
+ "description": "Configuration for including additional LikeC4 source files from other directories.\nExample: { \"paths\": [\"../shared\", \"../common/specs\"], \"maxDepth\": 5, \"fileThreshold\": 50 }",
483
+ "type": "object",
484
+ "properties": {
485
+ "paths": {
486
+ "description": "Additional relative directory paths to include LikeC4 source files from, searched recursively.\nPaths are relative to the project folder (the folder containing this config file).\nExample: [\"../shared\", \"../common/specs\"]",
487
+ "type": "array",
488
+ "items": {
489
+ "type": "string",
490
+ "minLength": 1,
491
+ "pattern": "^(?!\\/|[A-Za-z]:[\\\\\\/])(?!.*:\\/\\/).*$"
492
+ }
493
+ },
494
+ "maxDepth": {
495
+ "description": "Maximum directory depth to scan when searching for .c4 files in include paths.\nPrevents excessive scanning of deeply nested directories.\nDefault: 3",
496
+ "default": 3,
497
+ "type": "integer",
498
+ "minimum": 1,
499
+ "maximum": 20
500
+ },
501
+ "fileThreshold": {
502
+ "description": "Maximum number of files to load from include paths before warning.\nHelps identify performance issues from accidentally including large directories.\nDefault: 30",
503
+ "default": 30,
504
+ "type": "integer",
505
+ "minimum": 1,
506
+ "maximum": 10000
507
+ }
508
+ },
509
+ "required": [
510
+ "paths"
511
+ ],
512
+ "additionalProperties": false
513
+ },
514
+ "ManualLayoutsConfig": {
515
+ "id": "ManualLayoutsConfig",
488
516
  "description": "Configuration for manual layouts",
489
517
  "type": "object",
490
518
  "properties": {