@pantoken/scaffold 1.2.0 → 1.3.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.
package/dist/cli.mjs CHANGED
@@ -1,18 +1,18 @@
1
- import { c as SUPPORTED_LOCALES, d as validateLocaleTag, i as scaffoldProject, l as createLocaleLookup, n as isScaffoldPlatform, o as validateThemeMode, r as resolveScaffoldPlatform, s as validateThemeVariant, t as SCAFFOLD_PLATFORMS, u as detectLocale } from "./src-DxBSPAO9.mjs";
1
+ import { d as SUPPORTED_LOCALES, f as createLocaleLookup, i as scaffoldProject, l as validateThemeMode, m as validateLocaleTag, n as isScaffoldPlatform, o as installAgentAssets, p as detectLocale, r as resolveScaffoldPlatform, t as SCAFFOLD_PLATFORMS, u as validateThemeVariant } from "./src-diIfZCKN.mjs";
2
2
  import { readFileSync } from "node:fs";
3
3
  import { basename, join } from "node:path";
4
- import { CDN_PROVIDERS } from "@pantoken/canvas-theme-editor";
5
4
  import { Argument, Command, CommanderError, InvalidArgumentError } from "commander";
6
- import { cancel, isCancel, select, spinner, text } from "@clack/prompts";
5
+ import { cancel, confirm, isCancel, select, spinner, text } from "@clack/prompts";
7
6
  import tab from "@bomb.sh/tab/commander";
8
7
  import { homedir } from "node:os";
9
- import { execFileSync } from "node:child_process";
8
+ import { spawn } from "node:child_process";
10
9
  //#endregion
11
10
  //#region generated/locales/index.ts
12
11
  const MESSAGES = {
13
12
  "ar": {
14
13
  "promptPlatform": "اختر منصة للإنشاء:",
15
14
  "promptDir": "الدليل الهدف:",
15
+ "promptAiAssets": "إضافة أصول وكيل الذكاء الاصطناعي (AGENTS.md، قواعد المحرر/Copilot)؟",
16
16
  "spinnerStart": "جارٍ الإنشاء...",
17
17
  "spinnerStop": "اكتمل الإنشاء.",
18
18
  "wroteFile": "✓ {{path}}",
@@ -31,6 +31,7 @@ const MESSAGES = {
31
31
  "helpPlatformDescription": "المنصة التي سيتم إنشاؤها ({{platforms}}؛ \"html\" مرادف لـ \"components\"، \"theme-editor\" مرادف لـ \"canvas-theme-editor\")",
32
32
  "helpDirDescription": "الدليل الهدف (يُطلب تفاعليًا في TTY إذا تُرك فارغًا)",
33
33
  "helpYesDescription": "عدم المطالبة إطلاقًا؛ عرض خطأ بدل المطالبة عند فقدان المنصة/الدليل",
34
+ "helpNoAiDescription": "تخطي تثبيت أصول وكيل الذكاء الاصطناعي بعد الإنشاء",
34
35
  "helpLangDescription": "تجاوز لغة العرض المكتشفة تلقائيًا (مثال: \"hu\")",
35
36
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
36
37
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -71,6 +72,7 @@ const MESSAGES = {
71
72
  "hy": {
72
73
  "promptPlatform": "Ընտրեք պատշաճ պլատֆորմը՝ սկաֆոլդինգի համար:",
73
74
  "promptDir": "Նշանակված թղթապանակը:",
75
+ "promptAiAssets": "Ավելացնե՞լ AI գործակալների ռեսուրսները (AGENTS.md, editor/Copilot rules)?",
74
76
  "spinnerStart": "Սկսվում է սկաֆոլդինգը...",
75
77
  "spinnerStop": "Սկաֆոլդինգը ավարտվեց.",
76
78
  "wroteFile": "✓ {{path}}",
@@ -89,6 +91,7 @@ const MESSAGES = {
89
91
  "helpPlatformDescription": "Սկաֆոլդեցվող պլատֆորմը ({{platforms}}; \"html\"-ը հոմանիշ է \"components\"-ին, \"theme-editor\"-ը հոմանիշ է \"canvas-theme-editor\"-ին)",
90
92
  "helpDirDescription": "Նշված թղթապանակը (TTY-ի դեպքում եթե չի տրվել՝ հարցում կլինի ինտերակտիվ կերպով)",
91
93
  "helpYesDescription": "Չորեքչայլ հարցում; սխալ վերադարձնել՝ հանելով մեկին պակասող platform/dir-ի դեպքում",
94
+ "helpNoAiDescription": "Բաց թողնել AI գործակալների ռեսուրսների տեղադրումը scaffolding-ից հետո",
92
95
  "helpLangDescription": "Գոյացնող լեզուն ցասքել (օր., \"hu\")",
93
96
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
94
97
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -129,6 +132,7 @@ const MESSAGES = {
129
132
  "ca": {
130
133
  "promptPlatform": "Selecciona una plataforma per fer scaffold:",
131
134
  "promptDir": "Directori de destinació:",
135
+ "promptAiAssets": "Afegir actius d'agents d'IA (AGENTS.md, regles de l'editor/Copilot)?",
132
136
  "spinnerStart": "Creant l'esquelet...",
133
137
  "spinnerStop": "Esquelet creat.",
134
138
  "wroteFile": "✓ {{path}}",
@@ -147,6 +151,7 @@ const MESSAGES = {
147
151
  "helpPlatformDescription": "Plataforma per fer scaffold ({{platforms}}; \"html\" és un àlies de \"components\", \"theme-editor\" és un àlies de \"canvas-theme-editor\")",
148
152
  "helpDirDescription": "Directori de destinació (demana interactivament en una TTY si s'omet)",
149
153
  "helpYesDescription": "No demanar mai; en cas de falta de platform/directori, mostrar error en lloc de demanar",
154
+ "helpNoAiDescription": "Ometre la instal·lació d'actius d'agents d'IA després de l'estructuració",
150
155
  "helpLangDescription": "Anul·la l'idioma de visualització autodetectat (p. ex. \"hu\")",
151
156
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
152
157
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -187,6 +192,7 @@ const MESSAGES = {
187
192
  "da": {
188
193
  "promptPlatform": "Vælg en platform til scaffolding:",
189
194
  "promptDir": "Målmappe:",
195
+ "promptAiAssets": "Tilføj AI-agent-aktiver (AGENTS.md, editor/Copilot-regler)?",
190
196
  "spinnerStart": "Scaffolding...",
191
197
  "spinnerStop": "Færdig med scaffolding.",
192
198
  "wroteFile": "✓ {{path}}",
@@ -205,6 +211,7 @@ const MESSAGES = {
205
211
  "helpPlatformDescription": "Platform til scaffolding ({{platforms}}; \"html\" er et alias for \"components\", \"theme-editor\" er et alias for \"canvas-theme-editor\")",
206
212
  "helpDirDescription": "Målmappe (spørger interaktivt i en TTY, hvis udeladt)",
207
213
  "helpYesDescription": "Spørg aldrig; fejl i stedet for at spørge om manglende platform/mappe",
214
+ "helpNoAiDescription": "Spring installation af AI-agent-aktiver over efter scaffolding",
208
215
  "helpLangDescription": "Overskriv den autodetekterede visningssprog (f.eks. \"hu\")",
209
216
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
210
217
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -245,6 +252,7 @@ const MESSAGES = {
245
252
  "nl": {
246
253
  "promptPlatform": "Selecteer een platform om te scaffolden:",
247
254
  "promptDir": "Doeldirectory:",
255
+ "promptAiAssets": "AI-agentassets toevoegen (AGENTS.md, editor/Copilot-regels)?",
248
256
  "spinnerStart": "Scaffolding...",
249
257
  "spinnerStop": "Klaar met scaffolden.",
250
258
  "wroteFile": "✓ {{path}}",
@@ -263,6 +271,7 @@ const MESSAGES = {
263
271
  "helpPlatformDescription": "Platform om te scaffolden ({{platforms}}; \"html\" is een alias voor \"components\", \"theme-editor\" is een alias voor \"canvas-theme-editor\")",
264
272
  "helpDirDescription": "Doeldirectory (vraagt interactief op een TTY als dit wordt weggelaten)",
265
273
  "helpYesDescription": "Nooit vragen; geef een fout in plaats van te vragen bij ontbrekend platform/directory",
274
+ "helpNoAiDescription": "Installatie van AI-agentassets overslaan na scaffolding",
266
275
  "helpLangDescription": "Overschrijf de automatisch gedetecteerde weergavetaal (bijv. \"hu\")",
267
276
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
268
277
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -303,6 +312,7 @@ const MESSAGES = {
303
312
  "en-AU": {
304
313
  "promptPlatform": "Select a platform to scaffold:",
305
314
  "promptDir": "Target directory:",
315
+ "promptAiAssets": "Add AI agent assets (AGENTS.md, editor/Copilot rules)?",
306
316
  "spinnerStart": "Scaffolding...",
307
317
  "spinnerStop": "Done scaffolding.",
308
318
  "wroteFile": "✓ {{path}}",
@@ -321,6 +331,7 @@ const MESSAGES = {
321
331
  "helpPlatformDescription": "Platform to scaffold ({{platforms}}; \"html\" is an alias for \"components\", \"theme-editor\" is an alias for \"canvas-theme-editor\")",
322
332
  "helpDirDescription": "Target directory (prompts interactively on a TTY if omitted)",
323
333
  "helpYesDescription": "Never prompt; error instead of prompting for a missing platform/directory",
334
+ "helpNoAiDescription": "Skip installing AI agent assets after scaffolding",
324
335
  "helpLangDescription": "Override the auto-detected display language (e.g. \"hu\")",
325
336
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
326
337
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -361,6 +372,7 @@ const MESSAGES = {
361
372
  "en-CA": {
362
373
  "promptPlatform": "Select a platform to scaffold:",
363
374
  "promptDir": "Target directory:",
375
+ "promptAiAssets": "Add AI agent assets (AGENTS.md, editor/Copilot rules)?",
364
376
  "spinnerStart": "Scaffolding...",
365
377
  "spinnerStop": "Done scaffolding.",
366
378
  "wroteFile": "✓ {{path}}",
@@ -379,6 +391,7 @@ const MESSAGES = {
379
391
  "helpPlatformDescription": "Platform to scaffold ({{platforms}}; \"html\" is an alias for \"components\", \"theme-editor\" is an alias for \"canvas-theme-editor\")",
380
392
  "helpDirDescription": "Target directory (prompts interactively on a TTY if omitted)",
381
393
  "helpYesDescription": "Never prompt; error instead of prompting for a missing platform/directory",
394
+ "helpNoAiDescription": "Skip installing AI agent assets after scaffolding",
382
395
  "helpLangDescription": "Override the auto-detected display language (e.g. \"hu\")",
383
396
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
384
397
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -419,6 +432,7 @@ const MESSAGES = {
419
432
  "en-GB": {
420
433
  "promptPlatform": "Select a platform to scaffold:",
421
434
  "promptDir": "Target directory:",
435
+ "promptAiAssets": "Add AI agent assets (AGENTS.md, editor/Copilot rules)?",
422
436
  "spinnerStart": "Scaffolding...",
423
437
  "spinnerStop": "Done scaffolding.",
424
438
  "wroteFile": "✓ {{path}}",
@@ -437,6 +451,7 @@ const MESSAGES = {
437
451
  "helpPlatformDescription": "Platform to scaffold ({{platforms}}; \"html\" is an alias for \"components\", \"theme-editor\" is an alias for \"canvas-theme-editor\")",
438
452
  "helpDirDescription": "Target directory (prompts interactively on a TTY if omitted)",
439
453
  "helpYesDescription": "Never prompt; error instead of prompting for a missing platform/directory",
454
+ "helpNoAiDescription": "Skip installing AI agent assets after scaffolding",
440
455
  "helpLangDescription": "Override the auto-detected display language (e.g. \"hu\")",
441
456
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
442
457
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -477,6 +492,7 @@ const MESSAGES = {
477
492
  "en": {
478
493
  "promptPlatform": "Select a platform to scaffold:",
479
494
  "promptDir": "Target directory:",
495
+ "promptAiAssets": "Add AI agent assets (AGENTS.md, editor/Copilot rules)?",
480
496
  "spinnerStart": "Scaffolding...",
481
497
  "spinnerStop": "Done scaffolding.",
482
498
  "wroteFile": "✓ {{path}}",
@@ -495,6 +511,7 @@ const MESSAGES = {
495
511
  "helpPlatformDescription": "Platform to scaffold ({{platforms}}; \"html\" is an alias for \"components\", \"theme-editor\" is an alias for \"canvas-theme-editor\")",
496
512
  "helpDirDescription": "Target directory (prompts interactively on a TTY if omitted)",
497
513
  "helpYesDescription": "Never prompt; error instead of prompting for a missing platform/directory",
514
+ "helpNoAiDescription": "Skip installing AI agent assets after scaffolding",
498
515
  "helpLangDescription": "Override the auto-detected display language (e.g. \"hu\")",
499
516
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
500
517
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -535,6 +552,7 @@ const MESSAGES = {
535
552
  "fi": {
536
553
  "promptPlatform": "Valitse alusta scaffoldattavaksi:",
537
554
  "promptDir": "Kohdekansio:",
555
+ "promptAiAssets": "Lisätäänkö AI-agenttien aineistot (AGENTS.md, editorin/Copilot-säännöt)?",
538
556
  "spinnerStart": "Scaffoldataan...",
539
557
  "spinnerStop": "Scaffoldaus valmis.",
540
558
  "wroteFile": "✓ {{path}}",
@@ -553,6 +571,7 @@ const MESSAGES = {
553
571
  "helpPlatformDescription": "Scaffoldattava alusta ({{platforms}}; \"html\" on alias \"components\"-vaihtoehdolle, \"theme-editor\" on alias \"canvas-theme-editor\"-vaihtoehdolle)",
554
572
  "helpDirDescription": "Kohdekansio (kysytään interaktiivisesti TTY:ssä, jos jätetty pois)",
555
573
  "helpYesDescription": "Älä koskaan kysy; virhe, jos puuttuva platform- tai directory-argumentti",
574
+ "helpNoAiDescription": "Ohita AI-agenttien aineistojen asentaminen scaffoldingin jälkeen",
556
575
  "helpLangDescription": "Ylikirjoita automaattisesti tunnistettu näyttökieli (esim. \"hu\")",
557
576
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
558
577
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -593,6 +612,7 @@ const MESSAGES = {
593
612
  "fr": {
594
613
  "promptPlatform": "Sélectionnez une plateforme à générer :",
595
614
  "promptDir": "Répertoire cible :",
615
+ "promptAiAssets": "Ajouter des ressources d'agent IA (AGENTS.md, règles de l'éditeur/Copilot)?",
596
616
  "spinnerStart": "Génération en cours…",
597
617
  "spinnerStop": "Génération terminée.",
598
618
  "wroteFile": "✓ {{path}}",
@@ -611,6 +631,7 @@ const MESSAGES = {
611
631
  "helpPlatformDescription": "Plateforme à générer ({{platforms}} ; \"html\" est un alias pour \"components\", \"theme-editor\" est un alias pour \"canvas-theme-editor\")",
612
632
  "helpDirDescription": "Répertoire cible (invite interactive sur un TTY si omis)",
613
633
  "helpYesDescription": "Ne jamais demander ; échoue plutôt que de demander une plateforme/répertoire manquant",
634
+ "helpNoAiDescription": "Ignorer l'installation des ressources d'agent IA après le scaffolding",
614
635
  "helpLangDescription": "Remplacer la langue d'affichage détectée automatiquement (ex. \"hu\")",
615
636
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
616
637
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -651,6 +672,7 @@ const MESSAGES = {
651
672
  "fr-CA": {
652
673
  "promptPlatform": "Sélectionnez une plateforme à générer :",
653
674
  "promptDir": "Répertoire cible :",
675
+ "promptAiAssets": "Ajouter des ressources d'agent IA (AGENTS.md, règles de l'éditeur/Copilot)?",
654
676
  "spinnerStart": "Génération en cours…",
655
677
  "spinnerStop": "Génération terminée.",
656
678
  "wroteFile": "✓ {{path}}",
@@ -669,6 +691,7 @@ const MESSAGES = {
669
691
  "helpPlatformDescription": "Plateforme à générer ({{platforms}} ; \"html\" est un alias pour \"components\", \"theme-editor\" est un alias pour \"canvas-theme-editor\")",
670
692
  "helpDirDescription": "Répertoire cible (invite interactive en TTY si omis)",
671
693
  "helpYesDescription": "Ne jamais demander ; échouer au lieu de demander une plateforme ou un répertoire manquant",
694
+ "helpNoAiDescription": "Ne pas installer les ressources d'agent IA après le scaffolding",
672
695
  "helpLangDescription": "Remplacer la langue d'affichage détectée automatiquement (p. ex. \"hu\")",
673
696
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
674
697
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -709,6 +732,7 @@ const MESSAGES = {
709
732
  "ga": {
710
733
  "promptPlatform": "Roghnaigh ardán le haghaidh sliocht:",
711
734
  "promptDir": "Eolaire sprioc:",
735
+ "promptAiAssets": "An gcuirtear sócmhainní gníomhaire AI (AGENTS.md, rialacha eagarthóra/Copilot)?",
712
736
  "spinnerStart": "Ag sliochtú...",
713
737
  "spinnerStop": "Sliocht críochnaithe.",
714
738
  "wroteFile": "✓ {{path}}",
@@ -727,6 +751,7 @@ const MESSAGES = {
727
751
  "helpPlatformDescription": "Ardán le sliochtú ({{platforms}}; \"html\" is ina leasainm do \"components\", \"theme-editor\" is ina leasainm do \"canvas-theme-editor\")",
728
752
  "helpDirDescription": "Eolaire sprioc (féachfaidh sé go idirghníomhach ar TTY más ann a fhágtar é)",
729
753
  "helpYesDescription": "Ná cuir ceist riamh; earráid seachas ceist a chur maidir le hardán/eolaire ar iarraidh",
754
+ "helpNoAiDescription": "Ná suiteáil sócmhainní gníomhaire AI tar éis an scafalaithe",
730
755
  "helpLangDescription": "Sárshocrú teanga taispeána (mar shampla \"hu\")",
731
756
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
732
757
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -767,6 +792,7 @@ const MESSAGES = {
767
792
  "de": {
768
793
  "promptPlatform": "Plattform zum Scaffolden auswählen:",
769
794
  "promptDir": "Zielverzeichnis:",
795
+ "promptAiAssets": "AI-Agent-Assets hinzufügen (AGENTS.md, editor/Copilot rules)?",
770
796
  "spinnerStart": "Scaffolding…",
771
797
  "spinnerStop": "Scaffolding abgeschlossen.",
772
798
  "wroteFile": "✓ {{path}}",
@@ -785,6 +811,7 @@ const MESSAGES = {
785
811
  "helpPlatformDescription": "Zu scaffoldende Plattform ({{platforms}}; \"html\" ist ein Alias für \"components\", \"theme-editor\" ist ein Alias für \"canvas-theme-editor\")",
786
812
  "helpDirDescription": "Zielverzeichnis (interaktiv per TTY, falls weggelassen)",
787
813
  "helpYesDescription": "Nie nachfragen; bei fehlender Plattform/Verzeichnis stattdessen Fehler ausgeben",
814
+ "helpNoAiDescription": "Installation der AI-Agent-Assets nach dem Scaffolding überspringen",
788
815
  "helpLangDescription": "Die automatisch erkannte Anzeigesprache überschreiben (z. B. \"hu\")",
789
816
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
790
817
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -825,6 +852,7 @@ const MESSAGES = {
825
852
  "el": {
826
853
  "promptPlatform": "Επιλέξτε πλατφόρμα για δημιουργία σκαλετού:",
827
854
  "promptDir": "Στόχος κατάλογος:",
855
+ "promptAiAssets": "Προσθήκη πόρων πράκτορα AI (AGENTS.md, κανόνες editor/Copilot)?",
828
856
  "spinnerStart": "Δημιουργία σκαλετού...",
829
857
  "spinnerStop": "Η δημιουργία σκαλετού ολοκληρώθηκε.",
830
858
  "wroteFile": "✓ {{path}}",
@@ -843,6 +871,7 @@ const MESSAGES = {
843
871
  "helpPlatformDescription": "Πλατφόρμα για δημιουργία σκαλετού ({{platforms}}; \"html\" είναι συνώνυμο για \"components\", \"theme-editor\" είναι συνώνυμο για \"canvas-theme-editor\")",
844
872
  "helpDirDescription": "Στόχος κατάλογος (ζητείται διαδραστικά σε TTY εάν παραλειφθεί)",
845
873
  "helpYesDescription": "Μην ζητάτε ποτέ εισαγωγή· σφάλμα αντί για ερώτηση για λείποντα πλατφόρμα/κατάλογο",
874
+ "helpNoAiDescription": "Παράλειψη εγκατάστασης πόρων πράκτορα AI μετά τη δημιουργία του σκελετού",
846
875
  "helpLangDescription": "Παράκαμψη της αυτόματης ανίχνευσης της γλώσσας εμφάνισης (π.χ. \"hu\")",
847
876
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
848
877
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -883,6 +912,7 @@ const MESSAGES = {
883
912
  "ht": {
884
913
  "promptPlatform": "Chwazi yon platfòm pou kreye scaffold:",
885
914
  "promptDir": "Katab sib:",
915
+ "promptAiAssets": "Ajoute resous ajan AI (AGENTS.md, règleman editè/Copilot)?",
886
916
  "spinnerStart": "Ap kreye scaffold...",
887
917
  "spinnerStop": "Fini kreye scaffold.",
888
918
  "wroteFile": "✓ {{path}}",
@@ -901,6 +931,7 @@ const MESSAGES = {
901
931
  "helpPlatformDescription": "Platfòm pou kreye scaffold ({{platforms}}; \"html\" se yon alias pou \"components\", \"theme-editor\" se yon alias pou \"canvas-theme-editor\")",
902
932
  "helpDirDescription": "Katab sib (p ap mande si kouri entèaktifman sou yon TTY si yo pa bay li)",
903
933
  "helpYesDescription": "Pa janm mande; jete erè olye pou mande lè platfòm/katab manke",
934
+ "helpNoAiDescription": "Sote enstale resous ajan AI apre scaffolding",
904
935
  "helpLangDescription": "Sispann deteksyon otomatik lang afichaj la (egzanp \"hu\")",
905
936
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
906
937
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -941,6 +972,7 @@ const MESSAGES = {
941
972
  "he": {
942
973
  "promptPlatform": "בחר פלטפורמה ליצירת scaffold:",
943
974
  "promptDir": "תיקיית יעד:",
975
+ "promptAiAssets": "להוסיף נכסי סוכני AI (AGENTS.md, כללי העורך/Copilot)?",
944
976
  "spinnerStart": "יוצר scaffold…",
945
977
  "spinnerStop": "סיום יצירת scaffold.",
946
978
  "wroteFile": "✓ {{path}}",
@@ -959,6 +991,7 @@ const MESSAGES = {
959
991
  "helpPlatformDescription": "פלטפורמה ליצירת scaffold ({{platforms}}; \"html\" הוא כינוי ל־\"components\", \"theme-editor\" הוא כינוי ל־\"canvas-theme-editor\")",
960
992
  "helpDirDescription": "תיקיית יעד (יבקש אינטראקטיבית ב‑TTY אם לא צוינה)",
961
993
  "helpYesDescription": "אל תבקש אישור; במקום זאת להחזיר שגיאה אם חסרה פלטפורמה/תיקייה",
994
+ "helpNoAiDescription": "דלג על התקנת נכסי סוכני AI לאחר יצירת התשתית",
962
995
  "helpLangDescription": "עקוף את זיהוי שפת התצוגה אוטומטית (למשל \"hu\")",
963
996
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
964
997
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -999,6 +1032,7 @@ const MESSAGES = {
999
1032
  "hi": {
1000
1033
  "promptPlatform": "स्कैफ़ोल्ड करने के लिए प्लेटफ़ॉर्म चुनें:",
1001
1034
  "promptDir": "लक्ष्य निर्देशिका:",
1035
+ "promptAiAssets": "AI एजेंट संपत्ति जोड़ें (AGENTS.md, editor/Copilot rules)?",
1002
1036
  "spinnerStart": "स्कैफ़ोल्ड किया जा रहा है...",
1003
1037
  "spinnerStop": "स्कैफ़ोल्डिंग पूर्ण।",
1004
1038
  "wroteFile": "✓ {{path}}",
@@ -1017,6 +1051,7 @@ const MESSAGES = {
1017
1051
  "helpPlatformDescription": "स्कैफ़ोल्ड करने के लिए प्लेटफ़ॉर्म ({{platforms}}; \"html\" का पर्याय \"components\" है, \"theme-editor\" का पर्याय \"canvas-theme-editor\" है)",
1018
1052
  "helpDirDescription": "लक्ष्य निर्देशिका (TTY पर छोड़ा गया तो इंटरैक्टिव रूप से पूछा जाएगा)",
1019
1053
  "helpYesDescription": "कभी भी संकेत नहीं पूछें; अनुपस्थित प्लेटफ़ॉर्म/निर्देशिका के लिए पूछने की बजाय त्रुटि करें",
1054
+ "helpNoAiDescription": "स्कैफोल्डिंग के बाद AI एजेंट संपत्तियाँ स्थापित करना छोड़ें",
1020
1055
  "helpLangDescription": "स्वचालित–पहचानी गई डिस्प्ले भाषा को ओवरराइड करें (उदा. \"hu\")",
1021
1056
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1022
1057
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1057,6 +1092,7 @@ const MESSAGES = {
1057
1092
  "hu": {
1058
1093
  "promptPlatform": "Válassz platformot a scaffoldinghez:",
1059
1094
  "promptDir": "Célkönyvtár:",
1095
+ "promptAiAssets": "AI ügynök eszközök hozzáadása (AGENTS.md, editor/Copilot szabályok)?",
1060
1096
  "spinnerStart": "Scaffoldolás...",
1061
1097
  "spinnerStop": "Scaffold kész.",
1062
1098
  "wroteFile": "✓ {{path}}",
@@ -1075,6 +1111,7 @@ const MESSAGES = {
1075
1111
  "helpPlatformDescription": "Scaffoldolandó platform ({{platforms}}; \"html\" a \"components\" aliasza, a \"theme-editor\" a \"canvas-theme-editor\" aliasza)",
1076
1112
  "helpDirDescription": "Célkönyvtár (TTY esetén interaktívan kérdez, ha kimarad)",
1077
1113
  "helpYesDescription": "Soha ne kérdezzen; hibázzon, ahelyett hogy egy hiányzó platform/könyvtár miatt promptolna",
1114
+ "helpNoAiDescription": "Az AI ügynök eszközök telepítésének kihagyása a sablon létrehozása után",
1078
1115
  "helpLangDescription": "Felülírja az automatikusan észlelt megjelenítési nyelvet (pl. \"hu\")",
1079
1116
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1080
1117
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1115,6 +1152,7 @@ const MESSAGES = {
1115
1152
  "is": {
1116
1153
  "promptPlatform": "Veldu vettvang til að búa til grunn:",
1117
1154
  "promptDir": "Áfangaskrá:",
1155
+ "promptAiAssets": "Bæta við AI-agent-eignum (AGENTS.md, editor/Copilot reglur)?",
1118
1156
  "spinnerStart": "Búsetning...",
1119
1157
  "spinnerStop": "Lokið við að búa til grunninn.",
1120
1158
  "wroteFile": "✓ {{path}}",
@@ -1133,6 +1171,7 @@ const MESSAGES = {
1133
1171
  "helpPlatformDescription": "Vettvangur til að búa til ({{platforms}}; \"html\" er samskeyti fyrir \"components\", \"theme-editor\" er samskeyti fyrir \"canvas-theme-editor\")",
1134
1172
  "helpDirDescription": "Áfangaskrá (spyr hvort verið er í TTY ef sleppt)",
1135
1173
  "helpYesDescription": "Aldrei spyrja; kasta villa í staðinn fyrir að spyrja um vantar vettvang/skrá",
1174
+ "helpNoAiDescription": "Sleppa uppsetningu AI-agent-eigna eftir að sniðmátið hefur verið búið til",
1136
1175
  "helpLangDescription": "Yfirstýrðu sjálfvirkt greinda sýnismál (t.d. \"hu\")",
1137
1176
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1138
1177
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1173,6 +1212,7 @@ const MESSAGES = {
1173
1212
  "id": {
1174
1213
  "promptPlatform": "Pilih platform untuk dibuat:",
1175
1214
  "promptDir": "Direktori target:",
1215
+ "promptAiAssets": "Tambahkan aset agen AI (AGENTS.md, aturan editor/Copilot)?",
1176
1216
  "spinnerStart": "Membuat kerangka...",
1177
1217
  "spinnerStop": "Selesai membuat kerangka.",
1178
1218
  "wroteFile": "✓ {{path}}",
@@ -1191,6 +1231,7 @@ const MESSAGES = {
1191
1231
  "helpPlatformDescription": "Platform untuk dibuat ({{platforms}}; \"html\" adalah alias untuk \"components\", \"theme-editor\" adalah alias untuk \"canvas-theme-editor\")",
1192
1232
  "helpDirDescription": "Direktori target (akan diminta secara interaktif pada TTY jika dihilangkan)",
1193
1233
  "helpYesDescription": "Jangan pernah meminta konfirmasi; keluarkan kesalahan jika platform/direktori hilang",
1234
+ "helpNoAiDescription": "Lewati pemasangan aset agen AI setelah scaffolding",
1194
1235
  "helpLangDescription": "Timpa bahasa tampilan yang terdeteksi otomatis (mis. \"hu\")",
1195
1236
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1196
1237
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1231,6 +1272,7 @@ const MESSAGES = {
1231
1272
  "it": {
1232
1273
  "promptPlatform": "Seleziona una piattaforma da scaffoldare:",
1233
1274
  "promptDir": "Directory di destinazione:",
1275
+ "promptAiAssets": "Aggiungere asset dell'agente AI (AGENTS.md, regole dell'editor/Copilot)?",
1234
1276
  "spinnerStart": "Scaffold in corso...",
1235
1277
  "spinnerStop": "Scaffold completato.",
1236
1278
  "wroteFile": "✓ {{path}}",
@@ -1249,6 +1291,7 @@ const MESSAGES = {
1249
1291
  "helpPlatformDescription": "Piattaforma da scaffoldare ({{platforms}}; \"html\" è un alias per \"components\", \"theme-editor\" è un alias per \"canvas-theme-editor\")",
1250
1292
  "helpDirDescription": "Directory di destinazione (se omessa, verrà richiesto in modo interattivo su una TTY)",
1251
1293
  "helpYesDescription": "Non chiedere mai conferma; genera un errore invece di richiedere la piattaforma/directory mancante",
1294
+ "helpNoAiDescription": "Saltare l'installazione degli asset dell'agente AI dopo lo scaffolding",
1252
1295
  "helpLangDescription": "Sovrascrivi la lingua di visualizzazione rilevata automaticamente (es. \"hu\")",
1253
1296
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1254
1297
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1289,6 +1332,7 @@ const MESSAGES = {
1289
1332
  "ja": {
1290
1333
  "promptPlatform": "スキャフォールドするプラットフォームを選択:",
1291
1334
  "promptDir": "ターゲットディレクトリ:",
1335
+ "promptAiAssets": "AIエージェントのアセットを追加しますか (AGENTS.md, editor/Copilot rules)?",
1292
1336
  "spinnerStart": "スキャフォールド中...",
1293
1337
  "spinnerStop": "スキャフォールド完了。",
1294
1338
  "wroteFile": "✓ {{path}}",
@@ -1307,6 +1351,7 @@ const MESSAGES = {
1307
1351
  "helpPlatformDescription": "スキャフォールドするプラットフォーム ({{platforms}}; \"html\" は \"components\" の別名、\"theme-editor\" は \"canvas-theme-editor\" の別名です)",
1308
1352
  "helpDirDescription": "ターゲットディレクトリ(省略するとTTY上で対話的に尋ねます)",
1309
1353
  "helpYesDescription": "プロンプトを表示しない(不足する platform/ディレクトリがある場合はプロンプトの代わりにエラーにする)",
1354
+ "helpNoAiDescription": "スキャフォールディング後に AIエージェントのアセットのインストールをスキップする",
1310
1355
  "helpLangDescription": "自動検出された表示言語を上書き(例: \"hu\")",
1311
1356
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1312
1357
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1347,6 +1392,7 @@ const MESSAGES = {
1347
1392
  "ko": {
1348
1393
  "promptPlatform": "스캐폴딩할 플랫폼 선택:",
1349
1394
  "promptDir": "대상 디렉터리:",
1395
+ "promptAiAssets": "AI 에이전트 자산 (AGENTS.md, editor/Copilot 규칙)을 추가하시겠습니까?",
1350
1396
  "spinnerStart": "스캐폴딩 중...",
1351
1397
  "spinnerStop": "스캐폴딩 완료.",
1352
1398
  "wroteFile": "✓ {{path}}",
@@ -1365,6 +1411,7 @@ const MESSAGES = {
1365
1411
  "helpPlatformDescription": "스캐폴딩할 플랫폼 ({{platforms}}; \"html\"은 \"components\"의 별칭, \"theme-editor\"는 \"canvas-theme-editor\"의 별칭)",
1366
1412
  "helpDirDescription": "대상 디렉터리 (TTY에서 생략하면 대화형으로 묻습니다)",
1367
1413
  "helpYesDescription": "절대 프롬프트하지 않음; 플랫폼/디렉터리가 없으면 프롬프트 대신 오류 발생",
1414
+ "helpNoAiDescription": "스캐폴딩 후 AI 에이전트 자산 설치를 건너뛰기",
1368
1415
  "helpLangDescription": "자동 감지된 표시 언어를 재정의 (예: \"hu\")",
1369
1416
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1370
1417
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1405,6 +1452,7 @@ const MESSAGES = {
1405
1452
  "mi": {
1406
1453
  "promptPlatform": "Tīpakohia he papanga hei hanga:",
1407
1454
  "promptDir": "Kōpaki ūkaipō (Target):",
1455
+ "promptAiAssets": "Tāpiri i ngā rawa mō ngā ajaneti AI (AGENTS.md, ture etita/Copilot)?",
1408
1456
  "spinnerStart": "E hanga ana…",
1409
1457
  "spinnerStop": "Kua oti te hanga.",
1410
1458
  "wroteFile": "✓ {{path}}",
@@ -1423,6 +1471,7 @@ const MESSAGES = {
1423
1471
  "helpPlatformDescription": "Te papanga hei hanga ({{platforms}}; ko \"html\" he ingoa taurima mō \"components\", ko \"theme-editor\" he ingoa taurima mō \"canvas-theme-editor\")",
1424
1472
  "helpDirDescription": "Kōpaki ūkaipō (ka uiui ā-āheinga i runga i te TTY mēnā kāore i whakakīa)",
1425
1473
  "helpYesDescription": "Kāore he pātai; ka hapa ina kore te papanga/kōpaki",
1474
+ "helpNoAiDescription": "Aukatia te tāuta i ngā rawa ajaneti AI i muri i te hanga anga",
1426
1475
  "helpLangDescription": "Te reo whakaatu hei whakakapi i te tautuhi aunoa (hei tauira \"hu\")",
1427
1476
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1428
1477
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1463,6 +1512,7 @@ const MESSAGES = {
1463
1512
  "ms": {
1464
1513
  "promptPlatform": "Pilih platform untuk discaffold:",
1465
1514
  "promptDir": "Direktori sasaran:",
1515
+ "promptAiAssets": "Tambah aset ejen AI (AGENTS.md, peraturan editor/Copilot)?",
1466
1516
  "spinnerStart": "Sedang membuat scaffold...",
1467
1517
  "spinnerStop": "Selesai membuat scaffold.",
1468
1518
  "wroteFile": "✓ {{path}}",
@@ -1481,6 +1531,7 @@ const MESSAGES = {
1481
1531
  "helpPlatformDescription": "Platform untuk discaffold ({{platforms}}; \"html\" adalah alias untuk \"components\", \"theme-editor\" adalah alias untuk \"canvas-theme-editor\")",
1482
1532
  "helpDirDescription": "Direktori sasaran (akan bertanya secara interaktif pada TTY jika ditinggalkan)",
1483
1533
  "helpYesDescription": "Jangan bertanya; beri ralat jika platform/direktori yang hilang",
1534
+ "helpNoAiDescription": "Langkau pemasangan aset ejen AI selepas scaffolding",
1484
1535
  "helpLangDescription": "Timpa bahasa paparan yang dikesan automatik (contoh: \"hu\")",
1485
1536
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1486
1537
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1521,6 +1572,7 @@ const MESSAGES = {
1521
1572
  "se": {
1522
1573
  "promptPlatform": "Välj en plattform att skapa scaffold för:",
1523
1574
  "promptDir": "Målmapp:",
1575
+ "promptAiAssets": "Add AI agent assets (AGENTS.md, editor/Copilot rules)?",
1524
1576
  "spinnerStart": "Skapar scaffold...",
1525
1577
  "spinnerStop": "Skapande klart.",
1526
1578
  "wroteFile": "✓ {{path}}",
@@ -1539,6 +1591,7 @@ const MESSAGES = {
1539
1591
  "helpPlatformDescription": "Plattform att skapa scaffold för ({{platforms}}; \"html\" är en alias för \"components\", \"theme-editor\" är en alias för \"canvas-theme-editor\")",
1540
1592
  "helpDirDescription": "Målmapp (frågas interaktivt i en TTY om det utelämnas)",
1541
1593
  "helpYesDescription": "Fråga aldrig; ge ett fel istället för att fråga efter saknad plattform/mapp",
1594
+ "helpNoAiDescription": "Skip installing AI agent assets after scaffolding",
1542
1595
  "helpLangDescription": "Åsidosätt den autodetekterade visningsspråket (t.ex. \"hu\")",
1543
1596
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1544
1597
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1579,6 +1632,7 @@ const MESSAGES = {
1579
1632
  "nb": {
1580
1633
  "promptPlatform": "Velg en plattform som skal scaffoldes:",
1581
1634
  "promptDir": "Målmappe:",
1635
+ "promptAiAssets": "Legg til AI-agent-ressurser (AGENTS.md, editor/Copilot-regler)?",
1582
1636
  "spinnerStart": "Scaffolder...",
1583
1637
  "spinnerStop": "Ferdig med scaffolding.",
1584
1638
  "wroteFile": "✓ {{path}}",
@@ -1597,6 +1651,7 @@ const MESSAGES = {
1597
1651
  "helpPlatformDescription": "Plattform som skal scaffoldes ({{platforms}}; \"html\" er et alias for \"components\", \"theme-editor\" er et alias for \"canvas-theme-editor\")",
1598
1652
  "helpDirDescription": "Målmappe (spør interaktivt i en TTY hvis utelatt)",
1599
1653
  "helpYesDescription": "Ikke spør; gi feil i stedet for å spørre om manglende plattform/mappe",
1654
+ "helpNoAiDescription": "Hopp over å installere AI-agent-ressurser etter oppsett",
1600
1655
  "helpLangDescription": "Overstyr automatisk oppdaget visningsspråk (f.eks. \"hu\")",
1601
1656
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1602
1657
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1637,6 +1692,7 @@ const MESSAGES = {
1637
1692
  "nn": {
1638
1693
  "promptPlatform": "Vel ein plattform å skaffolde:",
1639
1694
  "promptDir": "Målmappe:",
1695
+ "promptAiAssets": "Legg til AI-agent-ressursar (AGENTS.md, editor/Copilot-reglar)?",
1640
1696
  "spinnerStart": "Skaffolderar...",
1641
1697
  "spinnerStop": "Ferdig med skaffolding.",
1642
1698
  "wroteFile": "✓ {{path}}",
@@ -1655,6 +1711,7 @@ const MESSAGES = {
1655
1711
  "helpPlatformDescription": "Plattform å skaffolde ({{platforms}}; \"html\" er eit alias for \"components\", \"theme-editor\" er eit alias for \"canvas-theme-editor\")",
1656
1712
  "helpDirDescription": "Målmappe (spør interaktivt i ein TTY viss utelate)",
1657
1713
  "helpYesDescription": "Aldri spør; gi feil i staden for å spørje om manglande plattform/mappe",
1714
+ "helpNoAiDescription": "Hopp over å installere AI-agent-ressursar etter oppsett",
1658
1715
  "helpLangDescription": "Overskriv automatisk oppdaga visningsspråk (t.d. \"hu\")",
1659
1716
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1660
1717
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1695,6 +1752,7 @@ const MESSAGES = {
1695
1752
  "fa": {
1696
1753
  "promptPlatform": "پلتفرمی برای ساخت اسکافولد انتخاب کنید:",
1697
1754
  "promptDir": "دایرکتوری هدف:",
1755
+ "promptAiAssets": "افزودن دارایی‌های عامل هوش مصنوعی (AGENTS.md, قوانین ویرایشگر/Copilot)?",
1698
1756
  "spinnerStart": "در حال ساخت اسکافولد...",
1699
1757
  "spinnerStop": "ساخت اسکافولد انجام شد.",
1700
1758
  "wroteFile": "✓ {{path}}",
@@ -1713,6 +1771,7 @@ const MESSAGES = {
1713
1771
  "helpPlatformDescription": "پلتفرمی برای اسکافولد ({{platforms}}؛ \"html\" معادل \"components\" است، \"theme-editor\" معادل \"canvas-theme-editor\")",
1714
1772
  "helpDirDescription": "دایرکتوری هدف (در یک TTY در صورت حذف شدن به‌صورت تعاملی پرسیده می‌شود)",
1715
1773
  "helpYesDescription": "هرگز پرسش نکن؛ در صورت فقدان پلتفرم/دایرکتوری خطا صادر کن",
1774
+ "helpNoAiDescription": "نصب دارایی‌های عامل هوش مصنوعی را پس از اسکافولد رد کن",
1716
1775
  "helpLangDescription": "زبان نمایش را بازنویسی کن (مثلاً \"hu\")",
1717
1776
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1718
1777
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1753,6 +1812,7 @@ const MESSAGES = {
1753
1812
  "pl": {
1754
1813
  "promptPlatform": "Wybierz platformę do scaffoldingu:",
1755
1814
  "promptDir": "Katalog docelowy:",
1815
+ "promptAiAssets": "Dodać zasoby agenta AI (AGENTS.md, reguły edytora/Copilot)?",
1756
1816
  "spinnerStart": "Tworzenie szablonu...",
1757
1817
  "spinnerStop": "Zakończono tworzenie szablonu.",
1758
1818
  "wroteFile": "✓ {{path}}",
@@ -1771,6 +1831,7 @@ const MESSAGES = {
1771
1831
  "helpPlatformDescription": "Platforma do scaffoldingu ({{platforms}}; \"html\" to alias dla \"components\", \"theme-editor\" to alias dla \"canvas-theme-editor\")",
1772
1832
  "helpDirDescription": "Katalog docelowy (jeśli pominiesz, w TTY zostaniesz poproszony interaktywnie)",
1773
1833
  "helpYesDescription": "Nigdy nie pytać; zamiast tego zgłosić błąd, gdy brakuje platformy/katalogu",
1834
+ "helpNoAiDescription": "Pomiń instalowanie zasobów agenta AI po wygenerowaniu szkieletu",
1774
1835
  "helpLangDescription": "Zastąp automatycznie wykryty język wyświetlania (np. \"hu\")",
1775
1836
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1776
1837
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1811,6 +1872,7 @@ const MESSAGES = {
1811
1872
  "pt": {
1812
1873
  "promptPlatform": "Selecione uma plataforma para scaffold:",
1813
1874
  "promptDir": "Diretório de destino:",
1875
+ "promptAiAssets": "Adicionar ativos do agente de IA (AGENTS.md, regras do editor/Copilot)?",
1814
1876
  "spinnerStart": "Scaffold em andamento...",
1815
1877
  "spinnerStop": "Scaffold concluído.",
1816
1878
  "wroteFile": "✓ {{path}}",
@@ -1829,6 +1891,7 @@ const MESSAGES = {
1829
1891
  "helpPlatformDescription": "Plataforma para scaffold ({{platforms}}; \"html\" é um alias para \"components\", \"theme-editor\" é um alias para \"canvas-theme-editor\")",
1830
1892
  "helpDirDescription": "Diretório de destino (pergunta interativa em TTY se omitido)",
1831
1893
  "helpYesDescription": "Nunca perguntar; gerar erro em vez de solicitar plataforma/diretório ausente",
1894
+ "helpNoAiDescription": "Pular a instalação dos ativos do agente de IA após o scaffolding",
1832
1895
  "helpLangDescription": "Sobrepor o idioma de exibição detectado automaticamente (ex.: \"hu\")",
1833
1896
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1834
1897
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1869,6 +1932,7 @@ const MESSAGES = {
1869
1932
  "pt-BR": {
1870
1933
  "promptPlatform": "Selecione uma plataforma para scaffolding:",
1871
1934
  "promptDir": "Diretório alvo:",
1935
+ "promptAiAssets": "Adicionar ativos de agente de IA (AGENTS.md, regras do editor/Copilot)?",
1872
1936
  "spinnerStart": "Scaffold em andamento...",
1873
1937
  "spinnerStop": "Scaffold concluído.",
1874
1938
  "wroteFile": "✓ {{path}}",
@@ -1887,6 +1951,7 @@ const MESSAGES = {
1887
1951
  "helpPlatformDescription": "Plataforma para scaffold ({{platforms}}; \"html\" é um alias para \"components\", \"theme-editor\" é um alias para \"canvas-theme-editor\")",
1888
1952
  "helpDirDescription": "Diretório alvo (solicita interativamente em um TTY se omitido)",
1889
1953
  "helpYesDescription": "Nunca perguntar; falhar em vez de solicitar se faltar platform/diretório",
1954
+ "helpNoAiDescription": "Pular a instalação dos ativos do agente de IA após o scaffolding",
1890
1955
  "helpLangDescription": "Substituir o idioma exibido detectado automaticamente (ex.: \"hu\")",
1891
1956
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1892
1957
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1927,6 +1992,7 @@ const MESSAGES = {
1927
1992
  "ru": {
1928
1993
  "promptPlatform": "Выберите платформу для scaffold:",
1929
1994
  "promptDir": "Целевая директория:",
1995
+ "promptAiAssets": "Добавить ресурсы AI-агента (AGENTS.md, правила для редактора/Copilot)?",
1930
1996
  "spinnerStart": "Создаю каркас...",
1931
1997
  "spinnerStop": "Каркас создан.",
1932
1998
  "wroteFile": "✓ {{path}}",
@@ -1945,6 +2011,7 @@ const MESSAGES = {
1945
2011
  "helpPlatformDescription": "Платформа для scaffold ({{platforms}}; \"html\" — псевдоним для \"components\", \"theme-editor\" — псевдоним для \"canvas-theme-editor\")",
1946
2012
  "helpDirDescription": "Целевая директория (если опущено, в интерактивном TTY будет запрошено)",
1947
2013
  "helpYesDescription": "Никогда не запрашивать; выдать ошибку вместо интерактивного запроса платформы/директории",
2014
+ "helpNoAiDescription": "Пропустить установку ресурсов AI-агента после создания каркаса",
1948
2015
  "helpLangDescription": "Переопределить автоматически определённый язык интерфейса (например, \"hu\")",
1949
2016
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
1950
2017
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -1985,6 +2052,7 @@ const MESSAGES = {
1985
2052
  "zh-Hans": {
1986
2053
  "promptPlatform": "选择要生成的目标平台:",
1987
2054
  "promptDir": "目标目录:",
2055
+ "promptAiAssets": "添加 AI 代理资产(AGENTS.md、editor/Copilot 规则)?",
1988
2056
  "spinnerStart": "正在生成脚手架…",
1989
2057
  "spinnerStop": "脚手架生成完成。",
1990
2058
  "wroteFile": "✓ {{path}}",
@@ -2003,6 +2071,7 @@ const MESSAGES = {
2003
2071
  "helpPlatformDescription": "要生成的平台 ({{platforms}};\"html\" 为 \"components\" 的别名,\"theme-editor\" 为 \"canvas-theme-editor\" 的别名)",
2004
2072
  "helpDirDescription": "目标目录(若在 TTY 中省略则会交互提示)",
2005
2073
  "helpYesDescription": "从不提示;若缺少 platform/目录 则报错而不是提示",
2074
+ "helpNoAiDescription": "在脚手架搭建后跳过安装 AI 代理资产",
2006
2075
  "helpLangDescription": "覆盖自动检测的显示语言(例如:\"hu\")",
2007
2076
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2008
2077
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2043,6 +2112,7 @@ const MESSAGES = {
2043
2112
  "sl": {
2044
2113
  "promptPlatform": "Izberite platformo za ogrodje:",
2045
2114
  "promptDir": "Ciljna mapa:",
2115
+ "promptAiAssets": "Dodati AI agentne vire (AGENTS.md, pravila za urejevalnik/Copilot)?",
2046
2116
  "spinnerStart": "Ustvarjanje ogrodja...",
2047
2117
  "spinnerStop": "Ustvarjanje ogrodja končano.",
2048
2118
  "wroteFile": "✓ {{path}}",
@@ -2061,6 +2131,7 @@ const MESSAGES = {
2061
2131
  "helpPlatformDescription": "Platforma za ogrodje ({{platforms}}; \"html\" je nadomestno ime za \"components\", \"theme-editor\" je nadomestno ime za \"canvas-theme-editor\")",
2062
2132
  "helpDirDescription": "Ciljna mapa (če ni navedena, se interaktivno vpraša na TTY)",
2063
2133
  "helpYesDescription": "Nikoli ne pozivaj; pri manjkajoči platformi/mapi sproži napako namesto poziva",
2134
+ "helpNoAiDescription": "Preskoči namestitev AI agentnih virov po scaffoldingu",
2064
2135
  "helpLangDescription": "Prepišite samodejno zaznan jezik vmesnika (npr. \"hu\")",
2065
2136
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2066
2137
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2101,6 +2172,7 @@ const MESSAGES = {
2101
2172
  "es": {
2102
2173
  "promptPlatform": "Seleccione una plataforma para scaffolding:",
2103
2174
  "promptDir": "Directorio destino:",
2175
+ "promptAiAssets": "¿Agregar recursos de agente de IA (AGENTS.md, reglas del editor/Copilot)?",
2104
2176
  "spinnerStart": "Scaffold en progreso...",
2105
2177
  "spinnerStop": "Scaffold completado.",
2106
2178
  "wroteFile": "✓ {{path}}",
@@ -2119,6 +2191,7 @@ const MESSAGES = {
2119
2191
  "helpPlatformDescription": "Plataforma para scaffolding ({{platforms}}; \"html\" es un alias de \"components\", \"theme-editor\" es un alias de \"canvas-theme-editor\")",
2120
2192
  "helpDirDescription": "Directorio destino (si se omite, solicita interactivamente en un TTY)",
2121
2193
  "helpYesDescription": "Nunca preguntar; mostrar error en lugar de pedir la plataforma/directorio faltante",
2194
+ "helpNoAiDescription": "Omitir la instalación de recursos de agente de IA después de generar el esqueleto",
2122
2195
  "helpLangDescription": "Sobrescribir el idioma de visualización detectado automáticamente (p. ej. \"hu\")",
2123
2196
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2124
2197
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2159,6 +2232,7 @@ const MESSAGES = {
2159
2232
  "sv": {
2160
2233
  "promptPlatform": "Välj plattform att skapa stommen för:",
2161
2234
  "promptDir": "Målkatalog:",
2235
+ "promptAiAssets": "Lägga till AI-agentresurser (AGENTS.md, editor/Copilot-regler)?",
2162
2236
  "spinnerStart": "Skapar stommen...",
2163
2237
  "spinnerStop": "Stomme skapad.",
2164
2238
  "wroteFile": "✓ {{path}}",
@@ -2177,6 +2251,7 @@ const MESSAGES = {
2177
2251
  "helpPlatformDescription": "Plattform att skapa stommen för ({{platforms}}; \"html\" är ett alias för \"components\", \"theme-editor\" är ett alias för \"canvas-theme-editor\")",
2178
2252
  "helpDirDescription": "Målkatalog (frågas interaktivt i en TTY om det utelämnas)",
2179
2253
  "helpYesDescription": "Fråga aldrig; ge fel i stället för att fråga efter saknad plattform/katalog",
2254
+ "helpNoAiDescription": "Hoppa över installation av AI-agentresurser efter scaffolding",
2180
2255
  "helpLangDescription": "Åsidosätt den autodetekterade visningsspråket (t.ex. \"hu\")",
2181
2256
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2182
2257
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2217,6 +2292,7 @@ const MESSAGES = {
2217
2292
  "th": {
2218
2293
  "promptPlatform": "เลือกแพลตฟอร์มสำหรับสร้างสเกลโฟลด์:",
2219
2294
  "promptDir": "ไดเรกทอรีเป้าหมาย:",
2295
+ "promptAiAssets": "เพิ่มไฟล์เอเจนต์ AI (AGENTS.md, กฎ editor/Copilot)?",
2220
2296
  "spinnerStart": "กำลังสร้างโครงสร้าง...",
2221
2297
  "spinnerStop": "สร้างโครงสร้างเสร็จแล้ว.",
2222
2298
  "wroteFile": "✓ {{path}}",
@@ -2235,6 +2311,7 @@ const MESSAGES = {
2235
2311
  "helpPlatformDescription": "แพลตฟอร์มที่จะสร้างสเกลโฟลด์ ({{platforms}}; \"html\" เป็นนามแฝงของ \"components\", \"theme-editor\" เป็นนามแฝงของ \"canvas-theme-editor\")",
2236
2312
  "helpDirDescription": "ไดเรกทอรีเป้าหมาย (จะเรียกถามแบบโต้ตอบบน TTY หากละไว้)",
2237
2313
  "helpYesDescription": "ไม่ถามคำถามใด ๆ; แสดงข้อผิดพลาดแทนการถามเมื่อขาด platform/ไดเรกทอรี",
2314
+ "helpNoAiDescription": "ข้ามการติดตั้งไฟล์เอเจนต์ AI หลังจากการสร้างโครงงาน",
2238
2315
  "helpLangDescription": "แทนที่การตรวจจับภาษาการแสดงผลอัตโนมัติ (เช่น \"hu\")",
2239
2316
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2240
2317
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2275,6 +2352,7 @@ const MESSAGES = {
2275
2352
  "zh-Hant": {
2276
2353
  "promptPlatform": "選擇要產生樣板的平台:",
2277
2354
  "promptDir": "目標目錄:",
2355
+ "promptAiAssets": "新增 AI 代理資產(AGENTS.md、editor/Copilot 規則)?",
2278
2356
  "spinnerStart": "正在產生樣板…",
2279
2357
  "spinnerStop": "樣板產生完成。",
2280
2358
  "wroteFile": "✓ {{path}}",
@@ -2293,6 +2371,7 @@ const MESSAGES = {
2293
2371
  "helpPlatformDescription": "要產生樣板的平台({{platforms}};\"html\" 為 \"components\" 的別名,\"theme-editor\" 為 \"canvas-theme-editor\" 的別名)",
2294
2372
  "helpDirDescription": "目標目錄(若省略且為 TTY,會以互動方式提示)",
2295
2373
  "helpYesDescription": "永不提示;若缺少 platform 或目錄則報錯",
2374
+ "helpNoAiDescription": "在腳手架建立後跳過安裝 AI 代理資產",
2296
2375
  "helpLangDescription": "覆寫自動偵測的顯示語言(例如 \"hu\")",
2297
2376
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2298
2377
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2333,6 +2412,7 @@ const MESSAGES = {
2333
2412
  "tr": {
2334
2413
  "promptPlatform": "Bir iskelet (scaffold) platformu seçin:",
2335
2414
  "promptDir": "Hedef dizin:",
2415
+ "promptAiAssets": "AI ajan varlıkları ekle (AGENTS.md, editor/Copilot kuralları)?",
2336
2416
  "spinnerStart": "İskelet oluşturuluyor...",
2337
2417
  "spinnerStop": "İskelet oluşturma tamamlandı.",
2338
2418
  "wroteFile": "✓ {{path}}",
@@ -2351,6 +2431,7 @@ const MESSAGES = {
2351
2431
  "helpPlatformDescription": "İskelet oluşturulacak platform ({{platforms}}; \"html\" \"components\" için takma addır, \"theme-editor\" \"canvas-theme-editor\" için takma addır)",
2352
2432
  "helpDirDescription": "Hedef dizin (TTY'de belirtilmezse etkileşimli olarak sorulur)",
2353
2433
  "helpYesDescription": "Asla sorulmasın; eksik platform/dizin için sormak yerine hata ver",
2434
+ "helpNoAiDescription": "Scaffolding sonrası AI ajan varlıklarının kurulmasını atla",
2354
2435
  "helpLangDescription": "Otomatik algılanan görüntüleme dilini geçersiz kıl (ör. \"hu\")",
2355
2436
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2356
2437
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2391,6 +2472,7 @@ const MESSAGES = {
2391
2472
  "uk": {
2392
2473
  "promptPlatform": "Виберіть платформу для створення каркасу:",
2393
2474
  "promptDir": "Цільова директорія:",
2475
+ "promptAiAssets": "Додати ресурси AI-агента (AGENTS.md, editor/Copilot rules)?",
2394
2476
  "spinnerStart": "Створення каркасу...",
2395
2477
  "spinnerStop": "Готово — каркас створено.",
2396
2478
  "wroteFile": "✓ {{path}}",
@@ -2409,6 +2491,7 @@ const MESSAGES = {
2409
2491
  "helpPlatformDescription": "Платформа для створення каркасу ({{platforms}}; \"html\" — псевдонім для \"components\", \"theme-editor\" — псевдонім для \"canvas-theme-editor\")",
2410
2492
  "helpDirDescription": "Цільова директорія (якщо пропущено — запит у TTY)",
2411
2493
  "helpYesDescription": "Ніколи не питати; в разі відсутньої платформи/директорії видавати помилку",
2494
+ "helpNoAiDescription": "Пропустити встановлення ресурсів AI-агента після scaffoldування",
2412
2495
  "helpLangDescription": "Перевизначити автоматично визначену мову інтерфейсу (наприклад \"hu\")",
2413
2496
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2414
2497
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2449,6 +2532,7 @@ const MESSAGES = {
2449
2532
  "vi": {
2450
2533
  "promptPlatform": "Chọn nền tảng để khởi tạo:",
2451
2534
  "promptDir": "Thư mục đích:",
2535
+ "promptAiAssets": "Thêm tài nguyên tác nhân AI (AGENTS.md, quy tắc editor/Copilot)?",
2452
2536
  "spinnerStart": "Đang khởi tạo...",
2453
2537
  "spinnerStop": "Hoàn tất khởi tạo.",
2454
2538
  "wroteFile": "✓ {{path}}",
@@ -2467,6 +2551,7 @@ const MESSAGES = {
2467
2551
  "helpPlatformDescription": "Nền tảng để khởi tạo ({{platforms}}; \"html\" là bí danh của \"components\", \"theme-editor\" là bí danh của \"canvas-theme-editor\")",
2468
2552
  "helpDirDescription": "Thư mục đích (nếu bỏ qua sẽ hỏi tương tác khi chạy trên TTY)",
2469
2553
  "helpYesDescription": "Không hỏi; báo lỗi thay vì hỏi khi thiếu platform/thư mục",
2554
+ "helpNoAiDescription": "Bỏ qua cài đặt tài nguyên tác nhân AI sau khi tạo scaffold",
2470
2555
  "helpLangDescription": "Ghi đè ngôn ngữ hiển thị được tự động phát hiện (ví dụ: \"hu\")",
2471
2556
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2472
2557
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2507,6 +2592,7 @@ const MESSAGES = {
2507
2592
  "cy": {
2508
2593
  "promptPlatform": "Dewiswch blatfform i'w ffrydio:",
2509
2594
  "promptDir": "Cyfeiriadur targed:",
2595
+ "promptAiAssets": "Ychwanegu asedau asiant AI (AGENTS.md, rheolau editor/Copilot)?",
2510
2596
  "spinnerStart": "Yn ffrydio...",
2511
2597
  "spinnerStop": "Wedi gorffen ffrydio.",
2512
2598
  "wroteFile": "✓ {{path}}",
@@ -2525,6 +2611,7 @@ const MESSAGES = {
2525
2611
  "helpPlatformDescription": "Platfform i'w ffrydio ({{platforms}}; mae \"html\" yn alias ar gyfer \"components\", mae \"theme-editor\" yn alias ar gyfer \"canvas-theme-editor\")",
2526
2612
  "helpDirDescription": "Cyfeiriadur targed (bydd yn gofyn yn rhyngweithiol ar TTY os cânt ei hepgor)",
2527
2613
  "helpYesDescription": "Peidiwch byth â gofyn; camgymeriad yn lle gofyn am blatfform/cyfeiriadur coll",
2614
+ "helpNoAiDescription": "Peidio â gosod asedau asiant AI ar ôl ffurfio'r prosiect",
2528
2615
  "helpLangDescription": "Gorchuddiwch y iaith arddangos a ganfuwyd yn awtomatig (e.e. \"hu\")",
2529
2616
  "canvas-theme-editor.nextSteps.0": "cd {{dir}}",
2530
2617
  "canvas-theme-editor.nextSteps.1": "{{install}}",
@@ -2696,6 +2783,30 @@ async function resolveDir(dirOption, opts) {
2696
2783
  return result || ".";
2697
2784
  }
2698
2785
  /**
2786
+ * Resolves whether to install AI agent assets alongside the scaffold: `--no-ai` always wins
2787
+ * (returns false); otherwise defaults to `true`, prompting via clack `confirm()` on a TTY (not
2788
+ * --yes) to let the user opt out interactively.
2789
+ *
2790
+ * @throws ScaffoldCliError when the prompt is cancelled
2791
+ */
2792
+ async function resolveAiAssets(opts) {
2793
+ const { yes, isTTY, noAi, t } = opts;
2794
+ if (noAi) return false;
2795
+ if (!shouldPrompt(void 0, {
2796
+ yes,
2797
+ isTTY
2798
+ })) return true;
2799
+ const result = await confirm({
2800
+ message: t("promptAiAssets"),
2801
+ initialValue: true
2802
+ });
2803
+ if (isCancel(result)) {
2804
+ cancel(t("cancelled"));
2805
+ throw new ScaffoldCliError(t("cancelled"), 1);
2806
+ }
2807
+ return result;
2808
+ }
2809
+ /**
2699
2810
  * Resolves platform + directory: prompts via clack select()/text() when omitted on a TTY
2700
2811
  * (not --yes); throws ScaffoldCliError with a clear, localized message when a required
2701
2812
  * value is missing non-interactively.
@@ -2760,6 +2871,7 @@ function detectPackageManager(env, execPath) {
2760
2871
  if (userAgent.includes("bun")) return "bun";
2761
2872
  if (userAgent.includes("deno")) return "deno";
2762
2873
  if (userAgent.includes("npm")) return "npm";
2874
+ if ("Deno" in globalThis) return "deno";
2763
2875
  if ((execPath ?? process.execPath).includes("vite-plus")) return "vp";
2764
2876
  }
2765
2877
  /** Fully-composed command fragments per package manager, so callers never hand-compose them. */
@@ -2818,6 +2930,10 @@ function buildCreateUsageCommand(pm) {
2818
2930
  }
2819
2931
  /**
2820
2932
  * Runs the detected package manager's install command in `dir`, wrapped in a clack spinner.
2933
+ * Runs via async `spawn` (not `execFileSync`) so the spinner can actually animate while installing
2934
+ * — a synchronous child process blocks the event loop and freezes the spinner's frames, making the
2935
+ * CLI look hung even though it's working. Output is still suppressed (`stdio: "ignore"`); only the
2936
+ * spinner's own text animates, updated periodically with the elapsed time.
2821
2937
  * Failures are reported but non-fatal — the project is still usable, just not installed — so the
2822
2938
  * caller decides how `printNextSteps` should reflect the outcome via the returned boolean.
2823
2939
  *
@@ -2826,20 +2942,39 @@ function buildCreateUsageCommand(pm) {
2826
2942
  * @param t - Localized string lookup
2827
2943
  * @returns Whether the install command exited successfully
2828
2944
  */
2829
- function installWithSpinner(dir, pm, t) {
2830
- const [command, ...args] = pmCommands(pm).install.split(" ");
2945
+ async function installWithSpinner(dir, pm, t) {
2946
+ const npmExecPath = pm === "npm" ? process.env.npm_execpath : void 0;
2947
+ const [command, ...args] = npmExecPath ? [
2948
+ process.execPath,
2949
+ npmExecPath,
2950
+ "install"
2951
+ ] : pmCommands(pm).install.split(" ");
2831
2952
  const s = spinner();
2832
2953
  s.start(t("installSpinnerStart"));
2954
+ const startedAt = Date.now();
2955
+ const tick = setInterval(() => {
2956
+ const elapsed = Math.floor((Date.now() - startedAt) / 1e3);
2957
+ s.message(`${t("installSpinnerStart")} (${elapsed}s)`);
2958
+ }, 500);
2833
2959
  try {
2834
- execFileSync(command, args, {
2835
- cwd: dir,
2836
- stdio: "ignore"
2960
+ await new Promise((resolvePromise, rejectPromise) => {
2961
+ const child = spawn(command, args, {
2962
+ cwd: dir,
2963
+ stdio: "ignore"
2964
+ });
2965
+ child.on("error", rejectPromise);
2966
+ child.on("close", (code) => {
2967
+ if (code === 0) resolvePromise();
2968
+ else rejectPromise(/* @__PURE__ */ new Error(`exited with code ${code}`));
2969
+ });
2837
2970
  });
2838
2971
  s.stop(t("installSpinnerStop"));
2839
2972
  return true;
2840
2973
  } catch (err) {
2841
2974
  s.stop(`${t("installSpinnerFailed")} ${err instanceof Error ? err.message : String(err)}`);
2842
2975
  return false;
2976
+ } finally {
2977
+ clearInterval(tick);
2843
2978
  }
2844
2979
  }
2845
2980
  /**
@@ -2874,7 +3009,8 @@ function buildDevStep(dir, dev) {
2874
3009
  * needed — regardless of platform. Otherwise, when `platform` has a `scaffold.json`-derived entry in
2875
3010
  * `SCAFFOLD_METADATA`, next steps/notes/caveats are rendered from its (localized, `{{var}}`-
2876
3011
  * substituted) authored strings; failing that, a generic cd/install/run-script fallback is used,
2877
- * with the run script itself detected from the scaffolded `package.json` (`dev`, else `preview`).
3012
+ * with the run script itself detected from the scaffolded `package.json` (`dev`, else `preview`)
3013
+ * or defaulted to `dev` for scaffolded app templates.
2878
3014
  *
2879
3015
  * @param dir - The scaffold directory
2880
3016
  * @param written - The paths written by scaffoldProject
@@ -2885,8 +3021,7 @@ function buildDevStep(dir, dev) {
2885
3021
  function printNextSteps(dir, written, t, platform, installed) {
2886
3022
  const pm = detectPackageManager();
2887
3023
  const { install, run } = pmCommands(pm);
2888
- const script = detectRunScript(written);
2889
- const dev = script ? `${run} ${script}` : t("nextStepsDevServer");
3024
+ const dev = `${run} ${detectRunScript(written) ?? "dev"}`;
2890
3025
  const vars = {
2891
3026
  dir,
2892
3027
  pm: pm ?? "npm",
@@ -2926,8 +3061,13 @@ function validateScaffoldPlatform(value) {
2926
3061
  * @throws InvalidArgumentError if the value isn't a known CDN provider id
2927
3062
  */
2928
3063
  function validateCdnProviderId(value) {
2929
- if (value in CDN_PROVIDERS) return value;
2930
- throw new InvalidArgumentError(`CDN provider "${value}" is not valid. Expected one of: ${Object.keys(CDN_PROVIDERS).join(", ")}.`);
3064
+ const providers = [
3065
+ "jsdelivr",
3066
+ "unpkg",
3067
+ "esmsh"
3068
+ ];
3069
+ if (providers.includes(value)) return value;
3070
+ throw new InvalidArgumentError(`CDN provider "${value}" is not valid. Expected one of: ${providers.join(", ")}.`);
2931
3071
  }
2932
3072
  /**
2933
3073
  * Builds the full, ready-to-parse commander Command for pantoken-scaffold/create-pantoken-app.
@@ -2940,7 +3080,7 @@ function createScaffoldCommand(options) {
2940
3080
  const program = new Command(programName).exitOverride().configureOutput({
2941
3081
  writeOut: (s) => process.stdout.write(s),
2942
3082
  writeErr: (s) => process.stderr.write(s)
2943
- }).addArgument(new Argument("[platform]", `Platform to scaffold (${SCAFFOLD_PLATFORMS.join("|")}; "html" is an alias for "components")`).argParser(validateScaffoldPlatform)).option("-d, --dir <path>", "Target directory (prompts interactively on a TTY if omitted)").option("-y, --yes", "Never prompt; error instead of prompting for a missing platform/directory", false).option("-l, --lang <tag>", "Language for the CLI and the scaffolded project (e.g. \"hu\"); auto-detected by default", validateLocaleTag).option("--theme <name>", "Token theme: rebrand (default), canvas, canvasHighContrast", validateThemeVariant).option("--theme-mode <mode>", "Rebrand token mode: light (default) or adaptive; ignored outside the rebrand theme", validateThemeMode).option("--cdn <provider>", "CDN provider for canvas-theme-editor's theme.css/theme.js: jsdelivr (default), unpkg, esmsh", validateCdnProviderId).option("--no-install", "Skip automatically installing dependencies after scaffolding");
3083
+ }).addArgument(new Argument("[platform]", `Platform to scaffold (${SCAFFOLD_PLATFORMS.join("|")}; "html" is an alias for "components")`).argParser(validateScaffoldPlatform)).option("-d, --dir <path>", "Target directory (prompts interactively on a TTY if omitted)").option("-y, --yes", "Never prompt; error instead of prompting for a missing platform/directory", false).option("-l, --lang <tag>", "Language for the CLI and the scaffolded project (e.g. \"hu\"); auto-detected by default", validateLocaleTag).option("--theme <name>", "Token theme: rebrand (default), canvas, canvasHighContrast", validateThemeVariant).option("--theme-mode <mode>", "Rebrand token mode: light (default) or adaptive; ignored outside the rebrand theme", validateThemeMode).option("--cdn <provider>", "CDN provider for canvas-theme-editor's theme.css/theme.js: jsdelivr (default), unpkg, esmsh", validateCdnProviderId).option("--no-install", "Skip automatically installing dependencies after scaffolding").option("--no-ai", "Skip installing AI agent assets after scaffolding");
2944
3084
  if (options?.version) program.version(options.version, "-v, --version");
2945
3085
  program.action(async (platformArg, opts) => {
2946
3086
  const locale = detectLocale({ langFlag: opts.lang });
@@ -2953,19 +3093,28 @@ function createScaffoldCommand(options) {
2953
3093
  t
2954
3094
  });
2955
3095
  const expandedDir = expandHome(dir);
3096
+ const packageManager = detectPackageManager();
2956
3097
  const written = await scaffoldWithSpinner(platform, expandedDir, t, {
2957
3098
  theme: opts.theme,
2958
3099
  mode: opts.themeMode,
2959
3100
  cdn: opts.cdn,
2960
- locale
3101
+ locale,
3102
+ packageManager
2961
3103
  });
2962
3104
  for (const path of written) console.log(t("wroteFile", { path }));
3105
+ const isTTY = process.stdin?.isTTY ?? false;
3106
+ if (await resolveAiAssets({
3107
+ yes: opts.yes,
3108
+ isTTY,
3109
+ noAi: opts.ai === false,
3110
+ t
3111
+ })) for (const path of installAgentAssets("all", expandedDir)) console.log(t("wroteFile", { path }));
3112
+ const installed = opts.install !== false && await installWithSpinner(expandedDir, packageManager, t);
2963
3113
  let printDir = expandedDir;
2964
- if (expandedDir !== ".") try {
3114
+ if (installed && expandedDir !== ".") try {
2965
3115
  process.chdir(expandedDir);
2966
3116
  printDir = ".";
2967
3117
  } catch {}
2968
- const installed = opts.install !== false && installWithSpinner(expandedDir, detectPackageManager(), t);
2969
3118
  printNextSteps(printDir, written, t, resolveScaffoldPlatform(platform), installed);
2970
3119
  } catch (err) {
2971
3120
  if (err instanceof ScaffoldCliError) throw err;
@@ -3004,4 +3153,4 @@ async function runScaffoldCli(argv, options) {
3004
3153
  }
3005
3154
  }
3006
3155
  //#endregion
3007
- export { MESSAGES, SCAFFOLD_PLATFORMS, SUPPORTED_LOCALES, ScaffoldCliError, buildCreateUsageCommand, createLocaleLookup, createScaffoldCommand, detectLocale, detectPackageManager, expandHome, installWithSpinner, isScaffoldPlatform, printNextSteps, resolveScaffoldPlatform, resolveScaffoldTarget, runScaffoldCli, scaffoldProject, scaffoldWithSpinner, shouldPrompt, validateCdnProviderId, validateLocaleTag, validateScaffoldPlatform };
3156
+ export { MESSAGES, SCAFFOLD_PLATFORMS, SUPPORTED_LOCALES, ScaffoldCliError, buildCreateUsageCommand, createLocaleLookup, createScaffoldCommand, detectLocale, detectPackageManager, expandHome, installAgentAssets, installWithSpinner, isScaffoldPlatform, printNextSteps, resolveAiAssets, resolveScaffoldPlatform, resolveScaffoldTarget, runScaffoldCli, scaffoldProject, scaffoldWithSpinner, shouldPrompt, validateCdnProviderId, validateLocaleTag, validateScaffoldPlatform };