layero 0.8.12 → 0.8.14

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.
@@ -0,0 +1,664 @@
1
+ // GENERATED by core/detection/gen.mjs — DO NOT EDIT. Canonical: core/detection/detection.spec.json.
2
+ // eslint-disable-next-line
3
+ export const SPEC = {
4
+ "$schema": "./schema.json",
5
+ "spec_version": 1,
6
+ "_doc": "SINGLE SOURCE OF TRUTH for Layero framework/build/output/runtime detection. Transcribed from the canonical builder classes (core/builder/src/frameworks/*.py + runtime_detect.py + pkg_manager.py). Consumed by detect_core.py (backend + builder + runtime-builder) and detect_core.ts (CLI + control-plane). DATA ONLY — disk-aware refinement (discover_served_root, start-command entry probing) lives in builder code keyed by the identity this spec produces. See core/detection/README.md.",
7
+ "frameworks": [
8
+ {
9
+ "name": "nextjs",
10
+ "label": "Next.js",
11
+ "order": 10,
12
+ "aliases": [
13
+ "next",
14
+ "next.js"
15
+ ],
16
+ "signals": {
17
+ "deps": [
18
+ "next"
19
+ ],
20
+ "config_files": [
21
+ "next.config.js",
22
+ "next.config.mjs",
23
+ "next.config.ts",
24
+ "next.config.cjs"
25
+ ]
26
+ },
27
+ "build": {
28
+ "scripts": [
29
+ {
30
+ "name": "build"
31
+ }
32
+ ],
33
+ "fallback": "next build"
34
+ },
35
+ "output_dir": {
36
+ "default": "out",
37
+ "extract": "next_distdir",
38
+ "reject_root_override": true
39
+ },
40
+ "ssr": {
41
+ "rule": "next_no_export",
42
+ "runtime_kind": "ssr_node"
43
+ }
44
+ },
45
+ {
46
+ "name": "nuxt",
47
+ "label": "Nuxt",
48
+ "order": 20,
49
+ "aliases": [
50
+ "nuxtjs",
51
+ "nuxt3",
52
+ "nuxt2"
53
+ ],
54
+ "signals": {
55
+ "deps": [
56
+ "nuxt",
57
+ "nuxt3"
58
+ ],
59
+ "config_files": [
60
+ "nuxt.config.ts",
61
+ "nuxt.config.js",
62
+ "nuxt.config.mjs"
63
+ ]
64
+ },
65
+ "build": {
66
+ "scripts": [
67
+ {
68
+ "name": "generate"
69
+ }
70
+ ],
71
+ "fallback": "nuxt generate"
72
+ },
73
+ "output_dir": {
74
+ "default": ".output/public"
75
+ }
76
+ },
77
+ {
78
+ "name": "remix",
79
+ "label": "Remix / React Router v7",
80
+ "order": 30,
81
+ "aliases": [
82
+ "react-router",
83
+ "react-router-v7",
84
+ "rrv7",
85
+ "rr7",
86
+ "remix-run"
87
+ ],
88
+ "signals": {
89
+ "deps": [
90
+ "@remix-run/dev",
91
+ "@remix-run/react",
92
+ "@remix-run/node",
93
+ "@remix-run/serve",
94
+ "@react-router/dev",
95
+ "@react-router/node",
96
+ "@react-router/serve"
97
+ ],
98
+ "config_files": [
99
+ "react-router.config.ts",
100
+ "react-router.config.js"
101
+ ]
102
+ },
103
+ "build": {
104
+ "scripts": [
105
+ {
106
+ "name": "build"
107
+ }
108
+ ],
109
+ "fallback": "react-router build"
110
+ },
111
+ "output_dir": {
112
+ "default": "build/client"
113
+ }
114
+ },
115
+ {
116
+ "name": "sveltekit",
117
+ "label": "SvelteKit",
118
+ "order": 40,
119
+ "aliases": [
120
+ "svelte",
121
+ "svelte-kit",
122
+ "kit"
123
+ ],
124
+ "signals": {
125
+ "deps": [
126
+ "@sveltejs/kit"
127
+ ],
128
+ "config_files": [
129
+ "svelte.config.js",
130
+ "svelte.config.ts"
131
+ ]
132
+ },
133
+ "build": {
134
+ "scripts": [
135
+ {
136
+ "name": "build"
137
+ }
138
+ ],
139
+ "fallback": "vite build"
140
+ },
141
+ "output_dir": {
142
+ "default": "build"
143
+ }
144
+ },
145
+ {
146
+ "name": "gatsby",
147
+ "label": "Gatsby",
148
+ "order": 50,
149
+ "aliases": [
150
+ "gatsbyjs"
151
+ ],
152
+ "signals": {
153
+ "deps": [
154
+ "gatsby"
155
+ ],
156
+ "config_files": [
157
+ "gatsby-config.js",
158
+ "gatsby-config.ts"
159
+ ]
160
+ },
161
+ "build": {
162
+ "scripts": [
163
+ {
164
+ "name": "build"
165
+ }
166
+ ],
167
+ "fallback": "gatsby build"
168
+ },
169
+ "output_dir": {
170
+ "default": "public"
171
+ }
172
+ },
173
+ {
174
+ "name": "astro",
175
+ "label": "Astro",
176
+ "order": 60,
177
+ "aliases": [
178
+ "astrojs",
179
+ "astro.build"
180
+ ],
181
+ "signals": {
182
+ "deps": [
183
+ "astro"
184
+ ],
185
+ "config_basename": "astro.config"
186
+ },
187
+ "build": {
188
+ "scripts": [
189
+ {
190
+ "name": "build"
191
+ }
192
+ ],
193
+ "fallback": "astro build"
194
+ },
195
+ "output_dir": {
196
+ "default": "dist",
197
+ "extract": "outkey",
198
+ "extract_config_basename": "astro.config"
199
+ }
200
+ },
201
+ {
202
+ "name": "docusaurus",
203
+ "label": "Docusaurus",
204
+ "order": 70,
205
+ "aliases": [
206
+ "docusaurus2",
207
+ "docusaurus3"
208
+ ],
209
+ "signals": {
210
+ "deps": [
211
+ "@docusaurus/core"
212
+ ],
213
+ "config_files": [
214
+ "docusaurus.config.js",
215
+ "docusaurus.config.ts",
216
+ "docusaurus.config.mjs"
217
+ ]
218
+ },
219
+ "build": {
220
+ "scripts": [
221
+ {
222
+ "name": "build"
223
+ }
224
+ ],
225
+ "fallback": "docusaurus build"
226
+ },
227
+ "output_dir": {
228
+ "default": "build"
229
+ }
230
+ },
231
+ {
232
+ "name": "storybook",
233
+ "label": "Storybook",
234
+ "order": 80,
235
+ "aliases": [],
236
+ "signals": {
237
+ "deps": [
238
+ "@storybook/cli",
239
+ "@storybook/react",
240
+ "@storybook/react-vite",
241
+ "@storybook/react-webpack5",
242
+ "@storybook/vue",
243
+ "@storybook/vue3",
244
+ "@storybook/vue3-vite",
245
+ "@storybook/svelte",
246
+ "@storybook/svelte-vite",
247
+ "@storybook/web-components",
248
+ "@storybook/web-components-vite",
249
+ "@storybook/preact",
250
+ "@storybook/angular",
251
+ "@storybook/nextjs",
252
+ "@storybook/html",
253
+ "@storybook/html-vite",
254
+ "storybook"
255
+ ],
256
+ "script_names": [
257
+ "build-storybook"
258
+ ],
259
+ "script_contains": [
260
+ "storybook build"
261
+ ],
262
+ "dir_markers": [
263
+ ".storybook"
264
+ ]
265
+ },
266
+ "build": {
267
+ "scripts": [
268
+ {
269
+ "name": "build-storybook"
270
+ },
271
+ {
272
+ "name": "build",
273
+ "contains": "storybook"
274
+ }
275
+ ],
276
+ "fallback": "storybook build"
277
+ },
278
+ "output_dir": {
279
+ "default": "storybook-static"
280
+ }
281
+ },
282
+ {
283
+ "name": "vitepress",
284
+ "label": "VitePress",
285
+ "order": 90,
286
+ "aliases": [],
287
+ "signals": {
288
+ "deps": [
289
+ "vitepress"
290
+ ],
291
+ "config_files": [
292
+ ".vitepress/config.ts",
293
+ ".vitepress/config.js",
294
+ ".vitepress/config.mts",
295
+ ".vitepress/config.mjs",
296
+ "docs/.vitepress/config.ts",
297
+ "docs/.vitepress/config.js",
298
+ "docs/.vitepress/config.mts",
299
+ "docs/.vitepress/config.mjs"
300
+ ]
301
+ },
302
+ "build": {
303
+ "scripts": [
304
+ {
305
+ "name": "docs:build"
306
+ },
307
+ {
308
+ "name": "build"
309
+ }
310
+ ],
311
+ "fallback": "vitepress build"
312
+ },
313
+ "output_dir": {
314
+ "default": ".vitepress/dist",
315
+ "extract": "vitepress_docs"
316
+ }
317
+ },
318
+ {
319
+ "name": "vite",
320
+ "label": "Vite",
321
+ "order": 100,
322
+ "aliases": [
323
+ "vitejs"
324
+ ],
325
+ "signals": {
326
+ "deps": [
327
+ "vite"
328
+ ],
329
+ "config_basename": "vite.config"
330
+ },
331
+ "build": {
332
+ "scripts": [
333
+ {
334
+ "name": "build"
335
+ }
336
+ ],
337
+ "fallback": "vite build"
338
+ },
339
+ "output_dir": {
340
+ "default": "dist",
341
+ "extract": "outkey",
342
+ "extract_config_basename": "vite.config"
343
+ }
344
+ },
345
+ {
346
+ "name": "angular",
347
+ "label": "Angular",
348
+ "order": 110,
349
+ "aliases": [
350
+ "ng",
351
+ "angularjs"
352
+ ],
353
+ "signals": {
354
+ "deps": [
355
+ "@angular/core"
356
+ ],
357
+ "config_files": [
358
+ "angular.json"
359
+ ]
360
+ },
361
+ "build": {
362
+ "scripts": [
363
+ {
364
+ "name": "build"
365
+ }
366
+ ],
367
+ "fallback": "ng build"
368
+ },
369
+ "output_dir": {
370
+ "default": "dist",
371
+ "extract": "angular",
372
+ "extract_config_basename": "angular.json"
373
+ }
374
+ },
375
+ {
376
+ "name": "cra",
377
+ "label": "Create React App",
378
+ "order": 120,
379
+ "aliases": [
380
+ "create-react-app",
381
+ "react-scripts"
382
+ ],
383
+ "signals": {
384
+ "deps": [
385
+ "react-scripts"
386
+ ]
387
+ },
388
+ "build": {
389
+ "scripts": [
390
+ {
391
+ "name": "build"
392
+ }
393
+ ],
394
+ "fallback": "react-scripts build"
395
+ },
396
+ "output_dir": {
397
+ "default": "build"
398
+ }
399
+ },
400
+ {
401
+ "name": "eleventy",
402
+ "label": "Eleventy (11ty)",
403
+ "order": 130,
404
+ "aliases": [
405
+ "11ty"
406
+ ],
407
+ "signals": {
408
+ "deps": [
409
+ "@11ty/eleventy",
410
+ "eleventy"
411
+ ],
412
+ "config_files": [
413
+ ".eleventy.js",
414
+ "eleventy.config.js",
415
+ "eleventy.config.mjs",
416
+ "eleventy.config.cjs"
417
+ ]
418
+ },
419
+ "build": {
420
+ "scripts": [
421
+ {
422
+ "name": "build"
423
+ }
424
+ ],
425
+ "fallback": "@11ty/eleventy"
426
+ },
427
+ "output_dir": {
428
+ "default": "_site"
429
+ }
430
+ },
431
+ {
432
+ "name": "hugo",
433
+ "label": "Hugo",
434
+ "order": 140,
435
+ "aliases": [],
436
+ "signals": {
437
+ "config_files": [
438
+ "hugo.toml",
439
+ "hugo.yaml",
440
+ "hugo.json"
441
+ ],
442
+ "config_token_files": [
443
+ "config.toml",
444
+ "config.yaml",
445
+ "config.json"
446
+ ],
447
+ "config_tokens": [
448
+ "baseURL",
449
+ "baseurl",
450
+ "languageCode",
451
+ "languagecode",
452
+ "[params]",
453
+ "[markup]",
454
+ "[menu",
455
+ "[taxonomies]",
456
+ "hugoVersion",
457
+ "minVersion",
458
+ "theme"
459
+ ]
460
+ },
461
+ "build": {
462
+ "scripts": [],
463
+ "fallback": "hugo --gc --minify",
464
+ "npx": false
465
+ },
466
+ "skip_install": true,
467
+ "output_dir": {
468
+ "default": "public"
469
+ }
470
+ },
471
+ {
472
+ "name": "static",
473
+ "label": "Static (no build)",
474
+ "order": 150,
475
+ "aliases": [
476
+ "html",
477
+ "plain"
478
+ ],
479
+ "signals": {
480
+ "html_when_no_spa_deps": true,
481
+ "spa_hint_deps": [
482
+ "next",
483
+ "react-scripts",
484
+ "vite",
485
+ "astro",
486
+ "nuxt",
487
+ "@sveltejs/kit",
488
+ "gatsby"
489
+ ]
490
+ },
491
+ "build": {
492
+ "no_build": true
493
+ },
494
+ "output_dir": {
495
+ "default": "."
496
+ }
497
+ },
498
+ {
499
+ "name": "generic",
500
+ "label": "Other",
501
+ "order": 160,
502
+ "aliases": [
503
+ "manual",
504
+ "other",
505
+ "custom"
506
+ ],
507
+ "signals": {
508
+ "always": true
509
+ },
510
+ "build": {
511
+ "scripts": [
512
+ {
513
+ "name": "build"
514
+ }
515
+ ],
516
+ "fallback": null
517
+ },
518
+ "output_dir": {
519
+ "default": "dist"
520
+ }
521
+ }
522
+ ],
523
+ "runtime": {
524
+ "_doc": "Runtime app routing. project_type (user-facing) ↔ runtime_kind (internal/Activator) differ for Next: project_type=ssr_next → runtime_kind=ssr_node. flask is legacy → python_web.",
525
+ "py_web_signals": [
526
+ "fastapi",
527
+ "starlette",
528
+ "litestar",
529
+ "starlite",
530
+ "quart",
531
+ "sanic",
532
+ "blacksheep",
533
+ "hypercorn",
534
+ "daphne",
535
+ "uvicorn",
536
+ "flask",
537
+ "falcon",
538
+ "bottle",
539
+ "pyramid",
540
+ "cherrypy",
541
+ "werkzeug",
542
+ "gunicorn",
543
+ "aiohttp",
544
+ "tornado",
545
+ "django"
546
+ ],
547
+ "node_web_signals": [
548
+ "express",
549
+ "fastify",
550
+ "koa",
551
+ "@nestjs/core",
552
+ "@hapi/hapi",
553
+ "hapi",
554
+ "hono",
555
+ "@adonisjs/core",
556
+ "restify",
557
+ "polka",
558
+ "@feathersjs/feathers",
559
+ "sails",
560
+ "h3",
561
+ "json-server"
562
+ ],
563
+ "node_frontend_deps": [
564
+ "next",
565
+ "nuxt",
566
+ "vite",
567
+ "react-scripts",
568
+ "@angular/core",
569
+ "@sveltejs/kit",
570
+ "gatsby",
571
+ "astro",
572
+ "@docusaurus/core",
573
+ "@11ty/eleventy",
574
+ "vitepress"
575
+ ],
576
+ "python_entrypoints": [
577
+ "app.py",
578
+ "main.py",
579
+ "manage.py"
580
+ ],
581
+ "kinds": {
582
+ "ssr_next": {
583
+ "project_type": "ssr_next",
584
+ "runtime_kind": "ssr_node",
585
+ "port": 8080
586
+ },
587
+ "node_web": {
588
+ "project_type": "node_web",
589
+ "runtime_kind": "node_web",
590
+ "port": 3000
591
+ },
592
+ "python_web": {
593
+ "project_type": "python_web",
594
+ "runtime_kind": "python_web",
595
+ "port": 8000
596
+ },
597
+ "streamlit": {
598
+ "project_type": "streamlit",
599
+ "runtime_kind": "streamlit",
600
+ "port": 8501,
601
+ "requires_files": [
602
+ "app.py"
603
+ ]
604
+ },
605
+ "gradio": {
606
+ "project_type": "gradio",
607
+ "runtime_kind": "gradio",
608
+ "port": 7860,
609
+ "requires_files": [
610
+ "app.py"
611
+ ]
612
+ }
613
+ },
614
+ "layero_runtime_aliases": {
615
+ "ssr_node": "ssr_next",
616
+ "flask": "python_web"
617
+ }
618
+ },
619
+ "package_managers": {
620
+ "_doc": "Lockfile → package manager. install_cmd uses the frozen-lockfile form; install_fallback when no lockfile. run = `<run> <script>`. Mirrors builder/src/pkg_manager.py.",
621
+ "order": [
622
+ "bun",
623
+ "pnpm",
624
+ "yarn",
625
+ "npm"
626
+ ],
627
+ "managers": {
628
+ "bun": {
629
+ "lockfiles": [
630
+ "bun.lockb",
631
+ "bun.lock"
632
+ ],
633
+ "run": "bun run",
634
+ "install": "bun install --frozen-lockfile --ignore-scripts --no-save",
635
+ "install_fallback": "bun install --ignore-scripts --no-save"
636
+ },
637
+ "pnpm": {
638
+ "lockfiles": [
639
+ "pnpm-lock.yaml"
640
+ ],
641
+ "run": "pnpm run",
642
+ "install": "pnpm install --frozen-lockfile --reporter=append-only --ignore-scripts",
643
+ "install_fallback": "pnpm install --reporter=append-only --ignore-scripts"
644
+ },
645
+ "yarn": {
646
+ "lockfiles": [
647
+ "yarn.lock"
648
+ ],
649
+ "run": "yarn",
650
+ "install": "yarn install --frozen-lockfile --non-interactive --no-progress --ignore-scripts",
651
+ "install_fallback": "yarn install --non-interactive --no-progress --ignore-scripts"
652
+ },
653
+ "npm": {
654
+ "lockfiles": [
655
+ "package-lock.json",
656
+ "npm-shrinkwrap.json"
657
+ ],
658
+ "run": "npm run",
659
+ "install": "npm ci --no-audit --no-fund --ignore-scripts",
660
+ "install_fallback": "npm install --no-audit --no-fund --ignore-scripts"
661
+ }
662
+ }
663
+ }
664
+ };